Repository navigation
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-switchandau-radio-group(the group and every radio) now give their inner controlsaria-invalid="false"unless you setaria-invalidon the component, asau-file-uploadalready did. Setaria-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.txthas a new section, "Accessibility presentation of form controls": the role, accessible-name source, forwarded attributes andfocus()target of each form control.llms.txtnow listsau-radio-group'srequired,aria-describedbyandaria-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-describedbyandaria-invalidyou set, so the host is also exposed with the same description. Safari with VoiceOver reads the description twice forau-textareaandau-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-registrationrunner. - All 13 Safari WebDriver runners passed on macOS.
- Safari+VoiceOver behavior of the registration case was checked by driving VoiceOver with AppleScript.