Skip to content
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

Better inclusivity #87570

Closed
Entomy opened this issue Dec 22, 2019 · 28 comments
Closed

Better inclusivity #87570

Entomy opened this issue Dec 22, 2019 · 28 comments
Assignees
Labels
info-needed Issue requires more information from poster

Comments

@Entomy
Copy link

Entomy commented Dec 22, 2019

Because of the recent controversy, I had put forward this issue in an effort to understand whether or not I could reasonably contribute to this project. It was explained that my worries were not well founded. As explained in that issue, I was looking for a Microsoft project I could contribute to.

I do not like conflict for various reasons that stem from my upbringing, and do my best to find a compromise and to diffuse a situation. Requests like 1, 2, 3, 4, and others, demonstrate many reasons for wanting something that I've wanted myself, and am more than willing to implement: the UI icons should be subject to extensibility, just like the rest of VS Code. Not only would this solution accomodate both the groups who want no/different holiday themed icons and the groups who want holiday themed icons, but it would also accomodate those who certain theming isn't applicable at the same time of the year, which could have avoided the very mistaken attempt at using a snowflake instead, despite literally half of the four-seasonal regions being in summer right now, and the equatorial region not experiencing winter. But it happens to go further, as an accessibility thing. As mentioned in my initial issue, I am autistic, which has a very high comorbidity with sensory integration disorders, of which I also have. Some of the icon designs give me trouble. Here's where I beleive your approach is wrong, and further reason why extensibility is the appropriate way to handle this. SID's work in drastically different ways, and what gives me trouble can easily be totally acceptable or even pleasing to another individual with an SID. There is absolutely no universally accommodating approach for SID problems. While looking into this, I had discovered that it's not just SID's that present problems with the default UI icons, as there's at least one individual with nearsightedness that struggles due to design concept of the icons, not anything about a particular icon. However as I have seen from several twitter polls from this project, many people do like the existing icons. They still deserve to have those icons. For all of these reasons, I am sure that extensibility is the appropriate way to resolve all of these issues, and as I had stated, was more than willing to implement this.

So, I had gone through the process of cloning the VS Code repo, and installing/configuring all the required tooling. The process was difficult but I got it working.

There was one particularly difficult part of the build system that I reserved for a different issue. My understanding is that VS Code relies on node-gyp, which is more or less a repackaging of gyp, a project generator similar to cmake. gyp is unable to to handle non-ASCII user profile paths on Windows, which means node-gyp is unable to handle non-ASCII user profile paths on Windows, which means VS Code's build tools are unable to handle non-ASCII user profile paths on Windows. Aside from the obvious techncial deficiencies and very out-of-date nature of this software, it poses a problem I beleived to be a barrier of entry to contributions of this project for individuals who's primary language is not covered by the ASCII character set, making their username unlikely to be covered by the ASCII character set. Having to create a new user account and migrate necessary things over just to contribute to a project is an unreasonable burden on most of the worlds people, especially with how much globally aware software exists now. Per the Microsoft Open Source Code of Conduct:

Our communities welcome and support people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin ...

and

...We are a world-wide community of professionals...

Yet for many people around the world, contributing it more difficult than a very select group.

Now to be clear, I fully agree this is an issue with upstream software. Gyp is the problem. However, I do not understand why this issue was closed. To me, it comes off as "it's not an issue" because "it's someone elses problem". VS Code is still effected by this, even if it's someone elses responsibility to fix it.

My main area of programming has to do with text, and I've done an entire ASCII -> UNICODE migration in a language runtime before, so surely I can update gyp to be more globally aware as well. So I go clone gyp and start looking through it. There are some older complaints about the aforementioned, with some even included patches that never made it to the right people. However gyp has changed so much over the years that the patches would not apply anymore. So while I'm poking throughout the code, I take some breaks to also poke through VS Code issues others have filed, so I can keep in mind other areas I might be able to contribute to. This is where any and all confidence about inclusivity in this project starts to die.

