|
| 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 | + |
| 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 | + [_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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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_ |
0 commit comments