Category: week11y

Accessibility themed newsletter released every week.

  • week11y issue 157

    Your weekly± frequent11y newsletter, brought to you by @ChrisBAshton:

    ± ok… not quite weekly at the moment. I’ve recently started a new job, and also had a bit of annual leave, so I’m still figuring out what kind of cadence I can commit to for this newsletter!

    The five types of people who produce inaccessible code

    Eric Bailey shares his thoughts, which can be summed up as follows:

    1. People who create inaccessible code, but do not realize they are doing so.
    2. People who create inaccessible code and realize they are doing so, but do not know how to fix it.
    3. People who create inaccessible code, and do not care about fixing it.
    4. People who create inaccessible code that they think is accessible.
    5. People who create inaccessible code that our industry thinks is accessible, but experientially is not.

    Eric says that he has been type number five more than he cares to admit.

    The blog post doesn’t go into more detail, but I think it’s interesting to categorise the different reasons behind why someone may have built something inaccessible. Someone should take this idea and present a corresponding “cure” for each symptom!


    The case against banning italics

    If you ever have a well-meaning accessibility advocate argue that all of your italics should be removed… this is the article to show them.

    It’s widely accepted that blocks of italics are poor for readability, and that should be avoided. But italicising single words, be it for emphasis, to denote works (books or document titles, etc), to denote foreign words, or for editorial styling (“see also“), is completely fine.

    The article goes into a bit of the research that has been done in this area, and ends on a slight tangent about text customisation for PDF (worthy of a separate article itself – I wasn’t sure it was even possible to customise PDF text as a reader, being more familiar with the web platform instead).


    Getting VoiceOver to shut up

    Martin (known as “tempertemper”) describes how to quickly pause VoiceOver’s speech:

    • Press the (Control) key once to hush VoiceOver immediately
    • Press again to get VoiceOver to restart reading where it left off

    You can also just move to the next bit of content on the page and it’ll start talking again from there.

    This is useful to know if you’re just wanting to demonstrate something and talk it through with a colleague – you don’t need to wait for VoiceOver to finish what it’s saying!

    You can also do this with the trackpad: “Trackpad Commander also has a gesture to do the same thing: double tap with two fingers”.

    Next, Martin walks us through how to mute VoiceOver’s speech permanently, instead relying just on the ‘subtitles’ it overlays on the screen. You could of course mute your sound entirely, but then you wouldn’t be able to listen to music, etc.

    Finally, Martin suggests altering the verbosity setting in VoiceOver: “Uncheck ‘Speak instructions for using the item in the VoiceOver cursor’. This turns off the instructions you get immediately after VoiceOver has read you the content, such as “You are currently on a link. To click this link, press Control-Option-Space” when you land on a link.””


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 156

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    I Made a Site Leveraging AI: How Accessible Was It?

    Interesting experiment by Mark Steadman, who used Durable to generate a website.

    Using axe-core to scan the site, he found 17 accessibility issues, of which 11 were ‘critical’ and 6 ‘serious’. These included:

    • All form elements in “Contact us” section were missing labels
    • The carousel buttons were missing an accessible label
    • All the images in the “Gallery” were missing alt text

    Manually discovered a11y issues included keyboard focus indicators being highly inconsistent – some elements would get it, some would not – and an entire set of images in the gallery being totally inaccessible to the keyboard.

    Screen reader support was quite poor too, with multiple links and buttons having the same text, as well as images with poor alt text such as “banner image”.

    Mark’s conclusion is fairly positive. AI is here to stay, and the output here is not as bad as it could be (Mark likes the use of native HTML, some practical use of ARIA, and “great” resize support). Mark hopes that one day AI could generate fully accessible websites, but fears that that day won’t come any time soon.


    The ultimate inaccessible UI components

    This is just a bit of fun from Reddit. Engineers competed to see who could build the worst possible UI.

    Highlights include:

    • A “Delete your account” button hidden behind three red cups that shuffle like a magic trick. Good luck finding the right one!
    • A volume control slider that doesn’t stop at 100% (the sider will just fall off the end and break)
    • An “unsubscribe” button next to a fan, which ‘blows’ your mouse cursor away when you try to click the button
    • “Real dark mode” – everything is pitch black except for a few pixels of light emanating from your cursor

    …the list goes on. Images and videos demonstrating the designs are in the article.


    A Deep Dive into Accessibility APIs

    I’ve read this three-part series by Neill Hadder, who works at Knowbility. Below is a perhaps oversimplified summary – I’d encourage you to click through to the articles themselves if you’re keen to learn more!

    Part 1: Swinging Through the Accessibility Tree Like a Ring-Tailed Lemur

    This is an introductory article that still goes into a fair bit of depth, explaining the history of the document object model (DOM) following the earlier Windows component object model (COM) and Mac’s OS X Coco API. The ‘accessibility tree’ is a web document object whose children include all the accessible objects from the DOM. Some elements, such as SVG, are omitted from the tree, unless they’re given an explicit role.

    When something important happens, e.g. the display of new content, it’s up to the application to post an event notification to the platform API. Assistive tech (AT) registers what type of events it wants to listen for. The same responsibilities can work the other way too, where AT sends actions to the application. Passing messages between running applications is called inter-process communication (IPC).

    Part 2: The Road to Good Intentions Is Paved with Hell

    This article introduces the off-screen model (OSM), which is the idea of intercepting low-level drawing instructions from applications (and the operating system itself) “in order to build a database with which the screen reader could interact as if it were text mode”.

    The first OSM program was OutSpoken for Mac, released in 1989 as a kind of “virtual white cane”. It used the numeric keypad to emulate a mouse to visualise and explore the screen layout. Mac’s next AT was VoiceOver, in 2005.

    Meanwhile a number of mostly short-lived screenreaders were created for Windows. “Microsoft created the IAccessible specification, which put in place the now-familiar tree structure of semantic information about UI objects”.

    Neill dives further into the inner workings of OSMs. Here’s a taster:

    The work of an OSM is extremely complex. It starts with reading Strings of ASCII characters from text-drawing functions. The OSM also needs to keep track of the bitmap in order to insert text at the right place in the OSM when, for example, typed characters are being drawn on a line one instruction at a time as part of the same word. It has to keep track of what’s visible or not, too, such as when areas on the bitmap are transferred off screen and replaced in order to convey the illusion of 3D pull-down menus or layered windows

    Evidently, this model wasn’t sustainable. “Developers had to slowly add special code for each application that didn’t exclusively use standard UI elements”. Misrecognitions, memory leaks and accumulated garbage were an issue.

    Part 3: Your Browser May Be Having a Secret Relationship with a Screen Reader

    Windows screen readers very early hit upon a terrific strategy for highly-efficient web page review that has endured, largely unchanged, for over twenty years. It centers around creating a buffered copy of a web page that the user can review like a standard text document.

    Or, put a different way: “the one thing that screen readers no longer do is read the screen”.

    Screen readers have two modes. “Browse mode” allows users to jump along headings, lists, tables and so on, and also to use virtual cursor movement (not unlike the “caret browsing mode” that is built into major browsers, and which I hadn’t heard of until today!). To interact with most controls on the page, screen reader users switch to something historically known as “forms mode”.

    “Screen reader access to page semantics came all at once with Internet Explorer 5’s Microsoft Active Accessibility (MSAA) support”. MSAA later lacked the vocabulary for all the new control types being added into HTML: this is where ARIA comes in.

    MSAA also lacked dynamic change support, for anything that happened after the initial page load. “One work-around was the introduction of a screen reader hotkey to refresh the virtual buffer” – this only worked intermittently.

    Microsoft introduced its newer UIA accessibility API in 2006 with Windows Vista. In late 2006, the IAccessible2 API arrived, a platform-independent open standard developed by IBM, working closely with screen reader developers and corporate stakeholders. Unlike UIA, IAccessible2 extended MSAA’s IAccessible code library to fix its shortcomings. Firefox quickly implemented it alongside its existing MSAA support, while Google Chrome followed suit in the early 2010s. Meanwhile, Internet Explorer would ultimately rely on a scaled-down version of UIA. IAccessible2, which is what JAWS and NVDA use today, is not a Windows platform API: the libraries are part of the browser.

    IPC (from part 1) is the secure, reliable means of handing info back and forth between applications through an operating system API. Low-level hooks, on the other hand, are effectively ‘code injection’, insofar as AT has forced some of its code to run inside the other application’s space. ATs are basically the only non malicious programs that use this technique.

    IAccessible2 allowed screen reader developers “direct access to the browser’s API implementation” using low level hooks:

    When a web page loads, JAWS and NVDA need to go through every element on the page to create a virtual buffer. If they were to use IAccessible2 only through IPC, then they’d have to send many, many messages back and forth between the screen reader and browser processes; and, even as fast as computers are, that’s relatively slow. But with code injection, some of the screen reader’s code can run directly inside the browser, gather all the information it needs for a virtual buffer (which requires some complex logic specific to the screen reader), then communicate back to the main screen reader process at the end.

    However, “Apple and Google operating systems don’t allow code injection. Windows-based Firefox and Chrome increasingly keep their doors locked while continuing to give assistive technology a pass. [Code injection’s] days are numbered.”. There is little incentive for screen reader developers to migrate all of their code from low level hooks to IPCs, especially as this can cause significant slowdown. Neill suggests the developers may need help from browser developers or Microsoft.

    As for the current state of play, taken more or less verbatim from the article:

    • Windows screen readers rely on MSAA, as well as a few other Windows APIs, in older areas of Windows like the desktop and taskbar, while UI Automation provides access to components added since Windows 8.
    • JAWS and NVDA use IAccessible2 in Chrome, Firefox, and Chromium-based Edge. They additionally use ISimpleDOM when they need information not able to be plucked from the accessibility tree. These are code libraries incorporated into the browsers, not Windows.
    • Both Firefox and Chrome have more or less ignored UI Automation for all this time. The Edge accessibility team have contributed their UIA implementation to Chromium, but it’s still not turned on by default in Chrome.
    • Microsoft incorporated a bridge that allows ATs that rely on UIA in web browsers (Narrator) to communicate with applications that use IAccessible2 (Chrome and Firefox). This bridge continues to interact with ATs solely through IPC but injects its code into the browser whenever possible for the performance boost. This is what’s happening under the hood when using Narrator in those browsers. On the other hand, Narrator predictably uses UIA in Microsoft Edge.

    Neill concludes “Mac, IOS, and Android all implement their platform APIs throughout their systems, including third-party browsers. If VoiceOver began to support IAccessible2 or UIA, other Mac and IOS browsers would be ready. What seems likely is that Windows will sooner or later fall in line with other operating systems by shutting down third-party code injection. Screen reader developers will then be forced to undertake the [work to replace hooks with IPCs], and everyone will indeed use the Windows platform API, the performance of which will by then very likely be up to the task”.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 155

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    WebAIM Million Report 2023

    In March, WebAIM published their annual accessibility report. A number of well-informed folks have read the report and written articles with their key takeaways.

    Manuel Matuzović picks up on one figure in his post, “50.1% empty links“. The number of websites containing links with no text (usually when linking an image that lacks alt text) has risen by 0.4%. He tests out various screen readers on an ’empty link image’ and documents the result, which is universally garbage, albeit with some differences.

    Manuel concludes that you should “test your sites at least with an automatic testing tool like axe, Lighthouse, or Wave, and label linked graphics. I’ve described several ways in “Buttons and the Baader–Meinhof phenomenon.”“.

    In “We need accessibility action“, Eric Eggert goes deeper. He notes that WebAIM’s tests are all automated (and test home pages only), so show us trends but only find a subset of accessibility barriers. Highlights:

    • Average errors per page went slightly down (to 50). 96.3% of all pages have easily detectable WCAG failures – this is down 1.5% in four years.
    • ARIA usage has increased a lot, and “pages that use ARIA are more likely to be inaccessible”.
    • 96.1% of all errors are in one or more of the following categories:
      • Low contrast text
      • Missing alternative text for images
      • Empty links
      • Missing form input labels
      • Empty buttons
      • Missing document language
    • As noted on the report itself, “Addressing just these few types of issues would significantly improve accessibility across the web.”

    Eric finds these figures “embarrassing”. These WCAG requirements are not new – they’ve “all been around since WCAG 1.0” which is now 24 years old. For 96% of websites to still have issues underlines the need for “better strategies to educate people about the issues”.

    Eric suggests that browsers themselves could fix some issues – “a ramp built into a train will generally be more available than a situation where every stop needs to provide its own”. Mitigation for low contrast text could be built into the browser, for example.

    Other errors, like empty links and lack of alt text, really require developer intervention – and Eric argues that such errors should be highlighted in the browser’s console error messages. “There is no reason why JavaScript programming errors trigger messages, and accessibility issues do not. Tooling is bizarrely oblivious to accessibility.”

    As for ARIA: “essential ARIA functionality must be transferred into HTML. ARIA needs to be a specialist tool that you only get out if you don’t have any other options. Many of the ARIA techniques are very intricate and for 90% of developers they should never be exposed to that kind of complexity and power.”

    Eric concludes that the release of WCAG 3 won’t necessarily help. We have standards already, and people are unable or unwilling to follow them. “In the best case, web accessibility will drag on. In the worst case, we will have multiple standards to follow that have entirely unique ideas of how to test and measure accessibility”.


    Interview with Jamie Knight (and Lion)

    This landed in my inbox only recently (despite being published in April last year). I remember Jamie from my days at the BBC, so it’s always nice to find out how people are doing!

    Jamie has autism and mobility issues. Denis Boudreau interviewed Jamie about the accessibility of virtual and in-person events.

    One of the worst things speakers can do to ruin an attendee’s experience is to make assumptions. Jamie is “semi-speaking” and an unexpected demand to speak can be difficult – so don’t assume someone can speak at a moment’s notice. Another assumption is that someone can move. Jamie needs a harness to sit upright, “so for that reason, a 10-minute ‘break’ often means sitting alone for 10 minutes as that’s not enough time to unstrap, transfer and move anywhere”.

    The rest of the interview is largely focussed on how speakers can help their audience to focus. Visual structure for slides is important: “slide numbers, visually indicated sections (colours, icons etc), and coming back to something consistent at the end of each section”. This allows audiences to pace themselves and follow the narrative. Most people will be relying on at least two of three means of access: spoken words, visuals, and something textual or signed. Finally, events should “be joyful. The most engaging accessible content treats any topic in a playful way”.

    Jamie ends with “Assumptions are the root cause of most barriers. If you keep on top of the assumptions, then most of the barriers can be avoided.”


    Don’t use custom CSS scrollbars

    Eric Bailey writes a comprehensive article on why you should never, ever provide custom styling for your website’s scrollbars.

    The post begins somewhat philosophically: Eric highlights the area of a browser window that is your responsibility (the web page) and then highlights what isn’t (the browser ‘furniture’, URL display, and yes, the scrollbar).

    But it’s more than just ideological – people who use Windows themes or Forced Colors Mode / High Contrast Mode may be doing so for aesthetical reasons or because they have accessibility requirements. By overriding their choices, you’re potentially excluding them from being able to use your scrollbar. Windows, Eric reminds us, is incredibly popular – something that developers using shiny MacBooks can sometimes forget.

    It is possible to set scrollbar width to 1px – the browser won’t stop you. This is obviously a bad idea. Eric’s point is that by taking on styling for the scrollbar, you’re taking on its WCAG requirements too. It’s now on you to ensure it has a large enough touch area, a high enough contrast, and so on. Eric evaluated a number of scrollbar-code-generators and none of them accounted for this stuff.

    Modifying a scrollbar’s visuals breaks external consistency. “Digital literacy is also a spectrum. When digital things don’t look or behave the way they are expected to, people tend to internalize it as a personal failure—they broke something, they’ve been hacked, they’re being spied on, etc”.

    Eric’s key takeaway is “maybe you should write less code and in doing so allow more people do more things”.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 154

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    Don’t meddle with user input

    Martin Underhill warns against designs that manipulate user input, and the maxlength attribute in particular, which prevents users from typing anything beyond a certain character limit.

    Whilst these features are often implemented with the best of intentions – to assist the user in inputting data in the correct format, for example – they’re not very accessible solutions.

    Martin references the GOV.UK Design System’s Date Input component, which expects a format like 27 3 2007 but does not prevent users from typing longer numbers (or indeed typing a-z characters). Someone raised a GitHub issue to discuss adding maxlength to the fields, but Hanna Laakso responds:

    If you use maxlength attribute on a form field to limit user input, users might not receive appropriate feedback of the limit. For instance, the user might not notice that not all the information they entered appeared in the form field … It is generally better to let users enter their information in a way that suits them and allow them to submit the form.=

    Instead, using hint text to nudge the user in the right direction, alongside validation to tell the user how to fix the problem in any particular form field, is the suggested way forward. Martin notes that “this should also help satisfy 3.3.2 Labels or Instructions and 3.3.3 Error Suggestion, respectively, from the Web Content Accessibility Guidelines (WCAG)”.


    Toggles suck!

    This somewhat inflammatory headline by AxessLab leads into a very long but enjoyable article about toggle design. The author argues that real world toggles (light switches) work well because:

    1. It’s clear whether it’s worked, via the context (the light immediately comes on)
    2. One can press the switch as many times as one wants, and have the same outcome (i.e. pushing down extra hard on the switch to make sure something comes on).

    In the digital world, the design doesn’t carry over so well. For setting things like cookie preferences, there is no obvious visual feedback to enabling/disabling the setting. And activating the switch will flutter back and forth between ‘on’ and ‘off’.

    There are lots of illustrations and screenshots in the article, highlighting that it’s often unclear what state a toggle is in. Designs vary, and whilst “most western designers seem to assume that “right = active””, that’s not always the case.

    It is possible to make accessible toggles. The author links to articles by industry heavyweights: Heydon Pickering’s article on Toggle Buttons, an article on Toggle Switch design by Sara Soueidan, and Under Engineered Toggles by Adrian Roselli.

    The author also cites examples of toggles done well. They show a screenshot of a toggle for filtering on Airbnb, where a toggle button limits the amount of available houses. “Users can understand by the reduced amount of houses that the filter is active, even if they don’t understand the toggle control. The number in the button is physically close to the toggle control, and many users will notice the change as it happens and draw the correct conclusion from context”.

    But whilst Airbnb is a big name, other big names are content to not use toggles. The author shows screenshots of Amazon using plain old radio buttons, and Slack using plain old buttons. The author concludes with advice to “just use a checkbox or radio group”.

    There were a few other bits of interesting info tangential to the theme of toggles.

    “In our user tests, a majority of users will assume an empty text field is actually mandatory and expect an input to be made. So much so that we even recommend you to not use asterisks * to indicate mandatory fields, and instead mark optional fields as “optional”.”

    Indeed, “the “filled in = active / touched / done” pattern is so well recognized that if a text input field is not empty, many users will believe it’s done and requires no more work. That’s why you should try to avoid placeholder text and labels that are positioned inside the input field like the commonly used Material UI component, even if it “moves away” on focus.”

    A worthwhile read!


    The only accessibility specialist in the room

    It’s hard being the only one in your organisation or team responsible for accessibility. If that sounds familiar, I salute you, and this one’s for you.

    This article by Henny Swan might resonate with some of you. Henny has some advice:

    1. You are not the only person responsible for accessibility. You may be the only person with “accessibility” in your job title, but it’s everyone’s responsibility, from CEOs to content editors, designers and developers.
    2. Your role is as much about relationships as it is about accessibility. Look for the managers and decision makers who can make things happen, and look for the designers, developers, editors and testers that want to get into accessibility: they can be powerful advocates.
    3. Find ways to scale. Think about what questions you’re asked the most, and document your answers in shared spaces (Confluence, wiki, design system documentation, etc). Document processes that can be followed within teams, e.g. reviewing designs for accessibility, triaging a11y issues or writing user stories for accessibility.
    4. You can’t know everything. Tell people you will need to go and research something, and come back with options for them to consider. Get a consultant if specialist knowledge is needed. If you need a budget, invest some time in writing a business case for accessibility.
    5. Build a support network. Set up an a11y Slack channel. Join the Champions of Accessibility Network (CAN) on LinkedIn, and the WebAIM discussion list. Consider getting a mentor, e.g. at Accessible Community.

    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 153

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    Everyone Watches TV with Subtitles Now. How’d That Happen?

    I thought this article was interesting to call out, as in my experience we still often assume captions should be an ‘opt in’ thing. But perhaps things have pivoted to them being ‘opt out’. Indeed, some captions are now ‘on’ by default on social media.

    In a 2022 survey of 1,200 people, language learning company Preply determined that 50 percent of Americans used subtitles and closed captions the vast majority of the time they watch content.

    According to Preply, 57 percent of all Americans watch shows or movies or videos in public on their mobile devices, but a very significant 74 percent of Gen Z do the same. Even if you’re (hopefully) using headphones while in public, it’s likely you’re getting poor audio quality… subtitles are practically a necessity.

    The article also cites ‘habit’ as one of the main reasons. People are simply more used to using subtitles; the article cites that in 2020, nearly 30 percent of on-demand streaming was for non-US shows.

    Finally, there are some modern technical issues that could explain why hearing dialogue is more difficult:

    For some, the problem is the design of modern televisions; the majority of which place internal speakers at the bottom of the set instead of facing towards the audience, causing significantly worse audio quality. Other issues are caused by sound designs optimized for theatrical experiences, which can result in compressed audio when translated to home.


    Become an accessibility champion by using simple mockup annotations

    “Accessibility annotations” detail interaction design behaviours in UI designs. They communicate the intended experience for keyboard and screen reader users, allowing developers to implement the design just as they would implement a visual one. This speeds up the design QA and development process, but also ensures designers have thought about accessible interactions from the start.

    The article shows screenshots of some annotated designs, with symbols clarifying the intended focus tab order of a component, or call-outs to screen-reader-specific text. Even the underlying semantics – whether a list should be ordered or unordered, for example – are clarified with markup annotations.

    There is also a Jira ticket template “to facilitate design accessibility review discussions while reviewing the visual mockups”.

    The article links to Deque’s downloadable accessibility annotations toolkit, which has files for Adobe Illustrator and Sketch as well as individual SVGs.


    The difference between Increased Contrast Mode and Windows High Contrast Mode (Forced Colours Mode)

    Martin Underhill describes Increased Contrast Mode (ICM) – a setting that users can opt into, and which website designers/developers can accommodate through a media query:

    @media (prefers-contrast: more) {
        /* High contrast styling goes here */
    }

    Not a lot of people know about this, or they don’t have it high on their list of priorities. It’s utterly reliant on the website creator to support.

    Windows High Contrast Mode (WHCM), on the other hand, is a ‘forced colours mode’. It doesn’t rely on the website creator, and instead forces the chosen theme onto the website. It has a well supported media query like ICM, but only allows a handful of carefully selected things to be styled:

    @media (forced-colors: active) {
        /* WHCM styling goes here */
        /* Limited to things like text colour, background colour and keyboard focus outline colour */
    }

    Martin has made the decision to not attempt to define styles for WHCM users, instead delegating this to the user’s operating system. It should mean they have a more consistent/familiar experience, and it will automatically support their choice of dark or light theme.

    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 152

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    My Thoughts on Accessibility of NFTs and Web3

    Apologies if this is so last year (this post has been in my bookmarks since February 2022, and admittedly we haven’t heard much about Web3 since the rise of ChatGPT). But this article by Crystal Preston-Watson evaluates an emerging and hyped technology for its accessibility, so there’s certainly a crossover.

    Crystal explains that a non-fungible token (NFT) is a unique digital asset that can be bought using blockchain technology. Crystal has a visual impairment, but is not a screen reader poweruser. So, she attempted to go through the process of creating a Coinbase wallet, buying Ethereum (ETH) and then purchasing an NFT on OpenSea, testing the end-to-end transaction from an accessibility perspective.

    The first takeaway is perhaps surprising: whilst there were significant accessibility issues, Crystal didn’t encounter anything more or less accessible than the process of buying items on many other eCommerce sites right now.

    There were some unique challenges, such as having to verify their identity for the Coinbase account, which requires the app taking pictures of the front and back of one’s driving license, and also taking a selfie. Crystal notes that some users would require in-person assistance, opening them up to security vulnerabilities of sensitive information.

    Before using OpenSea, Crystal has to transfer ETH to a wallet. Coinbase directed them to set up a passcode/biometrics, then generated a recovery phrase (for backup wallet recovery). Coinbase prompted Crystal to either back up the phrase in the cloud, or write it down, or copy the words to the phone’s clipboard (for then storing somewhere locally). Crystal elected for the latter, but was then told the phrase would only be copied to the clipboard for one minute. This time limit was insufficient given Crystal was using a screen reader, so they were forced to use cloud storage instead.

    The biggest blocker to the transaction turned out to be the utter lack of alt text on OpenSea, and then the financial burden of the ‘gas fees’. Crystal ended up not buying an NFT.

    It’s easy to get caught up in the hype of a new technology – but we should do all we can to ensure disabled users aren’t left behind.


    Continuing the look at new technologies…

    ShatGPT

    Steve Faulkner gives a frank accessibility review of the ChatGPT UI:

    1. The chat history is not navigable using the keyboard, as the links are not focusable. It makes use of <a> markup without a href or tabindex, so is not keyboard-accessible.
    2. The UI contains lots of unlabelled buttons, relying on icons alone to convey intent. JAWS announces them as “unlabelled button 1, unlabelled button 2, unlabelled button 3” – good luck using the interface!
    3. Similarly, the buttons fail WCAG 1.4.11 Non-text contrast, as their contrast ratio is just 2.1:1.
    4. The information panel describing “Reasoning/Speed” and “Conciseness” is largely hidden from screen reader users.

    Steve goes on to try to ask ChatGPT how it should make the markup more accessible, and is not impressed with the result.

    But I think the bigger takeaway is that this multi-billion dollar company clearly has little regard for the accessibility of its product, which seems to be a trend with hyped and emerging technologies. So frustrating.


    W3C Design System

    A redesigned W3C website has launched with a Design System. The design system draws inspiration from the GOV.UK design system and uses some GOV.UK-owned components such as accessible autocomplete.

    DAC performed accessibility audits of the new W3C website, and their reports can be downloaded from the redesign project website.

    Thanks to Derren at GDS for sharing this with me!


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 151

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    Flexbox and the Screen Reader Experience

    A Webaim article that reminds us that whilst CSS flexbox can be used to change the visual order of content, it often has no bearing on how the content is consumed by a screen reader. This can lead to major accessibility issues if the intended reading order differs from the order in which it appears in the DOM.

    The takeaway is to always structure information in the correct order in the DOM, then ensure that visual presentations (at all widths) convey that order. The author doesn’t want us to leave with the feeling that flexbox is “dangerous”, but that it is powerful and that screen reader testing is essential.


    The Monarch could be the next big thing in Braille

    A collaboration project between HumanWare and the American Printing House for the Blind (APH) has resulted in the Monarch: a “multipurpose” Braille device.

    Refreshable Braille displays have existed for years, but have been expensive, slow to refresh, and fragile. A new “braille pin mechanism” created by startup Dot has been incorporated into the design: these pins are individually replaceable and are much faster to raise.

    APH partnered with over 30 international organisations to create a new electronic braille standard, called eBRF. “This will provide additional functionality to Monarch users including the ability to jump page to page (with page numbers matching the print book pages numbers), and the ability for tactile graphics directly into the book file, allowing the text and graphics to display seamlessly on the page.”

    The author notes that the graphical capability is “a serious leap forward”. It will now be possible for braille readers to pull up a visual of a graph, animal, letter or number shape, allowing the consumption of simple graphics. From APH.org:

    The Monarch is approximately 4.5 pounds and the size of a 15-inch gaming laptop. The device features an 8-dot braille keyboard, zoom in/out buttons, direction pads, up/down arrow buttons, and a 10 line by 32 cell refreshable braille display, which is capable of rendering multiple lines of braille and tactile graphics with equidistant pins. This technology will bridge the educational gap for students along with the development of a new dynamic file type that will bring braille and graphics together in a navigable file.

    The Monarch is not currently available to purchase. You can sign up to product updates on the website above.


    What it’s really like to be openly disabled in an interview process:

    This Medium article is written by Mal: a “multi-disciplinary designer + artist, storyteller, neurodivergent (autist + adhd); she/they”. She shares three interview experiences, two positive and one negative.

    The first was for an interview last September, in which Mal received the interview questions in advance. Though she didn’t get the job, “the interview went well, I said exactly the stories I wanted to say to each question, and was only a normal level of anxious the whole time”.

    The second was the interview for her current job, where she didn’t ask for the questions in advance. She realised halfway through the Zoom call that she was unable to process anything, and told the interviewers what was happening. She asked to follow up and answer the rest of the questions in an email that day. She got the job offer, and given the interview proces was so inclusive, she felt that working there would be a similar experience, so accepted.

    The negative experience Mal had concerns an interview somewhere else, where Mal asked for either the questions a day or two in advance, or the opportunity to submit written responses (with a virtual follow-up meeting to meet face to face). The HR person phoned Mal out of the blue and asked her if she had anything official to send that could ‘prove’ her autism.

    Mal offered to send a diagnosis assessment from her psychologist, but that it would not explain how she is at work or why she needs these specific accommodations. The HR person followed up and asked Mal to get her doctor to fill out an accommodation form.

    Mal ultimately didn’t go through with it. Where Mal lives, doctors would charge around $100 for such a request. Mal would have to find a way to print the form without owning a printer, and would have to spend half an hour on hold to make an appointment, and would have to schedule an appointment that fits within her existing work schedule, and would have to explain to the GP what is needed and hope the GP fills in the form correctly. All for a form she would only use once, given its specific nature tied just to this job application. And all just to participate in the interview process.

    Don’t be like this HR person.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 150

    Your weekly frequent11y newsletter, brought to you by @ChrisBAshton:

    Face-off: Should kit colours be catered to colour-blind fans?

    Anyone who’s ever played FIFA on a game console will at some point have ended up playing a game where both sides have really similar looking kits. It becomes difficult to know who you can pass to, and makes the game less enjoyable.

    This is an issue faced by the large portion of sports viewers who are colour blind, and consequently, the 2027 Rugby World Cup will be the first that bans red-green kit clashes.

    This article from RugbyWorld.com shares an opinion-piece from two enthusiasts. The first is in favour of the move, for obvious reasons. The latter is against it, favouring the idea of a ‘home kit’ and an ‘alternative white kit’, which would solve the problem in a different way. He argues that “turning out in the colour of your nation matters”.

    I think the announcement is a positive move for accessibility, but it’s interesting to think about the different ways the issue can be tackled.


    Accessible front-end components: claims vs reality

    Hidde de Vries shares his tips for finding accessible components, warning that many components that claim to be “accessible” actually aren’t. Hidde’s checklist:

    • How did they test? A component’s website should ideally explain how a component was tested, e.g. perhaps only automated tests have been run and you should do some further testing before choosing it. Try to find specifics around exactly what version of WCAG they claim to be valid against, for example.
    • Who did they test with? Accessibility isn’t just about technology, it’s about making sure a pattern works for people with disabilities. Did the developers specifically include people with disabilities, in their testing?
    • Are they open about the pros and cons of their approach? It’s a good sign if the developer is open about this, as many components aren’t one-size-fits-all.
    • Who created them? Hidde puts extra trust in components developed by organisations that work in accessibility or work for the public good.
    • Look at GitHub issues – their presence could be a warning sign.
    • Find out about commitment – are they proactive or reactive in their component’s development?

    Brief Note on Buttons, Enter, and Space

    An interesting article by Adrian Roselli, sharing something I didn’t know:

    A native <button> fires on key down when that key is Enter. If you hold down the Enter key, it continues to fire for as long you hold Enter (or something crashes).

    A native <button> fires on key up when that key is Space. If you do not release the Space, and also press Tab to move away from the control, the control will not fire.

    These can blow up once a screen reader is in play. If you run Narrator/Edge, pressing Space is the same as pressing Enter, but holding either down does not repeatedly fire the event. NVDA/Firefox and JAWS/Chrome treat Space as Enter — fires on key down and holding it down continues to fire. The Windows screen readers all intercept the event, so you cannot listen for which key was pressed in your page. VoiceOver/Safari/macOS behaves as if VO was not running, and (in my script) the keyboard events are captured.

    …and that’s pretty much the whole article! There’s also an interactive example so you can try it out for yourself. The TLDR is to be careful when trying to re-implement native browser behaviour in your custom components, and consider the nuance of the different keys, to support your powerusers.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 149

    After a few weeks off, the frequent11y newsletter has returned!

    A Practical Approach to Automated Accessibility

    Mark Steadman writes a mini series on automated accessibility. In this introductory article, Mark introduces his three-step plan for introducing automated accessibility checks into your pipeline:

    1. Phase 1: Linting
      • Linting is a quick and easy step for catching issues by statically analysing source code.
      • In his subsequent article, Mark recommends axe Accessibility Linter that enforces around 30 accessibility rules. He also recommends webhint and HTML Validate.
      • Mark claims that linting is expected to catch around 20-25% of accessibility issues: basic ones such as images missing the alt attribute.
    2. Phase 2: Automated Accessibility Libraries
      • You can add a library such as axe-core or pa11y into your pipeline, configuring it with a list of routes to visit. The library will perform some general accessibility checks on your application at runtime, as opposed to just looking at the source code. This can catch contextual issues such as a piece of text having poor colour contrast against its background.
      • In Mark’s accompanying article, Automated Accessibility Part 2: Mobile Web Testing, Mark elaborates on how to configure these libraries to run against responsive views of your application. For example, you can run pa11y against the ‘mobile’ view of your application by pairing it with a browser emulator tool such as Cypress.
    3. Phase 3: Accessibility Regression
      • Mark’s final phase of automation is to create “regression tests”. These are specific, accessibility-focused unit tests, written in code. For example, you can write a test that checks that aria-expanded is being properly set every time a user clicks on an expand/collapse section.
      • Mark builds on this in his article, Automated Accessibility Part 3: Regression Tests, which builds on the Cypress automation of the previous article and shows example code for interacting with the page and asserting conditions.

    There are a lot of different testing approaches and tools out there, so having a three phase plan for testing is a useful way to make the process less daunting.


    The Surprising Truth About Pixels and Accessibility

    Josh Comeau dispels the myths around using px, rem and em in your designs. He introduces these with no assumed knowledge, gradually explaining when to use each one, using inline interactive examples to aid learning. It’s really worth checking out.

    My takeaways:

    1. A reminder that px doesn’t actually map to hardware pixels, but it’s the most concrete measurement we have.
    2. There are two main ways a user can make the text on their screen bigger: “zooming” ( + + on MacOS, ctrl + + on Windows/Linux), or “font scaling” (changing the browser’s default font size).
    3. When deciding whether to use pixels or rems, ask “Should this value scale up as the user increases their browser’s default font size?” If yes, use rem, if no, use px. So you’d use rem for text, but you might use px for borders or padding.
    4. Josh recommends using rem over em due to em‘s compounding issues (making it hard to predict what size an element actually ends up being). An exception is for the margins of headings and paragraphs, for which Josh uses em.

    It gets more complicated: should you use px or rem in your media queries? The answer is rem. If a user has increased their default font size, the available space is reduced, so they’re more likely to need your ‘mobile’ view. Using a rem-based media query such as @media (min-width: 50rem) means a user who increases their default text size will need a bigger screen to get the non-mobile styles. (If a user sets their default text size to 32px, this is “double the standard text size” and means that “50rem will now be equal to 1600px instead of 800px”).

    Josh goes into more examples. Be careful when using rem to define button sizes, as declaring something like width: 15rem could mean the button becomes too large for its container. You can combine this with max-width: 100% to prevent the overspill. Similarly, use min-height as opposed to height.

    Josh ends the article by discussing the numerous ways you can manage your rem size to px conversions, e.g. through defining a 62.5% base font size, using calc, or leveraging CSS variables.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.

  • week11y issue 148

    It’s been a little while since my last week11y, partly because Mailchimp have recently upped their prices, meaning I’m no longer within the free tier. I’ve been procrastinating moving to a different provider, but will give that some more thought. I’ll also be on annual leave for a while now, so you won’t hear much more from me until June.

    With that out of the way, onto this week’s issue!

    Washington Post Design System

    The world is divided into people who like perusing design systems, and those who don’t. I actually fall into the latter category – I find that these systems require a lot of time sunk into them, and often just reinvent the wheel – but even so, here’s the Washington Post version.

    It’s worth a quick click through to see the accessibility checklist, the screen reader shortcuts, and the pretty comprehensive overview of alt text (from a technical implementation and content writing perspective).


    10 Ways Designers and Researchers Can Meaningfully Engage With Disabled People in 2023

    A thought-provoking article with some really useful takeaways.

    Some tips are practical/logistical:

    • Bring disabled people into your process “from the very beginning”, before you’ve locked in your design problem or research questions. Doing so allows you to make the best use of these community members, allowing them to lend their expertise and be true collaborators, rather than just ‘rubber-stamping’ your design.
    • Offer remote and asynchronous participation. “Can you offer to do interviews over instant messaging or email? Can you run a focus group on Slack or Teams chat? Can you provide workshop materials and interview questions in advance so that your participants have extra time for cognitive processing?”
    • Consider what changes you can make to properly reward your participants.

    Others are a change in mindset:

    • Reframe your design thinking: instead of “designing for” trust, you should “design against” abuse and exploitation. “Designing against” helps to avoid feature creep and lets you focus on just “the structural factors that are really, materially shaping those problems”.
    • “Be Deliberate About How You Categorize / Segment Disability”, i.e. instead of asking “what kind of disability do you have?”, ask “which of these things are difficult or inaccessible for you?”. Understand that some people don’t yet have a medical diagnosis for their disability. Ask about barriers and difficulties rather than disabilities.
    • Related: how should you hire disabled people in the first place? Traditional networking and going through large-scale disability charities is not inclusive, says the author. Instead, they propose hiring “a couple of disabled people as outreach coordinators”: people who are “politically engaged enough to be connected to small grassroots organizations, to be aware of current and ongoing issues within disability communities and how those need to be reflected in design research questions and recruitment profiles for research participants”.
    • There are also sections in the article about “thinking about power”, stopping “ignoring invisibilized disability”, and “thinking about accessibility in terms of time and energy, not just space and matter”.

    Progress Over Perfection: The Better Way for Communication and Accessibility Advocacy

    This article by Meryl Evans really resonates with me.

    Accessibility is big and daunting. It needs to be considered in every facet of an organisation: “HR needs to ensure the hiring and employee benefits processes are accessible. Procurement needs to ensure the company buys accessible products and services”. People will inevitably make mistakes – even Accessibility Advocates!

    Progress isn’t always a straight line – sometimes it will go backwards. They key is to get started and keep moving. You can start with something as simple as an accessibility statement on your website, giving people an avenue for reporting accessibility issues. Don’t spend years trying to perfect everything behind the scenes before launching your 100% accessible product – be iterative.

    One exception that muddies the rule a bit is the use of overlays. Whilst these have the feel of “progress over perfection”, they make your product less accessible, not more so. Better to ask companies to remove these overlays, through educating rather than berating. Meryl follows these four steps:

    1. Show gratitude for what they do right.
    2. Provide the suggestion.
    3. Explain the reason for the suggestion.
    4. End on a high note or with a thank you.

    “Progress over perfection”, and being kind, gets results.


    Did you know that you can subscribe to dai11y, week11y, fortnight11y or month11y updates! Every newsletter gets the same content; it is your choice to have short, regular emails or longer, less frequent ones. Curated with ♥ by developer @ChrisBAshton.