I want to explain at this point, that my head and eyes are starting to hurt quite badly because github's text editor is too cramped and it bothers me. So I'm going to make this much shorter than the full extent of what I have found. I will only be citing a few of the over two dozen alarming issues I have come across. The change in my perceptions was not just a "oh look at this odd example I found".

There are numerous examples 1, 2, 3, and more, of accessibility complaints being immediately dismissed, because the existing design works appropriately for fully-abled individuals. One of the dismissive comments is, I beleive, extremely unselfware. Dismissing navigational difficulties involving notifications on the basis of "extensions are using them wrong" only holds logically if this project and the official Microsoft extensions are holding true to these principles. This is where the lack of selfawareness comes in. Simply navigate to source file for a language in which there is no extension installed, but is available in the marketplace. What comes up? A notification about the extension. A notification that a disabled person, depending on their input methods, will either have great difficulty navigating to, or be unable to navigate to. "But this is just a notice" right? No, it's a convenience, which is why this particular example is so interesting. Because no keyboard navigation methods exist for switching over to it, cursor movement is required, which is substantially more difficult for certain disabilities. This means that despite the convenience all fully-abled people are afforded, and some disabled people, that other disabled peoples will instead have to navigate to the extensions tab, type or speak (and hope its recognized) the extension name, and then still navigate over to install. I completely agree tab should not be used for this purpose. However, a keybinding for switching to a notifications context would be hugely beneficial for these people. And that's where we get into the other issue. How these were handled is unacceptable. Rather than explain why, I think it would be more constructive and better representative to explain roughly how I think things should have been handled. First, explain why things are in their current state. Second, explain the intended workflow. Third, ask the OP if the intended workflow is suitable, and if not, to elaborate on why it's not and what a possible solution might be. This is encouraged by the Microsoft Open Source Code of Conduct:

Understand disagreements: Disagreements, both social and technical, are useful learning opportunities. Seek to understand the other viewpoints and resolve differences constructively.

And yet, this was not done on a substantial number of issues.

And unfortunantly, I can't even comment on the most serious issue, because I beleive it might cause myself to violate the CoC. So that's unpleasant and I'm not sure how to go about resolving this one.

From what I have seen, I do not at all feel like this project is inclusive in the way it intends to be. Certain types of inclusivity issues are given more priority than others, with disability/accessibility issues seeming to be the most dismissed. I do not feel comfortable contributing to this project. I hope these issues can be resolved.

@jpike88
Copy link

jpike88 commented Dec 23, 2019

I generally agree with what you've written except for the part about node-gyp. If the bug is upstream, then the onus is on gyp to support it, whether it be tomorrow or next year. That's where the concerned people (aka yourself) should be focusing... VSCode has over 4000+ open issues in this repo, 3900 too many in my opinion. Most are just sitting there without anyone taking charge and solving them. So I wouldn't read too much into the subtleties of how individual issues are managed. It could be a Microsoft employee glossing over something between his coffee and toilet break.

@Entomy
Copy link
Author

Entomy commented Dec 23, 2019

It could be a Microsoft employee glossing over something...

That actually would make it worse, because that would emphasize that accessibility concerns aren't worth more time than you'd spend scrolling a social media feed.

@jpike88
Copy link

jpike88 commented Dec 23, 2019

I think it would emphasize more the complexity of a large project like this, and how accessibility is just one concern (if the project even bothers to address it). Everyone's jostling for what's important to them, and the VSCode team has to manage this somehow. Best thing to do is make a pull request that they can't ignore... why wouldn't they happily accept it?

@Entomy
Copy link
Author

Entomy commented Dec 23, 2019

I'm not trying to be rude here, I just don't get how when someone isn't able to use the software well because of impairments, they would be able to reasonably navigate such a large code base to fix the issue. We're not talking about the general feature request here, because then I would absolutely agree with you. For many of these, it is limiting factors that keeps people with certain disabilities from being able to reasonably use the software.

@kieferrm kieferrm self-assigned this Dec 23, 2019
@Entomy
Copy link
Author

Entomy commented Dec 23, 2019

While thinking about what I said, I think that in my effort to finish up quickly, I wasn't clear about what I beleive to be the key issue. So I should add that.

