microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.19k stars 29.29k forks source link

Accessibility concerns; I can't reasonably use VS Code anymore #88987

Closed Entomy closed 3 years ago

Entomy commented 4 years ago

Steps to Reproduce:

Compex, will elaborate after the boilerplate.

Does this issue occur when all extensions are disabled?:

Yes

Necessary background:

Just shy of a month ago I had filed this concern where I had done my best to elaborate various concerns, the majority of which had to do with accessibility handling. I had done my best to explain my concerns.

What I hadn't mentioned at the time, because I wasn't sure if it was transient or worsening, was that various sensory problems I was having had been interfering with my use of a mouse. As it's been almost a month with those issues staying persistent, I suspect it's not a matter of transient issues, as they usually only last for a few days at most for me.

The problem:

As mentioned when I was elaborating my concerns, I have sensory integration/processing issues, which are highly comorbid with autism spectrum disorders. To be specific and formal, I have both Sensory Modulation Disorder and Synesthesia. Because these aren't widely known, I'll provide a basic explanation of them.

SMD's are a highly specific spectrum of sensory disorders where sensory stimuli are overprocessed, underproccessed, or insatiably craved. A very widely known form of this with ASD is the comfort that "weight" on the body can provide. Overprocessing can manifest as extreme reactions to a stimulus, and underprocessing can manifest as a lack of reaction to a stimulus. I both overprocess and underprocess. I do not have any SMD issues specifically related to computers, although some are generic enough that they can still present. Certain tactile stimuli are extremely overprocessed, to the point of certain fabrics making me nauseous and causing a spike in blood pressure. There is no consistency or pattern in how this happens. I generally just have to encounter it and avoid it from then on.

Synesthesia on the other hand, is where a sensory stimulus crosses cognitive pathways. This typically is another sensory pathway, although there are observed cases of it crossing into other non-sensory cognitive pathways (as happens to me sometimes). This is very hard to explain for people who've never experienced it, but basically, certain sensory stimuli cause additional sensations or responses that are not appropriate. The most common type, which I do not have, but is simple to explain, is chromagrapheme synesthesia, whereby graphemes (letters in English) are associated with colors and will be colorized regardless of their printed/displayed color.

The recent problems that have been sticking around is related to a very specific stimulus: my mouse moving over the mousepad. I'm not sure what the specific thing is, whether it's about the sound or texture or whatever. I haven't been able to figure it out. Other mousepads still trigger it, although I don't have another mouse to test with. Some days are better than others, with some not effecting me at all. But it's been bad enough that I can't reasonably maintain use of a mouse for more than few basic operations every hour most days. On one of the particularly bad days, the required mouse use I had to engage in (for something unrelated, but it's the effect that's important), the combination of synesthesia and overprocessing was enough that I had to go mute for the remainder of the day, and completely isolate myself; at the time I hadn't seen my girlfriend in two weeks and that was the day we had planned to do something.

As explained in the aforementioned issue, I was concerned over various accessibility issues your team had found being dismissed. My concern was not so much with the closing of the issue, as much as the given reasons like "working as intended" or "not a problem". Well, no, it is a problem. While I'd like to believe these are cases of blissful ignorance, I have tried to communicate concerns over these things and have been completely unable to.

I believe I had mentioned in my very first ever issue filed here that, among other things, I develop and maintain some extensions for VS Code. I happen to be the developer of the most popular Ada extension by a very large margin:

image

And yet I haven't been able to work on this extension in the roughly one month where these problems have been severe:

image

Due to accessibility concerns the testing team had rightfully flagged as issues, that had been dismissed, I simply can't maintain the extensions I've developed for this product, because I can't continue to use this product in a way that does not induce a sensory assault.

Meanwhile, I have had no problem working on other projects where use of the mouse is not required at times:

image

Concerns:

I have a number of concerns about this I feel that I should bring up. The first is that, by the formally defined process in the wiki for issue grooming:

Has the community at large expressed interest in this functionality? I.e. has it gathered more than 10 up-votes or more than 10 comments?

Well no. The majority of these issues are immediately closed, so people are far less likely to look at them. But also, the way disabilities work are remarkably specific, especially when dealing with sensory issues. By their very nature you're unlikely to get an accessibility concern with over 10 votes.

There's also a huge amount of issues that are closed and not worked on despite meeting this requirement, so the inconsistency renders this clause meaningless.

Can our team afford to implement the feature? I.e. are the costs to implement the functionality reasonable compared to the size of our team?

It's just keybindings. The community can easily chip in. But they have to be aware of the desire.

Furthermore, on the wiki for roadmap:

Make VS Code an outstandingly accessible developer tool. We'll engage and work with our community to get input and guidance, and we need you to keep us honest.

Well, I've been trying to keep you honest. As of three weeks ago I haven't gotten any additional feedback on my last issue. You tagged this specific "fundamental" as "on going work". Well, as someone with a disability who also worked with others with disabilities (mobility impairments specifically, so I've seen tons of assistive HID's) professionally for five years, I've seen plenty of the kinds of issues people face. I haven't been advocating on the basis of platonic ideals.

