-
-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: The <form> element now always exposes the role "form" #547
base: main
Are you sure you want to change the base?
Conversation
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
@julienw see also |
This has been changed in the ARIA spec in w3c/html-aria#402. See also testing-library/dom-testing-library#1293
adb2927
to
f52b777
Compare
"constraints": ["set"], | ||
"name": "name" | ||
} | ||
], | ||
"name": "form" | ||
}, | ||
"module": "HTML" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see there's "superClass": ["landmark"]
below, but I'm not sure about that since the form shouldn't be exposed as a landmark region without an accessible name now. Do you have a suggestion about that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Until w3c/aria#1764 is resolved I fear it is perhaps ambiguous as to what the expectation is here?
Even once that is resolved, if it transpires that constraints are needed on the superclass
then the data structure as it currently stands isn't expressive enough for this afaik as it stands and we'd need a (potentially breaking) change to accomodate that conditional logic. Depending on use-cases for this library, doing such may be YAGNI?
I'm not confident/familiar enough with the concepts in specs to understand if the superclass role in ARIA is relevant to the landmark exposure (or lack of) described in the AAM specs? We might be conflating an inheritance model here with the expectations on what mapping is used by Accessibility APIs (would need to understand if that Accessibility API exposure is driven by the inheritance or not).
Would need someone like @scottaohara (apologies for the out of the blue ping) to help clarify I expect.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[...] if it transpires that constraints are needed on the
superclass
then the data structure as it currently stands isn't expressive enough for this afaik as it stands and we'd need a (potentially breaking) change to accomodate that conditional logic.
Constraints on the superclass
also affects the separator
role, which either has a superclass of widget
or structure
, depending on whether it is focusable or not, see #587 (thanks @cmorten for linking this together)
Depending on use-cases for this library, doing such may be YAGNI?
This causes libraries like eslint-plugin-jsx-a11y
and Svelte (which rely on this library to check if a role has the widget
superclass, to check whether something is interactive/non-interactive) to throw spurious warnings like:
A11y: noninteractive element cannot have nonnegative tabIndex value
A11y: Non-interactive element <div> should not be assigned mouse or keyboard event listeners.
But, it does seem like quite a lot of effort to fix here! It's probably easier to fix on the WAI-ARIA side of things, see w3c/aria#1348
This has been changed in the ARIA spec in
w3c/html-aria#402.
See also testing-library/dom-testing-library#1293