You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected: no form / end of form. HTML-AAM maps a form element to the form role only when it has an accessible name; an unnamed form gets no corresponding role (generic), so it is not a landmark and screen readers do not announce it. A named form (<form aria-label="Checkout">) is correctly announced as form, Checkout.
Environment: the browser bundle (@guidepup/virtual-screen-reader/browser.js) in Chromium 151 via Playwright 1.63, started with virtual.start({ container: document.body }), stepped with virtual.next().
A form is not exposed as a landmark region unless it has been provided an accessible name.
Which I understand to mean we definitely shouldn't be exposing a <form> with no accessible name/label as a landmark, but does that also mean not to expose it as a form role?
If it does mean it has a computed role of form but isn't a landmark, I'm not sure how that fits with the WAI-ARIA 1.2 spec listing the superclass of form as landmark
Interestingly in WAI-ARIA 1.3 the wording relating to forms softens:
Authors SHOULD give each element with role form a brief label that describes the purpose of the form.
... User agents SHOULD treat elements with role form and an accessible name as navigational landmarks.
...
Changed from MUST like wording in 1.2, perhaps to reflect that other specs appear to accept that a form can be nameless?
Digging around spec issues I believe form elements act as follows:
Unnamed form elements have role="form" but are not exposed as a landmark
Named form elements have role="form" and are exposed as a landmark
Activity
Speak through Guidepup's virtual screen reader instead of our own rul…
cmorten commentedon Oct 17, 2026
Hmm, I'm not 100% on this...
formelement asformwithout any conditionsWhat all specs mention / agree on is:
Which I understand to mean we definitely shouldn't be exposing a
<form>with no accessible name/label as a landmark, but does that also mean not to expose it as aformrole?If it does mean it has a computed role of
formbut isn't a landmark, I'm not sure how that fits with the WAI-ARIA 1.2 spec listing the superclass offormaslandmarkInterestingly in WAI-ARIA 1.3 the wording relating to forms softens:
Changed from
MUSTlike wording in 1.2, perhaps to reflect that other specs appear to accept that aformcan be nameless?Digging around spec issues I believe
formelements act as follows:formelements haverole="form"but are not exposed as a landmarkformelements haverole="form"and are exposed as a landmarkREF:
A pertinent quote from Scott O'Hara:
cmorten commentedon Oct 17, 2026
Thus, I think the announced speech in the OP example is correct, but we will need to adjust any logic relating to form landmarks, e.g. landmark quick navigation logic (REF: https://github.com/guidepup/virtual-screen-reader/blob/main/src/commands/index.ts#L49) and maybe some other bits.
cmorten commentedon Oct 23, 2026
Given #267 is merged I think this is now complete (unless contest my notes r.e. the
formrole!)