#![forbid(unsafe_code)]
#![warn(missing_docs)]
mod accesskit_backend;
mod builder;
mod color_contrast;
pub mod constraints;
mod contracts;
mod css_units;
mod errors;
mod layout_engine;
pub mod palette;
pub mod palettes;
pub(crate) mod proof_credentials;
pub mod node_roles {
pub use crate::contracts::node_roles::*;
}
mod spatial;
pub mod text;
pub mod traits;
mod types;
mod typestate;
mod ui_types;
mod validators;
mod wcag_types;
pub use accesskit_backend::AccessKitUiBackend;
pub use builder::LayoutBuilder;
pub use color_contrast::{
ContrastEnhanced, ContrastMinimum, NonTextContrast, SrgbColor, TextSize, contrast_ratio,
};
pub use constraints::{
BreakpointOutcome, BreakpointReport, BreakpointResult, BreakpointTier, Constraint,
ConstraintContext, ConstraintSet, ConstraintSetBuilder, ConstraintVerification, GridAlignment,
HasLabelConstraint, KeyboardAccessibleConstraint, MinReadableSize, MinSpacing,
MinTouchTargetConstraint, NoOverflowConstraint, Reflow320, ResizeText200, SpecReference,
TerminalAccessible, TerminalBreakpoint, TerminalBreakpointSet, TerminalNoOverflow, TextSpacing,
ValidRoleConstraint, Violation, WcagLevel,
};
pub use contracts::NodeRoleProof;
pub use contracts::{
AccessibleAA,
AltTextProvided,
FocusVisible,
HasLabel,
IrSourced,
KeyboardAccessible,
MinTargetSize,
NoOverflow,
RenderComplete,
RolePreserved,
StructuredContent,
SufficientContrast,
ValidRole,
WcagAbbreviationsExpanded,
WcagAccessibleAuthentication,
WcagAccessibleAuthenticationEnhanced,
WcagAllFunctionalityKeyboard,
WcagAudioControlAvailable,
WcagAudioDescriptionOrMediaAlt,
WcagAudioDescriptionPrerecorded,
WcagAudioOnlyAlternativeProvided,
WcagAudioOnlyLiveAlternative,
WcagAutoUpdatePausable,
WcagBypassBlocksMechanism,
WcagCaptchaMultipleModalities,
WcagCaptionsLiveProvided,
WcagCaptionsSynchronized,
WcagChangesOnRequest,
WcagCharacterShortcutsDisableable,
WcagCharacterShortcutsFocusOnly,
WcagCharacterShortcutsRemappable,
WcagColorNotSoleConveyor,
WcagComponentPurposeIdentifiable,
WcagConcurrentInputMechanisms,
WcagConsistentHelpLocated,
WcagContentReflowable,
WcagContextSensitiveHelp,
WcagContrastEnhancedLargeText,
WcagContrastEnhancedNormalText,
WcagContrastMinimumLargeText,
WcagContrastMinimumLogotypeExcepted,
WcagContrastMinimumNormalText,
WcagDecorativeImageAltEmpty,
WcagDraggingAlternative,
WcagErrorIdentificationDescriptive,
WcagErrorPreventionAll,
WcagErrorPreventionChecked,
WcagErrorPreventionConfirmed,
WcagErrorPreventionLegal,
WcagErrorPreventionReversible,
WcagErrorSuggestionProvided,
WcagExtendedAudioDescription,
WcagFlashAreaBelowThreshold,
WcagFocusAppearanceEnhancedArea,
WcagFocusAppearanceEnhancedContrast,
WcagFocusAppearanceMinimumArea,
WcagFocusAppearanceMinimumContrast,
WcagFocusIndicatorContrast,
WcagFocusNoContextChange,
WcagFocusOrderLogical,
WcagFocusVisibleKeyboard,
WcagFormLabelsProgrammatic,
WcagHeadingStructureProgrammatic,
WcagHeadingsDescriptive,
WcagHoverContentDismissible,
WcagHoverContentHoverable,
WcagHoverContentPersistent,
WcagIdentificationConsistent,
WcagImagesOfTextAvoided,
WcagImagesOfTextCustomizable,
WcagImagesOfTextNoException,
WcagInfoAndRelationshipsProgrammatic,
WcagInputNoContextChange,
WcagInputPurposeIdentifiable,
WcagInterruptionsPostponable,
WcagKeyboardEscapeFromComponent,
WcagKeyboardNoTimingPath,
WcagKeyboardNotTrapped,
WcagKeyboardOperable,
WcagLabelInNameMatch,
WcagLabelsDescriptive,
WcagLabelsOrInstructionsPresent,
WcagLetterSpacingAdjustable,
WcagLevelAAAValid,
WcagLevelAAValid,
WcagLevelAValid,
WcagLineHeightAdjustable,
WcagLinkPurposeFromContext,
WcagLinkPurposeLinkOnly,
WcagListStructureProgrammatic,
WcagLocationInNavigationSet,
WcagLowBackgroundAudio,
WcagMeaningfulSequencePreservable,
WcagMediaAlternativePrerecorded,
WcagMotionActuationAlternative,
WcagMotionActuationDisableable,
WcagMultiplePathsToContent,
WcagNamePresent,
WcagNameRoleValueProgrammatic,
WcagNavigationConsistent,
WcagNoHorizontalScrollVerticalText,
WcagNoThreeFlashAbsolute,
WcagNoTimingRequired,
WcagNonTextContentAltDescriptive,
WcagNonTextContentAltNonEmpty,
WcagNonTextContentAltPresent,
WcagNonTextContrastMinimum,
WcagOperableValid,
WcagOrientationNotRestricted,
WcagPageLanguageIdentified,
WcagPageTitleDescriptive,
WcagPageTitled,
WcagParagraphSpacingAdjustable,
WcagParsingValid,
WcagPartLanguageIdentified,
WcagPauseStopHideAvailable,
WcagPerceivedValid,
WcagPointerCancellationAbortable,
WcagPointerCancellationReversible,
WcagPointerCancellationUpEvent,
WcagPointerGesturesSimpleAlternative,
WcagPronunciationAvailable,
WcagReadingLevelSupplemented,
WcagReauthWithoutDataLoss,
WcagReducedMotionRespected,
WcagRedundantEntryMinimized,
WcagRobustValid,
WcagRoleProgrammatic,
WcagSectionHeadingsPresent,
WcagSensoryNotExclusive,
WcagSignLanguagePrerecorded,
WcagStatusMessagesLiveRegion,
WcagStatusMessagesProgrammatic,
WcagTableHeadersProgrammatic,
WcagTargetSizeEnhanced,
WcagTargetSizeEnhancedHeight,
WcagTargetSizeEnhancedWidth,
WcagTargetSizeMinimum,
WcagTargetSizeMinimumHeight,
WcagTargetSizeMinimumSpaced,
WcagTargetSizeMinimumWidth,
WcagTextResizable,
WcagTextSpacingAdjustable,
WcagThreeFlashBelowThreshold,
WcagTimeoutWarningProvided,
WcagTimingAdjustTenX,
WcagTimingAdjustable,
WcagTimingExtendWarning,
WcagTimingTurnOffAvailable,
WcagUnderstandableValid,
WcagUnusualWordsDefined,
WcagValueStatesProgrammatic,
WcagVerified,
WcagVideoOnlyAlternativeProvided,
WcagVisualPresentationCustomizable,
WcagWordSpacingAdjustable,
};
pub use css_units::{Breakpoint, BreakpointSet, CssLength, CssParseError, is_zoom_invariant};
pub use elicit_accesskit::ColorTheme;
pub use errors::{
UiError, UiErrorKind, UiResult, VerificationError, VerificationErrorKind, VerificationReport,
};
pub use layout_engine::LayoutEngineError;
#[cfg(feature = "layout-engine")]
pub use layout_engine::{LayoutMode, TaffyBridge};
pub use palette::{
ContrastReport, ContrastSuggestion, NonTextPair, NormalTextPair, Palette, PaletteBuildError,
PaletteBuilder, PaletteColors, SemanticRole, suggest_compliant,
};
pub use spatial::{BoundingBox, LayoutContext};
pub use text::{
FontStyle, FontWeight, ParagraphText, RichText, TextAlign, TextDecoration, TextLine,
TextModifier, TextSpan, TextStyle, UiColor,
};
pub use traits::{
RenderContext, RenderVerifiable, UiBackend, UiEventBridge, UiEventDispatcher, UiInspector,
UiLayoutManager, UiNavigationManager, UiNodeBridge, UiRenderBackend, UiRenderer,
UiTreeRenderer, WcagBackend, WcagContrastFactory, WcagElementMeta, WcagErrorFactory,
WcagFocusFactory, WcagKeyboardFactory, WcagLabelFactory, WcagLanguageFactory, WcagMediaFactory,
WcagOperableFactory, WcagPageMeta, WcagPerceivedFactory, WcagRobustFactory,
WcagStructureFactory, WcagTargetFactory, WcagTimingFactory, WcagUnderstandableFactory,
verify_in_debug,
};
pub use types::{ElementId, Label, RenderStats, Size, Viewport};
pub use typestate::{ConstraintProfile, Layout, Pending, Rendered, Verified};
pub use ui_types::{
ContainerId, ContrastViolation, VerifiedTree, WidgetA11y, WidgetId, WidgetInfo,
};
pub use wcag_types::{
CaptionedMedia, ContrastDescriptor, ContrastPair, ErrorDescriptor, ErrorField, FocusDescriptor,
FocusIndicator, KeyboardDescriptor, KeyboardPath, LabelDescriptor, LabeledElement,
LanguageDescriptor, LanguagePage, LevelAaEvidence, MediaDescriptor, OperableEvidence,
OperableInterface, PerceivedEvidence, PerceivedSection, PointerTarget, RobustEvidence,
RobustWidget, StructureDescriptor, StructuredElement, TargetDescriptor, TimedElement,
TimingDescriptor, UnderstandableEvidence, UnderstandableInterface,
};