I'm also not particularly hopeful on myself creating a pull request to address these issues. As I had mentioned, the use of a mouse is required to navigate certain parts of VS Code, creating a circular problem: In order to address usability concerns about the required use of the mouse, I have to use the mouse to fix the product to where those usability concerns are no longer present, but because of the required use of the mouse, I can't reasonably get the work done in any kind of decent time frame. Because of the highly specific tooling and tight coupling in the dev environment, I don't believe it would be possible for me to use another environment to update VS Code. And in that case, I just wouldn't bother updating VS Code because another tool works fine.

Furthermore, I'm not confident about a pull request even being accepted. After all, some of these issues are "working as intended" or "as designed" or similar. So there's little reason to think a change would be made to what is already considered "correct" behavior.

soulshined commented 4 years ago

I sincerely respect your perspective, and although I could never pretend to know what you are going through, I am, what I call, a 99% mouse-free user, all the time, not just vscode.

I have carpel tunnel and using a mouse can quickly agitate the issue as a developer. I wrote this issue roughly a year ago asking for a simple feature to customize a delimiter. Ultimately, they did not find it in the best interest to incorporate this ask, although to be fair it didn't get much traction from the community because it is a very specific need/ask. I'm sure if I submitted a PR it would have been welcomed, but I am going through school and working full time and going through other medical recoveries so it became less of a priority for me. Over time I have learned to take advantage of the keybinds and I personally find what they have very resourceful, especially the expression patterns. And when they don't have a keybind for a certain scenario, you can always switch to tab focus mode, which is effectively like tabbing through a website, but more granular:

command id: editor.action.toggleTabFocusMode

So think moving from one button to the next, even across different panels etc.

Lastly, it may just come down to your hardware. For me, when I switched to a Kinesis Advantage2 Keyboard ref literally all my worries about going to different computer setup or typing effectively disappeared over a week. It also helped me become independent in a way that I didn't rely on companies to implement stuff for me. This keyboard is even compatible with foot pedals so they can act like extra keys or modifier keys/actions.

I know that's probably not the answer you want, but ultimately, I think persons with disabilities, not meant to be taken negatively, will always have to find a way to make it work for them because those who don't have or know someone can't relate, and that will always be reflected in software if those individuals who can't relate are the ones creating the software. Not saying the vscode team doesn't care or isn't trying, I just think the relationship is give and take for both parties.

Have you tried getting a keyboard that is programmable? That way you can program macros or keybindings when whatever software doesn't have features that suffice?

Have you tried the focus tab mode for situations that doesn't have keybinds?

For brevity, I'm not trying to dismiss your concerns, I'm simply offering suggestions the chance you don't know about them. If you do, then just disregard this whole thing :) Maybe someone else will find it useful. For example, if it wasn't for a certain twitch streamer I would have never known about this keyboard, as cliche as it sounds, it really changed my life and how I am able to navigate my operating system. I only use a mouse now for some very very specific use cases. With this keyboard I was able to map the context menu (which is the 'right-click' equivalent) and that was a majority of the struggle for me.

Wish you the best and thanks for sharing your perspective.

Entomy commented 4 years ago

@soulshined Thank you for your feedback. I took your comments as constructive, not dismissive, so no worries!

Ultimately, they did not find it in the best interest to incorporate this ask, although to be fair it didn't get much traction from the community because it is a very specific need/ask.

This kind of thing is what worries me. Once you get outside of common disorders and into the realm of disabilities, things are so highly specific and variable I don't see how their project handling and the express goal of accessibility can be reconciled. Again, as someone who is both disabled and has professionally worked with physical impairments and disabilities, these seem to contradict each other; at least from my perspective.

And when they don't have a keybind for a certain scenario, you can always switch to tab focus mode, which is effectively like tabbing through a website, but more granular:

Yup, I had that enabled already. I tend to prefer that regardless just because of power-user kinda mentality. Unfortunately there's some "barriers" it can't cross, for lack of better phrasing, that the a11y testing team had even flagged, but was dismissed as "by design". And even then, sometimes there's such an extremely high amount of tabbable locations that it can take over 40 keypresses to get where you're trying to get by tabs alone. So I'm supposed to what, get RSI because sometimes the mouse gives me trouble? I can't reasonably set a turbo macro for tab because the sensory issues are so variable that how fast I can register the change can vary between above average response times to as slow as several seconds between each. I specifically counted the keypresses from taking VS Code with a project repo for an extension I have, lauching a debugger instance for that extension, and switching back to the host VS Code instance, and navigating to a file I'm trying to develop. Without even getting into navigating through the source, that was already 51 keypresses. Another issue I came across --I don't remember if I cited this one-- had to do with how this position is lost if the window refreshes, inconveniencing certain accessibility approaches, and that was considered "as designed".

Lastly, it may just come down to your hardware. For me, when I switched to a Kinesis Advantage2 Keyboard ref literally all my worries about going to different computer setup or typing effectively disappeared over a week.