For one of the examples I cited, I also gave a possible solution that shouldn't impact the currently intended workflow. This solution would not change anything about what happens when a notification is received, and would only introduce a key chord to switch to that context. While I certainly agree that Open Source empowers people to fix problems they may face, that's not the issue here. Many of these issues are closed with what amounts to "working as intended". Between no discussion, immediately closing them, and the responses given, I feel that if I were to create a PR with the possible solution that it is unlikely to be merged as it's already "working as intended".

Aside from the aforementioned reasons for this, I'm also basis thing on a very common workflow pattern used in OSS: Filing an issue for the bug/feature, discussing its implementation, opening a PR addressing that issue, and then working on the implementation, eventually reviewing and refining until the merge.

I hope this clarifies where I am coming from.

@kieferrm
Copy link
Member

@Entomy

Let me try to respond to the points you made. It seems there are two about accessibility

  1. icon configurability
  2. our handling of accessibility issues

and one about approachability

  1. node-gyp.

About 1: An exploration of how to enable universal icon theming is on the January plan. To my knowledge the first time icon configurability was called out as an accessibility issue was November 12, 2019. Up to that point the discussions were around general UX and look.

About 2: This is the list of all issues we have labeled with accessibility. Issues that are prefixed with [A11y] of A11y_VSCode are from our internal accessibility testing team. Accessibility testing teams are not regular users of the product, i.e. they are not developers. As such they follow default testing procedures and predefined click-sequences and file issues about what they think might constitute issues. The issues (1, 2, 3) you listed and that we closed fall into this bucket. Our goal is to be the best developer tool out there for people who need to use assistive technologies. See our roadmap. So, we don't try to be dismissive about the issues we receive, to the contrary, we try to find a solution that makes developers using assistive technologies the most productive they can be with our tool. This might include that we don't make changes in response to issues or that we pursue a different solution if we have feedback from actual users that the different solution might be better. We also reach out to our users to get first-hand feedback from developers who use assistive technologies for all their work. Here is the last example on twitter. If you have experiences that invalidate our decisions, please let us know. Annotate issues with your insights, ask issue to be reopened, or create new issues. Thank you!

About 3: You outlined the impact of our dependency on node-gyp in #87538. When we close an issue as upstream we don't imply that this is no longer an issue in vscode. Admittedly, we are not consistent here. Some of us close upstream issues, others keep them open. Either way, it seemed, you indicated in #87538 (comment) that you will look into it. Did we misunderstand you?

@Entomy
Copy link
Author

Entomy commented Dec 25, 2019

I guess I lack the necessary skills to get my point across. Hopefully someone without the problems I face can convey the intended message better.

@Entomy Entomy closed this as completed Dec 25, 2019
@jpike88
Copy link

jpike88 commented Dec 25, 2019

@Entomy your issues were concisely addressed, point by point (at least that’s how I read it). If you think they are all missing the mark, why not elaborate? Only further discussion will make things clearer.

@Entomy
Copy link
Author

Entomy commented Dec 25, 2019

...why not elaborate? Only further discussion will make things clearer.

Lord, C., Risi, S., Lambrecht, L. et al. The Autism Diagnostic Observation Schedule—Generic: A Standard Measure of Social and Communication Deficits Associated with the Spectrum of Autism. J Autism Dev Disord 30, 205–223 (2000) doi:10.1023/A:1005592401947

Mundy, P. Sigman, M. Ungerer, J. et al. Defining the social deficits of autism: the contribution of non-verbal communication measures. J Child Psychol Psychiatry 657-69 (1986). doi: 10.1111/j.1469-7610.1986.tb00190.x

I understand my limitations quite well, certainly better than others understand my limitations. I shouldn't have to resort to citations to explain and prove those limitations.

@Entomy Entomy reopened this Dec 30, 2019
@Entomy
Copy link
Author

Entomy commented Dec 31, 2019

@kieferrm I'm reopening this as I've found things that I believe better express the concerns and limitations I was trying to express.

While not a website, I believe the accessibility principals here still apply WCAG 2.1. Of most interest is Principal 2.

