Skip to content

Commit 2273e28

Browse files
MarsBarLeenoatamir
andauthored
[BLOG] Add numpy-accessibility-guidelines (#516)
* [BLOG] Add numpy-accessibility-guidelines * Adjust hero and feature image * Update hero * tweak description * Update link Co-authored-by: Noa Tamir <[email protected]> --------- Co-authored-by: Noa Tamir <[email protected]>
1 parent f250c89 commit 2273e28

File tree

11 files changed

+187
-0
lines changed

11 files changed

+187
-0
lines changed
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
title: 'Making Numpy Accessible: Guidelines and Tools'
3+
published: September 06, 2021
4+
author: mars-lee
5+
description: 'A small team started working on making NumPy more accessible, specifically its website and documentation. They weren’t experts in accessible technology. In fact, they feared that they didn’t know enough. Yet they strongly believed that accessible technology is a right every person should access and that NumPy could be accessible too.'
6+
category: [Access-centered]
7+
featuredImage:
8+
src: /posts/numpy-accessibility-guidelines/feature.png
9+
alt: 'A large eye is placed over two bar graphs. Two silhouettes of heads are also
10+
overlaid the bar graphs.'
11+
hero:
12+
imageSrc: /posts/numpy-accessibility-guidelines/hero.png
13+
imageAlt: 'A large eye is placed over two bar graphs. Two silhouettes of heads are also
14+
overlaid the bar graphs.'
15+
---
16+
17+
_Header illustration by author, Mars Lee_
18+
19+
Numpy is now foundational to Python scientific computing. Our efforts reach
20+
millions of developers each month. As our user base grows, we recognize that we
21+
are neglecting the disabled community by not having our website and
22+
documentation up to modern accessibility standards.
23+
24+
![The Venn diagram shows 2 intersecting circles, one labeled '10 million NumPy
25+
users' and the other labeled '15% of human population is disabled'. The area of
26+
intersection is labeled '1,500,000 disabled NumPy
27+
users.](/posts/numpy-accessibility-guidelines/venn_diagram.png)
28+
29+
As NumPy is early in the dependency chain, it has a huge install base. It is
30+
estimated that there are 10 million users of NumPy. Around 15% of the general
31+
human population disabled. ([World Health
32+
Organization](https://www.who.int/publications/i/item/9789241564182)).
33+
Even if we assume that the rate of disabled scientists is less than
34+
15%([National Science
35+
Foundation](https://www.ncses.nsf.gov/pubs/nsf19304/data)), such as 5%, that
36+
would still put the number of NumPy users with a disability at 500,000. Half a
37+
million users deserve an accessible NumPy website and documentation.
38+
39+
In response to this, a small team started working on making NumPy more
40+
accessible, specifically its website and documentation. They weren’t experts in
41+
accessible technology. In fact, they feared that they didn’t know enough. Yet
42+
they strongly believed that accessible technology is a right every person should
43+
access and that NumPy could be accessible too.
44+
45+
This small team started with Melissa Weber MendonΓ§a and me, Mars Lee. Our
46+
previous skills and projects varied from working on documentation, front-end
47+
code, grant-writing, community work, software maintenance, and consulting work.
48+
49+
We were very inspired by JupyterLab's strides forward in accessibility this
50+
year. In the open-source ecosystem, accessibility is often considered
51+
low-priority, scary or someone else’s job. If JupyterLab could do it, so could
52+
NumPy. We decided to take this on.
53+
54+
Making NumPy accessible is something that should have started a long time ago.
55+
However it never quite started, mostly due to a lack of knowledge. Not everyone
56+
knows what accessible technology is, who it benefits, what guidelines to use or
57+
how to implement them. With all these gaps in knowledge, it can be intimidating
58+
to even start this conversation.
59+
60+
This blog post is the first in a series of three, as accessibility is a big
61+
topic. Additionally, a note on terminology- the terms β€˜users with a disability’
62+
and β€˜disabled user’ are used interchangeably, and some people may prefer one
63+
term over the other.
64+
65+
## Who needs accessibility?
66+
67+
![A comic about how everyone benefits from accessibility. The example is about
68+
having a situational disability and being provided accommodations to overcome
69+
it.](/posts/numpy-accessibility-guidelines/situation_disability.png) [_External
70+
link to the above illustration's full
71+
transcription_](https://gist.githubusercontent.com/MarsBarLee/4f5f30ede8631dec8fd9fcd0526aa065/raw/6ab7e61cec2dc173a84b04cec246fde6b2841d81/situation_disability.png)
72+
73+
First, who needs accessibility? Your first answer might be β€˜people with
74+
disabilities’ but ultimately everyone benefits from having accessible
75+
technology.
76+
77+
This is because accessibility is about making technology accessible to the full
78+
range of human experience. Disabilities can affect sight, hearing, cognition and
79+
physical motion.
80+
81+
Through this lens, we’ve all been at least situationally disabled. We’ve all
82+
been to websites with small, hard to read text. Maybe you’ve had a broken mouse
83+
and could only navigate through the keyboard. Or needed to watch a video but had
84+
no working speakers.
85+
86+
We have felt the frustration of the world not working the way you need it to. We
87+
have felt relief in finding commonly built-in solutions, such as increasing our
88+
browsers' text size, turning on captions or learning to switch tabs with
89+
keyboard shortcuts.
90+
91+
![A comic about how different people respond to the same barrier. The example
92+
here is about graphs with colors that are inaccessible for people with
93+
deuteranopia, red-green color blindness.](/posts/numpy-accessibility-guidelines/disability_not_recognized.png)
94+
[_External link to the above illustration's full
95+
transcription_](https://gist.githubusercontent.com/MarsBarLee/8beffb99b2f0976a42a97d68bb89f8d2/raw/fb20ffc54bd19e1b0e6cb12873a89734cfda23ae/disability_not_recognized.png)
96+
97+
![A graph illustrating how the world can be inaccessible for people with
98+
deuteranopia, red-green color blindness.](/posts/numpy-accessibility-guidelines/color_deficiency.png)
99+
[_External link to the above illustration's full
100+
transcription_](https://gist.githubusercontent.com/MarsBarLee/eae9824bf76b3ea89d719e61e2f1e078/raw/faed346caedebd666a87dbbe734ec092ecde368e/color_deficiency.png)
101+
102+
Yet sometimes there seems to be no recognition of our disability nor any
103+
obvious solutions. A color-blind user may not be able to read a scientific
104+
diagram due to its red-green color scheme. The more tech-savvy of us may find
105+
hack-y workarounds, such as downloading a browser extension that adjusts our
106+
monitor colors so that the diagram can be read. Others with less time or
107+
knowledge, when faced with the same wall, give up trying to access this content
108+
altogether.
109+
110+
![A table of the different types of disabilities. It provides examples of
111+
situational, permanent and temporary
112+
disabilities.](/posts/numpy-accessibility-guidelines/types_of_disabilities.png)
113+
[_External link to the above illustration's full
114+
transcription_](https://gist.githubusercontent.com/MarsBarLee/69172dd5083e7aaaaf7789ef2143befc/raw/2ebd6071dc72118e810e67bab217c94d9b0469dd/types_of_disabilities.png)
115+
116+
Disabilities are not just permanent- there are also temporary and situational
117+
disabilities. ([W3, Web Accessibility
118+
Initiative](https://www.w3.org/WAI/people-use-web/abilities-barriers/)). In this
119+
blog post, the examples focus on visual disabilities, but much more different
120+
types of disabilities that affect one’s experience with technology
121+
([W3](https://www.w3.org/WAI/people-use-web/abilities-barriers/))
122+
123+
If we can understand these struggles, then we can understand what people with
124+
disabilities face everyday. We can extend that relief, that exhilarating feeling
125+
of β€˜A-ha, yes, I can use this!’ to everyone by making technology more
126+
accessible.
127+
128+
## Starting with Guidelines
129+
130+
We began our journey by referring to the guidelines set by[ W3, the Web
131+
Accessibility Initiative](https://www.w3.org/), the main international standards
132+
organization for the Internet.
133+
134+
There are three β€˜levels’ we can achieve in each area. This example below details
135+
the levels of compliance for color-contrast, which helps people with visual
136+
disabilities.
137+
138+
![A graph on the different compliance levels. Different contrast ratios between
139+
text and background to show how low contrast is less
140+
accessible.](/posts/numpy-accessibility-guidelines/compliance_levels.png)
141+
[_External link to the above illustration's full
142+
transcription_](https://gist.githubusercontent.com/MarsBarLee/e7b0586e082063e98130509f1ccedbd4/raw/530e3bb7a545b74404f0716626f307be0bd32761/compliance_levels.png)
143+
144+
In this example, visual contrast is something that can be rather easily fixed by
145+
changing the color of the text. This is just one guideline: there are many more
146+
guidelines such as more accessible images and audio. However, these β€˜low-hanging
147+
fruit’ styling fixes seemed like a good place to start.
148+
149+
## Determined but piece-meal beginnings
150+
151+
Using these guidelines, we started by reviewing the website and documentation in
152+
a determined but ultimately piece-meal approach. We started with the β€˜[WAVE Web
153+
Accessibility Evaluation Tool](https://wave.webaim.org/)’. It is a free browser
154+
extension that scans a page and categorizes shortcomings based on the above
155+
mentioned W3 guidelines. We aimed to fix specific issues, such as creating more
156+
color contrast between the text and background and adding alt-text, specifically
157+
for the many mathematical graphs.
158+
159+
![A screenshot of the NumPy.org main page with an overlay of the WAVE
160+
accessibility review tool. Sections of the NumPy website are highlighted by the
161+
tool.](/posts/numpy-accessibility-guidelines/wave_extension.png)
162+
163+
Unfortunately, there was no way to review multiple pages at the same time with
164+
the WAVE tool’s free plan. There are several hundred pages in the NumPy
165+
documentation and when converted to print, it is equivalent to nearly 2000
166+
physical paper pages. Going through each page of documentation individually would
167+
be daunting and time-consuming.
168+
169+
We also tried combining the automated WAVE tool with real human feedback. We
170+
reviewed pre-existing Github issues in the NumPy.org repository tagged with
171+
β€˜Accessibility’. However, this still missed many problems, since it was
172+
dependent if a user created an issue in the first place.
173+
174+
It felt like a frantic game of Whack-A-Mole, where once we fixed one problem,
175+
dozens more would become apparent. The logical next step would be to scale up.
176+
We considered paying for an audit so that the whole NumPy site and documentation
177+
could be reviewed at once by experts.
178+
179+
Now that we understood why we should care about accessibility, the different
180+
types of disabilities, guidelines and basic tools, we thought this next step
181+
would be easy. However, it isn’t as straightforward as we thought.
182+
183+
Stay tuned! The next blog post in this series will talk about what types of
184+
audits we considered, the shortcomings of our method and getting help from other
185+
people making open-source projects more accessible.
186+
187+
_All illustrations in this post have been illustrated by Mars Lee_
314 KB
Loading
199 KB
Loading
467 KB
Loading
53.9 KB
Loading
222 KB
Loading
219 KB
Loading
347 KB
Loading
164 KB
Loading
177 KB
Loading

0 commit comments

Comments
Β (0)