Skip to content

v3.0.2

Latest

Choose a tag to compare

@Neil-Lin Neil-Lin released this 24 Oct 05:18
· 4 commits to main since this release

v3.0.2 — Screen reader fixes for forms

This patch changes how form controls report their invalid state and documents what each form control exposes to assistive technology. Tags, attributes, events and styles are unchanged.

Fixed

  • Safari with VoiceOver no longer announces empty required fields as "invalid data" as soon as a page loads. au-input, au-textarea, au-checkbox, au-switch and au-radio-group (the group and every radio) now give their inner controls aria-invalid="false" unless you set aria-invalid on the component, as au-file-upload already did. Set aria-invalid="true" when you show an error and remove it when the error is fixed. A failed browser-validated submit still announces the browser's validation message.

Documentation

  • llms.txt has a new section, "Accessibility presentation of form controls": the role, accessible-name source, forwarded attributes and focus() target of each form control.
  • llms.txt now lists au-radio-group's required, aria-describedby and aria-invalid, the accordion item's slots, and how to show an error message next to a field.
  • New demo: demo/form-registration.html, a complete registration form with an error summary, inline errors, a success message and reset. It states what native HTML, UI Kit and your own code each handle, and includes a verification record (automated runs and Safari+VoiceOver results, known issues, untested environments).

Known issue

  • The component host keeps the aria-describedby and aria-invalid you set, so the host is also exposed with the same description. Safari with VoiceOver reads the description twice for au-textarea and au-checkbox.

Verification

  • 490 unit tests passed.
  • Documentation, build-output and toolchain contracts passed; SSR stream and framework fixtures passed.
  • All Chrome browser runners passed, including the new form-registration runner.
  • All 13 Safari WebDriver runners passed on macOS.
  • Safari+VoiceOver behavior of the registration case was checked by driving VoiceOver with AppleScript.