-
Notifications
You must be signed in to change notification settings - Fork 266
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
New SC for keyboard operation? #872
Comments
The problem as described seems to be an equally problematic issue for all users. This in contrary to a disproportionate burden for people with different needs and abbilities. This equal disbalance needs to be in place in order for a SC to be considered. The purpose of a SC is to harmonize the disbalance. |
Among other rules, here's the first: "Success Criteria shall:
|
I'd argue that users with disabilities tend to more use a keyboard interface and that in general mouse operations are intuitive and thus non-documented keyboard interfaces are more of an issue for people with disabilities. I'd also point to new proposed SC for gesture documentation that is along the same lines as this. |
This may be applicable for Keyboard only users and AT users ... not sure if this is discussed already in the past, but a global standard for keyboard / component functionaly should be part of the reference |
Ah, you beat me to it Jon... so you know about previous discussions and do we have clear guidance on which key belong to what UIC? There are cases where people do not agree on the patterns. Like the Tab widget and Tab / arrow keys to navigate... |
B.t.w. the new gesture SC is only about custom gestures, not standard operating. This is a well considered decision. |
I agree with the problem we're trying to solve here. Seen lots of bad implementations last years but especially when custom components are build. As web components / custom elements become more and more part of the norm we might see if we see value in something like: "Custom components can be operated in the same way as their native counterpart, unless... " |
x-ref #857 where i suggest that it's a bit handwavey since there's no documented normative standardised way in which user agent keyboard interactions are defined. makes it a fairly fluffy/vague requirement (which may also change overnight if a user agent decides to change or extend their current keyboard interactions, so you could end up with something that passes one day but fails the next) |
No, not at all. As a mouse user, you are free to use the keyboard. If the keyboard doesn't work: no problem, use the mouse. As a keyboard user, you are essentially dependent on the fact that the keyboard operation
By the way, it would of course not be a violation if an element could not be operated with the mouse. Then everyone would have to operate the element with the keyboard and would fail. That would be a malfunction of the application.
And I've added the restriction for this particular case: "If a standard operation exists for navigating through the page and for operating the interactive elements"
Actually, everyone agrees on that:
Otherwise it would not work with Screenreader. Also: If two operations are common (like here, depending on the implementation: arrow keys and tab), of course both are allowed. But what if the tabs are only reachable when F5 has to be pressed to focus them and then Shift+ and Shift- to navigate through them. Who would consider this a useful and accessible method for keyboard users (unless it is documented)? There would be enough space in the Understanding document to explain these subtleties. However, I will of course only write a draft for this if there is an agreement that such a new criterion makes sense. |
I don't know if anything's documented anywhere. But there are
|
This is about ARIA of course. And the keyboard interactions there document the current generalised way in which ARIA widgets behave. This is not normative, and not a document that mandates explicitly how user agents should behave...so it's not a basis for then potentially suing web developers for not abiding by it (which, at the end of the day, is what WCAG is/can be used for). It was already established in different conversations here that not following an ARIA pattern itself is not a failure of WCAG, so by the same rationale we can't fail things because they don't follow the suggested/documented "this is generally how keyboard interactions with these sorts of things work in most user agents).
That's not sufficiently specific to make a "you didn't follow this, you fail and can be sued" argumentation.
You found a solution = you've come up with a way of reading/interpreting an SC to fit your particular argument. Not everybody will agree with you, which is why these sorts of statements become problematic, and which is why I believe the actual handwaving language used to keyboard trap needs revisiting - however, at least with keyboard trap, we're handwaving one single interaction. Here, you're extending the argument to ALL widgets/controls, which is a much bigger handwave, and therefore far more problematic.
UAAG is not enshrined in/referenced by law. If a browser manufacturer doesn't follow UAAG, they can't be sued for it directly. If, however, a web author doesn't follow WCAG, they potentially can. So this is far more dangerous territory, and unless very explicitly clear and binding language/specification is available that says exactly what authors can/can't/must/mustn't do, I'd not be comfortable putting forward this SC (particularly at level AA - maybe at a stretch AAA, but even there the wooliness of language would be a problem for me). |
There are dozens of other criteria whose language is much vague and whose rating is much more subject to the subjective evaluation of testers, developers, users, judges, etc.:
And 2.1.1 is currently also one of the criteria that are very vague because it is not clear what is meant by keyboard operation: any or standard operation. If any keyboard operation were allowed, there wouldn't be the exclusion criterion: "The use of MouseKeys would not satisfy this Success Criterion because it is not a keyboard equivalent to the application; it is a mouse equivalent ". The new criterion would solve the problem of inaccurate definition in 2.1.1. In the current version, 2.1.1 is not testable at all, because no tester can try all the other billions of key combinations that would be possible for every element that cannot be operated with the standard keys. |
Exception added: "The operation is controlled by the user agent and is not modified by the author" |
An often cited failure of WCAG is a button that is an anchor tag with role button that only works with enter and not spacebar. Many fail this situation although it's not a WCAG failure. It likely produces unexpected results when activated by the user. |
This is a common mistake, but at the same time a very minor one: if one key doesn't work, I try the other one, which I know must work. More important would be the new SC for cases where the operation is completely different, e.g. where I can't activate the button with spacebar or Enter, but only with Ctrl+B - if this is not well documented, no keyboard user will be able to operate the button. Such a case sounds absurd, but if you test pages for accessibility long enough, you will encounter such cases. |
but this then also brings up odd compound/cascade failures. what if it's acting as a button, but is marked up and exposed as a link. you'd fail this for 4.1.2 because it's not exposing the right role, but could you fail it for not reacting to space? not while it's exposed as a link. only if the authors then fix it to turn it into a button (by, say, adding in any case, i'm still dubious of the feasibility of making this a normative requirement (unless it's pegged at AAA). |
I'm not sure I would fail this as there is no clear documented in WCAG for this specific situation. Whether the element asks like a role or button may be subjective. e.g. Next buttons that look like buttons really navigate to the next page. If it must have a link but it looks like a button then it fails SC 1.3.1 because the role doesn't match the visual appearance. |
I find the discussion about links and buttons a bit pointless, because in my opinion there is no rule how a button and a link has to look like. Without CSS, both are of course easy to distinguish, but as soon as they are designed, the differences become blurred. |
Add clarifications about 2.1.1 and what it specifically does *not* currently require, normatively. Cross-reference to the original discussion a while ago #857 Related discussion #872 --------- Co-authored-by: Mike Gower <[email protected]> Co-authored-by: Detlev Fischer <[email protected]> Co-authored-by: chaals <[email protected]>
I propose a new success criterion for WCAG 2.2 as a supplement to 2.1.1:
"If a standard operation exists for navigating through the page and for operating the interactive elements, then this should be implemented. Divergences should be documented in the application. Exception: The operation is controlled by the user agent and is not modified by the author".
Reason:
input tabindex=-1 accesskey=e
can be focused in Firefox with the keyboard, but not in IE 11, Chrome and Edge Chromium, because in these three browsers with Alt+E a browser-specific function is called out. This would not be a violation of the new SC, but a problem of the browser. But it shows how important it is to support standard operation and not to rely on accesskeys, which might not work at all.Impact
For WCAG 3.0, it would make sense to combine 2.1.1 and the new criterion, as was done for 2.1.2.
I suggest AA as the level.
During the test I very rarely encounter keyboard traps, but very often hard to use web applications, because the standard keyboard operation was not implemented and the divergences were not documented. That's why I think this is an important addition.
If necessary, it could be considered to make the new criterion more general and to extend it to standard operation for pointing devices, touch, etc.
The text was updated successfully, but these errors were encountered: