Skip to main content

Crate elicit_ui

Crate elicit_ui 

Source
Expand description

elicit_ui — WCAG-enforced accessible UI system using AccessKit as the IR.

Provides a formally verifiable UI construction system using:

  1. AccessKit universal IR — all UI represented as accessibility trees
  2. Typestate state machinePending → Verified
  3. Proof-carrying contracts — WCAG compliance enforced by construction
  4. Multiple frontends — bridge to egui, leptos, ratatui from single IR

§Architecture

WCAG factory traits
       ↓
AccessKitUiBackend  (monomorphic — one concrete impl)
       ↓
AccessKit IR  (TreeUpdate — the validated output)
       ↓
Frontend bridges  (egui / leptos / ratatui — concrete modules)

§State Machine

  • Layout<Pending> — awaiting verification
  • Layout<Verified> — verified against WCAG Level AA constraints

§Propositions (WCAG Compliance)

  • HasLabel — element has non-empty accessible label
  • ValidRole — element has valid ARIA role
  • MinTargetSize — interactive element ≥44x44 (Level AAA touch targets)
  • NoOverflow — element fits within viewport
  • KeyboardAccessible — element keyboard-navigable
  • AccessibleAA — composite (all Level AA criteria)
  • SufficientContrast — color pair meets 4.5:1 ratio (WCAG 1.4.3)
  • FocusVisible — visible focus indicator (WCAG 2.4.11)
  • AltTextProvided — text alternative for non-text content (WCAG 1.1.1)
  • StructuredContent — structure is programmatically determinable (WCAG 1.3.1)
  • RenderComplete — UI tree successfully rendered

Re-exports§

pub use constraints::BreakpointOutcome;
pub use constraints::BreakpointReport;
pub use constraints::BreakpointResult;
pub use constraints::BreakpointTier;
pub use constraints::Constraint;
pub use constraints::ConstraintContext;
pub use constraints::ConstraintSet;
pub use constraints::ConstraintSetBuilder;
pub use constraints::ConstraintVerification;
pub use constraints::GridAlignment;
pub use constraints::HasLabelConstraint;
pub use constraints::KeyboardAccessibleConstraint;
pub use constraints::MinReadableSize;
pub use constraints::MinSpacing;
pub use constraints::MinTouchTargetConstraint;
pub use constraints::NoOverflowConstraint;
pub use constraints::Reflow320;
pub use constraints::ResizeText200;
pub use constraints::SpecReference;
pub use constraints::TerminalAccessible;
pub use constraints::TerminalBreakpoint;
pub use constraints::TerminalBreakpointSet;
pub use constraints::TerminalNoOverflow;
pub use constraints::TextSpacing;
pub use constraints::ValidRoleConstraint;
pub use constraints::Violation;
pub use constraints::WcagLevel;
pub use palette::ContrastReport;
pub use palette::ContrastSuggestion;
pub use palette::NonTextPair;
pub use palette::NormalTextPair;
pub use palette::Palette;
pub use palette::PaletteBuildError;
pub use palette::PaletteBuilder;
pub use palette::PaletteColors;
pub use palette::SemanticRole;
pub use palette::suggest_compliant;
pub use text::FontStyle;
pub use text::FontWeight;
pub use text::ParagraphText;
pub use text::RichText;
pub use text::TextAlign;
pub use text::TextDecoration;
pub use text::TextLine;
pub use text::TextModifier;
pub use text::TextSpan;
pub use text::TextStyle;
pub use text::UiColor;
pub use traits::RenderContext;
pub use traits::RenderVerifiable;
pub use traits::UiBackend;
pub use traits::UiEventBridge;
pub use traits::UiEventDispatcher;
pub use traits::UiInspector;
pub use traits::UiLayoutManager;
pub use traits::UiNavigationManager;
pub use traits::UiNodeBridge;
pub use traits::UiRenderBackend;
pub use traits::UiRenderer;
pub use traits::UiTreeRenderer;
pub use traits::WcagBackend;
pub use traits::WcagContrastFactory;
pub use traits::WcagElementMeta;
pub use traits::WcagErrorFactory;
pub use traits::WcagFocusFactory;
pub use traits::WcagKeyboardFactory;
pub use traits::WcagLabelFactory;
pub use traits::WcagLanguageFactory;
pub use traits::WcagMediaFactory;
pub use traits::WcagOperableFactory;
pub use traits::WcagPageMeta;
pub use traits::WcagPerceivedFactory;
pub use traits::WcagRobustFactory;
pub use traits::WcagStructureFactory;
pub use traits::WcagTargetFactory;
pub use traits::WcagTimingFactory;
pub use traits::WcagUnderstandableFactory;
pub use traits::verify_in_debug;