2.1.1 specifically covers the concern we've gone into most detail about. G202 covers the guidelines for implementing this and contains the relevant passage:

The objective of this technique is to provide keyboard operation for all the functionality of the page. When all functionality of content can be operated through a keyboard or keyboard interface, it can be operated by those with no vision as well as by those who must use alternate keyboards or input devices that act as keyboard emulators like speech input software or on-screen keyboards.

As far as accessibility guidelines go, WCAG 2.1 encourages everything be accessible from the keyboard, with no such encouragement about the mouse (because the mouse, or devices that emulate the mouse, are immensely harder to use for some people).

You said:

We also reach out to our users to get first-hand feedback from developers who use assistive technologies for all their work. Here is the last example on twitter. If you have experiences that invalidate our decisions, please let us know.

Assuming I did my homework right, your professional career started with research. If I got that right, then you know this isn't research; this isn't even considered good survey practices. It's still good to do, as it does gather much needed information. But I hope we can both agree that it's better if we "stand on the shoulders of giants" and listen to people who's passion and careers are about accessibility concerns, not programming.

Morris, M. R. AI and Accessibility: A Discussion of Ethical Considerations. Microsoft Research.

I'm including this one just because of the passage at the beginning.

The field of disability studies defines disability through a social lens; people are disabled to the extent that society creates accessibility barriers

As an aside, that's some very interesting research and I look forward to what comes from that!

Roulstone, A. Disability and technology: An interdisciplinary and international approach. Psychology.

doi: 10.1332/239788218x15224822470889

That roughly covers, in part, how often individuals without any experience of disability, which I took to mean either directly effected by, or intimately familiar with someone effected by, a disability. While I hope that's not the problem being faced here, the impression I have is exactly this.

ROBINSON, JERRY, "A PHENOMENOLOGICAL LOOK AT THE LIFE HACKING-ENABLED PRACTICES OF INDIVIDUALS WITH MOBILITY AND DEXTERITY IMPAIRMENTS" (2018). Dissertations - ALL. 872.

This is a great read, and one of the few mentioned here which can be freely accessed. I would encourage a cursory review from the entire team, although I understand as a dissertation it is very long. It does, what I would consider, the best job I've ever seen covering this issue in its entirety. I'm not going to cite from this because it's something I read shortly after it was published, and I'm not going to reread the entire thing just for trying to make an argument that I'm not particularly hopeful about resolving.

Universal Access in Human-Computer Interaction. Methods, Technologies, and Users

A book, not research, but considering it's coming from Springer I'm assuming you know the kind of book it is. It has some very useful information about designing for accessibility, and generally agrees with the WCAG 2.1 about keyboard accessibility.

ATKINSON, M.T., MACHIN, C.H.C. and SLOAN, D., 2008. Making accessibility accessible. IN: Accessible Design in the Digital World (ADDW), 24th September, University of York, York, UK

This article primarily covers problems with industry adoption, but should be insightful as well.

Should the term “accessibility” even be used, as it seems to be ignored by the general public and misunderstood by developers, who believe they must do extra work for those with “special needs” when, in reality, we all have special needs.

I believe this also pretty well describes my concerns, and definitely fits with what I'm seeing.

@Entomy
Copy link
Author

Entomy commented Dec 31, 2019

At this point I've spent more than $100 gathering others words, just trying to prove my point, because I lack the actual skills I need. This is just further discouraging me and heightening my concerns. Is it just this project? Is it all of Microsoft?

We also reach out to our users to get first-hand feedback from developers who use assistive technologies for all their work.

There's a problem here. One that's painfully apparent to me given my own experiences. Allow me to explain.

Despite being diagnosed when I was 15, I was never made aware of any kind of therapies or assistive technologies or accommodations that could have benefited me. I'm 29 now, and playing catch up with many skills that could have been developed. I wasn't aware of vocational rehabilitation services until a year ago. I wasn't even aware of organizations like Autism Speaks until just a few months ago.

When you look for individuals using assistive technologies you're only finding a subset of individuals with impairments. Even worse, you're finding the subset who's managed to achieve at least some level of accommodation. There's another subset of people who likely aren't even aware that there's potentially easier ways they could be doing things. While I don't have any research to back this up, and I'm not paying to read any more articles at this point, I think it's pretty obvious that this subset of people would be the most easily discouraged.

