-
Notifications
You must be signed in to change notification settings - Fork 78
Handling Presentational role conflict resolution #1189
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
Conversation
Co-Authored-By: Wilco Fiers <WilcoFiers@users.noreply.github.com>
Co-Authored-By: Wilco Fiers <WilcoFiers@users.noreply.github.com>
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.
👏
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.
Minor change suggestion.
pages/glossary/hidden.md
Outdated
@@ -0,0 +1,19 @@ | |||
--- | |||
title: Explicitly Hidden |
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.
Thinking about this a little more... I don't think I like having a "hidden" definition that isn't the opposite of the "visible" definition. We did that in axe-core and it's pretty confusing. I think we should rename this to "hidden state", and say it can be either true or false.
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.
Which is why I called it "explicitly hidden" in the first place #1189 (comment) 😆
"hidden state" is also a good name.
Final Call ends on April 28th. |
…pose (fd3a94) (#693) * Create links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Create programatically-determined-link-context.md * Inserting links to definitions in Assumptions * Insert reference to WCAG definition * Change link text for WCAG definition link * Fixed spelling * Fixed spelling * Delete programatically-determined-link-context.md There is already a working definition * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update _rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-Authored-By: Jean-Yves Moyen <jym@siteimprove.com> * Update _rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-Authored-By: Jean-Yves Moyen <jym@siteimprove.com> * Update _rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-Authored-By: Jean-Yves Moyen <jym@siteimprove.com> * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Removed inapplicable example 4 Following #1189 * Update _rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-Authored-By: Wilco Fiers <WilcoFiers@users.noreply.github.com> * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * fix: ignore attr lowercase html validation * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update _rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-Authored-By: Wilco Fiers <WilcoFiers@users.noreply.github.com> * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Apply suggestions from code review Co-Authored-By: daniel-montalvo <49305434+daniel-montalvo@users.noreply.github.com> * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md * Update links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md Co-authored-by: jkodu <jey.nandakumar@gmail.com> Co-authored-by: carlosapaduarte <carlosapaduarte@gmail.com> Co-authored-by: Jean-Yves Moyen <jym@siteimprove.com> Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com> Co-authored-by: daniel-montalvo <49305434+daniel-montalvo@users.noreply.github.com>
Final Call has ended. Merging. |
Presentational roles conflict resolution states that elements with a
role="none"
must be exposed with their implicit role if they have either a globalaria-*
attribute (e.g.aria-label
) or are focusable. This was completely ignored by our definition of semantic role.This resolution is not well implemented in all browsers (https://github.com/act-rules/act-rules.github.io/wiki/Tests-on-Presentational-role-Conflict-resolution). A side note being the handling of
aria-hidden
on focusable elements for which there is no specs and browsers are doing different things.This PR updates the definition of semantic role to take the resolution into account. The role is linked to the actual role in the accessibility tree to circumvent both the discrepancies between browsers (we do with what we have instead of taking side) and the ambiguous "interactive" term in the spec (we don't decide what is interactive, we just do with whatever the UA is giving us). The new examples are however following the specs (which is also what Chrome, the majority browser, does).
I have also removed examples with
aria-hidden
on focusable elements. Because there is no spec for what do to in that case, and browsers disagree, I preferred taking these examples out because what to do is far from clear.I considered that "ARIA state or property is permitted" was the main rule to test the definition and added several examples there. Other rules are mostly using the role incidentally and only got one extra example (usually a Failed one as "when do we fail?" is the important question for our rules).
The definition of "marked as decorative" also ended up as collateral damage of this PR. There was somewhat of an internal contradiction between "having a role of
none
" and achieving that by "explicitly settingrole="none"
" (which does not work because of the conflict resolution). Where it was important, "marked as decorative" as been replaced by "role ofnone
" which seems to work.We might still need a definition of "marked as decorative" which would be in the line of "explicit role of
none
" so that something could be marked as decorative (expressing intention of the writer) without actually having a role ofnone
(due to conflict resolution) and that would likely indicate some sort of failure or at least bad practice (i.e. explicitly settingrole="none" aria-label="foo"
is a bad idea as there is conflict between the intention of hiding stuff and showing it).Changes ripples all over the place and in many rules. Please take a close look and also try to figure out if I've missed something… Keep the problem in mind when looking at other rules in the near future.
Closes issue(s):
Need for Final Call:
This will require a 2 weeks Final Call (changes many rules, has lot of implications).
Pull Request Etiquette
When creating PR:
develop
branch (left side).After creating PR:
Rule
,Definition
orChore
.How to Review And Approve