use elicitation::proof_credential;
use crate::{
FocusVisible, KeyboardAccessible, LevelAaEvidence, NoOverflow, OperableEvidence,
PerceivedEvidence, RobustEvidence, UnderstandableEvidence, WcagAudioDescriptionPrerecorded,
WcagCaptionsSynchronized, WcagCharacterShortcutsRemappable, WcagContrastEnhancedLargeText,
WcagContrastEnhancedNormalText, WcagContrastMinimumLargeText, WcagContrastMinimumNormalText,
WcagErrorIdentificationDescriptive, WcagErrorPreventionLegal, WcagErrorSuggestionProvided,
WcagFocusAppearanceEnhancedArea, WcagFocusAppearanceMinimumArea, WcagFocusVisibleKeyboard,
WcagFormLabelsProgrammatic, WcagHeadingStructureProgrammatic, WcagKeyboardNotTrapped,
WcagKeyboardOperable, WcagLabelInNameMatch, WcagLabelsOrInstructionsPresent, WcagLevelAAValid,
WcagListStructureProgrammatic, WcagNamePresent, WcagNonTextContrastMinimum, WcagOperableValid,
WcagPageLanguageIdentified, WcagPartLanguageIdentified, WcagPerceivedValid,
WcagPointerCancellationUpEvent, WcagPointerGesturesSimpleAlternative, WcagRobustValid,
WcagTableHeadersProgrammatic, WcagTargetSizeEnhanced, WcagTargetSizeMinimum, WcagTextResizable,
WcagTimingAdjustable, WcagUnderstandableValid,
};
proof_credential! {
pub(crate) NormalTextContrastVerified => WcagContrastMinimumNormalText;
pub(crate) LargeTextContrastVerified => WcagContrastMinimumLargeText;
pub(crate) EnhancedNormalTextContrastVerified => WcagContrastEnhancedNormalText;
pub(crate) EnhancedLargeTextContrastVerified => WcagContrastEnhancedLargeText;
pub(crate) NonTextContrastVerified => WcagNonTextContrastMinimum;
pub(crate) PaletteNormalTextVerified => WcagContrastMinimumNormalText;
pub(crate) PaletteNonTextVerified => WcagNonTextContrastMinimum;
}
proof_credential! {
pub(crate) AccessibleNameVerified => WcagNamePresent;
pub(crate) FormLabelVerified => WcagFormLabelsProgrammatic;
pub(crate) LabelInNameVerified => WcagLabelInNameMatch;
}
proof_credential! {
pub(crate) FocusVisibleVerified => WcagFocusVisibleKeyboard;
pub(crate) FocusAppearanceMinimumVerified => WcagFocusAppearanceMinimumArea;
pub(crate) FocusAppearanceEnhancedVerified => WcagFocusAppearanceEnhancedArea;
}
proof_credential! {
pub(crate) KeyboardOperableVerified => WcagKeyboardOperable;
pub(crate) KeyboardEscapeVerified => WcagKeyboardNotTrapped;
pub(crate) RemappableShortcutVerified => WcagCharacterShortcutsRemappable;
}
proof_credential! {
pub(crate) TimingAdjustableVerified => WcagTimingAdjustable;
}
proof_credential! {
pub(crate) TargetSizeMinimumVerified => WcagTargetSizeMinimum;
pub(crate) TargetSizeEnhancedVerified => WcagTargetSizeEnhanced;
pub(crate) PointerGestureAlternativeVerified => WcagPointerGesturesSimpleAlternative;
pub(crate) PointerCancellationVerified => WcagPointerCancellationUpEvent;
}
proof_credential! {
pub(crate) HeadingCreated => WcagHeadingStructureProgrammatic;
pub(crate) ListCreated => WcagListStructureProgrammatic;
pub(crate) TableCreated => WcagTableHeadersProgrammatic;
pub(crate) ResizableTextCreated => WcagTextResizable;
}
proof_credential! {
pub(crate) CaptionsVerified => WcagCaptionsSynchronized;
pub(crate) AudioDescriptionVerified => WcagAudioDescriptionPrerecorded;
}
proof_credential! {
pub(crate) PageLanguageVerified => WcagPageLanguageIdentified;
pub(crate) PartLanguageVerified => WcagPartLanguageIdentified;
}
proof_credential! {
pub(crate) ErrorIdentifiedVerified => WcagErrorIdentificationDescriptive;
pub(crate) LabelsAndInstructionsVerified => WcagLabelsOrInstructionsPresent;
pub(crate) ErrorSuggestionVerified => WcagErrorSuggestionProvided;
pub(crate) ErrorPreventionVerified => WcagErrorPreventionLegal;
}
proof_credential! {
pub(crate) LayoutContainerCreated => NoOverflow;
}
proof_credential! {
pub(crate) FocusOrderSet => KeyboardAccessible;
pub(crate) FocusActivated => FocusVisible;
pub(crate) ShortcutRegistered => KeyboardAccessible;
pub(crate) SkipLinkAdded => KeyboardAccessible;
}
use elicitation::contracts::ProvableFrom;
impl ProvableFrom<PerceivedEvidence> for WcagPerceivedValid {}
impl ProvableFrom<OperableEvidence> for WcagOperableValid {}
impl ProvableFrom<UnderstandableEvidence> for WcagUnderstandableValid {}
impl ProvableFrom<RobustEvidence> for WcagRobustValid {}
impl ProvableFrom<LevelAaEvidence> for WcagLevelAAValid {}