Modules§

constraints
Composable, spec-backed constraint system for UI layout verification.
node_roles
Per-role proof tokens for the UiNodeBridge chain of custody.
palette
Proof-carrying colour palette.
palettes
Pre-built WCAG 2.2 Level AA–compliant colour palettes.
text
Cross-backend text IR — the linebender half of the elicit_ui IR.
traits
Trait re-exports and the UiBackend supertrait.

Structs§

AccessKitUiBackend
Reference implementation of all UI traits backed by an AccessKit tree.
AccessibleAA
Legacy alias: composite Level AA check.
AltTextProvided
Legacy alias: non-text content has a text alternative.
BoundingBox
Axis-aligned bounding box for a UI element.
Breakpoint
A named responsive breakpoint.
BreakpointSet
A set of responsive breakpoints for reflow testing.
CaptionedMedia
A media element proven to have synchronised captions.
ContainerId
Opaque identifier for a layout container.
ContrastDescriptor
Raw input for contrast factory methods.
ContrastEnhanced
WCAG 1.4.6 — Contrast (Enhanced), Level AAA.
ContrastMinimum
WCAG 1.4.3 — Contrast (Minimum), Level AA.
ContrastPair
A colour pair that has been proven to meet a WCAG contrast threshold.
ContrastViolation
A contrast violation for a widget.
CssParseError
Error from CSS parsing.
ElementId
Unique identifier for UI elements.
ErrorDescriptor
Raw input for error field factory methods.
ErrorField
A form field proven to have a descriptive error message.
FocusDescriptor
Raw input for focus appearance factory methods.
FocusIndicator
A focus indicator that has been proven to meet the WCAG 2.4.11 appearance thresholds.
FocusVisible
Legacy alias: visible keyboard focus indicator present.
HasLabel
Legacy alias: element has a non-empty accessible label.
IrSourced
Proposition: The VerifiedTree passed to a renderer was produced by a canonical model’s to_verified_tree() call, not constructed ad-hoc or bypassed.
KeyboardAccessible
Legacy alias: element is keyboard accessible.
KeyboardDescriptor
Raw input for keyboard accessibility factory methods.
KeyboardPath
A widget that has been proven to be reachable via keyboard navigation.
Label
Accessible label for UI elements.
LabelDescriptor
Raw input for label factory methods.
LabeledElement
A widget that has been proven to have an accessible name.
LanguageDescriptor
Raw input for language factory methods.
LanguagePage
A page proven to have a programmatically identified language.
Layout
UI layout with typestate tracking.
LayoutBuilder
Stack-based builder for AccessKit trees.
LayoutContext
Layout context providing viewport and spatial index data.
LayoutEngineError
Error from the layout engine.
LevelAaEvidence
Evidence required to produce a full WcagLevelAAValid proof.
MediaDescriptor
Raw input for media factory methods.
MinTargetSize
Legacy alias: interactive element meets 44 × 44 CSS px touch target.
NoOverflow
Legacy alias: element does not overflow viewport boundaries.
NonTextContrast
WCAG 1.4.11 — Non-text Contrast, Level AA.
OperableEvidence
Evidence required to prove WCAG Principle 2 (Operable) Level AA.
OperableInterface
A UI surface proven to satisfy all WCAG Principle 2 (Operable) Level AA criteria.
Pending
Typestate marker: Layout awaiting verification.
PerceivedEvidence
Evidence required to prove WCAG Principle 1 (Perceivable) Level AA.
PerceivedSection
A UI surface proven to satisfy all WCAG Principle 1 (Perceivable) Level AA criteria.
PointerTarget
A pointer target that has been proven to meet the WCAG 2.5.8 minimum size.
RenderComplete
Proposition: UI tree has been successfully rendered to a backend.
RenderStats
Statistics collected during a render pass.
Rendered
Typestate marker: Layout has been rendered to output.
RobustEvidence
Evidence required to prove WCAG Principle 4 (Robust).
RobustWidget
A UI surface proven to satisfy all WCAG Principle 4 (Robust) criteria.
RolePreserved
Proof that a frontend bridge method honoured all role guarantees carried into it — the produced widget preserves every invariant established during validation and dispatch.
Size
Element size in pixels (width, height).
SrgbColor
sRGB color for contrast checking.
StructureDescriptor
Raw input for structure factory methods.
StructuredContent
Legacy alias: information and structure are programmatically determinable.
StructuredElement
A widget whose semantic structure has been proven to be programmatically determinable.
SufficientContrast
Legacy alias: color pair meets 4.5:1 contrast.
TargetDescriptor
Raw input for pointer target factory methods.
TimedElement
A timed element whose time controls have been proven to meet WCAG 2.2.
TimingDescriptor
Raw input for timing factory methods.
UiError
Error for UI trait operations with source location.
UnderstandableEvidence
Evidence required to prove WCAG Principle 3 (Understandable) Level AA.
UnderstandableInterface
A UI surface proven to satisfy all WCAG Principle 3 (Understandable) Level AA criteria.
ValidRole
Legacy alias: element has a valid ARIA role.
VerificationError
Verification error with location tracking.
VerificationReport
Verification report containing all errors found during validation.
Verified
Typestate marker: Layout verified against WCAG constraints.
VerifiedTree
A verified, owned snapshot of the UI tree ready for rendering.
Viewport
Viewport dimensions in pixels.
WcagAbbreviationsExpanded
A mechanism for expanding abbreviations is available.
WcagAccessibleAuthentication
Authentication does not require a cognitive function test (unless an alternative, copy-paste, or assistance is provided).
WcagAccessibleAuthenticationEnhanced
Authentication does not require a cognitive function test with no exceptions.
WcagAllFunctionalityKeyboard
All functionality is keyboard accessible with no exception.
WcagAudioControlAvailable
A mechanism is available to pause, stop, or adjust audio that plays automatically for more than 3 seconds.
WcagAudioDescriptionOrMediaAlt
Prerecorded synchronized media provides either an audio description or a full media alternative (transcript + description).
WcagAudioDescriptionPrerecorded
Prerecorded video in synchronized media includes an audio description track for visual-only information.
WcagAudioOnlyAlternativeProvided
Audio-only prerecorded content has a text transcript or equivalent.
WcagAudioOnlyLiveAlternative
Live audio-only content provides a real-time text alternative.
WcagAutoUpdatePausable
Auto-updating content can be paused so the user can read it.
WcagBypassBlocksMechanism
A skip-to-main-content mechanism or landmark structure allows users to bypass repeated navigation blocks.
WcagCaptchaMultipleModalities
CAPTCHA provides at least two sensory modalities (visual + audio, etc.) so users with sensory disabilities can still pass.
WcagCaptionsLiveProvided
Live synchronized media provides real-time captions.
WcagCaptionsSynchronized
Captions for prerecorded audio in synchronized media are present and synchronized to the audio track.
WcagChangesOnRequest
Context changes are initiated only by user request; no automatic changes are triggered by time or component state.
WcagCharacterShortcutsDisableable
Single-character key shortcuts can be entirely turned off.
WcagCharacterShortcutsFocusOnly
A mechanism exists to activate shortcut keys only when the component has keyboard focus.
WcagCharacterShortcutsRemappable
Single-character key shortcuts can be remapped or disabled.
WcagColorNotSoleConveyor
Color is not the only visual means of conveying information, indicating an action, prompting a response, or distinguishing an element.
WcagComponentPurposeIdentifiable
The purpose of UI components, icons, and regions can be determined by assistive technology.
WcagConcurrentInputMechanisms
The platform does not restrict input mechanisms available to users (mouse, keyboard, touch, etc. concurrently).
WcagConsistentHelpLocated
Help mechanisms (contact info, help page, chat, etc.) are located consistently across pages.
WcagContentReflowable
Content can reflow into a single column at 320 CSS px without losing information or requiring two-dimensional scrolling.
WcagContextSensitiveHelp
Context-sensitive help is available.
WcagContrastEnhancedLargeText
Large text meets a 4.5:1 enhanced contrast ratio.
WcagContrastEnhancedNormalText
Normal-size text meets a 7:1 enhanced contrast ratio.
WcagContrastMinimumLargeText
Large text (18 pt+ or 14 pt+ bold) meets a 3:1 contrast ratio.
WcagContrastMinimumLogotypeExcepted
Logotype text or text in inactive UI components has no contrast requirement enforced.
WcagContrastMinimumNormalText
Normal-size text (below 18 pt or 14 pt bold) meets a 4.5:1 contrast ratio against its background.
WcagDecorativeImageAltEmpty
Purely decorative image carries an empty ("") alt attribute so assistive technology skips it.
WcagDraggingAlternative
Functionality that uses dragging movements has a single-pointer alternative that does not require dragging.
WcagErrorIdentificationDescriptive
When an input error is detected, the item in error is identified and the error is described to the user in text.
WcagErrorPreventionAll
All submissions are reversible, checked, or confirmed.
WcagErrorPreventionChecked
Input is checked for errors and the user can correct them before final submission.
WcagErrorPreventionConfirmed
A confirmation step or mechanism is available before final submission.
WcagErrorPreventionLegal
Legal, financial, or data-change submissions are reversible, checked, or confirmed.
WcagErrorPreventionReversible
Submissions can be reversed after the fact.
WcagErrorSuggestionProvided
Error correction suggestions are provided when an input error is detected and suggestions are known.
WcagExtendedAudioDescription
When standard audio description cannot cover all pauses, an extended audio description is provided.
WcagFlashAreaBelowThreshold
No single flash occupies more than 25% of the viewport (1024×768 or 10-degree visual field threshold).
WcagFocusAppearanceEnhancedArea
The focus indicator encloses the entire focused component and has no area less than a 2px offset from the component.
WcagFocusAppearanceEnhancedContrast
The enhanced focus indicator meets at least 4.5:1 contrast ratio.
WcagFocusAppearanceMinimumArea
The keyboard focus indicator has an area of at least the perimeter of the unfocused component × 2 CSS pixels.
WcagFocusAppearanceMinimumContrast
The focus indicator meets at least 3:1 contrast ratio between focused and unfocused states.
WcagFocusIndicatorContrast
The keyboard focus indicator meets the 3:1 contrast requirement.
WcagFocusNoContextChange
Receiving focus on a component does not initiate a context change.
WcagFocusOrderLogical
If a Web page can be navigated sequentially and navigation sequences affect meaning or operation, the focus order preserves meaning.
WcagFocusVisibleKeyboard
Any keyboard-operable user interface has a visible keyboard focus indicator.
WcagFormLabelsProgrammatic
Form labels are programmatically associated with their controls.
WcagHeadingStructureProgrammatic
Headings are marked with programmatic heading roles or semantics.
WcagHeadingsDescriptive
Headings and labels describe their topic or purpose.
WcagHoverContentDismissible
Hover- or focus-triggered additional content can be dismissed without moving the pointer or keyboard focus.
WcagHoverContentHoverable
If a trigger is hovered, the pointer can be moved to the additional content without it disappearing.
WcagHoverContentPersistent
Hover- or focus-triggered additional content remains visible until the trigger loses hover/focus or the user dismisses it.
WcagIdentificationConsistent
Components that have the same functionality carry the same identification (label, name, or alternative) throughout the site.
WcagImagesOfTextAvoided
Images of text are avoided in favor of real text.
WcagImagesOfTextCustomizable
Where images of text are used, they can be visually customized to the user’s requirements.
WcagImagesOfTextNoException
Images of text are not used except where essential (e.g., logotype).
WcagInfoAndRelationshipsProgrammatic
Information, structure, and relationships conveyed visually are programmatically determinable.
WcagInputNoContextChange
Changing a setting on a UI component does not automatically cause a context change unless the user is advised beforehand.
WcagInputPurposeIdentifiable
The purpose of each input field collecting user information can be programmatically determined (autocomplete).
WcagInterruptionsPostponable
Interruptions can be postponed or suppressed (except for emergencies).
WcagKeyboardEscapeFromComponent
A standard key (Escape, Tab, etc.) moves focus out of the component.
WcagKeyboardNoTimingPath
No keyboard path requires a particular timing between keystrokes.
WcagKeyboardNotTrapped
Keyboard focus is never trapped; the user can navigate away from any component using standard keys.
WcagKeyboardOperable
All functionality is operable through a keyboard interface without requiring specific timing for keystrokes.
WcagLabelInNameMatch
The accessible name of a UI component contains the visible label text (case-insensitive, punctuation-independent).
WcagLabelsDescriptive
Labels describe the purpose of the UI control they label.
WcagLabelsOrInstructionsPresent
Labels or instructions are provided when content requires user input.
WcagLetterSpacingAdjustable
Letter spacing is adjustable to at least 0.12 em without loss.
WcagLevelAAAValid
Composite: all WCAG 2.2 Level AAA Success Criteria (A + AA + AAA) are satisfied.
WcagLevelAAValid
Composite: all WCAG 2.2 Level AA Success Criteria (A + AA) are satisfied.
WcagLevelAValid
Composite: all WCAG 2.2 Level A Success Criteria are satisfied.
WcagLineHeightAdjustable
Line height is adjustable to at least 1.5× the font size without loss.
WcagLinkPurposeFromContext
The purpose of each link can be determined from its link text alone or from surrounding context.
WcagLinkPurposeLinkOnly
The purpose of each link can be determined from the link text alone (without context).
WcagListStructureProgrammatic
List structure is programmatically encoded (not just visual indentation).
WcagLocationInNavigationSet
Information is available about the user’s current location within a set of pages (breadcrumbs, site map highlight, etc.).
WcagLowBackgroundAudio
Background audio is at least 20 dB lower than foreground speech, or can be turned off.
WcagMeaningfulSequencePreservable
Content reading and operation order is determinable from structure alone (not layout or presentation).
WcagMediaAlternativePrerecorded
Prerecorded synchronized media provides a full text media alternative for both audio and visual content.
WcagMotionActuationAlternative
Functionality that can be triggered by device motion (tilt, shake, etc.) also has a conventional UI control alternative.
WcagMotionActuationDisableable
The device motion trigger can be disabled to prevent accidental activation.
WcagMultiplePathsToContent
More than one way to locate a web page within a set exists (site map, search, related links, etc.).
WcagNamePresent
An accessible name is programmatically present for interactive elements.
WcagNameRoleValueProgrammatic
All user interface components have an accessible name, role, and state/value information programmatically exposed.
WcagNavigationConsistent
Navigation mechanisms repeated across pages appear in the same relative order each time.
WcagNoHorizontalScrollVerticalText
Vertical-text content does not require horizontal scrolling at 256 CSS px.
WcagNoThreeFlashAbsolute
No content flashes more than three times per second under any circumstances.
WcagNoTimingRequired
No time limits are imposed, except for real-time events and where a 20-hour minimum cannot be achieved.
WcagNonTextContentAltDescriptive
Text alternative adequately describes the purpose or content of the non-text element.
WcagNonTextContentAltNonEmpty
Text alternative for a non-text element is non-empty (not just whitespace).
WcagNonTextContentAltPresent
Every non-text content element carries a text alternative that serves an equivalent purpose.
WcagNonTextContrastMinimum
User interface components and graphical objects have at least 3:1 contrast against adjacent colors.
WcagOperableValid
Composite: all WCAG Principle 2 (Operable) Level AA criteria satisfied.
WcagOrientationNotRestricted
Content does not lock display orientation to portrait or landscape.
WcagPageLanguageIdentified
The default human language of the page is programmatically determined.
WcagPageTitleDescriptive
The page title is unique within the set of pages, or contextually distinguishable.
WcagPageTitled
Each page or view has a descriptive title that identifies its topic or purpose.
WcagParagraphSpacingAdjustable
Paragraph spacing is adjustable to at least 2 em without loss.
WcagParsingValid
HTML parsing produces no duplicate IDs or unclosed elements (deprecated as an independent requirement in WCAG 2.2 but tracked for completeness).
WcagPartLanguageIdentified
Changes in natural language within content are programmatically identified (e.g., via lang attribute on passage).
WcagPauseStopHideAvailable
Moving, blinking, scrolling, or auto-updating content that lasts more than 5 seconds can be paused, stopped, or hidden.
WcagPerceivedValid
Composite: all WCAG Principle 1 (Perceivable) Level AA criteria satisfied.
WcagPointerCancellationAbortable
Actions triggered on down-event can be aborted by moving the pointer off the target before releasing.
WcagPointerCancellationReversible
Actions triggered on down-event can be reversed after completion.
WcagPointerCancellationUpEvent
The down-event of a pointer is not used to execute functionality (or the action is abortable / reversible).
WcagPointerGesturesSimpleAlternative
All functionality that uses multi-point or path-based gestures has a single-pointer alternative without a path gesture.
WcagPronunciationAvailable
A mechanism is available for pronouncing words where meaning is ambiguous without pronunciation.
WcagReadingLevelSupplemented
When content requires reading ability more advanced than lower secondary education, supplemental content or a simpler version is available.
WcagReauthWithoutDataLoss
After re-authentication following a session timeout, data already entered is preserved.
WcagReducedMotionRespected
Animation triggered by interaction can be disabled via a prefers-reduced-motion media query or equivalent control.
WcagRedundantEntryMinimized
Information previously entered in the current session is auto-populated or available for the user to select.
WcagRobustValid
Composite: all WCAG Principle 4 (Robust) criteria satisfied.
WcagRoleProgrammatic
The role is programmatically determinable for every UI component.
WcagSectionHeadingsPresent
Section headings are used to organize content.
WcagSensoryNotExclusive
Instructions do not rely solely on sensory characteristics such as shape, color, size, visual location, orientation, or sound.
WcagSignLanguagePrerecorded
Prerecorded synchronized media provides a sign language interpretation.
WcagStatusMessagesLiveRegion
ARIA live region levels (polite, assertive, off) are used appropriately to match the urgency of status updates.
WcagStatusMessagesProgrammatic
Status messages can be programmatically determined and do not require focus for assistive technologies to announce them.
WcagTableHeadersProgrammatic
Table headers are programmatically associated with their data cells.
WcagTargetSizeEnhanced
Interactive target is at least 44 × 44 CSS pixels.
WcagTargetSizeEnhancedHeight
Target height is at least 44 CSS pixels.
WcagTargetSizeEnhancedWidth
Target width is at least 44 CSS pixels.
WcagTargetSizeMinimum
Interactive target is at least 24 × 24 CSS pixels, or has sufficient spacing so that a 24px offset circle does not intersect neighbors.
WcagTargetSizeMinimumHeight
Target height is at least 24 CSS pixels.
WcagTargetSizeMinimumSpaced
Target spacing compensates for undersized targets so the offset circle does not intersect adjacent targets.
WcagTargetSizeMinimumWidth
Target width is at least 24 CSS pixels.
WcagTextResizable
Text can be resized up to 200% without loss of content or functionality (no assistive technology required).
WcagTextSpacingAdjustable
Content does not lose information when all of the following are applied: line height ≥1.5, letter spacing ≥0.12 em, word spacing ≥0.16 em, paragraph spacing ≥2 em.
WcagThreeFlashBelowThreshold
Content does not flash more than three times per second, or the flash is below the general and red flash thresholds.
WcagTimeoutWarningProvided
Users are warned about inactivity timeouts that could cause data loss (minimum 20-hour threshold).
WcagTimingAdjustTenX
A mechanism is provided to adjust (extend) the time limit by at least 10× the default duration.
WcagTimingAdjustable
Each time limit can be turned off, adjusted, or extended before it expires (with real-time and 20-hour exceptions).
WcagTimingExtendWarning
When a time limit is about to expire, the user is warned at least 20 seconds in advance and given a simple way to extend it.
WcagTimingTurnOffAvailable
A mechanism is provided to turn off the time limit entirely.
WcagUnderstandableValid
Composite: all WCAG Principle 3 (Understandable) Level AA criteria satisfied.
WcagUnusualWordsDefined
A mechanism is available to identify specific definitions of unusual words or phrases (jargon, idioms).
WcagValueStatesProgrammatic
State and property information (checked, expanded, selected, etc.) is programmatically available for UI components.
WcagVerified
Proof that the accesskit tree was issued from a Layout<Verified> and all WCAG Level AA constraints have been satisfied by construction.
WcagVideoOnlyAlternativeProvided
Video-only prerecorded content has an audio track or text equivalent.
WcagVisualPresentationCustomizable
Visual presentation of text blocks is fully user-customizable (colors, width, alignment, spacing).
WcagWordSpacingAdjustable
Word spacing is adjustable to at least 0.16 em without loss.
WidgetA11y
Accessibility status for a widget.
WidgetId
Opaque identifier for a widget in the UI tree.
WidgetInfo
Summary info about a single widget.

Enums§

ColorTheme
Selectable color theme for the status bar and other themed UI regions.
ConstraintProfile
Pre-built constraint profiles for common verification scenarios.
CssLength
CSS length unit with numeric value.
TextSize
Whether text is “large” per WCAG definitions.
UiErrorKind
Error kinds for UI trait operations.
VerificationErrorKind
Specific verification error conditions.

Traits§

NodeRoleProof
Marker: all 182 per-role XxxNodeValid proof types implement this.

Functions§

contrast_ratio
Compute contrast ratio without the color feature (pure math fallback).
is_zoom_invariant
Check if a dimension is zoom-invariant.

Type Aliases§

UiResult
Result alias for UI trait operations.