logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Framing-accessibility-in-broader-terms.md (7116B)


  1. ---
  2. title: Framing accessibility in broader terms
  3. date: 2022-02-13
  4. ---
  5. Upon hearing the term "accessibility", many developers call to mind the HTML
  6. <abbr title="Accessible Rich Internet Applications">ARIA</abbr> attributes and
  7. little else. Those who have done some real accessibility work may think of the
  8. <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> guidelines. Some
  9. FOSS developers[^1] may think of <abbr title="Assistive Technology Service
  10. Provider Interface">AT-SPI</abbr>. The typical user of these accessibility
  11. features is, in the minds of many naive developers, a blind person. Perhaps for
  12. those who have worked with WCAG, a slightly more sophisticated understanding of
  13. the audience for accessibility tools may include users with a greater variety of
  14. vision-related problems, motor impairments, or similar needs.
  15. [^1]: Vanishingly few.
  16. Many developers[^2] frame accessibility in these terms, as a list of boxes to
  17. tick off, or specific industry tools which, when used, magically create an
  18. accessible product. This is not the case. In truth, a much broader understanding
  19. of accessibility is required to create genuinely accessible software, and
  20. because that understanding often raises uncomfortable questions about our basic
  21. design assumptions, the industry's relationship with accessibility borders on
  22. willful ignorance.
  23. [^2]: Including me, once upon a time.
  24. The typical developer's relationship with accessibility, if they have one at
  25. all, is mainly concerned with making web pages work with screen readers. Even
  26. considering this very narrow goal, most developers have an even narrower
  27. understanding of the problem, and end up doing a piss-poor job of it. In
  28. essence, the process of doing accessibility badly involves making a web page for
  29. a sighted user, then using ARIA tags to hide cosmetic elements, adding alt tags,
  30. and making other surface-level improvements for users of screen readers. If
  31. they're serious, they may reach for the WCAG guidelines and do things like
  32. considering contrast, font choices, and animations as well, but all framed
  33. within the context of adding accessibility band-aids onto a UI designed for
  34. sighted use.
  35. A key insight here is that concerns like font choice and contrast involve making
  36. changes which are apparent to "typical" users as well, but we'll expand on that
  37. in a moment. Instead of designing for people like you and then patching it up
  38. until it's semi-functional for people who are not like you, a wise developer
  39. places themselves into the shoes of the person they're designing for and builds
  40. something which speaks their design language. For visually impaired users, this
  41. might mean laying out information in a more *logical* sense than in a *spatial*
  42. sense.
  43. Importantly, accessibility also means understanding that there are many other
  44. kinds of users who have accessibility needs.
  45. For instance, consider someone who cannot afford a computer as nice as the one
  46. your developers are using. When your Electron <s>crapware</s> app eats up 8G of
  47. RAM, it may be fine on your 32G developer workstation, but not so much for
  48. someone who cannot afford anything other than a used $50 laptop from eBay.
  49. Waking up the user's phone every 15 minutes to check in with your servers isn't
  50. very nice for someone using a 5-year-old phone with a dying battery. Your huge
  51. JavaScript bundle, unoptimized images, and always-on network requirements are
  52. not accessible to users who are on low-bandwidth mobile connections or have a
  53. data cap&nbsp;&mdash; you're essentially charging poorer users a tax to use your
  54. website.
  55. Localization is another kind of accessibility, and it requires more effort than
  56. running your strings through gettext. Users in different locales speak not only
  57. different natural languages, but different design languages. Users of
  58. right-to-left languages like Arabic don't just reverse their strings but also
  59. the entire layout of the page. Chinese and Japanese users are more familiar with
  60. denser UIs than the typical Western user. And subtitles and transcripts are
  61. important for Deaf users, but also useful for users who are consuming your
  62. content in a second language.
  63. Intuitiveness is another important detail. Not everyone understands what your
  64. icons mean, for a start. They may not have the motor skill to hold their mouse
  65. over the button and read the tool-tip, either, and might not know that they can
  66. do that in the first place! Reliance on unfamiliar design language in general is
  67. a kind of inaccessible design. Remember the "save" icon? 💾 Flashing banner ads
  68. are also inaccessible for users with ADHD, and if we're being honest, for
  69. everyone else, too. Software which is not responsive on many kinds of devices
  70. (touch, mouse and keyboard, different screen sizes, aspect ratios, orientations)
  71. is not accessible. Software which requires the latest and greatest technologies
  72. to use (such as a modern web browser) is also not accessible.
  73. Adequate answers to these problems are often expensive and uncomfortable, so no
  74. one wants to think about them. Social-media-esque designs which are deliberately
  75. addictive are not accessible, and also not moral. The mountain of gross
  76. abstractions on which much software is built is cheap, but causes it to suck up
  77. all the user's resources (RAM, CPU, battery, etc) on 10-year-old
  78. devices.[^climate] And ads are inaccessible *by design*, but good luck
  79. explaining that to your boss.
  80. [^climate]: Not to mention that the model of wasteful consumerism required to
  81. keep up with modern software is destroying the planet.
  82. It is a fool's errand to aim for perfect accessibility for all users, but we
  83. need to understand that our design choices are excluding people from using our
  84. tools. We need to design our software with accessibility in mind from the ground
  85. up, and with a broad understanding of accessibility that acknowledges that
  86. simple, intuitive software is the *foundation* of accessibility which works for
  87. everyone, including you and me &mdash; and not retroactively adding half-assed
  88. tools to fundamentally unusable software. I want UI designers to be thinking in
  89. these terms, and less in terms of aesthetic properties, profitable designs, and
  90. dark patterns. Design with empathy first.
  91. As someone who works exclusively in free software, I have to acknowledge the
  92. fact that free software is pretty pathetic when it comes to accessibility. In
  93. our case, this does not generally come from the perverse incentives that cause
  94. businesses to cut costs or even deliberately undermine accessibility for
  95. profit,[^4] but instead comes from laziness (or, more charitably, lack of free
  96. time and enthusiasm), and generally from free software's struggles to build
  97. software for people who are not like its authors. I think that we can change
  98. this. We do not have the profit motive, and we can choose to take pride in
  99. making better software for everyone. Let's do better.
  100. [^4]: Though I am saddened to admit that many free software developers, after
  101. years of exposure to these dark patterns, will often unwittingly re-implement
  102. them in free software themselves without understanding their sinister nature.