Yeah, I'm gonna try out new pointer HID's when I can. I've liked trackballs in the past. Unfortunately I've been out of work for the past 8 months, so what money I have isn't being put towards non-necessities. I'm quite happy with the keyboard I have. For just shy of $300 I better be 🤣

Not saying the vscode team doesn't care or isn't trying, I just think the relationship is give and take for both parties.

I agree with you. If anything, I think it's blissful ignorance. It's difficult to understand things outside of your own perspective, which is why I've been trying to offer my own. Unfortunately as things stand now, it looks like I'm going to have to abandon the extensions I have. Unless things get better for me, I can't, with the present state of things, reasonable maintain them, or use VS Code for the things I had been.

Maybe someone else will find it useful.

Yes hopefully 😊

Wish you the best and thanks for sharing your perspective.

Thanks, you too, and you're welcome!

Entomy commented 4 years ago

I've given this a month. There's been no response to this, nor my previous issue.

The only conclusion I can come to is that when it comes to concerns of disabilities, it doesn't really matter.

The really frustrating thing is, I've seen how the VS Code team has no problem addressing concerns of others. Someone was upset on religious grounds and that was resolved very quickly. But when it's a disabled autistic who outright can't use the product and has to abandon the extensions he's developed, it doesn't really matter? I'm already largely ignored by most of society.

Entomy commented 4 years ago

I tapped the screen and accidentally sent that before I was ready. Oops.

So I guess my original concerns weren't necessarily unfounded. I guess it just remains to be seen whether it's just this team, or all of Microsoft.

It's funny. Code I've written got noticed by other PM's and we went through entire communication threads with the team to see if some stuff I wrote could be integrated in one of your products because of major performance gains I achieved.

But basic accessibility concerns? Nah no point even communicating about that. I'm just a used up code monkey.

kelchm commented 4 years ago

@Entomy I happened across this issue while looking for something unrelated and felt obligated to add a comment here.

I do hope the concerns you've raised get taken seriously. I'm fortunate enough to not need to rely purely on keyboard navigation, but it's something I strive to deliver a solid experience for in everything I build. I know from experience how hard it can be to build applications with accessibility in mind when the development team itself just doesn't regularly exercise that functionality.

I think something that may prove helpful in getting more attention on this would be to compile a high level list of the most critical accessibility issues issues in list form that can be easily digested. The personal context you've shared is helpful, but I'm having a hard time grasping the overall picture beyond the specific situation you described here:

I specifically counted the keypresses from taking VS Code with a project repo for an extension I have, lauching a debugger instance for that extension, and switching back to the host VS Code instance, and navigating to a file I'm trying to develop. Without even getting into navigating through the source, that was already 51 keypresses.

Entomy commented 4 years ago

@kelchm Hi! Hopefully you find what you were trying to. If not, don't hesitate to ask. While I might overprocess some stuff, it does make me really good at finding things, and I can typically track down anything in under 10 minutes.

I know from experience how hard it can be to build applications with accessibility in mind when the development team itself just doesn't regularly exercise that functionality.

So this is sort of a running thing. It more or less started with my trying to share some insight, as I've worked in medicine for five years, helping take care of people who, whether for acute or chronic reasons, were mobility impaired. That included post-op, but also disabilities like cerebral palsy, muscular dystrophy, etc. I have very hands on experience with peoples limitations and how to work with that. But as you're also aware, I have some first hand experience as well 😅.

The point I was originally trying to get across (#87570) was that, given said experiences, the projects method of addressing issues and purported accessibility goals seem incompatible, given everything my experience has taught me about how these things work. What I was trying to ask for then, was nothing more than a structured format for centralizing accessibility issues, and a slight change in how they are processed. Essentially, creating a "project" (just a simple GitHub project is fine) where all the accessibility issues are filed, and not immediately closing those issues, so that people can browse them more easily, and aren't getting the impression that the team isn't interested in addressing them. From my own experiences with FOSS projects, contributors typically aren't looking through closed issues when looking for something to help with; it's been closed after all.

I think something that may prove helpful in getting more attention on this would be to compile a high level list of the most critical accessibility issues issues in list form that can be easily digested.

I can try a strict list. This might work. Unfortunately given the way what I have works, communication styles develop quite differently. It's sorta like being a foreigner even when you're in your home country. I'll give this a shot though.

Thank you very much for your input.

Entomy commented 4 years ago

Four years ago even one of your employees brought up this fact here. So you guys have been aware of this issue for a considerably long time.

Entomy commented 3 years ago

Seems like this issue was actually resolved a while ago, and could have been closed, but that information never got back to me. So that's frustrating. The accessibility page at the time of initial filing was more or less this (http://web.archive.org/web/20210202232418/https://code.visualstudio.com/docs/editor/accessibility), but has since been updated with more information (https://code.visualstudio.com/docs/editor/accessibility). Of special note in the change in behavior to Tab, and the addition of F6 and Shift+F6 behaviors, which greatly reduce the amount of keypresses. I've also spoken to Isidor about some other changes that should help.

So this has been resolved, it just hadn't been communicated.