I can, at least in a limited capacity, confirm this from personal experiences. For roughly five years I worked in the medical field, primarily doing long term or post-op care for people with temporary or permanent physical impairments. I've worked with individuals with anything from cerebral palsy to muscular distrophy to paradactyly to myasthenia gravis, and more. I would regularly see physicians and physical therapists get frustrated over lack of any kind of fitness attempts, and it was regularly written off as they "were depressed" or "didn't care". And yet I could get about 4/5 of them actually doing stuff, even without prompts. I think it's because while I don't understand the physical impairment part of it, I do understand the impairment side in general. Not a single one of them were even aware of assistive devices or other accommodations that they could use.

Based on a few of the things you said, it seems like better transparency and a slight change in workflow might help a lot. I would encourage leaving accessibility issues filed by your internal team open, until a solution can be found, or it can be shown that a notable amount of the effected community already has an out-of-software solution. Furthermore, collect these issues. Maybe as a Project? I've seen these as useful for organizing general issue classes in other projects. Obviously there's many different possible solutions, not just what I've suggested. I haven't well thought out the solution and others might have better ideas.

@Entomy Entomy changed the title I don't feel comfortable contributing to this project; better inclusivity Better inclusivity Mar 26, 2020
@Entomy
Copy link
Author

Entomy commented Mar 26, 2020

Oh isn't that a clever way of keeping accessibility concerns from being dealt with. Now it'll go a certain period of time and be closed because of something not even applicable in this instance. And then when people look, it won't be your fault for completely ignoring this and pretending like there's nothing to talk about, it'll be my fault for not providing information that doesn't apply in this context.

I'm literally just trying to point out, both from personal experiences, and my own experiences working with the disabled, professionally, for five years, that there are some flaws in your approach, and some minor changes to that would see huge improvements. Why you wouldn't want to hear someones professional experience and suggestions in a matter considered important to this project is beyond me.

@github-actions
Copy link

github-actions bot commented Jul 7, 2020

Hey @kieferrm, this issue might need further attention.

@Entomy, you can help us out by closing this issue if the problem no longer exists, or adding more information.

@Entomy
Copy link
Author

Entomy commented Jul 7, 2020

oh it still exists

@Entomy
Copy link
Author

Entomy commented Sep 26, 2020

oh it still exists...

@NotWearingPants
Copy link
Contributor

I think the solution to what you're saying is for the page where you download VSCode to have a link in a noticeable place to the accessibility docs.
And also to find any UI elements which are only accessible with a mouse (like notifications) and add a way to get to them with the keyboard, while documenting that way in the accessibility docs.
Will these solve the problem?

@Entomy
Copy link
Author

Entomy commented Nov 19, 2020

It's not strictly that there are UI elements that are only accessible by mouse, although I have found a few cases of that. It's that there are UI elements that demand attention (like occluding the editor space), and require several dozen keypresses to actually get there. So, mouse isn't required in the strict sense, but it's still obviously way easier to use a mouse.

Yes, essentially what you are proposing is the solution.

@Entomy
Copy link
Author

Entomy commented Feb 11, 2021

There isn't any information to add unless Kai has some questions. Dude's just ignoring it 🤷‍♂️.

@Entomy
Copy link
Author

Entomy commented May 7, 2021

It still exists. I now have reason to beleive this is fundamentally a problem of management, specifically the PM's. But until it's addressed, I can't, and won't close it.

@Lemmingh
Copy link
Contributor

Please could someone stop the bot? It is polluting this thread. Thank you.

@Entomy
Copy link
Author

Entomy commented Jul 29, 2021

Aye, and it's just a constant reminder that they're hoping attrition will get this closed. 😕

@github-actions github-actions bot locked and limited conversation to collaborators Dec 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
info-needed Issue requires more information from poster
Projects
None yet
Development

No branches or pull requests

7 participants
@kieferrm @jpike88 @Entomy @NotWearingPants @Lemmingh and others