dashorst opened a new issue, #1839:
URL: https://github.com/apache/wicket/issues/1839
The user guide does not tell developers how to build an accessible Wicket
application. It has no chapter or section on accessibility, and none of its
examples use ARIA. Its own HTML examples also fall short: no `<html>` in the
guide carries a `lang` attribute, so pages built from "Wicket says Hello
world!" or "Wicket as page layout manager" fail WCAG 3.1.1 Language of Page
from the first line.
Much of WCAG 2.2 level AA can be met with what Wicket offers today. This
issue adds an accessibility chapter to the AsciiDoc user guide
(`wicket-user-guide/src/main/asciidoc`) that documents how, separately from the
audit of the components themselves (#1838), which will change some of the
answers later.
## The chapter
1. **What Wicket does and what the application does.** WCAG conforms pages,
not libraries. What Wicket's components take care of, what stays with the
application (contrast, alternative texts, headings, the wording of labels and
messages), and how the server-side component model and Ajax updates bear on
accessibility.
2. **WCAG 2.2 success criteria in Wicket.** A table with, per success
criterion of level A and AA, the Wicket mechanism to use, what is left to the
application, and a link to the section of this chapter where code is needed.
Criteria Wicket has no bearing on are listed as such, so the table is complete.
3. **Sections with code** for the criteria that need it:
- an accessible base page: a title per page, `lang` on `<html>` from the
session locale, a skip link and landmarks
- accessible form errors: labels with `wicket:for`, `setLabel`, feedback
next to the field, `aria-invalid` and `aria-describedby`
- focus and announcements after Ajax updates: `focusComponent`, live
regions that stay in the page
- keyboard-operable Ajax controls: Ajax behaviors on `<a href>` and
`<button>`, not on `<div>`
- accessible data tables: `<th>`, captions, sortable headers
Where current Wicket falls short (no `lang` support in core, error state
that reaches the label as a CSS class but not the field as `aria-invalid`, the
default error pages), the chapter shows the workaround that works today and the
gap is reported to #1838.
The examples elsewhere in the guide get a `lang` attribute where they show a
full page, and the layout chapter's base page gets the title, `lang` and skip
link, so the chapter can refer to it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]