-
Notifications
You must be signed in to change notification settings - Fork 124
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
What's the impact on users with low vision or cognitive impairments? #128
Comments
Hm, I'm not sure these apply. We don't actually remove focus, we just remove focus styling when it seems likely that the user will not need to know that focus has been moved (i.e. when the user is using a mouse). The element is still focused. 2.4.7 states "Any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible", which this clearly provides: as soon as you use the keyboard, the focus outline becomes visible. |
Hey @JuliannaR thanks for bringing these points up. I don't know if we've explained the intent behind this pseudo class well enough (I was actually working on that a bit this week). Sorry this turned into a bit of a blog post! Our goal is to make sure that anyone who needs a focus indicator has one. We think in order to do this, we have to address the problem in two phases:
1. Stop the practice of recklessly using
|
@robdodson & @alice I think its one of these cases that to reduce reckless behaviour the choice gets made for us. Under the Cognitive Gap Analysis there is a lot that could not even be brought into WCAG 2.1. Things like an inconsistent focusing method might actually have a significant negative impact on members of that disability group. Assuming that because a user used a mouse action means that they do not need focus styling is kind of a difficult position to take. Those with learning and cognitive disabilities and disorders require highlighting in a way that is understandable. If they are looking for both use of keyboard and mouse they will likely run into issues. I work with a core user group that represents many of the types of disabilities so I am very aware of how users are using these types of identifiers. I actually really get where your coming from, and honestly after having the focus debate hundreds of times with devs who want to fix the "design" I'd still hate to see the gap for support for cognitive disabilities increase. I totally agree with the thoughts on helping people do things more responsibility to aid the greater good. The statement "Removing the focus outline is like removing the wheelchair ramp from a school because it doesn’t fit in with the aesthetic." does actually apply. We need virtual wheelchair ramps to help with the accessible and usability of our content. Inclusive by default....and not exclusionary to stop bad practices. I kind of feel like this is like blaming the woman and talking to her about how she dresses, rather then addressing how the man acted towards to woman because one is perceived as an easier problem to solve then the other. The premise is right....could this be done as a user option in the browser to be turned off to maintain a standard inherent focus? |
Also, how would this work with sip and puff technology, switches, and voice rec navigation? |
Still working on a follow up to your previous comment but wanted to quickly respond to this one:
I need to look into how Chromium categorizes all of these input methods to give a definitive answer. But off the top of my head I'd say that I'd like all of these to fall under the same umbrella as keyboard focus, so they would all trigger a focus indicator/match |
@robdodson Thank you for your willingness to engage and discuss this topic. For me it's an important one. |
@JuliannaR Thanks for the follow up, I definitely understand where you're coming from. A couple of thoughts:
I would be really interested to hear if your user group experience is consistently towards finding the focus ring useful in "pointer mode". If a user is not currently or about to use the keyboard, what does the focus ring tell them? Is it more of a "bookmark" or "cursor position" of the last thing the user interacted with? |
To echo Alice's points, and respond to a few of your comments:
As Alice mentioned, our goal is to have a similar option as ChromeOS to force an always-on focus indicator. This option would likely need to be opt-in by the user. But we don't want to solely rely on this option. We also want to improve the status quo of focus states on the web. That means addressing the unintended side effects caused by the As Alice mentioned, it would be really useful if you could tell us any use cases where you think |
quick note, I updated the title of this issue so it is easier for folks to find |
I have concerns about this technique for users like myself with low vision. I often switch between input modalities such as by clicking and dragging off a button to set focus somewhere then use the keyboard to navigate from there. I may click on a radio button and then use arrows to select other radio buttons. I will switch between touch, mouse, keyboard, and many other settings such as large text, screen reader, or zoom depending on the situation. This pattern of switching between modalities is pretty common with some user groups thus the new WCAG 2.1 SC AAA criteria for allowing concurrent input modalities. In the demo I can see that the focus ring does come back if you use the keyboard after the mouse -- so it's the initial situation where it is lost. Also from a low vision/cognitive perspective the lack of focus ring on click provides less re-assurance for me of where I am and what will happen when I press another key. I understand that browser's can implement a feature to always turn on focus -- but in my experience browser's inconsistently implement these features and there is no guarantee that all browsers will. Android browsers like Chrome for Android which can and often are used with the keyboard often lack these features because it's wrongly assumed that mobile or tablet users will only be using touch. My experience with features like Google Chrome removing support for user style sheets or not supporting Windows high contrast mode leaving users with low vision to use stylish or the contrast plug-in are not sufficient. The increase contrast plug-in is a filter that can't address all contrast issues across a complex page and often sets dark text on a dark background. Use of stylish or other extensions for styles means the styles are placed at the document level and thus can be very complex to overwrite author styles with specific prioritization such as when IDs are used. These are impractical for the standard user. So in short I would want a covenant that the browser implements this focus technique that they also implement the user setting at the same time in all their browser's not just the desktop browser. |
I wanted to mention that in the latest version of the demo, if you click on an interactive control, and then press any key on the keyboard, it will switch to keyboard modality mode and restore the focus indicator. For example, mouse-click on a button, then press the
That's interesting. I'm not sure if that's something we can enforce from the web standard side of things, but I could ask the TAG. Perhaps it's something we could add to the language of the spec itself as a recommendation. |
Right now if you use the keyboard and then touch the screen to scroll or pinch zoom on my touch screen laptop or use control+scroll on the mouse the indication of keyboard focus stays visible. This is good and I would want to ensure that this scenario is captured as the intended behavior. On a separate note -- I did try the shift or control trick after clicking and moving off a button and the indicator did come back. @robdodson I do have another concern now as well. With screen readers like NVDA when you arrow through content in browse mode NVDA will focus controls like buttons (JAWS does not) -- I believe VoiceOver does. In your demo when I arrow to a button in browse mode with NVDA in Chrome it is not visually focused. As a person with low vision I do want it focused. The code things I am a mouse user because NVDA is programmatically focusing the button and the key is not sent to the browser -- but indeed I am using the keyboard. With tab/shift+tab it's different as those are sent to the browser and the page displays the visual indication of keyboard focus. |
The NVDA issue sounds like a great use case for a browser preference (or possibly even an automatic setting to match |
Do you happen to know if NVDA is calling |
NVDA is calling .focus() |
Such a great discussion here, thanks everyone for recording your insights. There was a similar conversation a few days ago on Twitter about a related tool, What Input, which is prior art for The OS setting idea is a winning goal in my opinion, but I agree that it would be good to get the best defaults possible for a wide range of users with disabilities. I don't know very much about how Dragon operates under the hood, does it interact with accessibility APIs in similar ways to NVDA? Are there any hints that can be used as signals to the user's intended interaction, such as mouse events without X/Y positions or other odd characteristics? It seems doubtful, but maybe someone with more intimate knowledge can help inform us on possible workarounds. |
@marcysutton Thanks for the follow up! I agree, a user preference seems ideal. I made a note of this in my PR to the Selectors Level 4 Overview: https://github.com/w3c/csswg-drafts/pull/2897/files It looks like Dragon possibly doesn't go via the usual accessibility APIs, as far as I can tell without trying things out. |
Having different focus indicators for mouse and keyboard users is going to be very confusing. More specifically for users with low vision or cognitive impairments or learning disabilities. It is very problematic. Focus indicators need to be presented in a consistent way.
I think there are several usability and accessibility issues with most of the demoed options here.
Common WCAG 2.0 AA failures include:
Common Failures for SC 2.4.7
F55: 2.1.1, 2.4.7, and 3.2.1 due to using script to remove focus when focus is received.
F78: Failure of Success Criterion 2.4.7 due to styling element outlines and borders in a way that removes or renders non-visible the visual focus indicator
The text was updated successfully, but these errors were encountered: