Skip to content

Accessibility

j3w1 edited this page Sep 9, 2026 · 2 revisions

Accessibility when adopting the theme

The canonical accessibility contract sets design targets. Package and specimen evidence describe actual checks. Neither certifies the application you build.

Contrast and meaning

Ordinary text targets at least 4.5:1 against its actual state background; large text and meaningful control boundaries/marks target at least 3:1 under the contract. Disabled text has its documented exemption and house-policy floor. Do not round a failing value into a pass or borrow a decorative-border role for a required control edge.

Use the component's assigned roles and published contrast pairs. Hover, selection, disabled and raised surfaces can change the actual contrast. Status glyphs, labels, patterns and chart table fallbacks carry meaning alongside color.

Focus and keyboard

Keep selection as a fill and focus as a distinct ring. Preserve the specified focus geometry and on-fill treatment; do not remove a host indicator without supplying the documented replacement. Avoid positive tabindex values. Give icon-only controls an accessible name.

Native children preserve form semantics. Custom choices, menus, dialogs, trees and other widgets follow their declared keyboard and ARIA contracts. In 1.1.0, themed select/date/time presentations retain the original controls' form values and constraints. See Themed controls for keys and testing guidance.

Test focus order and return in the actual flow, including validation errors, dialogs, moving records and unmounting views. A visually correct field can still have a broken label or stale focus target.

Motion, forced colors and responsive layout

Preserve reduced-motion behavior and do not depend on transition completion for correctness. Keep real borders and the component's forced-colors mappings; decorative shadows cannot replace a meaningful boundary. Honor user text size and zoom.

Check narrow layouts, long labels, target sizes, text zoom, languages and directionality used by your app. The specification has explicit reflow and geometry targets. Upstream viewport checks establish only the cases actually recorded, not every physical device or language combination.

Read evidence precisely

The specification browser suite uses Chromium. The separate packed-consumer suite for v1.1.0 records Chromium, Firefox and WebKit. One report's engine scope does not imply coverage by another report. See Verification for release counts, attachments and freshness.

An axe scan covers its rules, not every WCAG criterion. Manual screen-reader and keyboard protocols, physical devices, and your application's own workflows need their own evidence. Skipped, failed, unavailable and not applicable outcomes remain distinct.

Application acceptance checklist

  • Labels, help/error relationships, landmarks, heading order and reading order are correct.
  • All actions are reachable by keyboard with visible focus; dialogs and errors restore/move focus deliberately.
  • Validation and recovery preserve data where promised and announce useful messages.
  • Required, disabled, read-only and selected states remain understandable beyond color.
  • Forms submit the intended successful values; reset and dynamic updates keep visible and native state aligned.
  • Actual backgrounds, zoom, reflow, motion preferences and forced colors remain usable.
  • Manual accessibility checks appropriate to the product are recorded, not inferred from upstream CI.

Next: Forms · Verification · Troubleshooting.

Clone this wiki locally