<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="css/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>TetraLogical Blog</title>
  <subtitle>A feed of the latest posts from the TetraLogical blog.</subtitle>
  <link href="https://tetralogical.com/feed.xml" rel="self"/>
  <link href="https://tetralogical.com/"/>
  <updated>2026-03-10T00:00:00Z</updated>
  <id>https://tetralogical.com/</id>
  <author>
    <name>TetraLogical</name>
    <email>hello@tetralogical.com</email>
  </author>
  
  <entry>
    <title>Designing for people with anxiety</title>
    <link href="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/"/>
    <updated>2026-03-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/</id>
    <content type="html"><![CDATA[
        <p>Most of us will experience anxiety at some point, sometimes triggered by a stressful moment, other times as a chronic condition. By taking thoughtful, intentional steps, we can ensure our designs at the most reduce stress, and the very least, do not contribute to or amplify it further.</p>
<h2 id="people-we-are-designing-for" tabindex="-1">People we are designing for</h2>
<figure class="inline-image__container">
  <svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
  <desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
  <ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
  <circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
  <path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
  <circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
  <circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
  <path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
  <circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
  <circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
  <path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
  <ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
  <figcaption style="text-align:center;">Thinking</figcaption>
</figure>
<p>In any form, anxiety, which is the body's response to a perceived threat, can be disruptive, overwhelming, and deeply uncomfortable. In a typical threat response, the surge of stress hormones such as cortisol and adrenaline subsides once the danger passes. But with anxiety, the “threat” is often internal; a worry, fear, or sense of uncertainty that doesn’t resolve cleanly. The body stays on high alert, and the stress response doesn’t switch off. This can leave people in a heightened state of arousal, with reduced cognitive bandwidth and fewer mental resources available for processing information, making decisions, or staying focused.</p>
<p>Like most human experiences, anxiety exists on a spectrum. For some, it can be debilitating, for others, it’s a persistent background noise. Understanding the different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> helps designers recognise why these variations matter.</p>
<h2 id="considerations" tabindex="-1">Considerations</h2>
<p>These considerations focus on reducing cognitive load, lowering stress, and creating experiences that feel calmer and clearer for everyone. It’s not a complete list, but it highlights the areas that make the biggest difference to a calmer, more supportive user experience. We also recognise that while the <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines</a> (WCAG) offer a foundation when designing for people with anxiety, they provide only partial support. We want to ensure we look beyond basic compliance when <a href="https://tetralogical.com/blog/2026/03/03/designing-for-people-with-disabilities/">designing for people with disabilities</a> and consider the more thoughtful, human-centred steps we can take in our design.</p>
<h3 id="give-people-time" tabindex="-1">Give people time</h3>
<p>It’s common for websites to place people under time pressure with visual countdowns. While timers alone can create anxiety, they can be especially overwhelming for people who are already stressed or feeling rushed. For many, that ticking clock is enough to prompt them to abandon the task entirely, or to hurry through steps and make decisions they’re not comfortable with. Ticketing websites and Two-factor authentication (2FA) flows are well-known examples: <a href="https://tetralogical.com/blog/2022/03/07/session-timeouts/">session timeouts</a> require people to act within strict time limits, regardless of how ready or at ease they feel.</p>
<p>WCAG speaks directly to this issue in <a href="https://www.w3.org/WAI/WCAG22/Understanding/timing-adjustable.html">Success Criterion 2.2.1: Timing Adjustable</a>, which states that people must be able to do at least one of the following:</p>
<ul>
<li>Turn off the timer</li>
<li>Adjust the timer</li>
<li>Extend the timer</li>
<li>Or have a timer set for over 20 hours</li>
</ul>
<p>There are exceptions, such as real-time events or essential processes. Ticketing sites often fall into these categories, but even then, strict timers can cause significant discomfort and increase abandonment rates. In short, time pressure can be deeply destabilising. Wherever possible, avoid countdowns, or provide people with meaningful control over them to ensure time limits don’t heighten anxiety or prevent people from completing important tasks.</p>
<figure>
  <img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/time-out.png" alt="Screenshot of a count down with 8:43 left and the text Time left" />
  <figcaption>Ticket-purchase interface displaying a 9-minute countdown, which may appear sufficient but can introduce pressure during a multi-step checkout process</figcaption>
</figure>
<figure>
  <img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/verification-code.png" alt="Screenshot of a text field with the label Authentication Code and the message below the field that reads If you do not receive a code, try sending again in 56 seconds" />
  <figcaption>Two-factor authentication screen displaying a verification code entry field with a 60-second timer, which may create time pressure for people retrieving the code on their mobile device</figcaption>
</figure>
<p>If you have to use time-dependent interactions, consider implementing the following:</p>
<ul>
<li><strong>Be generous with time</strong>: consider extending the time for the 2FA code and the count down for the ticket-purchase flows to give people more flexibility</li>
<li><strong>Offer the option to hide the countdown</strong>: even with ample time, the presence of a ticking timer can be stressful; allow people to hide the visible countdown, replacing it with gentler prompts such as “Your session is about to expire, request more time if needed”</li>
<li><strong>Use kind, supportive copy</strong>: reassuring language helps reduce stress; phrases like “Take your time” or “If your code expires, you can request a new one here” can make the experience feel calmer and more accommodating</li>
</ul>
<p>This approach aligns with one of the seven <a href="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/blog/2025/10/07/guide-to-the-inclusive-design-principles/">inclusive design principles</a>: <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/#:~:text=how%20things%20work.-,Give%20control,-Ensure%20people%20are">give control</a>, which emphasises that people should remain in control of their experience, and our designs should actively support that.</p>
<blockquote>
<p>Ensure people are in control. People should be able to access and interact with content in their preferred way.</p>
</blockquote>
<h3 id="limit-the-urgency" tabindex="-1">Limit the urgency</h3>
<p>Limit urgency wherever possible. Many retail and booking sites introduce UI elements that amplify a sense of pressure. Similar to countdowns, these cues can have a negative effect on people, especially those who are anxious, by prompting them to abandon the process or make decisions they don’t feel ready for.</p>
<p>For example, some shopping sites use scarcity cues by highlighting how many people have an item in their cart. Another technique is to display how popular an item is or how many offers it has received (on a bidding website). Although this information can be useful, it can also feel manipulative and create unnecessary stress. For people who experience anxiety, these urgency cues can rush them into decisions or push them away entirely, without giving them the space they need to think comfortably.</p>
<figure>
  <img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/urgent-pricing-etsy.png" alt="A screenshot of an items price that contains the text Only 8 left and in 20+ baskets, as well as the price Now £44.11" />
  <figcaption>A site that shows how many items remain in stock and how many people have the product in their cart in order to create a sense of urgency when shoppers consider a purchase.</figcaption>
</figure>
<p>This aligns with the Inclusive Design Principle of <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/#:~:text=just%20technically%20accessible.-,Consider%20situation,-People%20use%20your">consider situation</a>, but ironically in reverse. In practice, many products and services exploit these situations to drive faster decisions, which makes the experience less supportive and less inclusive.</p>
<blockquote>
<p>People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.</p>
</blockquote>
<h3 id="keep-interactions-predictable" tabindex="-1">Keep interactions predictable</h3>
<p>Predictable and familiar designs may not eliminate anxiety, but they won’t heighten it. People feel more at ease when interfaces conform to established patterns and follow expectations.</p>
<p>A common problem is when a pop-up takes over the entire screen but doesn’t behave as expected. The close button might appear late, be hard to see, be placed somewhere unusual, or be missing entirely. Sometimes the only way to dismiss the pop-up is to wait, click outside it, or interact with the unwanted content.</p>
<p>A related issue is the use of interactive elements styled to look like plain text. For example, a cookie banner from a retail site that occupies a third of the screen with a prominent “Accept All” button, while the “Cookie settings” option appeared as un-styled text. Because it didn’t look clickable, people may assume they have no real choice other than to &quot;Accept All&quot;. Such unexpected behaviour can increase stress, break focus, and make the experience feel less under the individual's control. It also prompts an immediate distrust of the page.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/cookie-settings.png" alt="Screenshot of cookies dialog with two interactive elements, one is clearly a black button with white text that reads Accept All, the other does not look interactive but is labelled Cookie Settings" />
<figcaption>The cookie banner includes two interactive elements: a clearly marked “ACCEPT ALL” button and a less obvious “COOKIE SETTINGS” option styled like plain text.</figcaption>
</figure>
<p>As such, keep interactions predictable by using recognisable UI conventions. For example, ensure close buttons in pop-ups and dialogs are clearly visible, focusable, and placed in the expected top-right position.</p>
<p>As well as aligning with <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/#:~:text=how%20things%20work.-,Give%20control,-Ensure%20people%20are">give control</a> from the Inclusive Design Principles, it also aligns with <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/#:~:text=to%20meet%20them.-,Be%20consistent,-Use%20familiar%20conventions">be consistent</a>, a principle that highlights the importance of using familiar conventions so that people can navigate with confidence, relying on what they already know rather than being forced to learn novel patterns.</p>
<blockquote>
<p>Use familiar conventions and apply them consistently.</p>
</blockquote>
<h3 id="provide-clear-progress-updates" tabindex="-1">Provide clear progress updates</h3>
<p>If we consider anxiety comes from uncertainty, one way to reduce it is by providing as much transparency as possible. In multi-step journeys, progress indicators are an effective way to communicate this transparency. They can show how many steps are involved and clearly highlight the current position in the process. It’s important that these indicators are accessible to everyone, including people who rely on visual indicators and people who use screen readers.</p>
<p>The goal is to create cohesive and transparent experiences that give people the information they need without overwhelming them. Providing this clarity can reduce stress, help people stay focused, and even allows them to make informed decisions, such as whether they have the time and capacity to complete a task now or should return to it later. Without this insight, people may abandon the process because they can’t judge how long it will take.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/tetralogical-progress-indicator.png" alt="Screenshot of a purple progress bar beneath three buttons: Back to start, Previous, and Next. The progress bar shows Module 4 of 26 screens, conveyed both visually and in adjacent text" />
<figcaption>A progress bar beneath the navigation controls clearly highlights that the person using completing the course is currently on Module 4 out of 26 so they understand exactly where they are.</figcaption>
</figure>
<h3 id="be-transparent-when-requesting-information" tabindex="-1">Be transparent when requesting information</h3>
<p>It’s important to explain why certain information is being requested. If someone in real life asked for your date of birth or your pronouns without context, both personal details that aren’t automatically assumed, you might feel cautious or hesitant. Forms work the same way. Offering a brief explanation reduces worry, builds trust, and reassures people that their information is being requested for a clear, legitimate purpose.</p>
<p>Equally, if you can't find a significant or convincing reason as to why you are asking for certain information, consider not asking it. This small moment of transparency can prevent already anxious people from spiralling into further anxiety about where their data is going or why it’s needed.</p>
<p>Some forms require people to have specific documents or information in order to complete them, such as proof of address or a passport. Providing people with instructions <strong>before</strong> they start a form is a simple and effective way to help them feel more prepared and in control as shown on the following Gov.uk example.</p>
<figure>
  <img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/passport-application.png" alt="Screenshot of the gov.uk passport application page with the text Before you start You'll need a debit or credit card to use this service" />
  <figcaption>The gov.uk passport application informs applicants they will need access to a debit or credit card during the application process</figcaption>
</figure>
<p>This transparency empowers people by setting clear expectations and giving them time to prepare, rather than leaving them feeling caught off guard, something that can be compounded when faced with a form time out and a need to retrieve something to finalise the form.</p>
<h3 id="give-options-to-review" tabindex="-1">Give options to review</h3>
<p>It’s important to give people the opportunity to review what they’re doing, whether that’s checking their answers in a form or confirming the details of an order. Wherever possible, avoid allowing people to submit something without a chance to review it first.</p>
<p>A good example is the card design process on an online service where people create custom cards that are sent directly to the recipient. Since the final product goes straight to someone else, it’s especially important that people can clearly see what their design will look like before submitting it. By providing a prominent “Preview” button you give people greater confidence and clarity, helping ensure they feel certain about what they’re sending.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/moonpig-preview.png" alt="Screenshot of a customise panel with a clear button in the top right corner that reads Preview" />
<figcaption>The customisation interface on a card creation website, highlighting the prominent “Preview” button located in the top-right corner of the panel</figcaption>
</figure>
<h3 id="implement-accessible-wayfinding" tabindex="-1">Implement accessible wayfinding</h3>
<p>Anxiety often increases the desire for control, so it’s important to assume that people want to know where they are within a complex website or process, and have the ability to orient themselves easily. Accessible wayfinding helps people understand their current location, the options available to them, and how to navigate to their next step.</p>
<p>The type of wayfinding you use depends on the depth and complexity of your website or application. While not all approaches are necessary, several can be highly beneficial.</p>
<h4 id="breadcrumbs" tabindex="-1">Breadcrumbs</h4>
<p>A series of links that show people their location within a website’s hierarchy and allow them to navigate between levels. Often used when there is a deep hierarchy. Typically, the last item represents the current page, though it may sometimes be omitted.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/breadcrumbs.png" alt="Screenshot of breadcrumbs navigation containing the links Home, Home Furniture and Storage, Home furnishings, Curtains blinds and shutters and Curtain tracks" />
<figcaption>Breadcrumb navigation on a website showing a path from Home to Shutters & curtain tracks</figcaption>
</figure>
<h4 id="navigation" tabindex="-1">Navigation</h4>
<p>Usually presented as a horizontal or vertical set of links, navigation helps people understand the main sections of a website and move between them with ease.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/navigation-b-n-q.png" alt="A screenshot of the B and Q navigation links. 12 columns with the painting and decorating links expanded" />
<figcaption>An expanded avigation menu showing 12 sections, with the “Painting and Decorating” section expanded to reveal its multiple subcategories, illustrating the site’s product depth and structure</figcaption>
</figure>
<h4 id="search-functionality" tabindex="-1">Search functionality</h4>
<p>On large, complex websites, such as retail or news sites, search allows people to quickly locate specific content by entering keywords and filtering results. It provides a fast, direct path to the information needed</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/10/designing-for-people-with-anxiety/product-search.png" alt="Screenshot of b and q product search field" />
<figcaption>The search field allows people to search for items across the site</figcaption>
</figure>
<h2 id="resources" tabindex="-1">Resources</h2>
<ul>
<li><a href="https://www.tpgi.com/a-web-of-anxiety-accessibility-for-people-with-anxiety-and-panic-disorders-part-1/">A web of anxiety: accessibility for people with anxiety and panic disorders, Part 1 - TPGI</a></li>
<li><a href="https://www.tpgi.com/a-web-of-anxiety-accessibility-for-people-with-anxiety-and-panic-disorders-part-2/">A web of anxiety: accessibility for people with anxiety and panic disorders, Part 2 - TPGI</a></li>
<li><a href="https://toddl.dev/posts/the-architecture-of-anxiety-and-shame-part-one/">The architecture of anxiety and shame - Todd Libby</a></li>
<li><a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/">Guide to the Inclusive Design Principles</a></li>
<li><a href="https://d28j9ucj9uj44t.cloudfront.net/uploads/2021/09/Designing_for_accessibility7.pdf">Designing for users with anxiety PDF - UK Home Office</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Designing for people with disabilities</title>
    <link href="https://tetralogical.com/blog/2026/03/03/designing-for-people-with-disabilities/"/>
    <updated>2026-03-03T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2026/03/03/designing-for-people-with-disabilities/</id>
    <content type="html"><![CDATA[
        <p>At the heart of inclusive design are people. Not technology, and not standards. Technology is what people use, and standards provide a foundation for access, but inclusive design is shaped by real use, not rule sets.</p>
<p>Regardless of your role, whether you are a content, visual, interaction, or user experience designer, your job is to create meaningful experiences for everyone, including people with different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disabilities</a>. This applies to all kinds of interface, from websites and apps to kiosks, <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">extended reality (XR)</a>, <a href="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/">smart TV interfaces</a>, voice interfaces, and wearables.</p>
<p>Meeting the <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines (WCAG)</a> is part of that responsibility, but not all of it. After all, it’s people who use your product, not guidelines.</p>
<p>Here are a few considerations to underpin your design process and support more intentional, inclusive design.</p>
<h2 id="design-for-people-not-standards" tabindex="-1">Design for people not standards</h2>
<p>Starting with people changes the kinds of decisions teams make. Inclusive design is not just about implementing requirements correctly, but about shaping outcomes that work for how people think, move, see, hear, and process information in real contexts.</p>
<p>WCAG provides the <a href="https://tetralogical.com/blog/tag/foundations/">foundations</a>, but compliance alone cannot define good design. Interfaces are used by different people, in different ways, and in different situations, and no set of guidelines can account for all of that complexity.</p>
<p>One way to broaden design thinking is to use the <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/">Inclusive Design Principles</a>.  These are not a set of requirements to comply with. Instead, they help teams clarify design intent and think through decisions that sit outside implementation guidance. WCAG focuses on how to implement things like colour contrast, text alternatives, and keyboard access. The Inclusive Design Principles focus on what to design in the first place, from choosing appropriate features to shaping user journeys and interactions around real people’s needs.</p>
<p>For example, WCAG can tell you how to make a complex multistep form accessible. Design intent asks whether that complexity is necessary at all, whether steps can be reduced, or whether the task should be supported differently.</p>
<h2 id="recognise-that-disability-is-not-a-set-of-edge-cases" tabindex="-1">Recognise that disability is not a set of edge cases</h2>
<p>There are no absolutes in human experience. This is true across different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disabilities</a>, and even more so in how people interact with products and services.</p>
<p>What works well for one person may be confusing, tiring, or frustrating for another. Disabilities vary not only by type, but by severity, context, environment, and circumstance, all of which shape how someone experiences an interface at a given moment.</p>
<p>Take <a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Steve</a>, a London-based photographer who is both deaf and has low vision. His experience is different from someone who is only deaf or only has low vision. Having multiple disabilities shapes how he perceives and navigates the world, and how he interacts with digital products using particular combinations of <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technology and adaptive strategies</a>.</p>
<p>For Steve, design decisions that reduce reliance on hearing or fine visual detail can make a significant difference. Using the example of a multistep form again, clear visual feedback, predictable progression, and instructions support easy completion. By contrast, forms that depend on subtle visual cues, low-contrast overlays, or toasts can quickly become frustrating or inaccessible.</p>
<p>These design choices benefit everyone. They improve clarity and usability for everyone, not only people with disabilities.</p>
<figure>
<img src="https://tetralogical.com/blog/2026/03/03/designing-for-people-with-disabilities/photo-steve-1.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing side on as he holds his camera up to his face looking focused" />
<figcaption>Steve, a poet and photographer who is hard of hearing and has low vision, "Accessibility means I can confidently plan travel and enjoy an audiobook through my hearing aids using an app".</figcaption>
</figure>
<h2 id="use-design-considerations-that-support-multiple-disabilities" tabindex="-1">Use design considerations that support multiple disabilities</h2>
<p>The good news is that while disability is not a fixed or uniform experience, many needs overlap. As such, design considerations that work for someone with low vision, can also work for someone with reading disabilities or who is colour blind.</p>
<p>Here are just a few design considerations that support multiple types of disability:</p>
<ul>
<li><strong>Clear and predictable journeys:</strong> user flows that make it obvious works for people who are blind as much as they do for people with cognitive disabilities or anxiety</li>
<li><strong>Meaningful feedback:</strong> confirming that an action has succeeded, failed, or is still in progress helps people with low vision, cognition, or reading disabilities who may miss subtle changes or audio cues</li>
<li><strong>Easy error prevention and correction:</strong> making it easy to avoid, correct, or recover from errors benefits people who may struggle with precision, focus, or confidence, including people who rely on a keyboard or don't use a mouse, as well as people who have cognitive or reading disabilities</li>
</ul>
<p>Designing inclusively is also a form of future-proofing. Situational and temporary disabilities affect all of us at some point, whether it’s using a phone in bright sunlight, typing one-handed while holding a baby, using a mouse with an injured hand, or trying to complete a form when tired.</p>
<h2 id="include-people-with-disabilities-in-the-design-process" tabindex="-1">Include people with disabilities in the design process</h2>
<p>There is no substitute for feedback from real people. WCAG assessments are essential for identifying technical accessibility issues, but they cannot show how an experience actually feels to use. Only people can tell you where something is confusing, exhausting, anxiety-inducing, or difficult to use.</p>
<p>Involving people with disabilities early and throughout the design process surfaces barriers that automated tools and compliance checks will never detect, such as unclear journeys, misleading feedback, or interactions that technically pass but are hard to use in practice.</p>
<p>Our inclusive user research series explores how to do this well with guidance on:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/">Recruiting participants</a></li>
<li><a href="https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/">Building rapport</a></li>
<li><a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">Moderating sessions</a></li>
<li><a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">Analysing findings</a></li>
</ul>
<h2 id="build-accessibility-into-the-design-process" tabindex="-1">Build accessibility into the design process</h2>
<p>Accessibility fails most often when it is treated as something to fix later. When it is built into the design process from the start, teams make better decisions earlier, avoid rework, and reduce the risk of shipping experiences that technically pass but are hard to use.</p>
<p>Embedding accessibility from planning through research, design, and delivery makes it part of how work gets done, not an extra step at the end. <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">Accessible design systems</a> play a key role here by locking in inclusive decisions, reducing duplication, and making accessible patterns the default rather than the exception.</p>
<p>Building accessibility into the design process saves time and cost over the long term, but just as importantly, it builds a <a href="https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/">culture of accessibility</a> where inclusive design is expected, understood, and sustained.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/services/usability-testing/">usability testing</a> at TetraLogical and how people with disabilities <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browsing the web using assistive technologies</a> experience the web.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessible building blocks for the web videos</title>
    <link href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/"/>
    <updated>2026-02-06T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/</id>
    <content type="html"><![CDATA[
        <p>By applying accessibility considerations to the building blocks of your web content you can create digital products that everyone can use.</p>
<p>Our <em>Accessible building blocks for web</em> video series introduces key accessibility considerations for some of the most widely used elements on websites - from headings to images, links, buttons, and form fields.</p>
<p>Three key aspects that impact the accessibility of web elements are language, visual design, and implementation. Each video in the series shows how to apply clear language, inclusive visual design, and accessible coding to each of the building blocks.</p>
<p>We created these videos following <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a>, so they are accessible to all.</p>
<p>You can view the videos below or on the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKV_6GjmzgxqLuG9Ydgrk5QT">accessible building blocks for web playlist</a> on YouTube. You can also access the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKXqzeAwj-voWCx3ONKi-RCv">accessible building blocks for web with British Sign Language (BSL)</a> playlist on YouTube.</p>
<h2 id="headings" tabindex="-1">Headings</h2>
<p>Learn how to create headings that are easy to understand and identify for everyone, and make sense to people using screen readers.</p>
<div class="tabs" id="tabs_177362771455932">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_177362771455932_0">Video</a></li><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_177362771455932_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_177362771455932_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/sfFvBs0WcPk?si=yK-abG9dHnLDBKZe" title="Accessible building blocks for web: headings" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_177362771455932_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/Ldzbz5FnFEc?si=wejo7Qq2Xlo1Bd-9" title="Accessible building blocks for web: headings (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Four circles - one orange, one pink, one purple, and one red - and 4 purple lines fly into screen then join together to form the TetraLogical logo]</p>
<p>TetraLogical</p>
<p>[The TetraLogical logo whooshes off screen]</p>
<p>[A dark purple background appears with the title &quot;Accessible building blocks for web: headings&quot; written in large yellow font]</p>
<p>Accessible building blocks for web: headings</p>
<p>Headings give content structure and help people find information. When used effectively, they can aid navigation and improve readability. This benefits everyone, but especially people with seeing and thinking disabilities</p>
<p>[A page from the TetraLogical website containing three section headings appears. A border slowly appears around each heading, to highlight each]</p>
<p>So, how do you create headings that are easy for everybody to perceive and understand?</p>
<p>[A photograph of a young lady with Down syndrome wearing headphones and working at a laptop is displayed]</p>
<p>Clear language, a well-designed visual hierarchy, and a proper HTML structure, are all key to accessible headings.</p>
<p>[A white slide with the title &quot;Accessible headings&quot; is displayed. Three list items slowly appear on screen: &quot;Clear language&quot;, &quot;Well-designed visual hierarchy&quot;, and &quot;Proper HTML structure&quot;]</p>
<p>[The white slide is replaced by a light purple one with large, yellow text &quot;Language&quot;]</p>
<p>Language</p>
<p>Headings should clearly describe the content they introduce. Avoid vague terms like &quot;More information&quot; and use simple, familiar words.</p>
<p>[A web page containing three headings appear. The last heading is &quot;More information&quot;; an X is displayed on top of it]</p>
<p>Start with the most important words first, and keep headings brief. For example, &quot;Writing accessible headings&quot; is clearer and easier to scan than &quot;Following best practices when writing accessible headings.&quot;</p>
<p>[A drawing of a page containing the heading &quot;Following best practices when writing accessible headings&quot; and a section of content below it appears. Slowly, the text &quot;Following best practices when&quot; fades out, leaving &quot;Writing accessible headings&quot; as the section heading]</p>
<p>[The image is replaced by a red slide containing large, white text &quot;Visual design&quot;]</p>
<p>Visual design</p>
<p>When people land on a page, they often skim headings to decide what's worth reading. To make this easier, ensure headings stand out from other text, and that the heading hierarchy is easily recognisable. For example, on this page all headings are in dark purple, and different font sizes identify different heading levels.</p>
<p>[A page from the TetraLogical website is scrolled to reveal several sections of content, each preceded by a heading. Headings are large, bold, and in dark purple. Headings at different levels of the heading hierarchy have different text sizes - from larger to smaller]</p>
<p>[The web page is replaced by an orange slide containing large, white text &quot;Implementation&quot;]</p>
<p>Implementation</p>
<p>For people using screen readers, headings need to be coded properly using the HTML heading elements <code>&lt;h1&gt;</code> to <code>&lt;h6&gt;</code> in a correct order and without skipping heading levels.</p>
<p>[A white slide is displayed. Slowly, a list of six heading elements (from <code>&lt;h1&gt;</code> to <code>&lt;h6&gt;</code>) appear]</p>
<p>In this example, <code>&lt;h1&gt;</code> is used for the page main heading &quot;Our team&quot;, <code>&lt;h2&gt;</code> for the first section heading &quot;Directors&quot;, and <code>&lt;h3&gt;</code> for the first subsection heading &quot;Léonie Watson&quot;.</p>
<p>[A page from the TetraLogical website is displayed. It contains the main page heading &quot;Our team&quot; and a first section of content, followed by the sub-heading &quot;Directors&quot;, then the sub-heading &quot;Léonie Watson&quot; followed by Léonie's photo and some text. Slowly, <code>&lt;h1&gt;</code> appears next to &quot;Our team&quot;, <code>&lt;h2&gt;</code> next to &quot;Directors&quot;, and <code>&lt;h3&gt;</code> next to &quot;Léonie Watson&quot;]</p>
<p>HTML heading elements shouldn't be used for content other than headings.</p>
<p>[On the same page, <code>&lt;h4&gt;</code> appears next to the first paragraph of content after the heading &quot;Léonie Watson&quot; and an X is displayed on top of it]</p>
<p>In summary, headings that are clear, carefully designed, and properly structured, make content easier to read and understand.</p>
<p>[The web page is replaced by a white slide with the title &quot;Summary&quot; and three list items: &quot;Clear language&quot;, &quot;Well-designed visual hierarchy&quot;, and &quot;Proper HTML structure&quot;]</p>
<p>To learn more, visit tetralogical.com.</p>
<p>[The screen fades to white and the TetraLogical logo appears again, followed by the text &quot;Find out more about accessibility at tetralogical.com]</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="images" tabindex="-1">Images</h2>
<p>It's important that the information in your images is available to everyone, including people who cannot see them and use a screen reader, people who enlarge them, and people who view them in bright sunshine.</p>
<div class="tabs" id="tabs_1773627714559191">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559191_0">Video</a></li><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559191_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714559191_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/V-sZV82tq3E?si=nkKpMd5YQQUz_ev6" title="Accessible building blocks for web: images" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714559191_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/Ux6pNcmpCMQ?si=S5UtYfPFp8YVxmlu" title="Accessible building blocks for web: images (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Four circles - one orange, one pink, one purple, and one red - and 4 purple lines fly into screen then join together to form the TetraLogical logo]</p>
<p>TetraLogical</p>
<p>[The TetraLogical logo whooshes off screen]</p>
<p>[A dark purple background appears with the title &quot;Accessible building blocks for web: images&quot; written in large yellow font]</p>
<p>Accessible building blocks for web: images</p>
<p>Images are often used to convey information or evoke emotions. Many people, including those with thinking disabilities or whose first language is different from the written text, find images easier to understand than text. For others, including people who are blind and use a screen reader, images can pose issues.</p>
<p>[A page from the TetraLogical website is scrolled to reveal various images in between blocks of text]</p>
<p>So, how do you ensure your images are accessible to all?</p>
<p>[A photograph of a blind man, wearing sunglasses and sitting in front of a desktop machine]</p>
<p>Clear and accurate text descriptions, high-quality images, and a well-planned content order, all contribute to accessible images.</p>
<p>[A white slide with the title &quot;Accessible images&quot; is displayed. Three list items slowly appear on screen: &quot;Accurate text descriptions&quot;, &quot;High-quality images&quot;, and &quot;Well-planned content order&quot;]</p>
<p>[The white slide is replaced by a light purple one with large, yellow text &quot;Language&quot;]</p>
<p>Language</p>
<p>Text descriptions make images accessible to people unable to see or understand them. On the TetraLogical Blog page, the avatars of the post authors have their names as text descriptions.</p>
<p>[The &quot;Our Blog&quot; page from the TetraLogical website appears. Two blog posts are visible, and the headshots of the authors are to their left. The headshots slowly disappear to display their text descriptions: &quot;Ela Gorla's avatar&quot; and &quot;Henny Swan's avatar&quot;]</p>
<p>When writing text descriptions, focus on the purpose of the image and what it communicates in that specific context.</p>
<p>In the TetraLogical footer, a location icon indicates that the adjacent text is the company’s physical address.</p>
<p>[The TetraLogical footer is displayed; it contains a physical address, a telephone number, and an email address. An icon is displayed before each piece of information. A border slowly appears around the location icon in front of the physical address, to highlight it]</p>
<p>&quot;A purple pin icon&quot; would describe this image but wouldn't convey the same message; &quot;Address&quot; is a more accurate text description.</p>
<p>[The text &quot;A purple pin icon&quot; appears above the location pin. Soon after, an &quot;X&quot; is displayed on top of it and the text &quot;Address&quot; replaces it]</p>
<p>Keep text descriptions brief and always use simple language. &quot;Address&quot; is a simple term that most people will understand.</p>
<p>[The web page is replaced by a red slide containing large, white text &quot;Visual design&quot;]</p>
<p>Visual design</p>
<p>High quality images are easier to perceive for everybody and especially for people with low vision who enlarge them. In this example, the TetraLogical logo remains clear when zoomed in to 500%.</p>
<p>[The TetraLogical logo on the TetraLogical homepage. The browser menu is visible on screen. The + button next to &quot;Zoom&quot; on the menu is selected various times to reach 500% zoom level. The TetraLogical logo enlarges accordingly and it remains crisp at all zoom levels]</p>
<p>Vector graphics, such as Scalable Vector Graphics (or SVG), are a good choice as they don't lose quality when enlarged.</p>
<p>[The web page is replaced by an empty slide. The SVG logo and text &quot;Scalable Vector Graphics&quot; slowly appear]</p>
<p>Strong colour contrast is another important aspect of images, as it makes them easier to see in all situations, including when outside on a mobile phone.</p>
<p>[A photograph of a lady in a park, wearing sporty clothes and looking at her mobile screen in bright sunshine]</p>
<p>[The photograph is replaced by an orange slide containing large, white text &quot;Implementation&quot;]</p>
<p>Implementation</p>
<p>When coding images, remember to include the text description in their code. A common way to do this is to use the alt attribute in HTML. In this example, the alt attribute is added to the HTML code of an avatar and is given the value &quot;Photograph of Ian, with a beard and long wavy hair down to his shoulders, face on to the camera&quot;.</p>
<p>[A block of content from the TetraLogical website comprising a headshot of a man, the heading &quot;Meet Ian Pouncey&quot;, and a brief paragraph of text. An <code>&lt;img&gt;</code> element containing a <code>src</code> attribute and its value is displayed next to this content. An <code>alt</code> attribute is then added to the <code>&lt;img&gt;</code> element and is given the value &quot;Photograph of Ian, with a beard and long wavy hair down to his shoulders, face on to the camera&quot;]</p>
<p>Also, carefully consider where in the content order to place images. Images and any related information, such as related paragraphs of text or headings, should be presented in a logical order at code level.</p>
<p>On this page, while Ian's avatar visually precedes the &quot;Meet Ian Pouncey&quot; heading and related paragraph of text, it comes after them in the code. This ensures that assistive technologies such as screen readers announce the heading and paragraph of text first, providing the necessary context for the image.</p>
<p>[Two arrows appear on screen to highlight the heading and paragraph of text below Ian's headshot. Soon after, an <code>&lt;h3&gt;</code> element containing the heading and a <code>&lt;p&gt;</code> element containing the paragraph of text are displayed above the <code>&lt;img&gt;</code> element used to code Ian's headshot]</p>
<p>In summary, clear and accurate text descriptions, high-quality images, and a carefully planned content order make images accessible to everyone.</p>
<p>[The web page is replaced by a white slide with the title &quot;Summary&quot; and three list items: &quot;Accurate text descriptions&quot;, &quot;High-quality images&quot;, and &quot;Well-planned content order&quot;]</p>
<p>To learn more, visit tetralogical.com.</p>
<p>[The screen fades to white and the TetraLogical logo appears again, followed by the text &quot;Find out more about accessibility at tetralogical.com]</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="links" tabindex="-1">Links</h2>
<p>Discover how to write and design links that are easy to understand, identify, and select for all; and how to code them so they work with all input devices.</p>
<div class="tabs" id="tabs_1773627714559671">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559671_0">Video</a></li><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559671_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714559671_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/zPClA5GeYG8?si=S6HdT1Wsyq-aAQ3d" title="Accessible building blocks for web: links" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714559671_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/SBcC7XpIttM?si=I5m0NRRZeK7XoWYz" title="Accessible building blocks for web: links (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Four circles - one orange, one pink, one purple, and one red - and 4 purple lines fly into screen then join together to form the TetraLogical logo]</p>
<p>TetraLogical</p>
<p>[The TetraLogical logo whooshes off screen]</p>
<p>[A dark purple background appears with the title &quot;Accessible building blocks for web: links&quot; written in large yellow font]</p>
<p>Accessible building blocks for web: links</p>
<p>Links are an essential part of any website. They connect information, guide people through content, and make digital journeys possible.</p>
<p>[A page from the TetraLogical website is scrolled to reveal various links within blocks of text]</p>
<p>So, what makes links easy for everybody to perceive, understand, and operate?</p>
<p>[A photograph of a woman with a prosthetic arm using a laptop is displayed]</p>
<p>Accurate text, a clear visual appearance, and proper coding, are all key to accessible links.</p>
<p>[A white slide with the title &quot;Accessible links&quot; is displayed. Three list items slowly appear on screen: &quot;Accurate text&quot;, &quot;Clear visual appearance&quot;, and &quot;Proper coding&quot;]</p>
<p>[The white slide is replaced by a light purple one with large, yellow text &quot;Language&quot;]</p>
<p>Language</p>
<p>People should be able to understand where a link will take them simply by reading its text. So links must be clear, accurate, and descriptive.</p>
<p>The &quot;Our vision&quot; section on the TetraLogical homepage includes a link to the &quot;About TetraLogical&quot; page. The link text &quot;Learn more about us&quot; clearly and accurately describes its destination content.</p>
<p>[A section of content with the heading &quot;Our vision&quot; is displayed. A link &quot;Learn more about us&quot; is at the end of the section. As the voiceover mentions it, the link is zoomed in and out, to attract attention]</p>
<p>&quot;Learn more&quot; on its own would not be accurate enough.</p>
<p>[The link &quot;Learn more about us&quot; is replaced by the link &quot;Learn more&quot;. An &quot;X&quot; icon is displayed on top of it]</p>
<p>Avoid using URLs as link text as they are more difficult to read and process for everybody, and may not make sense when read aloud by screen readers.</p>
<p>[The link &quot;Learn more&quot; is replaced by the link &quot;Learn more about us: https://tetralogical.com/about/&quot;. An &quot;X&quot; icon is displayed on top of it]</p>
<p>[The web page is replaced by a red slide containing large, white text &quot;Visual design&quot;]</p>
<p>Visual design</p>
<p>Links should be easy to recognise for all sighted people, including people with low vision or colour blindness.</p>
<p>Usually, links are in a different colour from adjacent text.</p>
<p>[A section of content on a dark purple background is displayed. It contains a white heading &quot;Our team&quot;, a line of white text, 16 small avatars one next to the other, another line of white text, and a yellow link &quot;Meet the team&quot; below it. Two arrows appear: one points to the yellow link, the other to the white text above it]</p>
<p>When choosing the colour of your links, ensure it has a good contrast with the background colours so it's easy to identify.</p>
<p>For example, the yellow &quot;Meet the team&quot; link on this page has a strong contrast with the purple background.</p>
<p>[The &quot;Meet the team&quot; link is zoomed in and out to attract attention]</p>
<p>A minimum contrast ratio of 4.5:1 is recommended.</p>
<p>[The text &quot;4.5:1&quot; is displayed on screen]</p>
<p>Also, include another visual cue to help identify your links, such as underlining them. This ensures they’re clear to people who can’t see colour differences.</p>
<p>Both an underline and an arrow icon in front of the text &quot;Meet the team&quot; identify it as a link.</p>
<p>[Two arrows appear: one points to the underline under the link &quot;Meet the team&quot;, the other to the arrow icon in front of it]</p>
<p>Finally, make link target areas as large as possible so they’re easier to select for people with limited dexterity.</p>
<p>[A border appears around the &quot;Meet the team&quot; link to show its target area]</p>
<p>For links that are not inline, a minimum target area of 44 x 44 pixels is recommended.</p>
<p>[The text &quot;44 by 44 pixels&quot; is displayed on screen]</p>
<p>[The web page is replaced by an orange slide containing large, white text &quot;Implementation&quot;]</p>
<p>Implementation</p>
<p>When coding links, consider how you can best support keyboard and other assistive technologies.</p>
<p>The easiest and most reliable way to code accessible links is to use an <code>&lt;a&gt;</code> element with an <code>href</code> attribute.</p>
<p>[A section of content with the heading &quot;About TetraLogical&quot; is displayed. Three links - &quot;Our team&quot;, &quot;Our impact&quot;, and &quot;Our UX Network&quot; - are at the end of the content. The line of code <code>&lt;a href=&quot;/about/team/&quot;&gt;Our team&lt;/a&gt;</code> appears next to the &quot;Our team&quot; link]</p>
<p>This ensures links can be reached and activated with a keyboard or voice commands, and are announced as &quot;link&quot; by screen readers.</p>
<p>[As the voiceover says &quot;are announced as 'link' by screen readers&quot;, the text &quot;link&quot; appears on screen]</p>
<p>In summary, accurate and descriptive links that are easy to recognise and coded with care help everyone navigate with confidence.</p>
<p>[The web page is replaced by a white slide with the title &quot;Summary&quot; and three list items: &quot;Accurate text&quot;, &quot;Clear visual appearance&quot;, and &quot;Proper coding&quot;]</p>
<p>To learn more, visit tetralogical.com.</p>
<p>[The screen fades to white and the TetraLogical logo appears again, followed by the text &quot;Find out more about accessibility at tetralogical.com]</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="buttons" tabindex="-1">Buttons</h2>
<p>Ensure the buttons on your website are accessible to everyone by giving them a descriptive label and an appropriate visual appearance, and by including all necessary information on their functionality in the code.</p>
<div class="tabs" id="tabs_1773627714559609">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559609_0">Video</a></li><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559609_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714559609_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/6oahg1TbDi8?si=eKspzbR-gsX740Nt" title="Accessible building blocks for web: buttons" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714559609_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/yRHHuAXvvQ4?si=tqUXXer44hf25ntv" title="Accessible building blocks for web: buttons (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Four circles - one orange, one pink, one purple, and one red - and 4 purple lines fly into screen then join together to form the TetraLogical logo]</p>
<p>TetraLogical</p>
<p>[The TetraLogical logo whooshes off screen]</p>
<p>[A dark purple background appears with the title &quot;Accessible building blocks for web: buttons&quot; written in large yellow font]</p>
<p>Buttons on websites enable people to take action, from adding items to a shopping cart, to updating content, or submitting a form.</p>
<p>[Three sections of content from different websites appear on screen, one after the other. Each contains a button: an &quot;Add&quot; button at the end of a product tile, a &quot;Show 61 products&quot; button at the end of a filtering panel, and a &quot;Subscribe&quot; button at the end of a form]</p>
<p>It’s important that buttons on your website work for everyone. This includes people who use a keyboard, voice input or screen reader, people who rely on good colour contrast to read text, and people with limited dexterity</p>
<p>So, how do you make buttons accessible to all?</p>
<p>[A photograph of two men talking while sitting at a table in front of a laptop. One man is blind, one man has short arms]</p>
<p>Descriptive labels, a distinctive visual presentation, and mindful coding, are all key to accessible buttons.</p>
<p>[A white slide with the title &quot;Accessible buttons&quot; is displayed. Three list items slowly appear on screen: &quot;Descriptive labels&quot;, &quot;Distinctive visual presentation&quot;, and &quot;Mindful coding&quot;]</p>
<p>[The white slide is replaced by a light purple one with large, yellow text &quot;Language&quot;]</p>
<p>Language</p>
<p>Start by writing labels that clearly and accurately describe what your buttons do.</p>
<p>In this form on the TetraLogical website, the submit button is labelled &quot;Subscribe&quot; to make it clear that submitting the form subscribes the person.</p>
<p>[A section of content titled &quot;Subscribe to Accessibility Unlocked&quot; and containing a form is displayed. The submit button at the end of the form has the visible label &quot;Subscribe&quot;. When mentioned, the button is zoomed in and out to attract attention]</p>
<p>Labels such as &quot;Submit&quot; or &quot;Send&quot; would not be as clear.</p>
<p>[Two buttons, one labelled &quot;Submit&quot; and another labelled &quot;Send&quot; appear next to the &quot;Subscribe&quot; button. An &quot;X&quot; icon is displayed on top of each]</p>
<p>Icons can also be used on buttons and may help some people understand their functionality. For example, a down arrow icon pointing towards a flat line is commonly used for buttons that let people download files.</p>
<p>[The web page is replaced by an empty slide. A download icon slowly appears]</p>
<p>When using icons, always also include a visible text label. Without one, people using voice commands such as &quot;Click + [label]&quot; may struggle to activate buttons because there’s no clear label to reference.</p>
<p>[The text &quot;Click + [label]&quot; is displayed next to the icon, and &quot;[label]&quot; is zoomed in and out as the voiceover says &quot;because there’s no clear label to reference&quot;]</p>
<p>Icons may also be difficult for some people with seeing or thinking disabilities to see and understand.</p>
<p>Both an icon and the text &quot;Download&quot; are on a download button on YouTube, for example.</p>
<p>[A page from YouTube is displayed. A border appears around the Download button below the video player. The button label is made up of a download icon and the text &quot;Download&quot;]</p>
<p>[The web page is replaced by a red slide containing large, white text &quot;Visual design&quot;]</p>
<p>Visual design</p>
<p>Buttons offer a very different functionality from other interactive components such as links, and should have a different visual treatment.</p>
<p>Give all buttons on your website a distinctive look, so people can easily identify them as a button and not a link.</p>
<p>On the TetraLogical website, buttons have a dark purple label and a yellow background while links are underlined and have no solid background.</p>
<p>[Two sections of content from the TetraLogical website are displayed. The first section contains a &quot;Subscribe&quot; button, the second section contains an &quot;Accessibility Unlocked&quot; link. The button has a dark purple label and a yellow background; the link is purple and has an underline. When mentioned, the button and link are zoomed in and out to attract attention]</p>
<p>To ensure sighted people can read labels with ease, give them a colour that has a good contrast with the background colours; at least 4.5:1.</p>
<p>[Two arrows appear; one points to the button label, the other to the button solid background. At the same time, the text &quot;Good colour contrast&quot; and &quot;4.5:1&quot; is displayed]</p>
<p>To make it easier for people with limited dexterity to select your buttons, design a large target area. As a minimum, a target area of 44 by 44 pixels is recommended.</p>
<p>[A border appears around the button to show the target area. At the same time, the text &quot;Large target area&quot; and &quot;44 by 44 pixels&quot; is displayed]</p>
<p>[The web page is replaced by an orange slide containing large, white text &quot;Implementation&quot;]</p>
<p>Implementation</p>
<p>People must be able to reach and select buttons on a website using a mouse, a keyboard, voice commands, a screen reader, or any other assistive technology or input device.</p>
<p>If you code your buttons with the HTML <code>&lt;button&gt;</code> element, you can be sure they will be accessible to all.</p>
<p>[The same form containing the &quot;Subscribe&quot; button is on screen. The piece of code <code>&lt;button type=&quot;submit&quot;&gt;Subscribe&lt;/button&gt;</code> is displayed next to it]</p>
<p>If you decide to create custom buttons instead, ensure they're keyboard accessible and are announced as &quot;button&quot; by screen readers.</p>
<p>[The piece of code disappears and, as the voiceover says &quot;are announced as 'button' by screen readers&quot;, is replaced by the text &quot;button&quot;]</p>
<p>You can use the <code>tabindex</code> attribute together with some JavaScript to implement keyboard support; and the <code>role</code> attribute with a value of <code>button</code> to convey role information to screen readers.</p>
<p>[The text <code>tabindex=&quot;0&quot;</code> and <code>role=&quot;button&quot;</code> is displayed]</p>
<p>In summary, buttons with a descriptive text label, a distinctive visual appearance, and the correct semantics, are better for everyone.</p>
<p>[The web page is replaced by a white slide with the title &quot;Summary&quot; and three list items: &quot;Descriptive labels&quot;, &quot;Distinctive visual presentation&quot;, and &quot;Mindful coding&quot;]</p>
<p>To learn more, visit tetralogical.com.</p>
<p>[The screen fades to white and the TetraLogical logo appears again, followed by the text &quot;Find out more about accessibility at tetralogical.com]</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="form-fields" tabindex="-1">Form fields</h2>
<p>Apply key accessibility considerations when designing and implementing form fields - from clear labels and error messages, to good label positioning and inclusive use of colour, to appropriately associated html elements.</p>
<div class="tabs" id="tabs_1773627714559415">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559415_0">Video</a></li><li><a href="https://tetralogical.com/blog/2026/02/06/accessible-building-blocks-for-web-videos/#tabs_1773627714559415_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714559415_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/hj6wCUyGx0o?si=D3SWMxPx8on7bntA" title="Accessible building blocks for web: form fields" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714559415_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/WJGAVpdURGY?si=8RfLnFiUnC4FfSt0" title="Accessible building blocks for web: form fields (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Four circles - one orange, one pink, one purple, and one red - and 4 purple lines fly into screen then join together to form the TetraLogical logo]</p>
<p>TetraLogical</p>
<p>[The TetraLogical logo whooshes off screen]</p>
<p>[A dark purple background appears with the title &quot;Accessible building blocks for web: form fields&quot; written in large yellow font]</p>
<p>Accessible building blocks for web: form fields</p>
<p>Form fields are a vital component of many websites. They allow people to enter information and complete key tasks.</p>
<p>[A video of a form being filled in plays on screen]</p>
<p>However, if not designed and coded with accessibility in mind, they can pose serious barriers to many people including people with cognitive disabilities and people using screen readers. So, what makes form fields easy to understand and fill in for everyone?</p>
<p>[A photograph of a young man with Down syndrome sitting in front of a laptop, wearing headphones]</p>
<p>Clear labels and error messages, well-planned label positioning, good use of colour, and properly associated HTML elements, are all key to accessible form fields.</p>
<p>[A white slide with the title &quot;Accessible form fields&quot; is displayed. Four list items slowly appear on screen: &quot;Clear labels and error messages&quot;, &quot;Well-planned label positioning&quot;, &quot;Good use of colour&quot;, and &quot;Properly associated HTML elements&quot;]</p>
<p>[The white slide is replaced by a light purple one with large, yellow text &quot;Language&quot;]</p>
<p>Language</p>
<p>Help people enter the correct information in form fields by writing clear and descriptive form labels, such as &quot;Full name (including middle name)&quot; for a field requiring a person's full legal name.</p>
<p>[A form is displayed. One of the input fields in the form is preceded by the text label &quot;Full name (including middle name)&quot;. An arrow appears on screen, pointing to the label]</p>
<p>Clearly identify required fields. For example, on this form the text &quot;required&quot; is at the end of the labels for the two input fields, as both fields must be filled in.</p>
<p>[A form titled &quot;Subscribe&quot; and containing two input fields appears. The fields are preceded by the labels: &quot;Name (required)&quot; and &quot;Email address (required)&quot;. A border appears around the &quot;required&quot; text in both labels, to highlight it]</p>
<p>For less familiar or complex forms, it may be useful to provide additional instructions. For instance, not all people may know where to find their National Insurance Number. As shown here, the instruction &quot;It’s on your National Insurance card, benefit letter, payslip or P60&quot; followed by example data may prove useful to many.</p>
<p>[A form titled &quot;Personal details&quot; is displayed. One of the fields in the form is preceded by the label &quot;National Insurance Number&quot;. The instruction &quot;It’s on your National Insurance card, benefit letter, payslip or P60. For example, QQ 12 34 56 C&quot; is in between the label and the input field. An arrow pointing to this instruction appears on screen]</p>
<p>Always use a persistent text label for each form field. Placeholder text disappears when someone starts typing, so it should never be used as a substitute for a label.</p>
<p>[A video of a form being filled in plays on screen. The fields in the form have a placeholder but no persistent label. When text is entered in each field, the placeholder disappears. A large &quot;X&quot; icon is displayed on top of the form]</p>
<p>Finally, if people enter incorrect information, explain the error clearly and simply, and offer guidance on how to fix it.</p>
<p>In this form, when a policy number in an incorrect format is entered, the error message &quot;This doesn't look right. Your policy number starts with EGA or AGL, followed by 6 numbers&quot; is displayed above the field.</p>
<p>[A form titled &quot;About you&quot; is displayed. The form contains a &quot;Policy number&quot; input field. A string of six digits has been entered in the field. A red exclamation mark icon and the red text &quot;This doesn't look right. Your policy number starts with EGA or AGL, followed by 6 numbers&quot; are in between the label and the form field. An arrow pointing to the error message appears on screen]</p>
<p>[The web page is replaced by a red slide containing large, white text &quot;Visual design&quot;]</p>
<p>Visual design</p>
<p>When designing forms, place labels where people expect to find them. Labels are usually above input fields and combo boxes, and to the right of radio buttons and checkboxes.</p>
<p>[A form titled &quot;Registration form&quot; is displayed. The form contains three input fields, a group of three radio buttons, and a checkbox. Arrows pointing to the labels of all fields appear to highlight the label positioning: above the input fields and to the right of the radio buttons and checkbox]</p>
<p>Keeping labels close to their fields helps everyone, especially people enlarging the content.</p>
<p>[The same form, enlarged. The first two input fields take up the whole screen. The labels sit very close to the input fields]</p>
<p>Also, carefully plan how to use colour in your forms.</p>
<p>Never use colour alone to identify fields that are required or in error. In this form, the field in error is identified by a red border and a red label, as well as an exclamation mark icon and a text error message above the field. This makes it easy for everyone to recognise there is an error.</p>
<p>[A form titled &quot;Personal details&quot; is displayed. The form contains a &quot;Phone number&quot; input field where a string of six digits has been entered. The label &quot;Phone number&quot; and the border of the input field are red, and a red exclamation mark icon followed by the red text &quot;Please enter a valid phone number&quot; are in between the label and the form field. Four arrows appear on screen to direct attention to the label, the form field border, the exclamation mark icon, and the red error message]</p>
<p>And make it easy for all to see form fields by giving their border a colour that has a good contrast with the adjacent colours, at least 3:1.</p>
<p>[A form titled &quot;Subscribe&quot; and containing two input fields is displayed. An arrow appears on screen to draw attention to the border of the first form field. The text &quot;3:1&quot; slowly appears on screen]</p>
<p>In this example from the TetraLogical website, the grey border of the input fields has a contrast ratio of 8.9:1 with the light violet background.</p>
<p>[The same Subscribe form is on screen. The Colour Contrast Analyser (CCA) tool appears next to it, showing a contrast ratio of 8.9:1 between the grey colour #444444 used for the border of the form fields and the light violet colour #F6F3F8 used for the background]</p>
<p>[The web page is replaced by an orange slide containing large, white text &quot;Implementation&quot;]</p>
<p>Implementation</p>
<p>By using HTML native controls such as <code>&lt;input&gt;</code>, <code>&lt;textarea&gt;</code>, <code>&lt;select&gt;</code> and so on, you can easily create form fields that are keyboard accessible and are recognised as expected by screen readers.</p>
<p>[The text &quot;HTML native controls&quot; is displayed at the centre of the screen. The text <code>&lt;input&gt;</code>, <code>&lt;textarea&gt;</code>, and <code>&lt;select&gt;</code> appear around it, as they are mentioned]</p>
<p>Next, you should ensure that form fields and labels are correctly associated in the code.</p>
<p>[The Subscribe form from the TetraLogical website is on screen again. A border is displayed around the first input field and its label &quot;Name (required)&quot;, to highlight them. To the right of the form, the piece of code <code>&lt;label&gt; Name (required) &lt;/label&gt; &lt;input type=&quot;text&quot;&gt;</code> is displayed]</p>
<p>A simple way to do so is using the <code>id</code> and <code>for</code> attributes.</p>
<p>[The <code>for</code> attribute with the value &quot;name&quot; appears within the <code>&lt;label&gt;</code> element and the <code>id</code> attribute with the same value &quot;name&quot; appears in the <code>&lt;input&gt;</code> element]</p>
<p>This ensures that the right label for each form field is announced by screen readers. It also allows people with limited dexterity to select a field by clicking on its label, and people using voice commands to select it by reading out the label.</p>
<p>In summary, by writing clear labels and error messages, choosing label placement with care, making good use of colour, and associating fields with their labels at code level, you can create forms that everyone can fill in with ease.</p>
<p>[The web page is replaced by a white slide with the title &quot;Summary&quot; and four list items: &quot;Clear labels and error messages&quot;, &quot;Well-planned label positioning&quot;, &quot;Good use of colour&quot;, and &quot;Properly associated HTML elements&quot;]</p>
<p>To learn more, visit tetralogical.com.</p>
<p>[The screen fades to white and the TetraLogical logo appears again, followed by the text &quot;Find out more about accessibility at tetralogical.com]</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you enjoyed these videos, why not explore our other video series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/">Quick accessibility tests anyone can do</a></li>
<li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">Browsing with assistive technology</a></li>
</ul>
<p>Or head to <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> to learn how we can help you achieve sustainable accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common accessibility misconceptions</title>
    <link href="https://tetralogical.com/blog/2026/01/15/common-accessibility-misconceptions/"/>
    <updated>2026-01-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2026/01/15/common-accessibility-misconceptions/</id>
    <content type="html"><![CDATA[
        <p>Our <strong>Common accessibility misconceptions</strong> series sheds light on many misunderstood aspects of accessibility.</p>
<p>Covering a range of topics from disabilities and assistive technology to implementation practices and testing tools, these posts are for anyone who wants to better understand how to build products that work for everyone.</p>
<h2 id="common-misconceptions-about-disability" tabindex="-1"><a href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/">Common misconceptions about disability</a></h2>
<p>With around 1.3 billion people in the world recognised as having a disability and many more experiencing temporary and situational disabilities, we are all likely to benefit from accessible products.</p>
<p>Explore the types of disabilities that can impact people's experience on the web, how we should think and talk about people with disabilities, and the benefits of offering inclusive products.</p>
<h2 id="common-misconceptions-about-screen-readers" tabindex="-1"><a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">Common misconceptions about screen readers</a></h2>
<p>Many people working in digital would have heard of screen readers but not all may know how they work and who uses them and how.</p>
<p>Discover what you should and shouldn't do when building products to ensure they work well for people using screen readers.</p>
<h2 id="common-misconceptions-about-wcag" tabindex="-1"><a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">Common misconceptions about WCAG</a></h2>
<p>The Web Content Accessibility Guidelines (WCAG) have been regarded as the international standards for web accessibility for over 20 years. Everyone working in digital should be familiar with its requirements and know how to meet them. However, there often still is confusion about what WCAG covers and how it should be used.</p>
<p>Explore some common misconceptions about WCAG, including what products it applies to, and what conformance level you should aim for.</p>
<h2 id="common-misconceptions-about-implementing-accessibility" tabindex="-1"><a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">Common misconceptions about implementing accessibility</a></h2>
<p>What are the best tools and practices to use to build truly accessible products? And how to make sure your products remain accessible overtime?</p>
<p>These questions are answered while while unveiling common misconceptions about AI tools, obverlays, and design systems.</p>
<h2 id="common-misconceptions-about-testing-accessibility" tabindex="-1"><a href="https://tetralogical.com/blog/2026/01/07/common-misconceptions-about-testing-accessibility/">Common misconceptions about testing accessibility</a></h2>
<p>With so many tools and methodologies available, it can be hard to know where to start when it comes to testing accessibility.</p>
<p>Explore who is responsible for accessibility testing and what the best approach is.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable Accessibility</a> and how we can help your organisation achieve long-term accessibility, or our <a href="https://tetralogical.com/services/assessments/">Assessments</a> to learn how we can help your organisation validate the accessibility of your products.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common misconceptions about testing accessibility</title>
    <link href="https://tetralogical.com/blog/2026/01/07/common-misconceptions-about-testing-accessibility/"/>
    <updated>2026-01-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2026/01/07/common-misconceptions-about-testing-accessibility/</id>
    <content type="html"><![CDATA[
        <p>Testing for accessibility is often misunderstood. Teams either overestimate what tools can do, underestimate their own role, or assume testing is something that happens once only, at completion of the development process.</p>
<p>In this post we tackle some of the most frequent misconceptions about accessibility testing.</p>
<p>With so many testing tools and methodologies available, it's not easy to know what the most effective approach for testing the accessibility of your products is. We look at some of these misconceptions and how to address them.</p>
<div class="callout" data-callout-variant="">
<p>In case you missed them, you can read the other blog posts in our <em>Common misconceptions</em> series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">Common misconceptions about screen readers</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/">Common misconceptions about disability</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">Common misconceptions about WCAG</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">Common misconceptions about implementing accessibility</a></li>
</ul>
</div>
<h2 id="misconception-1%3A-i-can-rely-on-automated-testing-tools" tabindex="-1">Misconception 1: I can rely on automated testing tools</h2>
<p>You may have come across automated tools that promise to test and identify all accessibility issues within your website or app. It can be tempting to rely solely on these tools when testing for accessibility. However, no automated tool can truly test all aspects of accessibility, no matter how expensive or advanced the tool is. The most they can test for is between 20% and 40% of accessibility requirements from the <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines (WCAG)</a>.</p>
<h3 id="accessibility-is-more-than-just-accessible-code" tabindex="-1">Accessibility is more than just accessible code</h3>
<p>Automated tools mainly focus on the code behind websites and apps. As explained in <a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">common misconceptions about WCAG</a>, accessibility is much more than accessible code. It's good visual design, inclusive multimedia, well-crafted editorial, <a href="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/">inclusive language</a> and more. Many of these are missed by automated tools.</p>
<h3 id="human-judgment-is-still-required" tabindex="-1">Human judgment is still required</h3>
<p>Many accessibility tests cannot be performed by automated tools as they require human judgment. For example, <a href="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/">can generative AI write contextual text descriptions</a> and how can a tool judge whether an error message is clear and provides useful suggestions?</p>
<p>Automated testing tools can help you quickly identify some common issues with your website or app code. However, you shouldn't rely on them alone; use them in conjunction with other testing methods, such as manual testing and <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing</a> with disabled participants.</p>
<h2 id="misconception-2%3A-it-should-be-done-at-the-end-of-development" tabindex="-1">Misconception 2: it should be done at the end of development</h2>
<p>In some organisations, accessibility testing is the sole responsibility of QA testers and it happens at the end of a product or feature development process. Issues identified this late can be difficult and costly to fix.</p>
<p>As covered in <a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">common misconceptions about implementing accessibility</a>, everyone working on a digital product is responsible for its accessibility. This includes testing against accessibility requirements at each stage of development. For example, designers should check the accessibility of their designs before sharing them with the development team; media producers and content writers should do the same with the content they create; and so on.</p>
<p>When everyone plays their role in both following accessibility guidelines and carrying out basic testing, products should present fewer issues when they reach QA.</p>
<p>Testing accessibility as early as possible and at every stage of development is key to delivering accessible products.</p>
<h2 id="misconception-3%3A-only-accessibility-specialists-can-do-testing" tabindex="-1">Misconception 3: only accessibility specialists can do testing</h2>
<p>For people new to accessibility, testing may seem a challenging and at times overwhelming. They may therefore assume that only accessibility specialists can and should do it. This isn't the case.</p>
<p>As mentioned above, everyone working in digital teams are responsible for the accessibility of products and should be able to perform some basic testing. You don't have to know all about accessibility; you should focus on those aspects of accessibility relevant to your role. Content writers, media producers, designers, and developers should all conduct a separate, specific set of tests.</p>
<p>At times, you may need the advice and expertise of an accessibility specialist, especially when working on a complex or innovative component, for example. However, most of the day-to-day testing can be performed in-house.</p>
<p>Ensure that people working in digital within your organisation have the training and tools required to perform accessibility testing. This will make it an integral part of everyone's job and will reduce your reliance on accessibility specialists.</p>
<h2 id="misconception-4%3A-i-should-test-across-all-operating-systems-(os)%2C-browsers%2C-and-assistive-technologies-(at)" tabindex="-1">Misconception 4: I should test across all Operating Systems (OS), browsers, and Assistive Technologies (AT)</h2>
<p>Digital products can be accessed across many operating systems and browsers, using different <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">types of assistive technology and adaptive strategies</a>, input devices, and built-in accessibility features. This often leads teams to assume they need to test across every possible device and combination.</p>
<p>Thankfully this is not the case. That would require a huge amount of time and money.</p>
<p>As long as products comply with accessibility standards and best practices, such as the Web Content Accessibility Guidelines (WCAG) and the <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/">Inclusive Design Principles</a>, they will work well across devices and with all technology. While you may decide to test some content, such as non-standard components, with a wide range of OSs, browsers, and ATs, this is generally not the norm.</p>
<p>When testing your products, focus on the most commonly used devices, browsers, and ATs. The <a href="https://webaim.org/projects/screenreadersurvey10/">WebAIM Screen Reader User Survey</a> is a good place to find out about screen reader usage.</p>
<h2 id="misconception-5%3A-i-can-just-ask-people-with-disabilities-for-their-feedback" tabindex="-1">Misconception 5: I can just ask people with disabilities for their feedback</h2>
<p>Watching people using a product is a great way to identify accessibility and usability issue. <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> gives teams an opportunity to place their products in front of people with a range of disabilities and get valuable insights.</p>
<p>There may also be people with disabilities in your team or across your organisation who you can reach out to for quick feedback.</p>
<p>However, relying on people's feedback alone is generally not a good approach.</p>
<h3 id="people-are-unique" tabindex="-1">People are unique</h3>
<p>We are all unique. Each of us, either with or without a disability, have our own needs and preferences, and use digital products in different ways. For example, <a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/#:~:text=Misconception%202%3A%20people%20use%20screen%20readers%20in%20the%20same%20way">not all people use screen readers in the same way</a>.</p>
<p>As discussed in our <a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">inclusive user research: analysing findings</a> post, when running user research with people with disabilities we often end up with quite different and, at times, contrasting feedback from different people. If you're not an expert in accessibility, you may easily mistake personal preferences or opinions for accessibility issues. For example, a person new to their screen reader may struggle navigating tables as they are still unfamiliar with table navigation keys; this doesn't mean there is a problem with the tables.</p>
<h3 id="some-requirements-may-be-missed" tabindex="-1">Some requirements may be missed</h3>
<p>Unless you have access to a very large panel, there is a good chance you won't be testing all accessibility requirements. For example, <a href="https://www.w3.org/WAI/WCAG22/Understanding/reflow.html">Success Criterion 1.4.10 Reflow</a> from WCAG requires that:</p>
<blockquote>
<p>Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for:</p>
<ul>
<li>Vertical scrolling content at a width equivalent to 320 CSS pixels;</li>
<li>Horizontal scrolling content at a height equivalent to 256 CSS pixels.</li>
</ul>
</blockquote>
<p>Unless you happen to have a person in your panel that enlarges the content and uses the settings listed in this Success Criterion, you won't be able to test this specific requirement.</p>
<p>Running formal or informal user research is hugely valuable and allows you to uncover practical accessibility and usability issues. However, on its own, it cannot replace thorough accessibility testing. As mentioned under <em>Misconception 1</em> above, you should run it in combination with other testing methods, such as automated testing and manual assessments.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Head to <a href="https://tetralogical.com/services/assessments/">Assessments</a> to find out how we can help your organisation validate the accessibility of your products, or learn how our <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> and <a href="https://tetralogical.com/services/user-research-mentoring/">User Research Mentoring</a> services can assist you with running user research with people with disabilities.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common misconceptions about implementing accessibility</title>
    <link href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/"/>
    <updated>2025-12-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/</id>
    <content type="html"><![CDATA[
        <p>For many organisations and digital teams, knowing how to start implementing accessibility and how to sustain it over time isn't always straightforward. Teams often wonder who is responsible, which tools to use, and when accessibility should be considered.</p>
<p>Misconceptions about how to implement accessibility are common, whether it’s overreliance on AI tools and overlays, the assumption that accessibility is only a developer’s job, or uncertainty about how to use design systems and component libraries effectively.</p>
<p>Here we discuss some of these misconceptions and provide advice on how to implement true and sustainable accessibility.</p>
<div class="callout" data-callout-variant="">
<p>In case you missed them, you can read the other blog posts in our <em>Common misconceptions</em> series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">Common misconceptions about screen readers</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/">Common misconceptions about disability</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">Common misconceptions about WCAG</a></li>
</ul>
</div>
<h2 id="misconception-1%3A-it%E2%80%99s-only-developers%E2%80%99-responsibility" tabindex="-1">Misconception 1: it’s only developers’ responsibility</h2>
<p>Some people expect accessibility to happen entirely at the coding stage; developers do their magic, and here you are with your shiny, fully accessible website or app. That's far from reality.</p>
<p>As discussed in our <a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">common misconceptions about WCAG</a>, accessibility is much more than just accessible code; it's good visual design, inclusive multimedia, well-crafted editorial, <a href="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/">inclusive language</a> and more. Everyone involved in planning, designing, and building a digital product is responsible for its accessibility.</p>
<p>While developers do play an important role in implementing accessibility, they cannot turn inaccessible designs or content into an accessible product. For example, a design containing poorly contrasting colours cannot be made accessible at the development stage. Also, developers shouldn’t be responsible for writing text descriptions for images; the person selecting the images is best placed to do this, as they better understand the context in which the images are used.</p>
<p>Accessibility shouldn’t fall solely on developers; it's a team effort!</p>
<h2 id="misconception-2%3A-i-can-rely-on-ai-tools" tabindex="-1">Misconception 2: I can rely on AI tools</h2>
<p>With so many AI enabled tools available and <a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a> becoming more and more popular, it may be tempting to assume we can rely on them to generate accessible content. However, this is not the case.</p>
<p>While AI can help write code, when it comes to accessibility they present two major drawbacks:</p>
<ul>
<li><strong>They are trained on inaccessible code</strong>: we know that much of the existing code is inaccessible, and code generated by AI often includes the same mistakes</li>
<li><strong>They lack a holistic approach</strong>: even when AI generates accessible code, that on its own is not enough to build accessible products (as discussed under <em>Misconception 1</em> above)</li>
</ul>
<p>We put some AI tools to the test and asked them to write some text descriptions and lines of code. Many of the results we got were incorrect or inaccurate. If you want to learn more about it, head to our <a href="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/">can generative AI help write accessible code?</a> and <a href="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/">can generative AI write contextual text descriptions?</a> blog posts.</p>
<p>If you use AI to help you write code, always double check it complies with accessibility requirements. And don't solely rely on the accessibility information provided by AI, always verify what AI gives you against reliable sources.</p>
<h2 id="misconception-3%3A-i-can-simply-use-an-overlay" tabindex="-1">Misconception 3: I can simply use an overlay</h2>
<p>Some organisations choose to use &quot;accessibility overlays&quot; as a quick and easy solution to achieve accessibility.</p>
<p>Accessibility overlays are third-party tools that can be added to a website with the aim to enhance its accessibility. In addition to providing a variety of tools and customisation options to the people using the website, they claim they can identify and fix accessibility issues in the website code.</p>
<p>As explained in the <a href="https://overlayfactsheet.com/en/">Overlay Fact Sheet</a>, this is not technically achievable. Many accessibility issues require manual rectification. For example, colours with insufficient contrast, images with missing or inaccurate text descriptions, text that is not identified as a heading, unclear error messages...the list goes on. This is why between January and June 2025 alone, in the USA <a href="https://www.ecomback.com/ada-website-lawsuits-recap-report/2025-mid-year-ada-website-lawsuit-report#:~:text=Widget%20Usage%20Fails%20to%20Prevent%20ADA%20Lawsuits%3A%202025%20Mid%2DYear%20Analysis">456 ADA lawsuits were filed against websites that use accessibility widgets and overlays</a>.</p>
<p>Also, these tools often end up interfering with the assistive technologies, input devices, and accessibility features used by many people, resulting in a worse, rather than improved, user experience. Here is a quote from a blind person, taken from the <em>Overlay Fact Sheet</em>:</p>
<blockquote>
<p>...I know with 100% certainty, any site which has deployed an overlay in the past year and a half has been less useable for both my wife and me - both blind.</p>
</blockquote>
<p>Don't be tempted to use a tool that promises to automatically fix all the accessibility issues on your website. True accessibility requires proper planning and implementation at every stage of a product's development process.</p>
<h2 id="misconception-4%3A-accessibility-stops-at-launch" tabindex="-1">Misconception 4: accessibility stops at launch</h2>
<p>It's not uncommon to see digital teams doing an amazing work at implementing accessibility while developing a website or app but then stop worrying about accessibility once the product is launched. This often results in accessibility issues starting to appear in just a few months.</p>
<p>Websites and apps are living creatures; they are constantly updated and modified. Any change, small or large, can introduce accessibility issues. This is why accessibility needs to be properly planned and maintained over time.</p>
<p>A few actions you can take include:</p>
<ul>
<li>Ensuring that accessibility is an integral part of all the processes and documentation used in your organisation</li>
<li>Including accessibility requirements in design systems and component libraries used by designers and developers</li>
<li>Providing everyone working in digital with the training and knowledge they need to implement accessibility</li>
</ul>
<p>You can find more practical suggestions on how to embed sustainable accessibility into your organisation in our guide to <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a>.</p>
<h2 id="misconception-5%3A-i-just-need-to-use-accessible-style-guides-and-components" tabindex="-1">Misconception 5: I just need to use accessible style guides and components</h2>
<p>Nowadays, most organisations have <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">design systems</a> and component libraries which provide designers and developers with style guides and reusable components, thus ensuring consistency across websites and apps. More and more of these have accessibility integrated. This means that when a style or component is used, it already includes key accessibility features. For example, a button may present a large target size area and a good contrasting border, and be coded with the correct HTML elements so it is keyboard and screen reader accessible. This is an important first step into building accessible content but on its own is not enough.</p>
<p>Re-using accessible styles or components alone is not enough. Accessibility also needs to be considered when combining components into web pages or app screens. For example, you need to ensure that:</p>
<ul>
<li>Components follow a logical visual and reading order</li>
<li>Heading levels convey the correct content structure</li>
<li>When leaving a component, the keyboard focus moves to the most logical location on screen</li>
</ul>
<p>Ensure that you and your colleagues have the knowledge and skills you need to know how to best use and combine your organisation's style guides and components so you can create accessible content.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn how our <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable Accessibility</a> and <a href="https://tetralogical.com/services/training-courses/">Training</a> services can help your organisation implement and maintain accessibility in the long term.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common misconceptions about WCAG</title>
    <link href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/"/>
    <updated>2025-12-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/</id>
    <content type="html"><![CDATA[
        <p>Most people working in digital are aware of the <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines (WCAG)</a> and know they can help make digital products work for everyone. However, the way the guidelines are discussed often leads to mixed assumptions about what they cover and how they should be used.</p>
<p>WCAG is recognised internationally as the standard for digital accessibility. They are often mentioned in organisations’ accessibility policies and referenced in many laws and regulations worldwide. Our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> provides an overview of the guidelines and how they’re structured.</p>
<p>In this post, we look at some of the most common misconceptions about WCAG and explain how they fit into everyday design, content, and development decisions.</p>
<div class="callout" data-callout-variant="">
<p>In case you missed them, you can read the other blog posts in our <em>Common misconceptions</em> series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">Common misconceptions about screen readers</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/">Common misconceptions about disability</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">Common misconceptions about implementing accessibility</a></li>
</ul>
</div>
<h2 id="misconception-1%3A-wcag-only-applies-to-websites" tabindex="-1">Misconception 1: WCAG only applies to websites</h2>
<p>When the very first version of the guidelines (<a href="https://www.w3.org/TR/WAI-WEBCONTENT/">WCAG 1.0</a>) was published in 1999, the internet was largely synonymous with websites. As a result, the guidelines were pretty much focused on web content built with HTML.</p>
<p>This is no longer the case. The current version of the guidelines, WCAG 2.2, is applied to all digital content from websites to web applications, <a href="https://tetralogical.com/blog/2024/07/18/wcag2ict/">native apps</a>, and digital documents. While some <a href="https://www.w3.org/WAI/WCAG22/Techniques/">techniques</a> in WCAG may refer to a specific technology (HTML, ARIA, PDF and so on), the principles, guidelines, and Success Criteria (SC) are technology-agnostic.</p>
<p>Let's take a look at the very first SC in WCAG <a href="https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html"><em>1.1.1 Non-text Content</em></a>:</p>
<blockquote>
<p>All non-text content that is presented to the user has a text alternative that serves the equivalent purpose [...]</p>
</blockquote>
<p>This applies to all forms of digital visual content, from photos on websites to infographics in PDFs and icons in native apps.</p>
<p>Regardless of the type of digital product or technology you work on, you can and should apply WCAG to it.</p>
<h2 id="misconception-2%3A-wcag-is-only-about-screen-readers" tabindex="-1">Misconception 2: WCAG is only about screen readers</h2>
<p>When thinking about accessibility, some people assume it's all about <a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">screen readers</a>.</p>
<p>Screen readers are one of the most well-known assistive technologies out there. They help many people, including people who are blind, have low vision, and some people with thinking disabilities, access web content. You can see some screen readers in action in our <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> and <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> blog posts.</p>
<p>Some SC in WCAG 2.2 focus on coding practices that make digital content work well with screen readers and other assistive technology. But WCAG go far beyond screen reader support. The SC cover a wide range of accessibility needs, including visual design, media content, clear language, and keyboard access.</p>
<p>This means that applying WCAG is relevant to everyone in a digital team, including content writers, UX and UI designers, and media producers.</p>
<h2 id="misconception-3%3A-wcag-compliant-websites-and-apps-are-%22basic%22" tabindex="-1">Misconception 3: WCAG-compliant websites and apps are &quot;basic&quot;</h2>
<p>As WCAG contains requirements around the use of colour, images, and multimedia content, some people believe accessible websites and apps must have a flat black-and-white text only design, with minimal use of images, multimedia, and a basic layout.</p>
<p>But minimalist websites and apps can actually be inaccessible for some people. Images and multimedia content are an important aspect of accessible products, as they can make information easier to understand for some people with thinking disabilities. Colour can also help reinforce meaning and help people identify items such as headings and links, as well as understand information.</p>
<p>Accessibility is not about removing elements that may be inaccessible to some, it's about using them in an inclusive way and providing alternatives when necessary.</p>
<p>On the TetraLogical website, we use bold colours, plenty of images, and our <a href="https://tetralogical.com/">homepage</a> even includes an animation. However, we make sure that people accessing the website can customise their experience to best suit their needs and preferences. For example, a <code>Pause</code> button allows people to pause the homepage animation, and our content adjusts as expected when people change colours and font sizes in their settings.</p>
<figure>
![The first section of content on the TetraLogical homepage. The background is dark grey, with white text and aqua links.](tl-home.png
<figcaption>All content on the TetraLogical homepage adjusts and remains visible when people select a different colour theme in their device settings, and a 'Pause' button is available below the animation.</figcaption>
</figure>
<p>WCAG-compliant websites don't need to be &quot;basic&quot;. They need to be adaptable.</p>
<h2 id="misconception-4%3A-wcag-compliance-requires-meeting-all-success-criteria" tabindex="-1">Misconception 4: WCAG compliance requires meeting all Success Criteria</h2>
<p>WCAG 2.2 contains 86 Success Criteria, each assigned to one of three conformance levels:</p>
<ul>
<li><strong>Level A</strong>: the minimum set of requirements needed for basic accessibility</li>
<li><strong>Level AA</strong>: addresses the biggest and most common accessibility barriers</li>
<li><strong>Level AAA</strong>: the highest level of accessibility</li>
</ul>
<p>You may think your products should meet all 86 SC. This is not the case.</p>
<p>Most organisations should aim to achieve Level AA compliance. This means complying with 69 SC. By meeting Level AA compliance, your products will be accessible to most people with disabilities.</p>
<p>Level AAA SC cover more advanced requirements, to address the needs of specific groups of disabled people. Only organisations offering products or services specifically to those groups of people are required to implement them.</p>
<p>For example, SC <em>1.2.6 Sign Language (Prerecorded)</em> requires that:</p>
<blockquote>
<p>Sign language interpretation is provided for all prerecorded audio content in synchronized media.</p>
</blockquote>
<p>Providing sign language interpretation for video content greatly benefits Deaf people whose first language is sign language. Organisations whose main target audience includes Deaf people should make sure all their video content offers sign language interpretation. Other organisations are encouraged to do the same when feasible; however, in some cases it may be too costly or not achievable.</p>
<p>As stated in WCAG 2.2:</p>
<blockquote>
<p>It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA Success Criteria for some content.</p>
</blockquote>
<p>Focus on achieving Level AA conformance across your products and services first. You can then look into Level AAA to identify those additional requirements you can implement to further improve your products. You can learn more about Level AAA in <a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">understanding WCAG 2.1 Level AAA</a>.</p>
<h2 id="misconception-5%3A-wcag-compliance-means-products-are-easy-to-use" tabindex="-1">Misconception 5: WCAG compliance means products are easy to use</h2>
<p>WCAG covers a wide range of requirements that will help you reach technical accessibility. For example, WCAG-compliant products support keyboard access and work well with screen readers and other assistive technology; they use colour combinations that meet a minimum contrast ratio; provide alternatives for images and multimedia content; and so on.</p>
<p>This is all key to inclusive products, but it's only an aspect of it. To be truly inclusive, websites and apps must make it easy for everybody to:</p>
<ul>
<li>Find the information they need</li>
<li>Read and understand the information</li>
<li>Understand how to complete tasks</li>
<li>Go through journeys</li>
</ul>
<p>Applying WCAG <strong>together</strong> with usability and inclusion best practices, such as the <a href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/">Inclusive Design Principles</a>, will allow you to build truly inclusive products.</p>
<p>Conducting inclusive <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing</a> is also key to ensuring your websites and apps are easy and enjoyable for everyone to use.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you validate your products' conformance with the Web Content Accessibility Guidelines (WCAG), or learn how our <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable Accessibility</a> service can help your organisation reach accessibility in the long term.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common misconceptions about disability</title>
    <link href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/"/>
    <updated>2025-12-03T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/</id>
    <content type="html"><![CDATA[
        <p>Disability is often misunderstood or misrepresented online and in mainstream media. In this post, we look at some common misconceptions surrounding disability.</p>
<p>According to the <a href="https://www.who.int/news-room/fact-sheets/detail/disability-and-health">World Health Organisation</a>, around 1.3 billion people – or 16% of the global population – experience a significant disability. This number continues to grow.</p>
<p><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">Types of disability</a> can vary greatly from person to person, and the barriers people face can depend as much on other people’s perceptions and attitudes as on their environment or condition.</p>
<div class="callout" data-callout-variant="">
<p>In case you missed them, you can read the other blog posts in our <em>Common misconceptions</em> series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/">Common misconceptions about screen readers</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">Common misconceptions about WCAG</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">Common misconceptions about implementing accessibility</a></li>
</ul>
</div>
<h2 id="misconception-1%3A-all-disabilities-are-visible" tabindex="-1">Misconception 1: all disabilities are visible</h2>
<p>Many people assume that disability can always be seen. In reality, this is far from true. Someone may need a wheelchair to navigate one day but be able to walk the next, as in the case of chronic fatigue. Others may experience pain, neurological, or cognitive conditions that have no visible markers at all.</p>
<p>That’s why accessible facilities such as toilets and priority seating on public transport often carry the message “not all disabilities are visible”; a reminder that we cannot know someone’s circumstances or needs from a visual inspection.</p>
<p>In the UK, the <a href="https://hdsunflower.com/uk/insights/category/invisible-disabilities">Hidden Disabilities Sunflower scheme</a> helps people indicate that they have an invisible disability, encouraging inclusivity, acceptance, and understanding in the general population. It also has a <a href="https://hdsunflower.com/uk/insights/category/invisible-disabilities">non-visible disabilities index</a> with details of commonly missed disabilities, how they might affect people, and assistance and support you may be able to offer.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/photo-lauren-1.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is grinning as she sits at a desk with an On Air sign on it as she holds a strip of film up to the light with her left hand." />
<figcaption><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Lauren</a>, a film editor, has two hidden disabilities ADHD and chronic pain. As she says &quot;I find it helpful to be able to walk around and listen to the content of a page. Moving helps me stay focused as I often lose focus quite quickly when sitting still and reading!&quot;.</figcaption>
</figure>
<h2 id="misconception-2%3A-all-disabilities-are-permanent" tabindex="-1">Misconception 2: all disabilities are permanent</h2>
<p>Disability is not always a lifelong condition. According to research from the <a href="https://ico.org.uk/media2/migrated/4031861/ic-338413-x1w5-disability-awareness.pdf">Institute for Public Policy Research (PDF)</a>, only 17% of people with a disability were born with it; the rest acquire it during their lifetime.</p>
<p>A disability can be permanent, temporary, or situational, and these categories often overlap.</p>
<ul>
<li><strong>Permanent disabilities</strong> are long-term conditions that are not expected to change and may require consistent adaptations or support, such as being Deaf or having no upper body movement</li>
<li><strong>Temporary disabilities</strong> are non-permanent conditions or injuries that affect someone for a limited time, such as a broken bone or an ear infection</li>
<li><strong>Situational disabilities</strong> are a temporary inability to complete a task, caused by a specific context or environment, for example being in a noisy environment where it’s difficult to hear or being in bright sunlight where it is difficult to see a screen</li>
</ul>
<p>If you’ve ever broken an arm, carried a baby, or been unable to read your screen in bright sunlight, you’ve experienced a form of temporary or situational disability. This shows how accessibility benefits everyone, not just people with permanent disabilities or health conditions.</p>
<p>These types of disabilities can overlap, meaning a person may experience more than one at the same time. For example, a blind person using a screen reader in a noisy environment with broken headphones would be experiencing a combination of permanent and situational disabilities.</p>
<p>It’s impossible to design for every single user experience, which is why it’s best practice to make your website or service accessible and user-friendly as possible for a wide range of people.</p>
<h2 id="misconception-3%3A-accessibility-features-are-only-for-people-with-disabilities" tabindex="-1">Misconception 3: accessibility features are only for people with disabilities</h2>
<p>Accessibility features are often developed with disabled people in mind, but they can end up improving usability and convenience for everyone.</p>
<p>Captions, for example, were originally designed for D/deaf and hard-of-hearing viewers by displaying a text version of a video’s dialogue and key sounds. Today, captions are widely used by people learning new languages or people watching in either noisy or quiet environments where sound isn’t practical.</p>
<p>Research shows just how broad their appeal is: <a href="https://www.forbes.com/sites/tjmccue/2019/07/31/verizon-media-says-69-percent-of-consumers-watching-video-with-sound-off/">Verizon Media and Publicis Media</a> found that around 85% of videos on social media are watched without sound, and 80% of viewers are more likely to watch an entire video when captions are available. Captions improve comprehension and engagement for everyone.</p>
<p>The same is true of many other accessibility features found in your device settings. Tools such as pinch-to-zoom, high-contrast mode, voice input, and digital assistants like Siri or Google Assistant were built to support specific access needs. Today, millions of people use various <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technology and adaptive strategies</a> daily because they make digital experiences more comfortable, efficient, and adaptable.</p>
<h2 id="misconception-4%3A-people-with-disabilities-should-be-seen-as-heroes" tabindex="-1">Misconception 4: people with disabilities should be seen as heroes</h2>
<p>It’s common for well-intentioned people to describe someone with a disability as “inspirational” or “brave”. While meant as a compliment, this kind of praise treats disability as something extraordinary that must be constantly overcome. It can feel patronising, reducing people to a medical diagnosis, rather than recognising them as individuals.</p>
<p>For most people with disabilities, this is simply part of everyday life, and just one aspect of who they are. Often, the biggest challenges are not people's impairments, but the barriers and attitudes they encounter, such as inaccessible buildings, intrusive questions, or inaccessible digital products and services that exclude them.</p>
<p>People with disabilities also lead rich, varied lives that have nothing to do with disability. Read our blog post series &quot;Meet the models&quot;, starting with <a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Jonathan, a photographer who has ADHD</a> to find out more about an inclusive photoshoot we ran with five people focused on their personalities, skills, and hobbies, rather than just their disability.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/jonathan_standing.jpg" alt="A photo of Jonathan, a man with white hair and thick black-framed glasses, standing in a studio behind a camera mounted on a tripod. He is wearing a white t-shirt, dark jeans with rolled-up cuffs, and blue sneakers with red soles. He is slightly leaning to one side, smiling, and looking through the camera’s viewfinder." />
<figcaption><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Jonathan</a> in his studio taking photos. Photo credit <a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Steve</a> who was having his photo taken at the time.</figcaption>
</figure>
<h2 id="misconception-5%3A-disability-inclusion-is-only-a-social-issue" tabindex="-1">Misconception 5: disability inclusion is only a social issue</h2>
<p>Accessibility and inclusion are often seen purely as ethical or compliance matters, but they’re also smart business decisions. People with disabilities represent a significant share of the global market, and organisations that fail to consider accessibility are turning away customers, employees, and opportunities.</p>
<p>The term &quot;The Purple Pound&quot; refers to the spending power of disabled households where at least one member has a disability. According to <a href="https://wearepurple.org.uk/the-purple-pound-infographic/">We Are Purple</a>, more than one in five potential UK consumers has a disability. Businesses lose an estimated £2 billion every month by ignoring the needs of disabled people, and the online spending power of this group is estimated at over £16 billion.</p>
<p>People with disabilities are hugely influential in the workplace and contribute to the workforce of most, if not all, industries. There were 5.5 million disabled people in employment in the UK in the second quarter of 2025 according to <a href="https://www.gov.uk/government/statistics/the-employment-of-disabled-people-2025/the-employment-of-disabled-people-2025">the UK Government</a>. In the USA, 42.2% of people aged between 16 and 24 with a disability are either actively looking for work or in employment, according to the <a href="https://www.dol.gov/agencies/odep/research-evaluation/statistics">U.S. Department of Labor</a>.</p>
<p>Underestimating your disabled audience or customer base doesn’t just limit inclusion; it limits growth, innovation, and profitability.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn about <a href="https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/">building a culture of accessibility</a> in our blog post, and consider the <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable Accessibility service</a> to ensure accessibility is part of your organisation's DNA.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Grace Snow</title>
    <link href="https://tetralogical.com/blog/2025/12/01/meet-the-team-grace-snow/"/>
    <updated>2025-12-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/12/01/meet-the-team-grace-snow/</id>
    <content type="html"><![CDATA[
        <p>Meet Grace, an Accessibility Specialist with a love of inclusive design, a passion for mentoring, and two extremely fluffy cats who consider themselves silent contributors to every project.</p>
<p>Her home is filled with music, cat hair, and the occasional badly-strummed ukulele, and she can often be found on morning calls bundled up in a jumper and hat, so fluffy her cats would be proud. Whether she’s deep in an accessibility assessment or sharing knowledge in a workshop, Grace brings insight, curiosity, and a strong belief that digital experiences should work for everyone.</p>
<p><img src="https://tetralogical.com/blog/2025/12/01/meet-the-team-grace-snow/grace-snow.jpg" alt="Grace stands on a sandy beach clad in a blue woolly hat and blue winter coat. She has pink sunglasses on, a huge ice cream in her hand and is beaming at the camera" /></p>
<p>With more than 15 years of experience across the tech industry—from design to front-end development—Grace has increasingly focused her work on accessibility standards and testing. She has assessed a wide range of digital products, including Figma designs for NHS services as part of GDS assessments, detailed code reviews and ongoing consultancy for public sector organisations such as the <a href="https://www.cdp.net/en">Climate Disclosure Project</a>, and accessibility audits for many well-known brands across websites and native apps.</p>
<p>Alongside her assessment work, Grace is passionate about helping others grow. She regularly delivers training talks and workshops, and she mentors aspiring developers on accessibility fundamentals through <a href="https://www.frontendmentor.io/">Frontend Mentor</a>, supporting the next generation of inclusive practitioners.</p>
<p>Grace’s career path has been anything but linear. Before finding her place in accessibility, she moved through a remarkable range of roles, including in hotels and retail, where she learned the value of clear communication and empathy. She spent time in journalism, copywriting, and public relations, discovering how to tell stories and make information understandable. Later, estate agency, design, and front-end development gave her a deeper appreciation of how people interact with both physical and digital spaces. She even took a detour into the mountains for a season as a ski instructor!</p>
<p>While she’s tried on many hats, accessibility, inclusion, and teaching are where she feels most at home, and where her varied background comes together beautifully.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>I wish I'd realised sooner that accessibility isn't just a concern for developers; it starts with design and user experience (UX). When I began my career, I focused on usability but mistakenly thought that any design could be made accessible later in the development phase.</p>
<p>It took me a long time to fully grasp the significant impact my initial design choices had on making a digital product inclusive for people with disabilities. Had I familiarised myself with accessible UI patterns earlier, my designs would have been inherently more inclusive and better documented, which would in turn make developers' and testers' jobs of supporting accessibility much simpler.</p>
<div class="pull-quote" data-pull-quote-variant="light">
  <blockquote>The other major realisation I wish I'd had is that accessibility isn't always black and white, but requires nuance in communication. .</blockquote>
  <div class="pull-quote__caption">
    <p>Grace Snow</p>
  </div>
</div>
<p>Early on, I was stuck in a rigid &quot;right and wrong&quot; mindset. This, combined with my passion for inclusion, often led me to communicate brusquely, which could put people off or make accessibility feel like an impossible task.</p>
<p>Now, I focus on learning to communicate more gently, prioritising the highest-impact accessibility barriers, and providing balanced feedback that encourages progress. Most people genuinely want to build inclusive products; the key is helping them harness that intention without creating feelings of guilt or overwhelm.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>My top tip is to embrace the mindset of <strong>progress over perfection</strong> and learn to prioritise.</p>
<p>Accessibility can seem overwhelming, but you don't have to fix every issue on every page on day one. Instead, focus your efforts on the most significant barriers that exclude the largest number of users, such as ensuring keyboard navigation is robust or fixing critical colour contrast issues. Make small, sustainable improvements that compound over time. Continuous, measured progress is far more valuable than aiming for unattainable perfection, which can lead to burnout or inaction.</p>
<p>Secondly, don't be afraid to redesign when a &quot;fix&quot; isn't enough—especially after testing with assistive technology users. While meeting WCAG success criteria is essential, sometimes true accessibility requires going beyond the letter of the law and following those &quot;best practice&quot; recommendations as well.</p>
<p>If you realise a pattern or component fundamentally doesn't work well for people who use screen readers, magnification or keyboards, or those with cognitive impairments, don't try to bandage it. Have the courage to go back and simplify, rethink, or even completely redesign the component. This commitment to user experience is what separates merely compliant products from truly accessible ones.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>For those working directly in product and engineering roles, the <a href="https://www.w3.org/WAI/WCAG22/Understanding">Understanding WCAG 2.2 Docs</a> and the <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">ARIA Authoring Practices Guide (APG) Patterns</a> are severely under-utilised and are my top technical resources. The Understanding documents move beyond the success criteria to explain <em>why</em> each rule exists and how to meet it, offering crucial context for developers and testers. Similarly, the APG provides practical, tested examples of how to build common accessible component patterns, which is invaluable for ensuring your interactive elements work correctly with assistive technologies.</p>
<p>Familiarity with these patterns helps designers and developers, in particular, gain a shared understanding of which patterns to follow and how different designs can be translated into accessible code. And you don't need to learn it all at once; design and engineering teams (including managers and product owners) can set a manageable goal, such as reviewing one pattern or understanding a document per week, to build their practical knowledge.</p>
<p>For anyone who is new to the field or looking for a foundational understanding of accessibility, I cannot recommend the <a href="https://www.edx.org/learn/web-accessibility/the-world-wide-web-consortium-w3c-introduction-to-web-accessibility">W3C's Introduction to Accessibility course</a> enough. I believe everyone in the tech industry, regardless of their specific role, should take this training. It provides a vital, empathetic view of how people with disabilities interact with digital products and services day-to-day, which is critical for moving beyond checkbox compliance. This comprehensive empathy-building is the best way to foster a truly inclusive culture within your organisation.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, the team, our principles and our community.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Sustainable accessibility in complex organisations: strategic foundations</title>
    <link href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/"/>
    <updated>2025-11-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/</id>
    <content type="html"><![CDATA[
        <p>Whether at the start of your accessibility journey or partway through it, complex organisations often face strategic, organisational, and external barriers that can make scaling accessibility difficult.</p>
<p>These challenges are common, but with the right foundations and committed leadership, accessibility can scale in ways that are both effective and sustainable.</p>
<p>A good starting point for scaling <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a> is to identify your biggest pain points and look at how to reduce or remove them. These often fall into three areas:</p>
<ul>
<li>Strategic foundations</li>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/">Organisational realities</a></li>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/">External factors</a></li>
</ul>
<p>In this post, we explore strategic foundations, and how clear leadership, defined accountability, and effective governance turns intention into lasting change.</p>
<h2 id="a-note-on-en-17161%3A-design-for-all" tabindex="-1">A note on EN 17161: Design for All</h2>
<p>If you’re looking for a standards-based framework for embedding accessibility into your organisation, EN 17161: Design for All offers useful guidance. Our post <a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> explains the standard in more detail and is mapped to each of the sections that follow.</p>
<h2 id="strategic-foundations" tabindex="-1">Strategic foundations</h2>
<p>Strategic foundations help define how accessibility is led, who is responsible, how progress is governed, and how impact is measured through reporting and metrics.</p>
<h3 id="leadership" tabindex="-1">Leadership</h3>
<p>Leadership sets the tone, priority, and direction for accessibility across the organisation. Without visible support from senior leaders, it can be difficult to gain momentum or make progress.</p>
<p>A common challenge for organisations is deciding where accessibility leadership should sit. This can result in accessibility becoming a nomad and being passed around various heads of department or treated as an add-on to another leadership role. This often leads to stalled progress, slower decision-making, delayed budget approvals, and a lack of a clear strategy.</p>
<p>There are different approaches to where accessibility leadership can sit within an organisation; what matters most is that it has the authority, visibility, and influence needed to drive change.</p>
<p>Here are a few models we have seen in organisations we have worked with.</p>
<h4 id="within-a-central-digital-or-technology-team" tabindex="-1">Within a central digital or technology team</h4>
<p>An obvious choice is for accessibility leadership to sit within a central digital or technology team, as this puts accessibility at the centre of product development, user experience, design, and engineering. In our experience, accessibility most often falls under User Experience and Design, where it’s seen as part of creating an inclusive user journey.</p>
<p>The only drawback is that accessibility may be seen as solely a technology concern rather than a company-wide responsibility. To avoid this, it’s important to align accessibility leadership with other key functions such as Diversity, Equity and Inclusion (DEI), Human Resources (HR), procurement, legal, and communications.</p>
<h4 id="within-a-diversity%2C-equity%2C-and-inclusion-(dei)-team" tabindex="-1">Within a diversity, equity, and inclusion (DEI) team</h4>
<p>By having accessibility sit within a DEI team, it becomes more of a company-wide concern and a mindset. This goes a long way to help build a culture of inclusion across all departments, not just digital.</p>
<p>However, DEI may lack technical or operational influence unless aligned with product teams.</p>
<p>While this model is less common, it can work well when DEI and the central accessibility teams collaborate closely, combining cultural leadership with practical implementation.</p>
<h4 id="within-a-central-accessibility-team" tabindex="-1">Within a central accessibility team</h4>
<p>A common location for accessibility leadership to st is within a central accessibility team. This helps build specialist expertise and supports consistency across departments. However, it needs strong executive support and mandates to avoid becoming underused, ignored, or avoided by product teams.</p>
<p>An established central accessibility team is an approach we have seen work well for many of our customers. The most effective examples are where the team focuses on building and maintaining an accessibility framework, rather than spending their time on <a href="https://tetralogical.com/services/assessments/">assessments</a>, <a href="https://tetralogical.com/services/design-reviews/">design reviews</a>, or day-to-day testing.</p>
<p>This frees the accessibility team up to focus on accessibility <a href="https://tetralogical.com/services/documentation/">documentation</a>, processes, and <a href="https://tetralogical.com/services/training-courses/">training</a> that benefit <em>every</em> product team, not just one team. It also helps product teams build accountability and embed accessibility into their everyday work, turning the accessibility team into a strategic partner they can call on when specialist support is needed.</p>
<h4 id="within-legal%2C-risk%2C-or-compliance" tabindex="-1">Within legal, risk, or compliance</h4>
<p>A less common approach is accessibility leadership as part of legal or compliance. While this reinforces the legal obligation to meet accessibility standards, it risks framing accessibility purely as a compliance issue, rather than a design and user experience opportunity.</p>
<p>This is not a model we tend to see amongst our customers.</p>
<h4 id="executive-leadership" tabindex="-1">Executive leadership</h4>
<p>Leadership for accessibility sometimes sits with a member of the executive team, such as the Chief Technology Officer (CTO), Chief Operating Officer (COO), or Chief Executive Officer (CEO). This gives accessibility strategic weight and ensures it is embedded across departments from the top down.</p>
<p>Success, however, depends on the executive’s commitment and ability to balance accessibility with other business goals. This model works best when senior leaders reporting into them handle day-to-day implementation and strategic direction, and can escalate issues to executive leadership when needed.</p>
<h4 id="mapping-leadership-to-en-17161%3A-design-for-all" tabindex="-1">Mapping leadership to EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 5: Leadership</li>
<li>Clause 9.3: Management review</li>
</ul>
<h3 id="responsibility-and-accountability" tabindex="-1">Responsibility and accountability</h3>
<p>Ownership and accountability clarifies who is responsible for what throughout the product delivery lifecycle. If teams are unsure who is responsible for accessibility, it can result in accessibility being left out of product requirements, leading to products being shipped with poor or no accessibility. This can lead to costly retrofitting, legal risk, and potential reputational damage.</p>
<p>At the product team level, ownership and accountability simply means being responsible for whatever you design, code, write, or test. But this can't happen on trust alone; responsibilities should be communicated and supported.</p>
<p>There are a few ways you can do this.</p>
<h4 id="job-descriptions" tabindex="-1">Job descriptions</h4>
<p>Accessibility responsibilities should be clearly outlined in job descriptions, so that expectations are transparent from the start. This helps organisations attract and <a href="https://tetralogical.com/blog/2025/08/19/accessible-recruitment/">recruit</a> the best candidates as well as help people understand what the role involves.</p>
<p>Once in post, this reinforces accessibility as integral to the role, helps people prioritise it in their day-to-day work, and ensures accountability during performance reviews. It also makes accessibility part of professional development, encouraging continuous learning and improvement across teams.</p>
<h4 id="objectives-and-performance-reviews" tabindex="-1">Objectives and performance reviews</h4>
<p>Accessibility responsibilities should also be reflected in individual objectives and performance reviews. This reinforces that inclusion is a core part of quality work, not an optional extra. It helps embed accessibility into everyday practice, ensures accountability over time, and recognises the contribution people make to improving accessibility across products and processes.</p>
<p>I’ve worked in a central accessibility team at a broadcaster, supporting designers, developers, and their managers to add accessibility into individual objectives that linked back to the organisation’s accessibility roadmap and strategy. This had a huge impact, giving teams a clear way to measure progress at both individual and departmental levels.</p>
<h4 id="built-into-workflows-and-processes" tabindex="-1">Built into workflows and processes</h4>
<p>Accessibility should be embedded into existing workflows and processes rather than treated as a separate or one-off task. From <a href="https://tetralogical.com/services/design-reviews/">design reviews</a> and sprint planning to code reviews and Quality Assurance (QA), accessibility should be part of how work gets done day to day.</p>
<p>Embedding accessibility in this way makes it a shared responsibility rather than a specialist task. It ensures that everyone involved in design and delivery is accountable for their part, whether they are designing, coding, writing, or managing a product. This can be done through adding accessibility to <a href="https://tetralogical.com/services/documentation/">documentation</a>, providing accessibility <a href="https://tetralogical.com/services/training-courses/">training</a>, tools, and resources to help people do their jobs confidently and effectively.</p>
<h4 id="shared-team-goals" tabindex="-1">Shared team goals</h4>
<p>Include accessibility in team-wide goals and planning cycles, such as sprint planning or quarterly targets. This embeds it in everyone’s workflow and shifts the focus from individual effort to collective responsibility. It also creates shared accountability, making the whole team answerable for progress, not just those with accessibility in their title.</p>
<h4 id="named-leads-and-points-of-contact" tabindex="-1">Named leads and points of contact</h4>
<p>Assign a clear lead for each accessibility focus area, deliverable, or decision. This creates individual responsibility for each area, while keeping the team collectively accountable for outcomes. A named contact also reduces ambiguity, speeds up decision-making, and makes it easier for others to ask questions or escalate issues early.</p>
<p>In product delivery teams, this might mean assigning an accessibility lead within design, development, and quality assurance while working collaboratively. A named lead might also be a product manager who owns accessibility in the roadmap. It could also mean embedding a product accessibility specialist in the team. Their role focuses on supporting a single product, unlike an accessibility lead in a central accessibility team, who supports multiple teams across the organisation.</p>
<h4 id="mapping-responsibility%2C-accountability-and-en-17161%3A-design-for-all" tabindex="-1">Mapping responsibility, accountability and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 5.3: Organisational roles, responsibilities and authorities</li>
<li>Clause 7.3: Awareness</li>
</ul>
<h3 id="governance" tabindex="-1">Governance</h3>
<p>Effective governance gives accessibility structure, clarity, and authority. It defines who makes decisions, owns and maintains policy, and provides clear escalation routes when issues arise. This helps ensure that accessibility is considered not only in product delivery, but also in recruitment, procurement, and wider organisational decisions.</p>
<p>In practice, this often takes the form of a central accessibility steering group made up of people from across the organisation, such as product, legal, HR, and procurement. Delivery teams can have nominated accessibility leads who feed into the group, monitor progress in their area, and raise issues when support or decisions are needed.</p>
<p>We’ve seen this work well at a global freight company early in their accessibility journey. A steering group of executive leaders owns accessibility, while leads from user experience and design drive day-to-day implementation and strategy, reporting into the group.</p>
<h4 id="mapping-governance-and-en-17161%3A-design-for-all" tabindex="-1">Mapping governance and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6: Planning</li>
<li>Clause 9: Performance evaluation</li>
</ul>
<h3 id="reporting-and-metrics" tabindex="-1">Reporting and metrics</h3>
<p>Reporting and metrics are a key part of effective governance. It allows organisations to track accessibility progress beyond individual projects or teams, providing a clear view of what’s working, which products pose an accessibility risk, and where support is needed. Regular reporting helps hold teams accountable, measure whether commitments are being met, and surface risks early. This, in turn, gives senior leaders the evidence they need to drive change.</p>
<p>Examples of organisational tracking include:</p>
<ul>
<li><strong>Accessibility roadmaps</strong>: track organisational progress against goals, milestones, and delivery timeline, metrics may include policy compliance rates, team training completion, and progress against organisational accessibility goals</li>
<li><strong><a href="https://tetralogical.com/services/risk-analysis/">Risk analysis</a></strong>: identify and log accessibility risks within products or services and link each risk to an owner and mitigation plan</li>
<li><strong>Executive updates</strong>: regular updates as a standing item in quarterly business reviews alongside other key performance indicators with clear RAG (Red/Amber/Green) status, risks, and owner actions</li>
<li><strong>Performance reviews</strong>: these can be used to track not only individual progress but also linked to team objectives for reporting data</li>
</ul>
<h4 id="mapping-reporting%2C-metrics%2C-and-en-17161%3A-design-for-all" tabindex="-1">Mapping reporting, metrics, and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6: Planning</li>
<li>Clause 8: Operation</li>
<li>Clause 9: Performance evaluation</li>
</ul>
<h2 id="in-summary" tabindex="-1">In summary</h2>
<p>Scaling accessibility in organisations can be complex, but it’s achievable with the right approach. Success depends on strong leadership, clear accountability, effective governance, and consistent metrics supported by a culture that values inclusion and collaboration.</p>
<p>By taking a structured, joined-up approach, combined with careful management of <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/">organisational realities</a> and <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/">external factors</a>, you can scale accessibility in a way that delivers long-term value for your teams, your business, and your customers.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn more about how TetraLogical can help your organisation with our <a href="https://tetralogical.com/services/embedded-accessibility/">Embedded accessibility</a> service and <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable accessibility</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Sustainable accessibility in complex organisations: organisational realities</title>
    <link href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/"/>
    <updated>2025-11-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/</id>
    <content type="html"><![CDATA[
        <p>Whether at the start of your accessibility journey or partway through it, complex organisations often face strategic, organisational, and external barriers that can make scaling accessibility difficult.</p>
<p>These challenges are common, but with the right culture, good communication, planning, and collaboration between teams, accessibility can scale in ways that are both effective and sustainable.</p>
<p>A good starting point for scaling <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a> is to identify your biggest pain points and look at how to reduce or remove them. These often fall into three areas:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/">Strategic foundations</a></li>
<li>Organisational realities</li>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/">External factors</a></li>
</ul>
<p>In this post, we explore organisational realities and what it takes to build a culture of inclusion, open communication, and collaboration across teams and processes.</p>
<h2 id="a-note-on-en-17161%3A-design-for-all" tabindex="-1">A note on EN 17161: Design for All</h2>
<p>If you’re looking for a standards-based framework for embedding accessibility into your organisation, EN 17161: Design for All offers useful guidance. Our post <a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> explains the standard in more detail and is mapped to each of the sections that follow.</p>
<h2 id="organisational-realities" tabindex="-1">Organisational realities</h2>
<p>Organisational realities such as culture, departmental politics, siloed teams, and budget constraints can all affect how accessibility is implemented, regardless of the strategic foundations in place. When tackled head-on, they can help unlock lasting change rather than act as a blocker.</p>
<h3 id="culture" tabindex="-1">Culture</h3>
<p>By <a href="https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/">building a culture of accessibility</a>, you shape how inclusion is understood and prioritised and whether it’s seen as everyone’s responsibility or left to a few specialists. It also influences whether teams think of accessibility as a driver of innovation or a compliance burden.</p>
<p>An inclusive culture goes far beyond product teams. It’s a shared mindset across the organisation, reflected in many different teams, for example:</p>
<ul>
<li>How Human Resources (HR) designs inclusive <a href="https://tetralogical.com/blog/2025/08/19/accessible-recruitment/">recruitment</a> processes</li>
<li>How procurement sets accessibility criteria for suppliers</li>
<li>How legal manages risk and compliance</li>
<li>How marketing and communications teams ensure accessible content</li>
<li>How leadership sets expectations through strategy and tone</li>
<li>How people use <a href="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/">inclusive language</a> when working with each other and our customers</li>
</ul>
<h4 id="mapping-culture-and-en-17161%3A-design-for-all" tabindex="-1">Mapping culture and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6: Planning</li>
<li>Clause 7: Support</li>
</ul>
<h4 id="change-and-communication" tabindex="-1">Change and communication</h4>
<p>Scaling accessibility often requires shifts in mindset, habits, and ways of working across the organisation. This kind of change doesn’t happen automatically; it needs time, coordination, and clear communication.</p>
<p>That’s where dedicated change management and internal communication functions can make a big difference. They help teams understand not just what needs to change, but why it matters and how to make it happen.</p>
<p>There are a few ways to support change more effectively:</p>
<ul>
<li><strong>Change managers</strong>: use change managers to embed accessibility into transformation work. If your organisation is going through broader digital, cultural, or operational change, accessibility should be part of that transformation from the start and not added in later</li>
<li><strong>Change programme</strong>: treat accessibility as an organisational change programme; even if you’re not restructuring, scaling accessibility still requires changes to roles, responsibilities, behaviours, and systems so a structured change approach can help teams adapt and stay aligned</li>
<li><strong>Internal communications</strong>: partner with your internal communications team to embed accessibility into company-wide campaigns, announcements, and messaging. This keeps accessibility visible, normalises inclusive practices, and helps shift culture</li>
<li><strong>Share success</strong>: tell stories and share successes, use internal channels to highlight accessible design wins, individual contributions, and the impact accessibility has on real people. This helps build motivation and reinforces a shared commitment</li>
</ul>
<p>We’ve seen the value of change management firsthand when working with a global freight company at the very start of their accessibility journey. With no previous accessibility policies, processes, or training in place, the organisation needed more than just technical recommendations — it needed a shift in mindset and ways of working, starting at the very top with leadership.</p>
<p>We’ve also worked with change management at a broadcaster with many years of accessibility experience and expertise as they went through organisational change. The change manager played a critical role in preserving accessibility knowledge during team restructures, ensuring it wasn’t lost as people changed roles or left the organisation. They helped embed accessibility into new ways of working, updated internal processes and training, and made sure accessibility remained part of the conversation as new leadership and priorities emerged.</p>
<h4 id="mapping-change%2C-communication-and-en-17161%3A-design-for-all" tabindex="-1">Mapping change, communication and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 7: Support</li>
<li>Clause 6.3: Planning for changes</li>
</ul>
<h3 id="departmental-politics" tabindex="-1">Departmental politics</h3>
<p>Departmental politics can have a significant impact on how accessibility is prioritised, funded, and implemented. Competing goals, unclear ownership, or internal rivalry can slow progress and create unnecessary barriers. Even when leadership support exists, the dynamics between teams can determine whether accessibility work moves forward or gets deprioritised.</p>
<p>This often happens when accessibility sits between teams, for example, when product, design, or engineering each assumes another team is responsible. Without shared priorities and clear escalation routes, accessibility decisions can be delayed, diluted, or reversed, making long-term progress difficult.</p>
<p>There are a few ways to manage departmental politics more effectively:</p>
<ul>
<li><strong>Create shared priorities</strong>: make accessibility part of cross-departmental planning so it’s not seen as a single team’s responsibility or competing objective</li>
<li><strong>Align incentives and goals</strong>: include accessibility outcomes in departmental objectives so that success depends on collaboration, not competition</li>
<li><strong>Clarify accountability</strong>: use governance structures to define who decides, who delivers, and who approves accessibility work across departments</li>
<li><strong>Encourage transparency</strong>: use shared reporting, open forums, or regular updates so accessibility progress is visible and less vulnerable to competing agendas</li>
<li><strong>Secure executive sponsorship</strong>: when senior leaders reinforce accessibility as a shared organisational goal, it’s easier for teams to align and reduce friction</li>
</ul>
<h4 id="mapping-departmental-politics-and-en-17161%3A-design-for-all" tabindex="-1">Mapping departmental politics and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6.3: Planning for changes</li>
<li>Clause 8: Operation</li>
<li>Clause 8.1: Operation planning and control</li>
</ul>
<h3 id="siloed-teams" tabindex="-1">Siloed teams</h3>
<p>Even in organisations where departmental priorities are aligned, accessibility can still be slowed down by teams working in silos. These are often not political divides, but structural ones caused by different systems, workflows, or locations that limit collaboration and knowledge sharing.</p>
<p>Siloed teams can unknowingly duplicate work, overlook accessibility requirements, or develop inconsistent approaches. People may be solving the same problems in different ways — or not solving them at all. This results in fragmented user experiences and uneven accessibility maturity across products and services.</p>
<p>There are a few ways to break down silos and improve consistency:</p>
<ul>
<li><strong>Design systems</strong>: a central design system team creates accessible components and shares usage guidance across product teams</li>
<li><strong>Shared standards</strong>: a single set of accessibility guidelines that all teams can reference</li>
<li><strong>Cross-team training</strong>: shared training ensures everyone has a consistent understanding of accessibility principles and practices</li>
<li><strong>Accessibility champions network</strong>: a network of accessibility champions from different teams who meet regularly to share progress, align practices, and support each other’s work</li>
<li><strong>Central resources</strong>: documentation, training, and tools that are available to all teams in a central hub, ensuring accessibility knowledge is easy to find and maintain</li>
<li><strong>Shared goals</strong>: accessibility goals or key performance indicators (KPIs) that encourage collaboration across teams working on related products or services</li>
</ul>
<p>Many organisations we work with have an accessibility champions network that can go a long way to connecting otherwise dispersed groups of people. <a href="https://www.linkedin.com/pulse/how-accessibility-champions-network-started-bbcs-gareth-ford-williams/">How An Accessibility Champions Network Started The BBC’s Story</a> by Gareth Ford-Williams offers lots of useful insights. Another great resource is the <a href="https://www.linkedin.com/groups/12499821/">Champions of Accessibility Network</a>, where companies and people share resources and ideas for running accessibility champion networks.</p>
<h4 id="mapping-siloed-teams-and-en-17161%3A-design-for-all" tabindex="-1">Mapping siloed teams and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6.3: Planning for changes</li>
<li>Clause 8: Operation</li>
<li>Clause 8.1: Operation planning and control</li>
</ul>
<h3 id="budget" tabindex="-1">Budget</h3>
<p>Budget constraints are one of the most common organisational realities. Ideally, budgeting cycles include accessibility as standard alongside security, performance, or outsourced design and development support. If not, start early by making the <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">business case for accessibility</a>.</p>
<p>When planning your budget, consider costs such as:</p>
<ul>
<li><strong>Training</strong>: accessibility training either built into team training plans or accounted for in a central training hub the whole organisation can access</li>
<li><strong>Specialist support</strong>: budget for <a href="https://tetralogical.com/services/assessments/">assessments</a>, <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing with disabled people</a>, or <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> support from third parties</li>
<li><strong>Tools</strong>: software for design and development teams, such as screen readers, automated testing tools, and plug-ins</li>
<li><strong>Recruitment</strong>: budget for <a href="https://tetralogical.com/services/recruitment/">recruitment support</a> people into the team with appropriate accessibility knowledge and experience</li>
</ul>
<p>As Felicity Miners-Jones explains in her <a href="https://tetralogical.com/blog/2025/08/19/accessible-recruitment/">accessible recruitment</a> post, it's important to make each stage of the hiring process through to onboarding and beyond accessible so that you can attract the best candidates from a range of backgrounds and disabilities.</p>
<h4 id="mapping-budget-and-en-17161%3A-design-for-all" tabindex="-1">Mapping budget and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 7.1: Resources</li>
<li>Clause 8.5: Control of and communication with external suppliers</li>
</ul>
<h3 id="outsourcing-and-third-parties" tabindex="-1">Outsourcing and third parties</h3>
<p>Outsourcing extends accessibility responsibilities beyond your direct control. To avoid accessibility being diluted or lost, requirements must be built into procurement and third-party management processes from the start.</p>
<p>Whether you’re buying tools, commissioning content, or contracting design and development services, procurement teams and product leads should work together to include clear accessibility expectations in briefs, selection criteria, and contracts. As part of the selection process, vendors should be asked to provide accessibility statements, test or assessment results to demonstrate they have met accessibility standards.</p>
<p>Once selected, product leads must ensure third parties continue to deliver against those expectations. This means monitoring quality, building accessibility into acceptance criteria, and following up where issues arise.</p>
<p>We've worked with customers where we've not only trained their User Experience and Design teams, but also their supplier network who support them with user research and design. This ensures there is a shared mindset, knowledge, and language they can all use when collaborating on projects.</p>
<h4 id="mapping-outsourcing%2C-third-parties%2C-and-en-17161%3A-design-for-all" tabindex="-1">Mapping outsourcing, third parties, and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 7.1: Resources</li>
<li>Clause 8.5: Control of and communication with external suppliers</li>
</ul>
<h2 id="in-summary" tabindex="-1">In summary</h2>
<p>Scaling accessibility in organisations can be complex, but with the right culture, good communication, planning, and collaboration between teams, accessibility can scale in ways that are both effective and sustainable.</p>
<p>By taking a structured, joined-up approach, combining <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/">strategic foundations</a> and careful management of <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/">external factors</a>, you can scale accessibility in a way that delivers long-term value for your teams, your business, and your customers.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn more about how TetraLogical can help your organisation with our <a href="https://tetralogical.com/services/embedded-accessibility/">Embedded accessibility</a> service and <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable accessibility</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Sustainable accessibility in complex organisations: external factors</title>
    <link href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/"/>
    <updated>2025-11-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-external-factors/</id>
    <content type="html"><![CDATA[
        <p>Whether at the start of your accessibility journey or partway through it, complex organisations often face strategic, organisational, and external barriers that can make scaling accessibility difficult.</p>
<p>These challenges are common, but by anticipating changes in the accessibility landscape and wider economic environment, you can make progress that is both effective and sustainable.</p>
<p>A good starting point for scaling <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a> is to identify your biggest pain points and look at how to reduce or remove them. These often fall into three areas:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/">Strategic foundations</a></li>
<li><a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/">Organisational realities</a></li>
<li>External factors</li>
</ul>
<p>In this post, we explore external factors and how anticipating changes in the accessibility landscape and wider economic environment can help you sustain progress through change.</p>
<h2 id="a-note-on-en-17161%3A-design-for-all" tabindex="-1">A note on EN 17161: Design for All</h2>
<p>If you’re looking for a standards-based framework for embedding accessibility into your organisation, EN 17161: Design for All offers useful guidance. Our post <a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> explains the standard in more detail and is mapped to each of the sections that follow.</p>
<h2 id="external-factors" tabindex="-1">External factors</h2>
<p>Even with strong leadership and a clear internal strategy, accessibility can still be shaped by factors outside your organisation’s direct control. These include regulatory requirements, supplier capability, technology constraints, and customer expectations.</p>
<h3 id="international-operations" tabindex="-1">International operations</h3>
<p>For global organisations, scaling accessibility consistently across regions brings additional complexity. Legal requirements can differ from country to country, and cultural expectations will shape how disability and accessibility are perceived and prioritised.</p>
<p>Without clear, unified guidance, local teams can be left unsure which standards to follow or how to adapt accessibility practices in a way that works for their region. This can result in duplicated effort, inconsistent experiences, and localised risk.</p>
<p>There are a few ways to support international operations more effectively:</p>
<ul>
<li><strong>Create a global accessibility framework</strong>: establish shared accessibility principles based on international standards such as WCAG, then supplement them with regional guidance to reflect local laws, user needs, and languages</li>
<li><strong>Assign regional accessibility leads</strong>: regional leads act as local points of contact and ensure that accessibility is implemented consistently, while adapting it appropriately for their market as well as representing local issues to central governance teams</li>
<li><strong>Provide training and resources in local languages</strong>: support teams in applying accessibility best practices by offering training, documentation, and tools that are tailored to regional contexts</li>
<li><strong>Track progress regionally</strong>: use reporting and metrics to monitor accessibility maturity by region and surface local risks, blockers, and successes to central governance teams</li>
</ul>
<h4 id="mapping-international-operations-and-en-17161%3A-design-for-all" tabindex="-1">Mapping international operations and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 4.2: Understanding the organisation and its context</li>
<li>Clause 6: Planning</li>
</ul>
<h3 id="changes-in-accessibility-standards" tabindex="-1">Changes in accessibility standards</h3>
<p>Accessibility standards and guidelines are not static; they continue to evolve. The release of WCAG 2.2 introduced <a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/">new WCAG 2.2 success criteria</a> focused on cognitive accessibility and mobile usability, and <a href="https://www.w3.org/TR/wcag-3.0/">WCAG 3.0</a> is on the horizon, promising a more flexible and outcomes-based approach.</p>
<p>For many organisations, keeping up with these changes can be difficult, especially when multiple teams work across different platforms, tools, and delivery models.</p>
<p>There are a few ways to manage changes in standards more effectively:</p>
<ul>
<li><strong>Monitor standards and regulations regularly</strong>: assign responsibility to a central accessibility team, legal function, or risk owner to stay up to date with new versions of WCAG, evolving assistive technologies, and changes in national or regional laws</li>
<li><strong>Maintain a living accessibility framework</strong>: keep internal guidance, policies, and design system documentation up to date by reviewing them on a regular schedule and when significant updates to standards are released</li>
<li><strong>Communicate changes clearly and early</strong>: Share updates across the organisation in a coordinated way, ideally with clear explanations of what has changed, who it affects, and what action is needed</li>
<li><strong>Plan for incremental adoption</strong>: rather than trying to meet every new success criterion immediately, prioritise updates based on user impact, feasibility, and regulatory relevance; this helps teams act without feeling overwhelmed</li>
<li><strong>Build it into governance</strong>: include standards updates as a standing item in accessibility governance meetings so changes can be reviewed and ownership agreed</li>
</ul>
<h4 id="mapping-changes-in-accessibility-standards-and-en-17161%3A-design-for-all" tabindex="-1">Mapping changes in accessibility standards and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 6: Planning</li>
</ul>
<h3 id="recessions%2C-cutbacks%2C-and-restructures" tabindex="-1">Recessions, cutbacks, and restructures</h3>
<p>Economic downturns, budget cuts, and restructuring can put accessibility at risk, especially when teams are under pressure to reduce costs, reallocate resources, or move faster. Accessibility work may be seen as optional, specialist, or something that can be deprioritised “for now.”</p>
<p>But letting go of accessibility can introduce long-term costs: inaccessible products, frustrated users, legal risk, and expensive remediation. Even when budgets are tight, maintaining the accessibility practices you’ve already put in place can be a cost-efficient way to reduce risk and preserve quality.</p>
<p>There are a few ways to do this:</p>
<ul>
<li><strong>Maintain what’s already embedded</strong>: accessibility that’s part of your design systems, workflows, and team responsibilities doesn’t cost extra to maintain; keeping those practices in place ensures consistency without needing additional investment</li>
<li><strong>Focus on high-impact areas</strong>: prioritise accessibility work where it matters most, such as critical user journeys, high-risk products, or areas with customer feedback so effort is targeted and effective</li>
<li><strong>Use reporting to show value</strong>: continue tracking and reporting accessibility progress so leaders can see where it’s having an impact, and what could be lost if it’s dropped</li>
<li><strong>Treat accessibility as a risk, not a nice-to-have</strong>: include accessibility in your risk models and legal frameworks so it’s seen as essential to product quality and compliance</li>
<li><strong>Document and decentralise</strong>: Make sure guidance, decisions, and tools are documented and shared in central locations where current and new employees have visibility</li>
</ul>
<h4 id="mapping-economic-pressure%2C-organisational-change-and-en-17161%3A-design-for-all" tabindex="-1">Mapping economic pressure, organisational change and EN 17161: Design for All</h4>
<p><a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> contains more details of the following clauses:</p>
<ul>
<li>Clause 7.1: Resources</li>
<li>Clause 6: Planning</li>
</ul>
<h2 id="in-summary" tabindex="-1">In summary</h2>
<p>Scaling accessibility within organisations is complex, but by anticipating changes in the accessibility landscape and wider economic environment, you can make progress that is both effective and sustainable.</p>
<p>By taking a structured, joined-up approach, combining <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-strategic-foundations/">strategic foundations</a> and careful management of <a href="https://tetralogical.com/blog/2025/11/07/sustainable-accessibility-in-complex-organisations-organisational-realities/">organisational realities</a>, you can scale accessibility in a way that delivers long-term value for your teams, your business, and your customers.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn more about how TetraLogical can help your organisation with our <a href="https://tetralogical.com/services/embedded-accessibility/">Embedded accessibility</a> service and <a href="https://tetralogical.com/services/sustainable-accessibility/">Sustainable accessibility</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Common misconceptions about screen readers</title>
    <link href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/"/>
    <updated>2025-10-14T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/</id>
    <content type="html"><![CDATA[
        <p>Screen readers are familiar to many in digital, but how they work in practice can be less clear. In this post, we shed some light on the topic.</p>
<p>Screen readers are software applications that convert on-screen content into audio, reading aloud what’s displayed on your laptop or mobile screen. For more information on how they work, visit <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> and <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>.</p>
<p>Despite their widespread use, there are still many misconceptions about how screen readers work and how people interact with them. We explore some of these below.</p>
<div class="callout" data-callout-variant="">
<p>In case you missed them, you can read the other blog posts in our <em>Common misconceptions</em> series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2025/12/03/common-misconceptions-about-disability/">Common misconceptions about disability</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/10/common-misconceptions-about-wcag/">Common misconceptions about WCAG</a></li>
<li><a href="https://tetralogical.com/blog/2025/12/18/common-misconceptions-about-implementing-accessibility/">Common misconceptions about implementing accessibility</a></li>
</ul>
</div>
<h2 id="misconception-1%3A-only-blind-people-use-screen-readers" tabindex="-1">Misconception 1: only blind people use screen readers</h2>
<p>Probably the biggest misconception around screen readers is that they are only used by people who are blind. This is far from reality. <a href="https://webaim.org/projects/screenreadersurvey10/#disabilitytypes">WebAIM's latest Screen Reader User Survey</a> shows that only 77% of respondents identified as being blind.</p>
<p>Many people may access digital content with a screen reader, for different reasons. For example:</p>
<ul>
<li><strong>People with <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=consuming%20digital%20content.-,Seeing,-Seeing">seeing disabilities</a>:</strong> blind, Deafblind, and many people with low vision commonly use screen readers as they cannot see the content on screen</li>
<li><strong>People with <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=my%20own%20time%22.-,Thinking,-This%20refers%20to">thinking disabilities</a>:</strong> some people with ADHD or learning and reading disabilities find that screen readers help them focus on, and understand, written content</li>
<li><strong>People with variable disabilities:</strong> people with conditions whose symptoms vary throughout a day or from day to day may switch to using screen readers when they find reading content too tiring</li>
<li><strong>People with situational disabilities:</strong> screen readers can be useful in situations where it's not possible to look at a screen, such as when cooking while following an online recipe</li>
</ul>
<p>Read about the experience of some screen reader users:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
</ul>
<h2 id="misconception-2%3A-people-use-screen-readers-in-the-same-way" tabindex="-1">Misconception 2: people use screen readers in the same way</h2>
<p>With so many people using screen readers for different reasons, it's only natural that each person's experience is unique.</p>
<p>People adjust their screen reader's settings and choose a navigation method to suit their needs and preferences. Two people with the same disability using the same screen reader may still have very different experiences.</p>
<p>Some people use screen readers in combination with other <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technology</a> - for example a Deafblind person may use it together with a refreshable Braille display while someone with low vision may use it together with screen magnification software. The input device used to navigate web content can also differ; blind people will use a keyboard while low vision or sighted people may use a mouse and a keyboard. And people with thinking disabilities may choose to have text highlighted as the screen reader announces it.</p>
<p>It's often impossible to predict how someone will use a screen reader. The best way to learn about the different strategies and methods used by people is to observe <a href="https://tetralogical.com/services/agile-user-experience-testing/">User Experience (UX) Testing</a> sessions.</p>
<h2 id="misconception-3%3A-all-screen-readers-work-in-the-same-way" tabindex="-1">Misconception 3: all screen readers work in the same way</h2>
<p>Several screen readers are available - JAWS, NVDA, and Narrator for Windows machines, VoiceOver for Mac and iOS devices, TalkBack for Android devices, and so on.</p>
<p>While they work in similar ways, there are some key differences. Keyboard commands (on laptops and desktops) and gestures (on touch screen devices) may vary slightly from screen reader to screen reader.</p>
<p>The same applies to how screen readers announce content. As demonstrated in the <a href="https://tetralogical.github.io/screen-reader-HTML-support/lookup/lookup.html#button">Screen Reader HTML Support table</a> screen readers can announce elements and labels differently. For example some announce a button as &quot;button&quot; followed by its visible label (such as &quot;button save&quot;) others announce the label first (&quot;save button&quot;).</p>
<p>This is nothing to worry about, screen reader users are aware of these differences and don't expect all screen readers to work and announce elements in the same way. Trying to force screen readers to behave in any other way is likely to confuse, rather than help, people.</p>
<h2 id="misconception-4%3A-building-a-screen-reader-specific-version-of-a-website-or-app-is-a-good-idea" tabindex="-1">Misconception 4: building a screen reader specific version of a website or app is a good idea</h2>
<p>We are sometimes asked whether having a simplified version of a website or app designed and built for screen reader users specifically is a good solution. The answer is, no.</p>
<p>Having separate versions of a product for different groups of people is not an inclusive approach. A more inclusive solution is to build a product that adjusts and supports the needs and preferences of everyone, including screen reader users.</p>
<p>It's not an efficient or sustainable solution either; creating and maintaining different versions of a product requires time and money. By spending just a portion of that time and money to implement accessibility considerations, you can create a product that works better for everybody.</p>
<h2 id="misconception-5%3A-screen-reader-users-don't-care-about-images" tabindex="-1">Misconception 5: screen reader users don't care about images</h2>
<p>A key accessibility consideration when building content that works for screen reader users is to provide a <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text description</a> for images. Designers and developers are sometimes unclear on why this is required. Surely screen reader users don't care about images, right?</p>
<p>As discussed under <a href="https://tetralogical.com/blog/2025/10/14/common-misconceptions-about-screen-readers/#:~:text=of%20these%20below.-,Misconception%201%3A%20only%20blind%20people%20use%20screen%20readers,-Probably%20the%20biggest">Misconception 1: only blind people use screen readers</a>, not all people using screen readers are blind. Some may have enough vision to know that an image is on the screen but not to make out its content. And some people with thinking disabilities may see the image but struggle to interpret it. All these people expect their screen reader to describe the image for them.</p>
<p>Some blind people also really appreciate images being described. This is particularly true for people who lost their sight later in life. They may like to know that an image of a sunny, clear sky or of a menacing storm is on a page as that will evoke a particular feeling or emotion.</p>
<h2 id="misconception-6%3A-screen-reader-users-need-instructions-on-all-content" tabindex="-1">Misconception 6: screen reader users need instructions on all content</h2>
<p>Another common misconception is that screen reader users need instructions on all elements that make up a web page or app screen.</p>
<p>For example, for a page containing an &quot;Add to cart&quot; button, some may assume that including the hidden instruction &quot;Activate the 'Add to cart' button to add the product to your shopping cart&quot; is useful to screen reader users. In fact, this adds unnecessary noise which ultimately worsen people's experience on the website or mobile app.</p>
<p>Just as you wouldn’t include instructions on how to use buttons or links for sighted users, there’s no need to explain how to operate them for screen reader users.</p>
<p>As long as elements are coded following best accessibility practice, screen readers provide all necessary information by default. For example, when reaching an element coded as a button, they announce it as a button and read out its visible label. People are then able to activate the button using their screen reader default keyboard command or gesture.</p>
<h2 id="misconception-7%3A-all-content-must-be-focusable-to-work-with-screen-readers" tabindex="-1">Misconception 7: all content must be focusable to work with screen readers</h2>
<p>Many screen reader users, especially if blind, navigate web content using a keyboard. This doesn't mean all content must be keyboard focusable.</p>
<p>Screen reader users have a wide range of keyboard commands at their disposal. Unlike people who use a keyboard without a screen reader, they can navigate to all sorts of focusable and non-focusable items.</p>
<p>For example, they can reach a new line of static text by pressing the <kbd>down arrow</kbd> key; the next heading on screen by pressing the <kbd>H</kbd> key; the next page section (like the header, main or footer) by using the <kbd>D</kbd> key; and so on.</p>
<p>Trying to make all content keyboard accessible is not needed and is going to interfere with the way screen reader users navigate websites.</p>
<div class="callout" data-callout-variant="warm">
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos//">browsing with assistive technologies</a> and how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
</div>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Guide to the Inclusive Design Principles</title>
    <link href="https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/"/>
    <updated>2025-10-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/10/07/guide-to-the-inclusive-design-principles/</id>
    <content type="html"><![CDATA[
        <p>The <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> (IDP) were first published in 2016 by myself, Ian Pouncey, Léonie Watson, and Heydon Pickering. We felt that while the Web Content Accessibility Guidelines (WCAG) set out what to do to meet technical compliance, many design decisions fall outside the scope of WCAG but still determine whether an interface is inclusive, usable, and welcoming.</p>
<p>The principles were developed to plug that gap with people-centred guidance that helps teams make better design decisions without adding unnecessary complexity. In this post, we'll look at who the principles are for, what they can be applied to, how they help people, and how you can integrate them into your own practices.</p>
<figure class="inline-image__container">
<svg class="services__icon inline-image" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 434.43 355.77" focusable="false"><style>.idp { fill: var(--color-logo-dark-mode, #1a1a1a); } #idpsun { fill: #fcb316; } @media (forced-colors) { .idp { fill: CanvasText !important; } #idpsun { fill-opacity: 0.5; } }</style><g transform="translate(-91.36 -285.92)"><path id="idpsun" class="idp" d="M270.06 288.42a79.15 79.15 0 0 0-74.84 59.8 79.15 79.15 0 0 0-.57 35.63 43.67 44.72 0 0 1 29.1-2.9 43.67 44.72 0 0 1 26.78 20.35l.22-.9c11.25-43.4 39.1-62.38 93.48-65.1a79.15 79.15 0 0 0-53.04-44.53 79.15 79.15 0 0 0-21.2-2.35z"></path><path class="idp" d="M211.42 377.4h.1c-.2.02-.36.1-.55.15-.24-.06-.43-.08-.62-.1-.44 0-.94.02-1.48.07-1.1.08-2.34.24-3.02.33-12.73 1.6-25.7 8.7-32.6 21.14-.23.3-.44.6-.65 1-.42.7-.82 1.5-1.2 2.2l-1.4-.1c-.66-.3-1.45-.5-2.4-.3-12.32-1.3-25.88 1.3-35.66 10.6-1.18.7-1.64 1.8-2.1 2.5-.24.3-.44.5-.5.6a1.43 1.43 0 0 0-.28-.1c-9.75-1-20.42-.3-29.23 5.6-2.03 1.3-3.77 3.3-4.73 5.7-.95 2.4-1.07 5.3.4 7.8a1.43 1.43 0 0 0 .03 0c4.28 6.8 12.06 8.8 18.5 10a1.43 1.43 0 0 0 .06 0c6.3 1 12.8.9 19.1-.5 10.6 9 24.8 11.1 37.6 9 5.6-1.1 11.2-3.1 16.2-6.4 13.7 8.5 30.9 9.3 45.3 2.7 7.2 2.4 14.7 3.4 22.3 3.1V450c-7.4.37-14.9-.7-21.9-3.12a1.43 1.43 0 0 0-1.1.06c-14 6.56-30.8 5.76-44-2.82a1.43 1.43 0 0 0-1.7.03c-4.8 3.37-10.3 5.35-15.9 6.4-12.4 2.05-26 0-35.8-8.77a1.43 1.43 0 0 0-1.3-.33c-6.2 1.4-12.6 1.54-18.8.57-6.3-1.23-13-3.05-16.6-8.73-1-1.8-1-3.6-.2-5.4.7-1.8 2.1-3.4 3.6-4.4a1.43 1.43 0 0 0 0-.1c7.8-5.3 17.5-6.1 26.7-5.3-1.5 2.5-2.6 5.5-2.4 8.5 11-20.3 24.9-21.6 43.4-19.5-.73 2.3-1.16 4.6-1 7 10.1-21.1 27.2-31.3 44.14-31.6 15.9-.3 31.62 8.3 41.14 24.9.5.6.8 1.6 1.2 2.4v-7l-.84-1.7h.1a1.43 1.43 0 0 0 .1 0h.67v-2.9h-.45c-.8-.1-1.5-.1-2.1 0-2.7-4.1-6.04-7.6-9.85-10.5-8.7-7.4-20.06-10.8-30.88-10.7z" style="text-decoration-color:#000;text-decoration-line:none;mix-blend-mode:normal;block-progression:tb;text-indent:0;text-decoration-style:solid;isolation:auto;text-transform:none" color="#000"></path><path class="idp" d="M344.03 335.26l-1.58 2.54c-8.83 14.2-11.36 30.86-10.1 66.6.64 18.6 2 41.88 3 51.77.7 6.84 6.82 57.82 8.2 68.52 8.33-.5 16.57.5 25.63 2.6 2.2-5.9 9.35-23.3 15.83-38.6 11.2-26.2 15-37.9 18.3-55.7 2.2-12.1 2.9-21.7 2.6-35.3-.6-23-3.7-34.7-12.3-46.1-3.7-4.9-12.4-13.6-14.1-14-1.4-.4-11.9-2-12-1.8 0 0-8.9-.8-13.4-.4l-3.8-.4h-6zm-11.12.8l-5.7.8c-3.2.43-6.2.94-6.8 1.13-4.4.6-8.4 1.5-12.1 2.8-.5 0-1.8.3-4.2 1-9 2.5-11.8 4-14.7 7.5-11.2 13.6-20.4 32.8-23 47.9-2.6 15 1.3 40.2 9.1 58.8 6.8 16.2 24.2 44.8 40.6 66.8 2.5 3.3 3.9 5.2 4.4 6.4 6.3-2.1 12.2-3.5 18-4.2-2.4-10.3-8.3-39-12.2-58.8-1.6-8.6-4.4-25.5-5.7-35.6-1.2-9-1.4-12.4-1.3-28.2.1-19.3.7-28.8 2.7-38.3 2.6-10.6 5.9-19.8 11.2-28.3zm58.1 4.44c-.1 0-.2 0-.1.1l4.7 3.7c12 9.45 20.1 25.95 22.6 45.67 1 7.47.5 25.58-.9 33-4.4 24.38-17.4 57.62-37.3 95.35l-5.4 10.34c5 1.36 10.3 3.07 16 5.06 20.6-20.84 32.7-35.06 43-50.6 14.1-21.22 19.8-36.04 21.8-56.15 1.8-17.85-2.8-37.2-12.1-51.6-.5-.75-1-1.54-1.6-2.33-5.7-10.92-17.3-21.48-37.8-28.74-4.2-1.54-11.3-3.64-12.6-3.77zM280.6 352c-.36-.23-2.6 1.45-6.97 4.9-20.46 16.1-31.4 43.08-28.64 70.56 1.4 14.1 4.2 24.06 10.5 36.63 10.4 20.9 26.2 41.3 53.6 69l.3.3c2.3-1 4.6-1.9 6.8-2.7-1.2-.6-2.6-2.4-6.8-8-9.1-12.1-15.6-21.3-23.3-33-9.2-13.9-9-13.5-14.4-23.3-11.1-19.9-14.8-31.6-15.3-49.1-.4-11.3.2-16.6 3.1-26.7 3.9-13.5 7-19.6 16.5-32.2 3.2-4.2 4.7-6.4 4.3-6.6zm65.23 178.43c-11.12.06-22.5 1.37-34.84 4.6 8.3 8.5 17.7 18.26 21.4 22.48l7.3 8.3h20.4l7-7.9c3.7-4.2 13.3-14.2 21.7-22.7-14.9-2.6-28.9-4.7-43.2-4.6zm-4.5 37.34c-.6 0-1.1.27-1.44.67h-.1v.06c-.2.3-.4.7-.4 1.13v5.08c0 1.1.8 1.9 1.9 1.9v12H340c-1.03 0-1.86.9-1.86 1.9v12.3c0 1 .84 1.9 1.86 1.9h6.04c2.86.1 6 .1 8.7 0h5.3c1 0 1.86-.8 1.86-1.8v-12.4c0-1-.8-1.8-1.82-1.8H358v-12h.6c1 0 1.84-.8 1.84-1.8v-5.1c0-.4-.2-.9-.5-1.2v-.2h-.3c-.3-.2-.67-.3-1.07-.3h-17.2zm3.9 8.8h.9c.8.08 1.2.45 1.3 1.3.18 1.1.6 1.34 2.3 1.34s2.14-.2 2.3-1.3c.1-.9.5-1.2 1.4-1.3h1.6v12h-10.3l-.05-.1v-11.6c.12-.2.3-.3.52-.3zM207.7 478.7l-.52.85c-2.9 4.68-3.75 10.17-3.33 21.95.2 6.13.66 13.8 1 17.07.23 2.36 2.43 20.63 2.74 22.9 2.7-.07 5.5.13 8.4.6.6-1.58 3-7.47 5.2-12.75 3.6-8.6 4.9-12.48 6-18.35.7-3.97.9-7.14.8-11.6-.2-7.6-1.3-11.45-4.1-15.18-1.2-1.7-4.1-4.5-4.7-4.7-.5-.1-4-.7-4-.6 0 0-3-.3-4.5-.2l-1.3-.2h-2zm-3.66.27l-1.9.26c-1.06.15-2.08.32-2.27.38-1.48.2-2.8.6-4 1-.17 0-.6.1-1.4.4-2.96.9-3.9 1.4-4.85 2.5-3.68 4.5-6.72 10.8-7.6 15.8-.85 5 .43 13.3 3 19.4 2.23 5.4 7.96 14.8 13.38 22.1.66.9 1.1 1.5 1.32 1.9 2.13-.4 4.15-.7 6.13-.8-.72-2.9-2.78-12.7-4.1-19.6-.55-2.8-1.45-8.4-1.9-11.7-.4-2.9-.46-4.1-.44-9.3.1-6.3.3-9.4.9-12.6.7-3.1 1.8-6.2 3.2-8.5l.5-.8zm19.13 1.47c-.08 0-.1 0-.07.02l1.52 1.22c3.94 3.12 6.62 8.56 7.44 15.06.3 2.46.13 8.43-.3 10.88-1.47 8.03-5.75 19-12.3 31.43l-1.77 3.34c1.8.3 3.6.7 5.6 1.3 6.5-6.7 10.4-11.3 13.7-16.3 4.6-7 6.5-11.9 7.2-18.5.5-5.9-1-12.3-4-17l-.6-.8c-1.9-3.6-5.8-7.1-12.5-9.5-1.4-.5-3.8-1.2-4.2-1.3zm-36.4 3.78c-.14-.07-.88.48-2.3 1.6-6.76 5.33-10.37 14.22-9.46 23.28.5 4.64 1.4 7.93 3.5 12.07 3.4 6.8 8.5 13.4 17.2 22.27.8-.23 1.6-.44 2.4-.63-.3-.3-.8-1-1.8-2.2-3-4-5.1-7-7.6-10.8-3-4.5-2.9-4.4-4.7-7.6-3.6-6.5-4.8-10.4-5-16.2-.1-3.7.1-5.4 1.1-8.8 1.3-4.4 2.3-6.4 5.5-10.6 1.1-1.4 1.6-2.1 1.5-2.1zm20.56 59.52c-3.45 0-6.97.2-10.7.67 2.8 2.9 5.95 6.2 7.22 7.6l2.4 2.7H213l2.34-2.6c1.2-1.3 4.22-4.5 6.94-7.2-5.05-.6-9.92-1-14.96-1zm-.55 11.6c-.2 0-.35.1-.46.23-.1.12-.14.24-.14.4v1.66c0 .34.28.6.62.6v3.97h-.4c-.35 0-.62.27-.62.6v4.08c0 .33.27.6.6.6h2c.94.04 1.98.03 2.88 0H213c.35 0 .62-.27.62-.6v-4.07c0-.3-.27-.6-.6-.6h-.72v-3.9h.2c.34 0 .6-.2.6-.6V556c0-.18-.05-.3-.15-.43v-.08h-.1c-.1-.1-.2-.1-.34-.1h-5.6zm1.3 2.9h.3c.27.03.4.15.43.43.1.37.2.45.8.45s.7-.08.8-.45c.1-.3.2-.4.5-.43h.6v3.96H208l-.04-.05v-3.8c.05-.07.1-.1.2-.1zm264.74-39.66l-.7 1.14c-3.96 6.35-5.1 13.82-4.53 29.82.3 8.32.9 18.75 1.3 23.18.3 3.2 3.2 27.64 3.7 30.96 3.8-.1 7.5.18 11.4.8 1-2.73 4.2-10.42 7-17.15 4.9-11.7 6.7-16.96 8.1-24.93 1-5.4 1.3-9.7 1.1-15.76-.3-10.32-1.7-15.55-5.6-20.62-1.7-2.2-5.6-6.07-6.3-6.26-.7-.16-5.4-.87-5.4-.8 0 0-4-.35-6-.2l-1.7-.18h-2.7zm-4.98.35l-2.6.36c-1.42.2-2.8.4-3.06.5-1.98.2-3.77.7-5.4 1.2-.24 0-.83.1-1.9.4-4.02 1.1-5.3 1.8-6.6 3.4-5 6.1-9.13 14.7-10.3 21.4-1.17 6.7.57 18 4.05 26.3 3.03 7.2 10.82 20 18.2 29.9.82 1.1 1.36 1.8 1.7 2.4 2.9-.6 5.65-1 8.36-1.2-1-4.1-3.8-17.3-5.5-26.6-.8-3.9-2-11.4-2.6-16-.6-4-.6-5.6-.6-12.6 0-8.6.3-12.9 1.2-17.2.8-4.3 2.4-8.5 4.3-11.6l.6-1.1zm26 2c-.1 0-.1 0-.08.03l2.07 1.65c5.35 4.3 9 11.7 10.1 20.5.42 3.4.2 11.5-.4 14.8-1.98 10.9-7.8 25.8-16.7 42.7l-2.3 4.4c2.47.5 5.05 1.1 7.77 1.8 8.76-8.9 14.03-15.1 18.5-21.9 6.3-9.5 8.9-16.1 9.77-25.1.77-8-1.26-16.6-5.43-23.1l-.7-1c-2.6-4.9-7.8-9.6-16.98-12.9-1.9-.7-5.08-1.6-5.65-1.7zm-49.45 5.14c-.2-.1-1.2.65-3.1 2.2-9.2 7.2-14.1 19.28-12.9 31.6.6 6.3 1.9 10.76 4.7 16.4 4.5 9.17 11.4 18.12 23.2 30.08 1.1-.3 2.2-.6 3.3-.85-.5-.5-1.2-1.37-2.4-2.96-4.1-5.4-7-9.54-10.4-14.75-4.1-6.3-4-6.1-6.5-10.5-5-8.9-6.6-14.2-6.9-22-.2-5.1.1-7.4 1.4-12 1.7-6.1 3.1-8.8 7.4-14.4 1.4-1.9 2.1-2.9 1.9-3zm28 80.8c-4.7 0-9.6.26-14.6.9 3.8 3.87 8.1 8.4 9.8 10.32l3.3 3.6h9.2l3.1-3.6c1.6-1.9 5.8-6.2 9.5-10-6.9-.8-13.5-1.4-20.4-1.4zm-.8 15.8c-.3 0-.5.13-.6.3h-.1v.03c-.1.14-.2.32-.2.5v2.3c0 .45.3.82.8.82V632h-.5c-.5 0-.9.37-.9.82v5.52c0 .46.3.83.8.83h2.7c1.2.04 2.7.04 3.9 0h2.4c.4 0 .8-.37.8-.83v-5.52c0-.45-.4-.82-.9-.82h-.9v-5.38h.2c.5 0 .9-.37.9-.83v-2.3c0-.2-.1-.4-.2-.6v-.1h-.1c-.2-.1-.3-.2-.5-.2h-7.8zm1.7 3.95h.4c.3.03.5.2.5.58 0 .5.2.6 1 .6s.9-.1 1-.6c0-.4.2-.54.6-.58h.7V632H473c0-.03-.04-.05-.05-.08v-5.16c.07-.1.15-.13.25-.14z"></path><rect width="7.4" height="3.85" x="206.04" y="555.3" class="idp" ry=".77"></rect><rect width="9.94" height="5.16" x="470.37" y="622.86" class="idp" ry="1.03"></rect></g></svg>
<figcaption>The Inclusive Design Principles</figcaption>
</figure>
<h2 id="the-seven-principles" tabindex="-1">The seven principles</h2>
<p>Firstly let's look at each of the seven principles and what they are.</p>
<h3 id="provide-a-comparable-experience" tabindex="-1">Provide a comparable experience</h3>
<blockquote>
<p>Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.</p>
</blockquote>
<p>Providing a comparable experience is more than just adding alternatives for images, video, and audio. Those alternatives need to be high quality so that people who experience the web in different ways have content that is just as effective. After all, <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a>, <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">captions, audio description, and transcripts</a> are not supplementary, they are primary content for many of us.</p>
<p>Inclusion goes further still: however someone consumes or navigates content, whether with <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technology or an adaptive strategy</a>, their experience should be just as usable and enjoyable as anyone else’s, not just technically accessible.</p>
<h3 id="consider-situation" tabindex="-1">Consider situation</h3>
<blockquote>
<p>People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.</p>
</blockquote>
<p>Inclusive design isn’t just about the interface; it’s also about the context in which someone is using it. Accessibility and usability can be affected by a person’s environment, or by how they’re feeling mentally or physically.</p>
<p>A well-designed interface should work just as well for someone using it on a crowded train with limited signal, as it does for someone at home with full concentration. Designing with context in mind means recognising that people’s abilities and needs change - sometimes temporarily, sometimes permanently — and ensuring your product adapts to meet them.</p>
<h3 id="be-consistent" tabindex="-1">Be consistent</h3>
<blockquote>
<p>Use familiar conventions and apply them consistently.</p>
</blockquote>
<p>Consistency is key. It helps people navigate with confidence, reduces cognitive load, and builds familiarity with your product. The goal is to balance innovation with familiar conventions and learned behaviours.</p>
<p>Internal consistency means using your organisation’s <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">design system</a> and adhering to shared patterns. This could include consistent keyboard behaviour across components, or language guidelines that shape how instructions, buttons, and links are written across your product.</p>
<p>External consistency means following established web conventions that people have come to expect such as search positioned high up in the content order in the top-right corner, or commonly used icons. These patterns reduce the need for people to relearn how things work.</p>
<h3 id="give-control" tabindex="-1">Give control</h3>
<blockquote>
<p>Ensure people are in control. People should be able to access and interact with content in their preferred way.</p>
</blockquote>
<p>Giving control means respecting how people choose to experience content, not forcing a one-size-fits-all approach. It ensures that people can adjust how content is displayed using their own assistive technologies, adaptive strategies, or preferences without being blocked by restrictive design decisions.</p>
<p>This shouldn't limit creativity or innovation, it simply means designing in ways that don’t override people's needs. For example, people should be able to pause or disable animations and videos, stop auto-advancing carousels, zoom without layout breaking, and adjust font sizes or colours to support readability.</p>
<h3 id="offer-choice" tabindex="-1">Offer choice</h3>
<blockquote>
<p>Consider providing different ways for people to complete tasks, especially those that are complex or non-standard.</p>
</blockquote>
<p>Not to be confused with “give control,” offering choice is about providing multiple ways for people to complete the same tasks, especially when those tasks are complex, unfamiliar, or require specific interactions.</p>
<p>This might mean allowing people to drag and drop or use standard form fields, complete a form online or download it to fill out offline, or access support through a live chat or a help article.</p>
<h3 id="prioritise-content" tabindex="-1">Prioritise content</h3>
<blockquote>
<p>Help users focus on core tasks, features, and information by prioritising them within the content and layout.</p>
</blockquote>
<p>Prioritising content is often overlooked in design, but when done well, it has a huge positive impact on accessibility and inclusion.</p>
<p>By putting the most important tasks, features, and information high up in the content order, you reduce cognitive load and help people complete what they came to do, faster and with less frustration. This is especially important for non-mouse users and people with limited time, lower literacy, or attention-related disabilities.</p>
<p>Good content prioritisation is more than just a thoughtful content order however, it’s also about making information easy to scan, read, and act on. This includes using keywords at the start of headings and link text, writing clear copy that puts the main point first, and removing anything that distracts or overwhelms.</p>
<h3 id="add-value" tabindex="-1">Add value</h3>
<blockquote>
<p>Consider the value of features and how they improve the experience for different users.</p>
</blockquote>
<p>There is a big crossover between adding value and innovation, but innovation isn’t valuable if it creates barriers or complexity.</p>
<p>Adding value means introducing features or enhancements that genuinely support accessibility and inclusion. This might mean adding features that facilitate task completion such as a show password toggle, voice input options in search and forms, or customisable notification settings.</p>
<h2 id="what-the-principles-can-be-applied-to" tabindex="-1">What the principles can be applied to</h2>
<p>The principles can be applied to any type of interface including, but not limited to:</p>
<ul>
<li><strong>Automotive interfaces</strong>: in-car entertainment and navigation systems</li>
<li><strong>Biometrics</strong>: fingerprint, face, or voice recognition systems</li>
<li><strong>Chatbots</strong>: conversational text-based interfaces</li>
<li><strong>Kiosks</strong>: touchscreens and public access terminals</li>
<li><strong>Mobile applications</strong>: apps for smartphones and tablets</li>
<li><strong>QA codes</strong>: machine-readable codes used to access digital content</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">AR/VR interfaces</a>: augmented and virtual reality environments</li>
<li><a href="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/">Smart TV interfaces</a>: menus and apps for televisions and streaming devices</li>
<li><strong>Smart home interfaces</strong>: control panels, apps, and voice assistants for connected devices</li>
<li><strong>Voice interfaces</strong>: systems controlled by speech</li>
<li><strong>Wearables</strong>: smartwatches, fitness trackers, and other devices with small screens</li>
<li><strong>Websites</strong>: online content and services</li>
</ul>
<p>You can also apply them when mapping out:</p>
<ul>
<li><strong>User flows and user journeys</strong>: ensuring that each step of a process works for people with different needs and preferences</li>
<li><strong>Product blueprints</strong>: identifying requirements for a product and ensuring they are inclusive</li>
<li><strong>Content strategy and structure</strong>: shaping content so it can be understood and used by everyone</li>
<li><strong>Design systems and component libraries</strong>: ensuring consistency and inclusion are embedded across reusable patterns</li>
</ul>
<h2 id="who-are-the-principles-for" tabindex="-1">Who are the principles for</h2>
<p>Simply put, they are for everyone involved in the design, development, and delivery of digital products and services. This includes:</p>
<ul>
<li>Designers including UX, UI, and service designers</li>
<li>Developers</li>
<li>Content designers and writers</li>
<li>Product managers and owners</li>
<li>Quality assurance (QA) testers</li>
<li>Researchers and user experience specialists</li>
</ul>
<h2 id="how-do-the-principles-help-people" tabindex="-1">How do the principles help people</h2>
<p>The principles help people designing and building interfaces as well as disabled people using interfaces.</p>
<h3 id="people-designing-and-building-products" tabindex="-1">People designing and building products</h3>
<p>The principles can support product teams in several ways, by:</p>
<ul>
<li><strong>Embedding inclusion from the start</strong>: providing a shared language and framework that guides teams to make design decisions that include, rather than exclude, people right from the start</li>
<li><strong>Improving decision-making</strong>: helping teams weigh design trade-offs with inclusion in mind</li>
<li><strong>Reducing remediation work</strong>: minimising the need for costly accessibility fixes later in development</li>
<li><strong>Going beyond compliance</strong>: focusing on user experience rather than just ticking boxes in a guideline</li>
</ul>
<h3 id="people-using-products" tabindex="-1">People using products</h3>
<p>The Inclusive Design Principles help people using products by:</p>
<ul>
<li><strong>Prioritising people with disabilities</strong>: leading to designs that accommodate a wider range of experiences from the start</li>
<li><strong>Improving usability for everyone</strong>: by considering the needs of disabled people, you will get a product that is more usable for everyone to use</li>
<li><strong>Creating a culture of inclusion</strong>: using the principles throughout the design and build process helps build a mindset of inclusion and gradually build better understanding around the different needs of disabled people</li>
</ul>
<h2 id="how-can-the-principles-be-used" tabindex="-1">How can the principles be used</h2>
<p>The Inclusive Design Principles can be applied throughout the product development lifecycle, from early research through to delivery and quality assurance.</p>
<h3 id="during-research-and-discovery" tabindex="-1">During research and discovery</h3>
<p>The principles can be used to shape inclusive thinking from the start.</p>
<h4 id="framing-research-questions" tabindex="-1">Framing research questions</h4>
<p>The principles can be used to help inform research questions. For example:</p>
<blockquote>
<p>Is this a <em>comparable experience</em> for someone using a screen reader or voice input?</p>
</blockquote>
<p>or</p>
<blockquote>
<p>How can we offer people a <em>choice</em> of more than one way to complete this task?</p>
</blockquote>
<p>This ensures your research considers different perspectives from the start.</p>
<h4 id="documenting-accessibility-requirements" tabindex="-1">Documenting accessibility requirements</h4>
<p>The principles can act as a reference for requirements. For example, if you’re designing a dashboard with live updates, the requirement might be:</p>
<blockquote>
<p>Ensure people can <em>control</em> when the dashboard is updated.</p>
</blockquote>
<p>This helps people with thinking or seeing disabilities who want to avoid unexpected dashboard changes, for example by adding pause, refresh, or update frequency controls.</p>
<blockquote>
<p>Ensure people have a <em>choice</em> as to what content appears on the dashboard</p>
</blockquote>
<p>This helps people with seeing, moving, and thinking disabilities reduce distractions and unwanted content by allowing personalisation and customisation.</p>
<h3 id="during-design" tabindex="-1">During design</h3>
<h4 id="use-the-principles-in-design-reviews" tabindex="-1">Use the principles in design reviews</h4>
<p>Review layouts, interaction patterns, alternatives, and language against the principles. For example, on a charity website this could mean <em>prioritising</em> the donate and get support buttons in the content order and making them visually prominent.</p>
<p>Or it could mean adding <em>value</em> to a search input by including voice input to support people who struggle to input text using a keyboard or spell words correctly.</p>
<h4 id="accessible-design-annotations" tabindex="-1">Accessible design annotations</h4>
<p>Capture decisions and feedback in <a href="https://tetralogical.com/blog/2025/09/23/annotating-designs-using-common-language/">design annotations</a> to clarify intent for developers and QA. This reduces ambiguity, builds understanding, and prevents accessibility from being dropped during handoff, and supports more consistent, inclusive outcomes across teams (Be consistent).</p>
<h3 id="during-development" tabindex="-1">During development</h3>
<h4 id="use-the-principles-to-guide-coding-decisions" tabindex="-1">Use the principles to guide coding decisions</h4>
<p>The principles can help guide coding decisions when you’re unsure of the best way to implement a feature or component.</p>
<p>For example, if you have two working prototypes, asking how well each one aligns with the Inclusive Design Principles can help reveal which option provides a more inclusive, user-centred experience. Even if both are technically functional, one may better support diverse needs and offer a more <em>comparable experience</em>.</p>
<h4 id="use-the-principles-alongside-wcag" tabindex="-1">Use the principles alongside WCAG</h4>
<p>When paired with <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG</a>, the principles help ensure interfaces go beyond compliance, creating more thoughtful and inclusive experiences.</p>
<p>WCAG sets essential requirements but cannot fully address design, which is often subjective. The IDP help bridge this gap by showing what good design looks like in the context of your product and the different situations in which people use it.</p>
<h3 id="during-testing-and-quality-assurance" tabindex="-1">During testing and quality assurance</h3>
<p>The principles can help teams evaluate user experience when <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing with disabled people</a> isn’t possible through:</p>
<ul>
<li><a href="https://tetralogical.com/services/user-experience-reviews/">User experience reviews</a>: use the principles as a checklist in component reviews or journey walkthroughs to understand how people with seeing, hearing, moving, and thinking disabilities experience your product.</li>
<li><strong>Scenario testing</strong>: ask questions such as “Can someone pause this animation?” or “Is content clearly prioritised for someone navigating by touch or voice?”</li>
</ul>
<h3 id="who-is-using-the-principles" tabindex="-1">Who is using the principles</h3>
<p>Since their release, the IDP have been referenced in design systems, adopted in accessibility programmes, and used as teaching tools in training and education.</p>
<p>We use them every day, and feature in a number of our services such:</p>
<ul>
<li><a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a></li>
<li><a href="https://tetralogical.com/services/design-reviews/">Design Reviews</a></li>
<li><a href="https://tetralogical.com/services/design-system-assessments/">Design System Assessments</a></li>
<li><a href="https://tetralogical.com/services/documentation">Documentation</a></li>
<li><a href="https://tetralogical.com/services/embedded-accessibility/">Embedded Accessibility</a></li>
<li><a href="https://tetralogical.com/services/user-experience-reviews/">User Experience Reviews</a></li>
</ul>
<p>As a consultancy, we design services and solutions that help our customers meet complex challenges. The Inclusive Design Principles shape not only the guidance we give on products and features, but also the strategies and processes that ensure accessibility and inclusion are built into every stage of delivery.</p>
<p>They are also currently used by many organisations all over the world including:</p>
<ul>
<li><a href="https://consilium-europa.libguides.com/c.php?g=694019&amp;p=4979018">Council of the European Union</a> (Learning Resources)</li>
<li><a href="https://www.rrc.ca/tltc/2018/02/12/inclusive-design-resources/">RRC University, Canada</a></li>
<li><a href="https://centreforinclusivedesign.org.au/inspiration-series/?">Centre for Inclusive Design Australia</a></li>
<li><a href="https://www.smashingmagazine.com/the-smashing-newsletter/smashing-newsletter-issue-417/?utm_source=chatgpt.com">Smashing Magazine</a></li>
</ul>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>The principles don’t replace WCAG or other standards; they provide a lens for good design that includes everyone. Used consistently, they help shift accessibility from compliance to culture.</p>
<h2 id="resources" tabindex="-1">Resources</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=U34msEypK6k">The inclusive Design Principles - video</a>, Henny Swan</li>
<li><a href="https://businessdisabilityforum.org.uk/wp-content/uploads/2024/05/Inclusive-Design-Principles-full-version.pdf">The Inclusive Design Principles posters - PDF</a>, Barclays</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Ian Lloyd</title>
    <link href="https://tetralogical.com/blog/2025/10/01/meet-the-team-ian-lloyd/"/>
    <updated>2025-10-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/10/01/meet-the-team-ian-lloyd/</id>
    <content type="html"><![CDATA[
        <p>Meet Ian Lloyd, or Lloydi to you and me. He's a creative soul at heart with a wide range of hobbies and, of course, a deep-rooted enthusiasm for accessibility, which has extended into books, blogs, tools, and working with us!</p>
<p><img src="https://tetralogical.com/blog/2025/10/01/meet-the-team-ian-lloyd/silly-lorikeet-pic.jpeg" alt="Lloydi pulling a silly face at a brightly-coloured rainbow lorikeet bird perching on his arm" /></p>
<p>He’s been involved with accessibility and web standards since the early 2000s, back when the <a href="https://www.webstandards.org/">Web Standards Project (WaSP)</a> and its <a href="https://www.webstandards.org/action/atf/index.html">Accessibility Task Force</a> were encouraging companies like Macromedia and Adobe to produce tools that generated standards-based, accessible code. At the same time, he was a front-end developer with a habit of talking about accessibility to anyone who would listen.</p>
<p>Lloydi also wrote a book called <a href="https://www.amazon.co.uk/Build-Your-Website-Right-Using/dp/0987090852">Build Your Own Website the Right Way Using HTML &amp; CSS</a>, which went on to become a SitePoint bestseller since it was first published almost 20 years ago.</p>
<p>A family man at heart, Lloydi has been married for almost 20 years, raising twins who are, in his words, “two peas from two entirely different plant species’ pods.” His family lives among his old DJ kit and the odd vinyl record released in his name from years ago. The household is completed with two furry friends: Roxy, the Cairn Terrier, and Rambo, a tiny dog of indeterminate breed.</p>
<p><img src="https://tetralogical.com/blog/2025/10/01/meet-the-team-ian-lloyd/ian-with-dogs.jpeg" alt="Lloydi with his two dogs, Roxy a Cairn Terrier with a shaggy grey, brindle coat and Rambo, a little pipsqueak of a dog that barely lives up to his name" /></p>
<p>Music has always been a constant, ever since the early days. Before his full-time shift into accessibility in 2019 (when he joined Apple’s UK accessibility team as a contractor), he’d already had a sideline as a DJ and producer, releasing records on vinyl and even landing <a href="https://theprodigy.com/">The Prodigy</a> (Warning: there is strobe lighting on page load) their <a href="https://www.kz1.me/2024/07/21/the-prodigy-claim-to-fame-that-i-cannot-prove/">first magazine front cover back in the 90s</a> (sadly, the physical proof was lost when the magazine got left behind in a house move but this doesn't make it any less true)!</p>
<p>After five years at TPGi as a Principal Accessibility Engineer, Lloydi joined TetraLogical as a Principal Accessibility Specialist. Here, he puts his web development background to use by building prototypes for complex accessibility challenges and creating tools to spot issues that off-the-shelf testing software might miss. He continues to speak at conferences, contribute to books, and is always looking for ways to make accessibility more practical and effective.</p>
<p>When he’s not doing that, you might find him out on his childhood BMX (a 1984 Haro Freestyler for those in the know), or edging back into photography after blaming the iPhone for years of laziness. He’s fully aware that becoming “camera guy” again could be dangerous for the bank balance, but that’s all part of the fun.</p>
<p>All told, whether he’s unpicking accessibility conundrums, producing music, or bombing around on his BMX, Lloydi brings the same mix of persistence, creativity, and slightly mischievous enthusiasm.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>That one day it'd take over my life?</p>
<p>Seriously, though, when I first started to learn about this stuff back in the early 2000s, everything was much simpler as far as accessibility was concerned. There were very few resources available at the time, other than the early Web Accessibility Initiative (WAI) and Web Content Accessibility Initiative (WCAG) documentation (which was also much simpler - or less comprehensive, if you like) and HTML standards.</p>
<p>Had I known how the web would change, and how we develop for it, I might have chosen to become a welder, park ranger or something else entirely different. The absolute bloated mess that is produced by so many of the current frameworks, production and publishing processes has made the task of creating accessible content so much more difficult. So, practically speaking, I wish that I could have been more involved in the early days of the development of some of these tech stacks. It would have been wonderful to have contributed to the code base early doors and avoid a lot of the issues that are now just wrapped up in what they generate, with limited ability to change them. Having had a few opportunities to provide accessibility feedback and advice on code and markup used in <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">design systems</a> before they are used in production, it's clear how much of a difference this can make to the end product.</p>
<p>When developers are using frameworks like React, it's so much more difficult for people who are providing assessments and consultancy to say, &quot;just fix this HTML here&quot;, because the chances are the developers have touched about as much raw HTML as the amount of steel plates I've welded (which is none). So, if you ever have the opportunity to contribute to such things from the outset to head off issues further down the line, I'd definitely encourage doing that!</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>This is very much aimed at developers: don't try to be too clever!</p>
<p>Actually, that also applies to UX and designers. It seems like there are plenty of people who will strive to make an interface do something cool, new, or interesting, dismissing years of research, convention, and learned behaviours. We used to see that all the time with Flash-based sites, but Flash is dead, so that's progress of sorts!</p>
<p>It's so important for people from all walks of life to get access to proposed designs before a single line of code has been written. Does the interface look a bit ... funky? Is it obvious what needs to happen here? If the warning bells are starting to sound, there's a chance to put things right. And that's not limited <em>just</em> to accessibility specialists having their say, I should clarify. A designer can't know everything, and along with accessibility issues that they might unwittingly introduce, there may be cultural missteps, confusing language, and who knows what else? The broader the audience who get early access, the better it is for everyone.</p>
<div class="pull-quote" data-pull-quote-variant="">
  <blockquote>I think that's two tips then: don't try to get <em>too</em> creative or clever, and share your designs early for feedback to make sure they will work for all.</blockquote>
  <div class="pull-quote__caption">
    <p>Ian Lloyd, Principal Accessibility Specialist</p>
  </div>
</div>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>The pages that I refer to most are the <a href="https://www.w3.org/WAI/WCAG22/Understanding/">WCAG Understanding docs</a>. The <a href="https://www.w3.org/TR/WCAG22/">normative docs</a> don't really give you the details, they just give you the basic 'what it is'. The understanding docs really help to explain what this means in practice, and they are updated when confusion arises (albeit after some very lengthy and sometimes fraught discussions ... at this point I look in <a href="https://tetralogical.com/about/team/#plauke">Patrick's</a> direction expecting a knowing nod).</p>
<p>After that, the pages that I reference the most are those that cover patterns for more complex widgets such as the <a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practice Guidelines</a>.</p>
<p>If I may be so cheeky, I'll add one other, which is my own site: <a href="https://a11y-tools.com/">a11y-tools.com</a> - mainly for the <a href="https://a11y-tools.com/bookmarklets/">bookmarklets</a>.</p>
<p>Very much following the 'eat your own dog food' mantra, I use these tools all the time. I often find that while page and site scanning tools like Axe, ARC Toolkit, and Wave provide broad coverage, the way they display issues isn’t always useful. For me, the challenge is &quot;how can I show this in a way that makes sense to the developer who needs to fix it?&quot;.</p>
<p>So I create tools and visualisers that expose accessibility issues in a way that makes sense to <em>me</em>, that lend themselves well to a screenshot when filing an issue or sharing with teams. I share these tools with others because I suspect I'm not alone in wanting to visualise issues in this way. I literally use them every day while carrying out assessments, it's definitely a top resource for me (and <em>by</em> me).</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, the team, our principles and our community.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Annotating designs using common language</title>
    <link href="https://tetralogical.com/blog/2025/09/23/annotating-designs-using-common-language/"/>
    <updated>2025-09-23T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/09/23/annotating-designs-using-common-language/</id>
    <content type="html"><![CDATA[
        <p>In most organisations, design documentation often includes annotations, but accessibility-specific ones are still rare. That’s a missed opportunity. Annotating designs for accessibility helps everyone involved understand what needs to be built, tested, and maintained.</p>
<p>Using a common language that designers, developers, and quality assurance (QA) teams all understand is essential so that information doesn't get lost in translation, especially during the hand-off between design and development.</p>
<p>There are already some great Figma plugins and libraries to help, such as:</p>
<ul>
<li><a href="https://www.figma.com/community/plugin/732603254453395948/stark-contrast-accessibility-checker">Contrast &amp; Accessibility Checker</a>, by Stark</li>
<li><a href="https://www.figma.com/community/plugin/731310036968334777/accessibility-assistant">Accessibility Assistant</a>, by Microsoft</li>
<li><a href="https://www.figma.com/community/file/953682768192596304">A11y Annotation Kit</a>, by Indeed</li>
<li><a href="https://www.figma.com/community/plugin/1085612091163821851/axe-for-designers-a-free-accessibility-plugin">axe for Designers</a>, by Deque</li>
</ul>
<p>These tools can make accessibility annotations easier to manage, but they’re just the starting point. What really matters is knowing what to annotate and how to do it clearly and consistently using language everyone understands.</p>
<h2 id="why-accessibility-annotations-matter" tabindex="-1">Why accessibility annotations matter</h2>
<p>Most of the time, things aren’t inaccessible because someone deliberately designed them to be that way. They become inaccessible because multiple people throughout the process didn’t consider accessibility. In the fast-paced world of product delivery, if nobody considers accessibility, the product will simply be shipped without it.</p>
<p>As an example, if the designer does not provide <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for editorial images, the development team will usually do one of three things:</p>
<ol>
<li>Leave the <code>alt</code> attribute out altogether, so screen readers fall back to announcing the image file name or URL</li>
<li>Provide a text description themselves, which may or may not accurately describe the image in its context</li>
<li>Use an empty <code>alt</code> attribute, effectively marking an image as decorative when it shouldn't be</li>
</ol>
<p>So, by annotating our designs, we help to fill in those gaps for the development team. We clarify our design intent, reduce ambiguity, and save the whole team time by avoiding expensive re-designs, rebuilds, or last-minute bug fixes.</p>
<h2 id="what-to-annotate" tabindex="-1">What to annotate</h2>
<p>Annotate anything that could affect accessibility or usability, especially when it isn’t obvious just by looking at the design.</p>
<p>For example:</p>
<ul>
<li><strong>Action labels</strong>: for elements like buttons and links</li>
<li><strong>Content structure</strong>: like <a href="https://tetralogical.com/blog/2022/02/28/headings/">heading</a> levels and <a href="https://tetralogical.com/blog/2022/04/29/lists/">lists</a></li>
<li><strong>Error suggestions</strong>: for elements like form inputs with <a href="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/">error messages</a></li>
<li><strong>Keyboard functionality</strong>: like focus order and <a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">visible focus styles</a>, <a href="https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/">keyboard accessibility</a>, and skip links</li>
<li><strong>Layout</strong>: how elements behave at different viewport sizes or breakpoints</li>
<li><strong>Multimedia alternatives</strong>: like audio descriptions, captions and transcripts for <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">inclusive video</a></li>
<li><strong>Page titles</strong>: which accurately represent the content and orientate the user</li>
<li><strong>Reading order</strong>: for complex layouts or grouped elements</li>
<li><strong>States</strong>: for <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">changes of state</a> such as disabled, invalid, loading, expanded and collapsed</li>
<li><strong>Text descriptions</strong>: for elements like <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">images and icons</a></li>
<li><strong>Timings</strong>: like durations, time limits, and <a href="https://tetralogical.com/blog/2022/03/07/session-timeouts/">session time outs</a></li>
</ul>
<h3 id="deciding-what's-important" tabindex="-1">Deciding what's important</h3>
<p>To decide what's important to annotate for developers, look at each element and ask three questions:</p>
<ol>
<li>
<p><strong>What different outcomes are possible from interacting with this element?</strong></p>
<ul>
<li>Does it change state? For example, selected, expanded or collapsed.</li>
<li>Could something go wrong? For example, validation errors.</li>
<li>Does it change the current context for the user? For example, opening a modal or navigating to a different page.</li>
</ul>
</li>
<li>
<p><strong>How might different people achieve each outcome?</strong></p>
<p>Are they:</p>
<ul>
<li>Browsing with a mouse? For example, clicking, dragging or hovering.</li>
<li><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">Browsing with a screen reader</a>, for example, listening to text descriptions.</li>
<li><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">Browsing with a keyboard</a>? For example, using <kbd>Tab</kbd>, <kbd>Space</kbd> or <kbd>Enter</kbd> keys.</li>
<li><a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">Browsing with speech recognition</a>? For example, saying &quot;click button&quot; or &quot;press tab&quot;.</li>
</ul>
</li>
<li>
<p><strong>What isn’t immediately clear just by looking at the design?</strong></p>
<ul>
<li>Are icons ambiguous? For example, an &quot;X&quot; icon could represent &quot;clear&quot;, &quot;remove&quot;, or &quot;close&quot; actions.</li>
<li>Is the content structure ambiguous? For example, different heading levels could look similar in size.</li>
<li>Is content ordering ambiguous? For example, a sidebar could be read out before or after the main content.</li>
</ul>
</li>
</ol>
<h2 id="the-current-challenge-with-accessibility-annotation-tools" tabindex="-1">The current challenge with accessibility annotation tools</h2>
<p>The biggest challenge we see with most of the current accessibility annotation tools, is that they usually require the person doing the annotations to have a strong knowledge of HTML and accessibility.</p>
<p>To be honest, although most accessibility annotation tools are built to use in <a href="https://www.figma.com/">Figma</a>, they often feel like they're designed for web accessibility specialists or developers, not designers.</p>
<p>For example, to use most accessibility annotation tools, you usually need to know technical implementation details, like:</p>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements">HTML elements</a></li>
<li>Semantic landmarks and roles</li>
<li>Standardised <code>autocomplete</code> values</li>
<li><a href="https://www.w3.org/WAI/standards-guidelines/aria/">WAI-ARIA</a> attributes and roles</li>
</ul>
<p>If you're a designer, it's unlikely your knowledge on <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">HTML semantics</a> or WAI-ARIA will be as good as the developer who you're handing over to. So, trying to annotate these things in your design can feel quite daunting!</p>
<h2 id="an-easier-way-to-annotate-your-designs" tabindex="-1">An easier way to annotate your designs</h2>
<h3 id="behaviours-and-expected-outcomes" tabindex="-1">Behaviours and expected outcomes</h3>
<p>In software development, it's common to build and test things using a methodology called <a href="https://en.wikipedia.org/wiki/Behavior-driven_development">behaviour driven development (BDD)</a>. If you're not familiar with it, the idea is that you create tests for a computer to carry out, but written in a way where they also make sense to any humans reading them.</p>
<p>BDD describes the needs of the people using the application, then outlines possible scenarios. This way, when the application is built, it behaves as expected.</p>
<p>Scenarios may vary slightly in their format, but they're usually recognisable because of the words &quot;given&quot;, &quot;when&quot; and &quot;then&quot;. This is often referred to as <a href="https://cucumber.io/docs/gherkin/reference">Gherkin</a> syntax, made popular by the testing framework <a href="https://cucumber.io/">Cucumber</a>.</p>
<p>For example:</p>
<pre class="language-html"><code class="language-html">Feature: Sign in
    As a registered user
    I want to be able to sign in to my account
    So that I can view my account information
    
    Scenario:
        Given I am on the sign in page
        When I enter my username and password correctly
        And I click the sign in button
        Then I should navigate to my account</code></pre>
<p>The point of BDD and the frameworks which enable it, is that it helps to facilitate collaboration between multi-disciplinary teams, which likely have a mix of technical and non-technical roles.</p>
<h3 id="using-the-same-language" tabindex="-1">Using the same language</h3>
<p>In user experience (UX) design, whether designing interactions or conducting usability tests, designers observe and anticipate user behaviour all the time. So, if designers are thinking about behaviours, and developers and testers are also thinking about behaviours, then it makes sense for us all to just use the same language!</p>
<p>As designers, using a similar format is an easy way to write up expected outcomes for accessibility, without needing to know the technical implementation to actually achieve it.</p>
<p>You might not need a &quot;given&quot; statement, because the design you're annotating probably sets the scene, but using the following pattern, you can quickly set expectations for developers:</p>
<blockquote>
<p><strong>When</strong>: describe action and context<br />
<strong>Then</strong>: describe expected outcome</p>
</blockquote>
<p>For example:</p>
<blockquote>
<p><strong>When</strong> I focus the pencil icon using a screen reader
<strong>Then</strong> it should announce edit address</p>
</blockquote>
<p>You can also use a table if there are a few different outcomes. For example:</p>
<blockquote>
<p><strong>When</strong> I enter a postcode
<strong>And</strong> the format is invalid
<strong>Then</strong> it should show the correct error message</p>
</blockquote>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Blank</td>
<td>Enter a postcode</td>
</tr>
<tr>
<td>Wrong length</td>
<td>Enter a postcode between 5 and 7 characters long</td>
</tr>
<tr>
<td>Special characters</td>
<td>Enter a postcode using only numbers and letters</td>
</tr>
<tr>
<td>Does not exist</td>
<td>Enter a postcode which exists in the UK</td>
</tr>
</tbody>
</table>
</div><h2 id="examples" tabindex="-1">Examples</h2>
<p>Below is a set of examples showing how to use this method to annotate different elements in your designs.</p>
<h3 id="content-structure" tabindex="-1">Content structure</h3>
<h4 id="ambiguous-buttons" tabindex="-1">Ambiguous buttons</h4>
<p><strong>When</strong> I focus the hamburger button using a screen reader
<strong>Then</strong> it should announce navigation menu</p>
<h3 id="ambiguous-links" tabindex="-1">Ambiguous links</h3>
<p><strong>When</strong> I focus the read more link using a screen reader
<strong>Then</strong> it should announce the visible read more label
<strong>And</strong> it should also announce the associated blog post title</p>
<h4 id="heading-levels" tabindex="-1">Heading levels</h4>
<p><strong>When</strong> I navigate the headings using screen reader
<strong>Then</strong> it should announce the correct heading levels</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Our services</td>
<td>level 1</td>
</tr>
<tr>
<td>Experience</td>
<td>level 2</td>
</tr>
<tr>
<td>Knowledge</td>
<td>level 2</td>
</tr>
<tr>
<td>Strategy</td>
<td>level 2</td>
</tr>
</tbody>
</table>
</div><h4 id="ambiguous-unordered-lists" tabindex="-1">Ambiguous unordered lists</h4>
<p><strong>When</strong> I focus the action menu using a screen reader
<strong>Then</strong> it should announce that it's a list with four items</p>
<h4 id="ambiguous-ordered-lists" tabindex="-1">Ambiguous ordered lists</h4>
<p><strong>When</strong> I navigate the history timeline
<strong>Then</strong> it should announce it's an ordered list with five items</p>
<h4 id="error-suggestions" tabindex="-1">Error suggestions</h4>
<p><strong>When</strong> I enter an invalid email
<strong>And</strong> I submit the sign-up form
<strong>Then</strong> it should show the error variant
<strong>And</strong> the correct error message should be displayed</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Email blank</td>
<td>Enter your email</td>
</tr>
<tr>
<td>Email missing &quot;@&quot; character</td>
<td>Your email must include an &quot;@&quot; character</td>
</tr>
<tr>
<td>Email missing &quot;.&quot; character</td>
<td>Your email must include a &quot;.&quot; character</td>
</tr>
</tbody>
</table>
</div><h3 id="keyboard-functionality" tabindex="-1">Keyboard functionality</h3>
<h4 id="focus-order" tabindex="-1">Focus order</h4>
<p><strong>When</strong> I navigate the dialog using a keyboard
<strong>Then</strong> the focus order should follow the correct sequence</p>
<ol>
<li>Close button</li>
<li>Cancel button</li>
<li>Delete button</li>
</ol>
<h4 id="focus-styles" tabindex="-1">Focus styles</h4>
<p><strong>When</strong> I focus the delete button using a keyboard
<strong>Then</strong> the focus variant should be visible</p>
<h4 id="skip-links" tabindex="-1">Skip links</h4>
<p><strong>When</strong> I navigate the page using a keyboard
<strong>Then</strong> the skip link should be the first element to receive focus</p>
<h4 id="keystrokes" tabindex="-1">Keystrokes</h4>
<p><strong>When</strong> I re-order the drag-and-drop sortable list using a keyboard
<strong>Then</strong> it should respond to the following keystrokes:</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>Tab</kbd></td>
<td>Activates / deactivates list</td>
</tr>
<tr>
<td><kbd>Space</kbd> (released)</td>
<td>Grabs highlighted item</td>
</tr>
<tr>
<td><kbd>Space</kbd> (grabbed)</td>
<td>Releases item in current position</td>
</tr>
<tr>
<td><kbd>Esc</kbd></td>
<td>Releases item in previous position</td>
</tr>
<tr>
<td><kbd>Up arrow</kbd> (released)</td>
<td>Highlights previous item</td>
</tr>
<tr>
<td><kbd>Up arrow</kbd> (grabbed)</td>
<td>Moves item up 1 level</td>
</tr>
<tr>
<td><kbd>Down arrow</kbd> (released)</td>
<td>Highlights next item</td>
</tr>
<tr>
<td><kbd>Down arrow</kbd> (grabbed)</td>
<td>Moves item down 1 level</td>
</tr>
</tbody>
</table>
</div><h3 id="layout" tabindex="-1">Layout</h3>
<p><strong>When</strong> I zoom in my browser
<strong>And</strong> there is not enough room for the navigation links
<strong>Then</strong> the navigation menu should switch to the mobile variant</p>
<h3 id="multimedia-alternatives" tabindex="-1">Multimedia alternatives</h3>
<p><strong>When</strong> I select the audio descriptions button
<strong>Then</strong> the video should switch to the audio described version</p>
<p><strong>When</strong> I select the closed captions button
<strong>Then</strong> the captions should be turned on
<strong>And</strong> they should be in sync with the video</p>
<p><strong>When</strong> I select the transcript link
<strong>Then</strong> the transcript side-panel should open
<strong>And</strong> the transcript should be scrollable</p>
<p>Multimedia assets can be found at the following links:</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<tr>
<td>Original version</td>
<td>sharepoint/video.mp4</td>
</tr>
<tr>
<td>Audio described version</td>
<td>sharepoint/video-audio-described.mp4</td>
</tr>
<tr>
<td>Captions</td>
<td>sharepoint/captions.srt</td>
</tr>
<tr>
<td>Transcript</td>
<td>sharepoint/transcript.odf</td>
</tr>
</tbody>
</table>
</div><h3 id="page-titles" tabindex="-1">Page titles</h3>
<p><strong>When</strong> I view the page tab in my browser
<strong>Then</strong> it should show the correct page title</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Home page</td>
<td>Tetralogical</td>
</tr>
<tr>
<td>About page</td>
<td>About – Tetralogical</td>
</tr>
<tr>
<td>Services page</td>
<td>Services – Tetralogical</td>
</tr>
<tr>
<td>Blog page</td>
<td>Blog – Tetralogical</td>
</tr>
</tbody>
</table>
</div><h3 id="reading-order" tabindex="-1">Reading order</h3>
<p><strong>When</strong> I navigate the main page content using a screen reader
<strong>Then</strong> it should announce content in the correct order</p>
<ol>
<li>Blog post content</li>
<li>Related posts</li>
<li>Sign up to our mailing list</li>
</ol>
<h3 id="states" tabindex="-1">States</h3>
<h4 id="error-identification" tabindex="-1">Error identification</h4>
<p><strong>When</strong> I make a mistake in a text input
<strong>And</strong> I am using a screen reader
<strong>Then</strong> it should announce there's an error
<strong>And</strong> it should show the error variant</p>
<h4 id="disabled" tabindex="-1">Disabled</h4>
<p><strong>When</strong> I focus the button using a screen reader
<strong>And</strong> it's in a disabled state
<strong>Then</strong> it should announce that it's disabled</p>
<h4 id="loading" tabindex="-1">Loading</h4>
<p><strong>When</strong> I select load more search results using a screen reader
<strong>Then</strong> it should announce the correct status updates</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Loading start</td>
<td>Loading more search results</td>
</tr>
<tr>
<td>Loading end</td>
<td>Search results updated</td>
</tr>
</tbody>
</table>
</div><h4 id="expanding-and-collapsing" tabindex="-1">Expanding and collapsing</h4>
<p><strong>When</strong> I focus the disclosure element using a screen reader
<strong>Then</strong> it should announce it's visible label
<strong>And</strong> it should announce whether it's expanded or collapsed</p>
<h3 id="text-descriptions" tabindex="-1">Text descriptions</h3>
<h4 id="images" tabindex="-1">Images</h4>
<p><strong>When</strong> I focus images using a screen reader
<strong>Then</strong> it should announce the correct text description</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>Logo</td>
<td>TetraLogical</td>
</tr>
<tr>
<td>Experience icon</td>
<td>Experience: five people, each made up of a circle for a head and a semicircle for a body. Four are bright purple and positioned randomly around a fifth at the centre who is bright orange and has three beams radiating from their head as they share thoughts and ideas with others.</td>
</tr>
<tr>
<td>Knowledge icon</td>
<td>Knowledge: two people, each made up of a circle for a head and a semicircle for a body. One is bright pink and the other bright purple, above them is a speech bubble with an orange spark of a shared idea inside.</td>
</tr>
</tbody>
</table>
</div><h4 id="icons" tabindex="-1">Icons</h4>
<p><strong>When</strong> I focus icons using a screen reader
<strong>Then</strong> it should announce the correct text description</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>&quot;x&quot; icon</td>
<td>Close</td>
</tr>
<tr>
<td>&quot;i&quot; icon</td>
<td>More information about privacy settings</td>
</tr>
</tbody>
</table>
</div><h3 id="timings" tabindex="-1">Timings</h3>
<h4 id="durations" tabindex="-1">Durations</h4>
<p><strong>When</strong> I receive a new message
<strong>Then</strong> then it should show the toast message &quot;New message received!&quot;
<strong>And</strong> after five seconds it should disappear automatically</p>
<h4 id="time-limits" tabindex="-1">Time limits</h4>
<p><strong>When</strong> I am using a screen reader
<strong>But</strong> I have not moved my mouse or pressed a key for twenty minutes
<strong>Then</strong> the session timeout modal should appear
<strong>And</strong> it should announce you're about to be signed out
<strong>And</strong> it should announce the remaining time at the correct intervals</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Description</th>
<th>Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td>45 seconds</td>
<td>45 seconds remaining, press any key to stay signed in</td>
</tr>
<tr>
<td>30 seconds</td>
<td>30 seconds remaining, press any key to stay signed in</td>
</tr>
<tr>
<td>15 seconds</td>
<td>15 seconds remaining, press any key to stay signed in</td>
</tr>
<tr>
<td>10 seconds</td>
<td>10 seconds remaining</td>
</tr>
<tr>
<td>5 seconds</td>
<td>5 seconds remaining</td>
</tr>
<tr>
<td>0 seconds</td>
<td>You have been signed out. Redirecting you to the sign in page.</td>
</tr>
</tbody>
</table>
</div><h2 id="final-thoughts" tabindex="-1">Final thoughts</h2>
<p>Designing isn’t just about visuals; it’s also about creating the experience and the outcomes people should have.</p>
<p>You don’t need to annotate every single element. That would quickly get tedious! Annotate only elements that impact someone’s ability to navigate, perceive, or understand the interface, especially if those impacts aren’t obvious just by looking at the design.</p>
<p>You also don't need to learn or write perfect Gherkin syntax. But, if you just make it clear that, &quot;when I do this thing, then I expect this to happen&quot;, it's already a lot more familiar. By using consistent language to describe designs and focusing on outcomes, you can clearly express design intent while leaving technical implementation to developers.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">Accessibility Foundations</a></li>
<li><a href="https://tetralogical.com/blog/2024/08/09/design-patterns-wcag/">Design patterns and WCAG</a></li>
<li><a href="https://cucumber.io/docs/gherkin/reference">Gherkin Reference Documentation</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about accessible design, read about <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">Accessible Design Systems</a> or find out about how our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service can help you identify design issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Catriona Morrison</title>
    <link href="https://tetralogical.com/blog/2025/09/18/meet-the-team-catriona-morrison/"/>
    <updated>2025-09-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/09/18/meet-the-team-catriona-morrison/</id>
    <content type="html"><![CDATA[
        <p>Meet Catriona, an Accessibility Specialist at TetraLogical with a keen eye for detail, a love of inclusive content, and an enthusiasm for stories in all their forms.</p>
<p>Her workspace may be dotted with half-finished craft projects and a stack of well-loved books, but no matter if she’s testing a new design or writing image descriptions, Catriona brings the same thoughtful precision and creativity.</p>
<p><img src="https://tetralogical.com/blog/2025/09/18/meet-the-team-catriona-morrison/catriona-morrison.jpg" alt="A vast landscape of rocky mountains sits underneath a blue, cloudy sky in New Zealand. Catriona stands in the foreground amid a sea of long grass, decked up in dark walking gear, holding a walking pole in either hand" /></p>
<p>Catriona is an Accessibility Specialist at <b>TetraLogical</b>, where she focuses on accessibility assessments and testing. She helps organisations meet the Web Content <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Accessibility Guidelines (WCAG) 2.2</a> and beyond, ensuring digital products are not only compliant but genuinely usable.</p>
<p>She holds an MSc in Publishing (Interactive Media) and is certified in Full Stack Web Development. Combining content and code, she helps teams think inclusively at every stage.</p>
<p>Before joining TetraLogical, Catriona worked at <a href="https://www.jadu.net/">Jadu</a>, auditing public sector websites, design systems, and web platforms. She supported teams with accessibility reviews, resources, and training, to embed accessibility into everyday processes.</p>
<p>Her journey into accessibility began in publishing, where she spent two years in the <a href="https://harpercollins.co.uk/">HarperCollins</a> eBooks team before spending her next five years at <a href="https://www.bloomsbury.com/uk/">Bloomsbury Publishing</a>. Starting from a love of books and interactive media, she led <a href="https://www.bloomsbury.com/uk/connect/about-us/accessibility-at-bloomsbury/digital-accessibility/">eBook accessibility</a>, integrating inclusive practices into workflows through training and guidance. She also established accessibility working groups, developed role-specific guidelines, and prepared the business for the <a href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/">European Accessibility Act</a>. Her specialisms, image descriptions and accessible layouts, combine her passion for storytelling with her problem-solving mindset.</p>
<p>When she’s not working, Catriona is a proud hobby-dabbler. A classically trained pianist (currently restarting lessons, inspired by her musical colleagues), she also loves hiking, wild swimming, and weekend adventures in the Scottish Highlands.</p>
<p>She once took three months off to road trip around New Zealand in a van, which turned out to be a brilliant combination of travel, hiking, and Lord of the Rings fandom.</p>
<p>At heart, she’s a lover of stories, whether found in books, story-driven games, or a good TV binge. For Catriona, accessibility is about ensuring everyone has the right to enjoy stories too, whether through audiobooks, e-readers, or inclusive design.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>That you don’t have to be an expert to start! The WCAG and <a href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/">WAI-ARIA</a> documentation can seem overwhelming at first, and it’s natural to feel a sense of pressure that you should know it all before you can start. Yet, one thing I’ve learned since joining dedicated accessibility teams is that both experts and beginners still have the same discussions on how to interpret a specific success criterion or what is the most accessible way of designing a certain pattern.</p>
<p>With constantly evolving technologies and standards, accessibility is a continuous learning process. Stay curious, keep learning and don't be afraid to ask questions. There are many excellent high-level resources out there, such as our <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> blog post series, and a welcoming community who are all trying to make experiences more inclusive, regardless of knowledge level. As long as you continue to care and learn about the barriers people face, you’ll be well on your way in the journey to accessibility!</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>Always keep the <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">people</a> who use your products in mind.</p>
<p>When you're deep in the technical specifications, it’s easy to focus on meeting all the success criteria and forget about the real people on the other end. Meeting WCAG is just the beginning of inclusive design practice. You can build something that is technically compliant without actually considering the needs of real people. Accessibility is nuanced; often, there’s more than one way to design an accessible pattern, and by focusing on certain success criteria, you may end up underserving people with different disabilities. Aim to go beyond and not assume, reach out for help and be open-minded to feedback.</p>
<p>Vice versa, as an auditor, it’s also important to remember that the WCAG standards have been interpreted into international legislation across the world. If we are auditing specifically against WCAG 2.2 Level AA then it is important not to fail something just because we don’t like it! Know the standards, but always advocate for the most inclusive solution.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>There are so many brilliant resources out there! Beyond the <a href="https://www.w3.org/WAI/WCAG22/Understanding/">WCAG 2.2 Understanding Docs</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility">MDN Web Docs accessibility documentation</a>, I’ve come across so much rich knowledge just from exploring the <a href="https://a11y-webring.club/">a11y webring</a> project, where accessibility experts share insights that go beyond the standards, addressing real-world implications and practical challenges.</p>
<p>However, some of my favourite resources come from our very own brilliant TetraLogical team members. When I’m in need for some real-world examples and clarity on the more “hand-wavy” success criteria, I constantly refer back to the talk <a href="https://www.youtube.com/watch?v=ADIgU53Y2Rg">These (still) aren’t the Success Criteria you’re looking for</a> from Patrick H. Lauke and the <a href="https://www.tpgi.com/author/lloydi/">TGPi quizzes</a> from Ian Lloyd, especially <a href="https://www.tpgi.com/when-i-get-that-low-contrast-feeling-i-need-non-textual-healing/">When I Get That Low Contrast Feeling, I Need Non-Textual Healing</a>; just remember to turn the sounds off if you don’t want to give the people around you a fright!</p>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, the team, our principles and our community.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Championing inclusive language</title>
    <link href="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/"/>
    <updated>2025-09-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/</id>
    <content type="html"><![CDATA[
        <p>Language reflects culture. It shapes how people perceive themselves and one another; whether they belong, whether they’re valued, and whether the space is designed with them in mind. Inclusive language isn’t just polite; it’s powerful. It builds clarity, signals respect, and becomes part of what defines your organisation at every level.</p>
<h2 id="why-inclusive-language-matters" tabindex="-1">Why inclusive language matters</h2>
<p>Inclusive language fosters psychological safety by ensuring that people feel seen, respected, and valued through the words an organisation chooses. It enhances clarity by avoiding jargon, stereotypes, or assumptions about identity that can cause confusion or exclusion.</p>
<p>When everyone across an organisation communicates inclusively, it builds consistency and trust and becomes the way the organisation as a whole chooses to talk and work together.</p>
<h2 id="documentation" tabindex="-1">Documentation</h2>
<p>Start by ensuring your documentation reflects inclusive standards. An internal inclusive language guide provides a shared point of reference and can evolve alongside your organisation.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/atlassian-inclusive-language-guidelines.jpeg" alt="Atlassian Design System page on inclusive language, explaining principles for respectful and bias-free wording." />
<figcaption>Atlassian's inclusive language guidelines published in their design system.</figcaption>
</figure>
<p>It can provide guidance on topics such as using person-first language, such as “a person with a disability,” while also recognising that identity-first language, such as “disabled person,” may be preferred by some communities.</p>
<p>It can also guide writers toward neutral alternatives, like “chairperson” instead of “chairman&quot;, encourage clarity by avoiding idioms or jargon that not everyone will understand and provide nuanced examples of the language relating to different communities. For example, “Deaf person” with a capital D when referring to members of the Deaf community, rather than “hearing impaired”.</p>
<p>Avoid a negative bias when talking or writing about disability. Phrases such as &quot;suffers from&quot;, &quot;wheelchair-bound&quot;, or &quot;confined to&quot; all imply a level of discomfort and hopelessness. Instead, use language that respects disabled people as active individuals with control over their own lives. For example, &quot;someone who is blind&quot;, &quot;person with a mental health condition&quot;, or &quot;wheelchair-user&quot;.</p>
<p>By embedding these practices into editorial guidance, you set expectations that shape how all content is created and how team members communicate with one another.</p>
<h2 id="build-into-tools-%26-content-workflows" tabindex="-1">Build into tools &amp; content workflows</h2>
<p>Inclusive language should not stop at documents; it needs to be reflected in the tools and interfaces people use every day.</p>
<p>Internal systems and customer-facing platforms should default to a respectful, neutral tone. For example, error messages should explain what has gone wrong without placing blame. For example, “Something went wrong” is far more inclusive than “You did something wrong&quot; or &quot;user error&quot;. Better still, include an error message that explains how to correct the error in plain language as shown in the following example.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/error-message.jpeg" alt="A form asks “What is your nationality?” with instructions to select all that apply. Three checkboxes are shown: British, Irish, and Citizen of another country. There is an error message that reads Select if you are British, Irish or a citizen of a different country" />
<figcaption>An example of a clear error message from the Gov.uk Design System.</figcaption>
</figure>
<p>Forms should allow for non-binary and diverse options where gender or pronouns are requested. Gender fields, for example, should allow people to self-describe rather than forcing a binary choice. If your form does not allow for text fields, consider offering the option of &quot;Prefer not to say&quot;.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/form-gender.jpeg" alt="Form on sex and gender identity with options for Female, Male, or Prefer not to say, and a second question about gender identity with Yes, No, or Prefer not to say" />
<figcaption>An example of a form that appropriately asks about gender from the Gov.uk Design System.</figcaption>
</figure>
<p>Sensitive data should only be collected when there is a clear and necessary reason, and always with an explanation of why it is required and how it will be used, while providing the option not to disclose.</p>
<p>Workflows should also embed checks for language in reviews, just as you would check for accuracy or accessibility issues. Adding inclusive language to content reviews, code reviews, and design approvals ensures that respectful communication becomes routine, rather than relying on individuals to notice problems.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/09/09/championing-inclusive-language/bias-language-checker.jpg" alt="Text about Anglo-Indians with an Inclusive Language Check showing 65 colour-coded bias issues; problematic words are highlighted with suggested alternatives, such as “normal participants” changed to “healthy participants”" />
<figcaption>The Trinka Inclusive Language tool.</figcaption>
</figure>
<h2 id="communication" tabindex="-1">Communication</h2>
<p>Language is central to how teams interact, and inclusive communication should be a visible part of team culture. Encouraging people to share their pronouns and ensuring names and preferences are respected sets an open atmosphere.</p>
<p>When someone says they prefer “Deaf person” instead of “hearing impaired&quot;, for example, respecting that choice demonstrates that you value identity and autonomy and don't presume to know better than someone else's lived experience.</p>
<p>Providing training and resources equips teams with the tools to recognise when language may be non-inclusive. For example, pointing out that “wheelchair-bound” is stigmatising, and suggesting “wheelchair user” instead, helps people make better choices in future and avoids reinforcing stereotypes.</p>
<p>Inclusive language should also be introduced as part of onboarding so that new staff understand from the start what is expected of them. When leaders also model inclusive language in their own interactions, it signals that this is not optional behaviour but part of the organisation’s values.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Inclusive language isn’t just a gesture — it is an indicator of how much an organisation, and the people within it, value clarity, respect, and belonging.</p>
<p>When it is embedded into documentation, built into tools and workflows, and modelled in everyday communication, it becomes a natural part of the way people work together.</p>
<p>This shapes your teams, offers a supportive, safe working environment and makes it far more likely you will have a happy workforce who feel valued, included, and respected.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.gov.uk/government/publications/inclusive-communication/inclusive-language-words-to-use-and-avoid-when-writing-about-disability">GOV.UK's Guidance on inclusive language: words to use and avoid when writing about disability</a></li>
<li><a href="https://adata.org/factsheet/ADANN-writing">ADA Factsheet: Guidelines for Writing About People With Disabilities</a></li>
<li><a href="https://inclusivedesignprinciples.info/">The Inclusive Design Principles</a></li>
<li><a href="https://www.w3.org/WAI/WCAG20/Understanding/unusual-words#:~:text=3%3A%20Unusual%20Words-,Success%20Criterion%203.1.,way%2C%20including%20idioms%20and%20jargon.">Understanding Success Criterion 3.1.3: Unusual Words - W3C</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Press release: TetraLogical launches accessible self-led training courses to help digital teams build confidence in accessibility</title>
    <link href="https://tetralogical.com/blog/2025/09/05/tetraLogical-launches-accessible-self-led-courses/"/>
    <updated>2025-09-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/09/05/tetraLogical-launches-accessible-self-led-courses/</id>
    <content type="html"><![CDATA[
        <p>London, UK, Thursday 04 September - With accessibility under growing regulatory and commercial scrutiny, leading accessibility consultancy TetraLogical has today launched a new series of online <a href="https://tetralogical.com/services/training-courses/">self-led training courses</a> to provide digital teams with a practical, scalable way to build capability in accessibility, whether they’re just getting started or want to reinforce existing knowledge.</p>
<p>Designed to fit around busy schedules and real-world project work, the courses are created by internal accessibility specialists and informed by lived experience of disability. They can be accessed through TetraLogical’s own fully accessible learning platform or delivered via an organisation’s own LMS.</p>
<p>The courses form part of TetraLogical’s broader commitment to sustainable and inclusive digital practice. With a strong focus on learning in the flow of work, they are intended to support long-term capability-building, not just short-term compliance.</p>
<h2 id="practical%2C-accessible%2C-and-built-for-real-teams" tabindex="-1">Practical, accessible, and built for real teams</h2>
<p>TetraLogical’s self-led courses provide structured, practical learning across key accessibility topics. Learners move at their own pace and can return to materials as needed, making the courses ideal for:</p>
<ul>
<li>Onboarding new team members consistently</li>
<li>Upskilling designers, developers, content teams and more</li>
<li>Supporting hybrid and distributed teams across locations</li>
<li>Reinforcing specific topics as part of wider accessibility programmes</li>
</ul>
<p>All content is designed using learning experience design (LXD) principles to accommodate a wide range of learning styles, needs, and roles. The courses include text, video, images, quizzes, and reflection exercises, fully accessible and inclusive by default.</p>
<h2 id="supporting-long-term-change" tabindex="-1">Supporting long-term change</h2>
<p>The courses exist to address a common challenge for organisations: how to embed accessibility skills without disrupting delivery. The courses also aim to build organisational capability and promote consistency across teams, helping new starters get up to speed quickly, and minimising knowledge gaps when team members join or move on.</p>
<p><a href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/">Léonie Watson</a>, Co-Founder at TetraLogical, said:</p>
<blockquote>
<p>One of the most common concerns we hear from businesses looking to embed accessibility into their workflows is that they struggle to find time for training, especially when they’re already stretched. Our self-led courses are designed to work with that reality, not against it. They’re flexible, accessible, and focused on helping people apply accessibility in their everyday roles, and are created to be low-cost and repeatable.</p>
<p>The intention of each course is to build confidence by helping teams apply what they’ve learned in real scenarios, whether that’s designing interfaces, writing content, or testing code. Our goal is to make accessibility something people feel equipped to do every day, even when deadlines are tight and resources are limited. That’s where lasting change happens.</p>
</blockquote>
<p>The courses form part of a wider learning offering from TetraLogical, with a series of blended <a href="https://tetralogical.com/services/training-programmes/">training programmes</a> set to launch later this year. More information about the <a href="https://tetralogical.com/services/training-courses/">self-led training courses</a>.</p>
<p>ENDS</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Why inclusive products are green products</title>
    <link href="https://tetralogical.com/blog/2025/09/01/why-inclusive-products-are-green-products/"/>
    <updated>2025-09-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/09/01/why-inclusive-products-are-green-products/</id>
    <content type="html"><![CDATA[
        <p>More and more organisations are conscious about the environmental impact of their products - both physical or digital - and are trying to make positive changes.</p>
<p>Applying inclusive best practices when designing digital products results not only in more accessible products but also in more sustainable ones.</p>
<p>One of TetraLogical's founding <a href="https://tetralogical.com/about/">principles</a> is <em>Ethical</em>:</p>
<blockquote>
<p>We make decisions for the good of our customers and their customers, our team, and for the world at large.</p>
</blockquote>
<p>We also strive to be <em>Sustainable</em>:</p>
<blockquote>
<p>We work collaboratively and efficiently to amplify enduring accessibility.</p>
</blockquote>
<p>As part of our commitment to being ethical and sustainable, we are constantly looking for long-lasting solutions to reduce our environmental impact for the good of the planet. We are glad to find that more and more of our customers share our dedication to sustainability. While we are not experts on the subject, we can still contribute to their sustainability goals by helping them create inclusive products. This is because inclusive digital products are often green products.</p>
<h2 id="using-the-inclusive-design-principles-to-build-green-digital-products" tabindex="-1">Using the Inclusive Design Principles to build green digital products</h2>
<p>When considering digital products and sustainability, many people think of the environmental costs of building, using, and dismantling hardware or the footprint of inefficient code. Few realise the huge impact that design choices can have on the carbon emissions of websites and mobile apps.</p>
<p>The <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles (IDP)</a> are a set of seven high-level principles that can help create truly inclusive experiences by considering the needs and preferences of all people. As this post illustrates, these principles can also help build greener products.</p>
<p>Here is an overview of how applying each principle can help you reduce your carbon emissions.</p>
<h3 id="principle-1%3A-provide-comparable-experience" tabindex="-1">Principle 1: Provide comparable experience</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">Provide comparable experience</a>: Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.</p>
</blockquote>
<p>The first Inclusive Design Principle invites designers to think about comparable alternatives to content that may not be accessible to all. For example, people who are blind or have a slow Internet connection may not be able to see or load images; people who are Deaf or are in a noisy environment without headphones may not be able to hear audio content. To provide an equitable experience in these two scenarios, provide an alternative, comparable format such as an accurate <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for images or a comprehensive <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">text transcript for audio content</a>. The same applies to documents such as PDFs, animations, and other multimedia content.</p>
<p>A similar requirement is in the <a href="https://w3c.github.io/sustainableweb-wsg/#suitable-alternatives-to-any-provided-format-must-be-offered">Web Sustainable Guidelines</a> being currently developed by the <a href="https://www.w3.org/">World Wide Web Consortium (W3C)</a>. Being larger in size, media content and some downloadable files require a larger amount of energy to load and transmit compared to text-based content. When a text alternative is available, many people may decide to access the alternative instead of playing the multimedia content or downloading the large document. By providing a comparable alternative you will not only ensure everybody has access to information, you'll also potentially reduce your website's carbon footprint.</p>
<h3 id="principle-2%3A-consider-situation" tabindex="-1">Principle 2: Consider situation</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#consider-situation">Consider situation</a>: People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.</p>
</blockquote>
<p>People are likely to access your digital products on a wide variety of devices and in a variety of situations. For example using a laptop while sitting at a desk, using their smartphone outdoors, or using a smart speaker while cooking.</p>
<p>When designing digital products, ensure they work well across devices, Operating Systems (OSs), screen sizes, and even without a screen!</p>
<p>This greatly helps people with disabilities who may need to use a specific device, assistive technology, or a specific orientation. It also helps reduce e-waste; when products don't work well across all devices (especially older devices) people are forced to replace them, which results in unnecessary and harmful landfill. Furthermore, devices with smaller or no screens consume less energy, which again reduces carbon emissions.</p>
<h3 id="principle-3%3A-be-consistent" tabindex="-1">Principle 3: Be consistent</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#be-consistent">Be consistent</a>: Use familiar conventions and apply them consistently.</p>
</blockquote>
<p>Consistency makes digital products easier to use for everybody. When User Interface (UI) components use consistent visuals, labels, and locations people can find and operate them with ease.</p>
<p>Consistency is particularly important for people with permanent, temporary, and situational <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=my%20own%20time%22.-,Thinking,-This%20refers%20to">thinking disabilities</a>, such as people with a brain injury or a migraine.</p>
<p>Better User Experience (UX) generally means less time spent on your website or app, as people are able to complete tasks quicker. The positive environmental impact of this is lower energy consumption. Using existing components, for example from an <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design system</a> or component library, reduces organisations' carbon emissions as developers won't use additional energy (and time) to write new code. The code of well-established components is also likely to be tidier and more efficient.</p>
<h3 id="principle-4%3A-give-control" tabindex="-1">Principle 4: Give control</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#give-control">Give control</a>: Ensure people are in control. People should be able to access and interact with content in their preferred way.</p>
</blockquote>
<p>Inclusive products support people using <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technologies and adaptive strategies</a>. Some people may need to navigate a website using a screen reader for example, some may prefer to use a mobile app with an external keyboard, some may choose to customise the way content is displayed.</p>
<p>Other than working well with a wide variety of assistive technologies and input devices (as discussed under <em>Principle 2: Consider situation</em> above), your products must support OSs' and browsers' customisation options. Things like dark themes, larger text, reduced animation, and so on.</p>
<p>Customisation support is a key concept of inclusion - you cannot predict how someone may like or need to access your content, hence your content must adapt and adjust as required.</p>
<p>It can also help you reach your sustainability goals. Many of the customisation options available in OSs and browsers consume less energy than the standard content display. For example, animations can be quite large and require a considerable amount of energy to play. By ensuring your animations pause when reduced motion (or a similar option) is selected in a device's settings, you lower your content's carbon footprint. Similarly, researches have shown that <a href="https://www.businessinsider.com/guides/tech/does-dark-mode-save-battery">using dark themes in devices with an OLED display</a> has a positive impact on the environment.</p>
<h3 id="principle-5%3A-offer-choice" tabindex="-1">Principle 5: Offer choice</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#offer-choice">Offer choice</a>: Consider providing different ways for people to complete tasks, especially those that are complex or non standard.</p>
</blockquote>
<p>People like to do things differently. For example, some people like to use a mouse, others a keyboard, and others voice commands. Some people may find using a search functionality the easiest way to find information on a website, others may prefer to use the navigation menu.</p>
<p>When possible, design alternative ways to complete tasks. This will improve the user experience for many people.</p>
<p>Some of these alternative ways of completing actions may also result in a lower energy consumption. If your service can be accessed both on a visual device (such as a laptop) and on a screenless device (such as a smart speaker), some people will choose to use the screenless device which consumes less energy. If your website contains both a navigation menu and a search functionality, some will use search and find information faster and with less page loading, again consuming less energy overall.</p>
<h3 id="principle-6%3A-prioritise-content" tabindex="-1">Principle 6: Prioritise content</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#prioritise-content">Prioritise content</a>: Help users focus on core tasks, features, and information by prioritising them within the content and layout.</p>
</blockquote>
<p>With so much content on the screen, it is sometimes difficult to focus on the task at hand. This is particularly true for some people with thinking disabilities, such people with ADHD. This is why prioritising content is so important.</p>
<p>When designing pages, prioritise key information and components; decorative images and animations, ads, and other unnecessary content should be limited as much as possible.</p>
<p>A simplified design helps people who may struggle to focus and complete tasks otherwise. It also makes it easier for everybody to understand and find the information and functionality available on a website or app.</p>
<p>Less time spent looking for information or completing a task means less energy used. A clean design also means less data to load, especially when free of heavy media files and animations.</p>
<h3 id="principle-7%3A-add-value" tabindex="-1">Principle 7: Add value</h3>
<blockquote>
<p><a href="https://inclusivedesignprinciples.info/#add-value">Add value</a>: Consider the value of features and how they improve the experience for different users.</p>
</blockquote>
<p>The last Inclusive Design Principle is all about identifying and using features that can improve people's experience on your website or app.</p>
<p>As mentioned earlier, better UX reduces the amount of time spent trying to complete tasks, which in turn reduces carbon emissions.</p>
<p>As an example, a simple feature you can include when designing a login form is the &quot;Show password&quot; button. This can prevent many people from submitting an incorrect password and having to re-fill the form. Such a simple solution improves the experience for your users and reduces the environmental impact of your website by avoiding unnecessary form reloads.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Applying inclusive best practices can help you design products that are better for the people and for the planet.</p>
<ul>
<li>Design text-based alternatives for rich media content</li>
<li>Ensure your products work well across all devices (older and new), OSs, and screen sizes</li>
<li>Use well-known UI components consistently</li>
<li>Support OSs and browsers' customisation options</li>
<li>Design alternative ways to complete tasks</li>
<li>Avoid or limit unnecessary content</li>
<li>Include features that can help people complete tasks more efficiently</li>
</ul>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<p>Here are some resources on digital sustainability you may find interesting:</p>
<ul>
<li><a href="https://w3c.github.io/sustainableweb-wsg/">Web Sustainability Guidelines (WSG)</a></li>
<li><a href="https://gr491.isit-europe.org/en/">Handbook of Sustainable Design of Digital Services</a></li>
<li><a href="https://www.zerowasteweek.co.uk/the-hidden-carbon-footprint-of-your-website-a-guide-to-sustainable-web-practices/">The Hidden Carbon Footprint of Your Website: A Guide to Sustainable Web Practices</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information on how we can help you create inclusive products, visit <a href="https://tetralogical.com/services/">our Services page</a> or contact us at hello@tetralogical.com.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessible Recruitment</title>
    <link href="https://tetralogical.com/blog/2025/08/19/accessible-recruitment/"/>
    <updated>2025-08-19T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/08/19/accessible-recruitment/</id>
    <content type="html"><![CDATA[
        <p>Accessible recruitment is more than a policy - it’s a way to ensure that every candidate can perform at their best, and each role is filled by the person most capable of doing it.</p>
<p>By removing unnecessary barriers at each stage of the hiring process, you will create fair, respectful, and effective processes. In turn, this expands the talent pool, strengthening your company's culture and demonstrating a genuine commitment to inclusion.</p>
<p>You should ensure that each stage of your recruitment considers candidates from a range of backgrounds and disabilities and does not unintentionally exclude any particular group.</p>
<h2 id="job-adverts" tabindex="-1">Job adverts</h2>
<p>This is your first opportunity to set the tone and demonstrate your commitment as a company that cares about accessibility.</p>
<p>Always write text with your users in mind. Use plain, inclusive language, avoiding metaphors or jargon that may be confusing. For example, say &quot;You’ll work to tight deadlines and adapt quickly to changes&quot; rather than &quot;fast-paced environment”.</p>
<p>Opt for the active voice where possible, where the subject of the sentence performs the action of the verb. This makes the sentence direct, clear and concise. For example, say &quot;you will lead a small design team&quot; rather than &quot;a small design team will be led by the successful candidate&quot;.</p>
<p>Test content with your target audience before publishing a job advert. Ideally, these should be people from varied demographics who are not already familiar with the job itself.</p>
<p>Essential skills should be clearly distinguished from desirable ones so candidates can make informed decisions about their eligibility.</p>
<p>It can be beneficial to highlight inclusive policies such as flexibility in hours, location, and the availability of reasonable adjustments. Always provide a link to your accessibility, Diversity, Equality, and Inclusion (DEI), or reasonable adjustments policies. It may also be worth including a statement encouraging applications from candidates with disabilities and neurodivergence.</p>
<p>Job adverts should be published in accessible HTML where possible. Avoid using PDFs or images.</p>
<h2 id="application-process" tabindex="-1">Application process</h2>
<p>Ensure you are transparent and clear throughout the entire process.</p>
<p>If you are able, accept applications in multiple formats, including accessible PDFs, Word documents, and video CVs. Ensure each one is treated equally.</p>
<p>If you are using recruitment software, request an <a href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/">Accessibility Conformance Report (ACR)</a> or other <a href="https://tetralogical.com/blog/2020/12/01/choosing-the-right-type-of-accessibility-assessment/">accessibility statement</a>. It is beneficial to test the application process using different <a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">assistive technologies and adaptive strategies</a>. You can also use our <a href="https://www.youtube.com/watch?v=ahDuaWKSGZA&amp;list=PLTqm2yVMMUKWTr9XWdW5hJ9tk512Ow0SE">Quick accessibility tests playlist</a> as a starting point.</p>
<p>When designing online forms and the application process, break tasks into smaller, logical steps with clear instructions. Ensure you have clearly outlined the steps involved, with estimated times and a visible progress indicator. Avoid timeouts that may disadvantage candidates, and allow progress to be saved and resumed later.</p>
<h2 id="interviews" tabindex="-1">Interviews</h2>
<p>The primary point of an interview is to better understand the candidate, so ensure they are comfortable and treated fairly throughout.</p>
<p>This can be achieved by giving candidates advance notice of the interview format, length, panel members, and example questions. It is best practice to avoid surprise tasks; if tasks are included, explain whether they require preparation.</p>
<p>Base tasks and assessments on real-world examples rather than abstract challenges. This helps neurodivergent candidates in particular by providing clear, relevant context that reduces ambiguity and cognitive load, allowing candidates to focus on demonstrating their actual skills.</p>
<p>Avoid timed tests where possible, as this may disadvantage candidates who need extra time to process information or use assistive technology.</p>
<p>For remote interviews, choose an accessible platform and provide services such as captioning or sign language interpretation. Give candidates clear, easy-to-follow joining instructions. For in-person interviews, make sure the building is physically accessible and interpreters are available if needed. In all cases, offer any reasonable accommodations well in advance so candidates have time to prepare.</p>
<p>Take the time to train your interviewers in inclusive practices, unconscious bias, and disability awareness.</p>
<h2 id="communication" tabindex="-1">Communication</h2>
<p>Throughout the process, you should provide a named point of contact for questions. This ensures a consistent source for information and support, reducing uncertainty and making it easier for candidates to ask questions or request adjustments confidently.</p>
<p>Let candidates know well in advance about any adjustments you can provide, such as breaks, assistive technology, or the option to bring notes, so they can prepare and take full advantage of them.</p>
<p>Use accessible formats for all communication, including emails and attachments and offer respectful, constructive feedback where possible.</p>
<h2 id="onboarding" tabindex="-1">Onboarding</h2>
<p>Once you have chosen your preferred candidate, you can ensure a smooth transition from an accessible hiring process to an inclusive workplace.</p>
<p>Provide people with information in advance about their first day, what is expected of them, and what technology will be provided to them.</p>
<p>Be transparent about how their data will be stored, used, and kept confidential, particularly any personal, health, or disability-related information.</p>
<p>Ensure your onboarding materials, IT systems, software, and training materials are accessible from day one and implement the agreed-upon accommodations immediately.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Accessible recruitment means designing every stage of the hiring process so all candidates can demonstrate their skills fully and fairly.</p>
<p>From clear, inclusive job adverts to flexible application formats, thoughtful interview practices, and accessible communication, each step should remove unnecessary barriers and reflect a genuine commitment to equality.</p>
<p>This approach not only widens the talent pool but also ensures the best person is chosen for the role, creating a positive start for new hires and strengthening organisational culture.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/">Building a culture of accessibility</a></li>
<li><a href="https://tetralogical.com/services/recruitment/">Recruitment support services</a></li>
<li><a href="https://www.w3.org/WAI/test-evaluate/conformance/">Introduction to Accessibility Conformance Reports</a></li>
<li><a href="https://www.legislation.gov.uk/ukpga/2010/15/contents">UK Equality Act 2010</a> — legal obligations for accessibility and non-discrimination in recruitment.</li>
<li><a href="https://gdpr-info.eu/">General Data Regulation Protection</a> - your legal commitment to safe storage of data</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Our <a href="https://tetralogical.com/services/recruitment/">Recruitment Support service</a> can help you design and deliver an inclusive process from the first interaction, from reviewing job adverts to training interviewers, and ensuring onboarding is accessible.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessibility and the agentic web</title>
    <link href="https://tetralogical.com/blog/2025/08/08/accessibility-and-the-agentic-web/"/>
    <updated>2025-08-08T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/08/08/accessibility-and-the-agentic-web/</id>
    <content type="html"><![CDATA[
        <p>Imagine being in a department store that sells clothes from multiple brands and having a personal shopping assistant to help you select the clothes you want to buy. As a blind person, that's about the only way it's possible to go clothes shopping, independently at least, but few stores offer such a service, so you resort to shopping online.</p>
<p>Except that retail websites are rarely accessible enough to make purchasing clothes much more than an exercise in “buy six things and return five&quot;. This isn't necessarily because the websites themselves are inaccessible, in the sense of being able to search for products, find out a little about them, add them to your basket or checkout, though that's not uncommon. It's that even the most accessible retail websites don't provide enough information to let you confidently make a choice, unless you can see the product images that is.</p>
<p>Let's take an example from a UK high street retailer:</p>
<blockquote>
<p>Long sleeve Knitted jumper Crew neck It comes in black 100% Cotton.</p>
</blockquote>
<p>You might think that's an adequate description, but if I were to ask you if the jumper is plain or ribbed, or if it falls to the hips or thighs in length, or if it's lightweight or chunky, could you tell me?</p>
<p>A different UK retailer does a bit better:</p>
<blockquote>
<p>Crafted from soft pure merino wool, this jumper is a luxurious addition to your knitwear collection. It's crafted to a relaxed fit for endless layering options. A flattering v-neckline keeps things stylish, while cosy long sleeves with ribbed trims add a neat finish to this timeless piece.</p>
</blockquote>
<p>But even so, what does relaxed mean, is it a deep V-neck, is the rib trim just on the sleeves or around the neck and/or bottom too?</p>
<h2 id="enter-ai" tabindex="-1">Enter AI</h2>
<p>Artificial Intelligence (AI) tools that can generate image descriptions are helpful in this context. My screen reader now has a feature that lets me request an image description from ChatGPT or Claude without having to switch contexts to do it.</p>
<p>There's no denying the fact that the people responsible for these websites should do a much better job of providing useful text descriptions, but we've been having that conversation for 30 years now, so forgive me if my patience is running a little thin!</p>
<p>There's also no denying the egregious theft of data and consumption of natural resources by AI platforms, and I've made my feelings on that clear <a href="https://www.youtube.com/watch?v=Ij-GLix2QUQ">elsewhere</a>.</p>
<p>Using AI for image descriptions comes with a risk of hallucinations, but the consequences of falling for a hallucinated description don't put me at any more of a disadvantage than having no text descriptions at all. It's essentially a judgement call.</p>
<p>It's also not a great experience. It depends on the retailer putting the images where my screen reader can find them, or those images having enough of a text description to help me narrow down the choice of which images to query using AI, and on the content of the images themselves of course. Even under the best of circumstances, all of this takes time. A lot of time in fact.</p>
<h2 id="enter-agentic-ai" tabindex="-1">Enter agentic AI</h2>
<p>So, what if there was a different way? What if I could ask a digital personal shopping assistant to help me find clothes based on my preferred parameters? What if I could ask the assistant for product descriptions, then have a conversation with it to find out more, before letting the assistant know which one I'd like to purchase?</p>
<p>You may not know that this is already possible. It's still nascent technology, but it exists, and it's being used today to improve the accessibility and usability of the retail shopping experience.</p>
<p>An example is <a href="https://innosearch.ai/">Innosearch</a>, an AI ecommerce platform available in the USA, Canada, and the UK. It lets you shop from 500,000 online stores including those where I found the products mentioned above. Talking of which, it turns out that the long sleeved crew-neck jumper I found is for men... a minor detail that isn't obvious (if you use a screen reader) on the retailer's own product page!</p>
<p>In addition to presenting all products in a consistent and more accessible way than the websites they originated from, Innosearch automatically pulls out information that I'd otherwise have to actively look for - details only available in images for example. That isn't the interesting thing though. Innosearch has an agentic AI called CoBrowse, that goes beyond the behaviour of a typical AI chatbot.</p>
<p>If you're not familiar with the term &quot;agentic&quot;, it refers to something that has agency, meaning it's capable of acting in its own right. Agentic AI is therefore a form of AI that can take actions on your behalf, as well as answer questions like a chatbot.</p>
<p>In this context, it means you can ask CoBrowse to search for a particular product. When I say &quot;ask&quot;, I mean just that - you can enable your microphone and converse with it if typing isn't convenient. From there, it's a lot like having an actual personal shopping assistant in a bricks and mortar store. You can ask it to filter out results based on specific product features, exclude certain stores from the results, and once you've found a product, you can choose a size and ask it to add it to your basket, to open your basket, then add a coupon code or change the quantity of the last item to 3. One thing it can't do is complete checkout on your behalf, which is a reasonable limitation for security reasons.</p>
<h2 id="exit-websites%3F" tabindex="-1">Exit websites?</h2>
<p>What all this really has me wondering, is why bother with a website? I don't mean the Innosearch website, I mean any retail website and, really, any website at all?</p>
<div class="pull-quote" data-pull-quote-variant="light">
  <blockquote>Why build a website designed to be clicked, tapped, or key-pressed, if someone can ask an agentic AI to carry out an action on their behalf with no need for any of that messy physical interaction business!</blockquote>
</div>
<p>And, if you think this is a solution in need of a problem, then I'll wager you don't depend on the keyboard or use an assistive technology, that you've never been overwhelmed by the sheer quantity of information on a website, or been made nauseous or actually sick by constantly moving content, that you have good enough technology and connectivity to download vast quantities of JavaScript and other junk content without it affecting your ability to browse. I could go on, but you get the idea.</p>
<p>We humans love convenience and we dislike effort. We preferred the Graphical user Interface with its visual cues and affordances because it was more convenient than memorising countless command line instructions; we prefer the tap/swipe interaction of touch screen devices because it takes less effort than using a mouse/trackpad; and we generally prefer to have a chat because (for many of us) it requires no effort at all - and what could be more convenient than that!</p>
<p>No, I'm not going to predict the end of the web as we know it, but I do think there's a high probability that the way we use the web will change significantly - it's already changing in fact.</p>
<p>In July 2025, OpenAI revealed that <a href="https://techcrunch.com/2025/07/21/chatgpt-users-send-2-5-billion-prompts-a-day/">ChatGPt users send about 2.5 billion prompts</a> a day. That pales in comparison to the estimated 14 billion search requests Google handles each day, but when you consider that in December 2024 OpenAI reported the number as about 1 billion prompts a day, it's hard to deny that AI use is on the rise.</p>
<p>A <a href="https://www.businesstechweekly.com/technology-news/google-ai-search-summaries-diminishing-website-traffic-and-engagement-challenges-for-creators/">recent report</a> found that Google's AI search is reducing traffic to websites, in some cases by as much as 50%. Presumably AI platforms like Innosearch are doing the same thing, albeit at a far lesser scale, but what happens as more people discover that shopping with an agentic AI is much more convenient, or when Google uses AI to field all 14 billion of those search requests?</p>
<p>Whether we like it or not, and I confess I haven't yet made-up my mind, AI is almost certainly here to stay. The last time I remember a hype-cycle like this, it was the late 90s and what became known as the Dot-com Bubble. Yes, that bubble burst and the same will probably happen with AI, but what seems likely to remain is an agentic web of some kind.</p>
<h2 id="and-accessibility%3F" tabindex="-1">And accessibility?</h2>
<p>We're already being approached by organisations that are pivoting towards the agentic web and asking us what it means for accessibility. If they replace their websites with agentics that generate the information someone wants in the format they prefer, will that help or hinder accessibility? More to the point, how do we determine with reasonable confidence that the generated content is accessible? Anyone who's used the likes of Meta, Gemini, Claude, or ChatGPt for more than 10 minutes will know that you don't get the same response twice even when you repeat the exact same prompt, so where does that leave the concept of <a href="https://tetralogical.com/blog/2020/08/14/representative-samples-for-accessibility-assessments/">representative sampling</a>, and how can we be sure our digital products meet our legal obligations?</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Craig Abbott</title>
    <link href="https://tetralogical.com/blog/2025/08/05/meet-the-team-craig-abbott/"/>
    <updated>2025-08-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/08/05/meet-the-team-craig-abbott/</id>
    <content type="html"><![CDATA[
        <p>Meet Craig Abbott, another friendly face supporting the charming Northern arm of TetraLogical.</p>
<p>His home office comprises of several laptops, about 30 pairs of artfully arranged trainers, and two giant fluffy cats to lend a supportive paw on every team call.</p>
<p><img src="https://tetralogical.com/blog/2025/08/05/meet-the-team-craig-abbott/CraigAbbott.jpg" alt="Craig, sporting short brown hair and a denim shirt holds up a large grey fluffy cat with yellow eyes. Sheldon, the cat, looks almost as big as Craig is and covers half of his face" /></p>
<p>Craig Abbott is a Principal Accessibility Specialist at TetraLogical, where he focuses on embedding accessibility into organisational policies, processes, and culture. With a deep commitment to sustainable accessibility, Craig helps organisations scale their efforts beyond compliance, ensuring accessibility is built in from the start, not bolted on at the end.</p>
<p>Before joining TetraLogical, Craig was Head of Accessibility at the UK’s <a href="https://www.gov.uk/government/organisations/department-for-work-pensions">Department for Work and Pensions (DWP)</a>, one of the largest government departments. There, he established a dedicated accessibility practice and led the department’s accessibility strategy. His work focused on compliance, education, and culture change, transforming policies and empowering teams to sustainably deliver accessible services. Among his many achievements, Craig created the <a href="https://accessibility-manual.dwp.gov.uk/">DWP Accessibility Manual</a> and open-sourced the first versions to support others across the public sector.</p>
<p>Craig’s journey into accessibility is particularly unconventional. An early fascination with computers led him to tinker with Locomotive BASIC on an old Amstrad CPC 664 and later learn HTML, CSS, and JavaScript to customise his MySpace page. He expected to pursue a career in computer science. But traditional education didn’t suit his learning style; something he later understood was linked to undiagnosed ADHD and autism. Instead, Craig took a detour into engineering, spending his early career fixing buses.</p>
<p>Far from being wasted time, Craig credits his years as a mechanic with teaching him persistence and problem-solving</p>
<div class="pull-quote" data-pull-quote-variant="">
  <blockquote>You can’t just scrap a vehicle because you can’t figure out what’s wrong with it. You keep debugging until you do.</blockquote>
  <div class="pull-quote__caption">
    <p>Craig Abbott, Principal Accessibility Specialist</p>
  </div>
</div>
<p>That mindset served him well when he pivoted into the digital world, first through freelance web and graphic design, then at a scrappy startup where he wore many hats, from frontend developer to customer support.</p>
<p>Craig entered the <a href="https://www.gov.uk/government/organisations/civil-service">Civil Service</a> in 2015 as an Interaction Designer and discovered accessibility through a Government Digital Service (GDS) Academy session with <a href="https://tetralogical.com/blog/2023/07/05/meet-the-team-alistair-duggin/">Alistair Duggin</a>. He found himself excited to learn how to make things work for more people but also ashamed of how much inaccessible content he'd probably built previously. He quickly became the go-to person for accessibility in his department, running talks, workshops, clinics, and eventually building an entire accessibility practice.</p>
<p>Craig later joined <a href="https://www.elastic.co/">Elastic</a>, an open-source AI search company, as Design Manager and Accessibility Lead for enterprise cybersecurity software before coming to TetraLogical to work alongside lots of colleagues he'd met previously once he ventured into accessibility.</p>
<p>Outside of work, Craig is a passionate wildlife photographer with a particular fondness for birds of prey. He takes regular trips to Scotland to photograph white-tailed sea eagles and ospreys. He’s also a regular on the conference circuit, having spoken at events including Accessibility Scotland, <a href="https://www.deque.com/axe-con/">AxeCon</a>, <a href="https://2025.uxlondon.com/">UX London</a>, <a href="https://frontendnorth.com/">Frontend North</a>, and <a href="https://accessgiven.co.uk/">Access Given</a>.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/08/05/meet-the-team-craig-abbott/LongEaredOwl.jpg" alt="A long eared owl. A brown stocky bird with a short sharp beak, large orange eyes and feather tufts on the top of it's head which look like ears. It's looking over it's shoulder with it's face centred in the frame. It's surrounded by out of focus leaves from the tree it's sat in." />
<figcaption>Image credit, Craig Abbott</figcaption>
</figure>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>That most accessibility issues are introduced during the design phase. People often think WCAG is all about code and testing, but design decisions—like font styling, headings, colour contrast, or the use of drag-and-drop interactions—have a massive impact.</p>
<p>Designers are often closest to users, and known for their empathy. We should lead by example. If we make our designs accessible from the outset, there’s less risk they’ll become inaccessible during development. But if the design isn’t accessible, there’s no chance the final product will be.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>There’s no such thing as “100% accessible.” What works for one person may not work for another. WCAG 2.2 AA is a baseline, not a guarantee of usability. You can meet every checkpoint and still exclude people through poor language, jargon, or design patterns.</p>
<p>Accessibility is about people, not checklists. Most legal challenges come from complaints, not failed audits. If you test with real users—including those with disabilities, you’ll know whether your product is actually usable. Compliance is important, but usability is everything.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>I don't know if I could pick just one!</p>
<p>For design, I think it’s good to have guiding principles. Tools and books will go out of date, but principles which underpin what we do should move with the times:</p>
<ul>
<li><a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> by Henny Swan, Ian Pouncey, Heydon Pickering and Leonie Watson</li>
<li><a href="https://github.com/Heydon/principles-of-web-accessibility">Principles of Web Accessibility</a> by Heydon Pickering</li>
</ul>
<p>For development, I really like <a href="https://polypane.app/">PolyPane</a>. It helps you catch lots of bugs early on, with tools that let you:</p>
<ul>
<li>View multiple viewports at the same time</li>
<li>Emulate things like dark mode, contrast and reduce-motion easily</li>
<li>Highlight missing meta data</li>
<li>Check accessibility by selecting colours, viewing focus order, headings and hidden content</li>
</ul>
<p>For testing, I love a bunch of <a href="https://a11y-tools.com/bookmarklets/">A11y tools</a> by our very own Lloydi. I love that they’re powerful, yet uncomplicated. I don’t have to run a page scan from DevTools, or sign-up to a mailing list, they’re just there when I need them. They include:</p>
<ul>
<li>Isolator</li>
<li>Show focus styles</li>
<li>Element inspector</li>
<li>Lost focus alert</li>
</ul>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, the team, our principles and our community.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: types of assistive technology and adaptive strategies</title>
    <link href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/"/>
    <updated>2025-07-28T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/</id>
    <content type="html"><![CDATA[
        <p>This post provides an overview of common assistive technologies (AT) used by people with seeing, hearing, moving, and thinking disabilities. It also explains what adaptive strategies are, and how these approaches work together to support accessibility and inclusive experiences.</p>
<p>AT are tools that support people with disabilities in accomplishing tasks that might otherwise be difficult or impossible. These tools can take the form of software, hardware, or a combination of both, such as screen readers, magnifiers, speech recognition software, browser adjustments, adaptive keyboards, head pointers, switches, and eye-tracking devices.</p>
<p>According to the <a href="https://www.who.int/news-room/fact-sheets/detail/assistive-technology">World Health Organization</a>:</p>
<blockquote>
<p>...most people will need assistive technology at some point in their lives, especially as they age. While some may require assistive technology temporarily, such as after an accident or illness, others may require it for a longer period or throughout their lifespan.</p>
</blockquote>
<h2 id="assistive-technologies" tabindex="-1">Assistive technologies</h2>
<p>AT bridges the gap between a person’s abilities and the tasks they want or need to do. It removes barriers and opens doors to greater independence, inclusion, and opportunity. For many, these tools are not just helpful, they are essential. They enable full participation in education, employment, daily routines, and social life, ensuring that everyone has a fair chance to connect with the world around them.</p>
<h2 id="adaptive-strategies" tabindex="-1">Adaptive strategies</h2>
<p>Not all disabilities require specialised devices. Sometimes, adjustments, known as adaptive strategies, are all that’s needed to support access and engagement. These might include turning on captions, enlarging text, or customising display settings. Whether through high-tech solutions or everyday adaptations, the goal remains the same; to support autonomy, dignity, and equal access for all.</p>
<h2 id="at-and-strategies-by-disability-group" tabindex="-1">AT and strategies by disability group</h2>
<p>There’s often a narrow assumption that AT only refers to tools like screen readers. While screen readers are indeed essential for people who are blind or have low vision, they don’t support the needs of everyone. For example, someone with a hearing disability wouldn’t benefit from a screen reader, but might rely on captioning tools or visual alerts instead. Different disabilities require different types of AT and adaptive strategies, and in this section, we’ll explore the range of tools used by people with different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> to support access, communication, and participation.</p>
<p>People often use a combination of assistive technologies and adaptive strategies, which may change depending on the task or context. Whilst this list highlights some commonly used tools, it represents only a portion of the AT that exist, the field continues to grow, offering a wide and evolving range of innovative solutions.</p>
<h3 id="seeing" tabindex="-1">Seeing</h3>
<figure class="inline-image__container">
<svg role="img" aria-label="Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see.</desc>
<path d="m294.636 90.539 908.399.501-3.066 1315.008H294.798z" style="fill:#f6f5f3;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m855.358 222.599-210.233-2.061v375.121h212.294M653.37 406.037h150.46" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="609.396" cy="768.028" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="536.803" cy="736.469" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="776.388" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="504" cy="845.122" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="576.722" cy="883.541" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="608.28" cy="956.39" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="535.431" cy="996.181" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="949.402" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="736.125" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="822.696" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="907.894" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1040.323" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="685.135" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="822.216" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="488.408" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1252.672" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1252.673" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
</svg>
<figcaption>Seeing</figcaption>
</figure>
<p><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=moving%2C%20and%20thinking.-,Seeing,-Seeing">People with seeing disabilities</a> refers to disabilities related to vision, which affect a person's ability to see.</p>
<h4 id="screen-readers" tabindex="-1">Screen readers</h4>
<p>A <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">screen reader</a> is a software application that converts digital text on a screen into synthesised speech, enabling people to access and interact with digital content non-visually. Common examples include <a href="https://www.freedomscientific.com/products/software/jaws/">JAWS</a>, <a href="https://www.nvaccess.org/download/">NVDA</a>, and <a href="https://support.apple.com/en-gb/guide/voiceover/welcome/mac">VoiceOver</a>. Screen readers are essential tools for people who are blind or have low vision, allowing them to navigate their devices and engage with content through audio feedback.</p>
<h4 id="braille-displays" tabindex="-1">Braille displays</h4>
<p>A braille display is a tactile device that works in conjunction with a screen reader to convert on-screen text into braille. It uses a series of small, refreshable pins that rise and fall to form braille characters, enabling people who are blind to read digital content through touch. Braille displays offer real-time access to text; however, these devices are often expensive, making them financially inaccessible for many people.</p>
<h4 id="screen-magnifiers" tabindex="-1">Screen magnifiers</h4>
<p>A <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">screen magnifier</a> is a software tool that enlarges the content displayed on a screen, making it easier to see for people with low vision. It allows people to zoom in on content, and often includes features like colour contrast adjustments and focus tracking to enhance visibility and reduce eye strain.</p>
<h4 id="smart-glasses" tabindex="-1">Smart glasses</h4>
<p>Smart glasses that can appear as regular glasses with clear lenses, or sunglasses are categorised as a wearable. These devices use cameras, audio output, and sometimes Artificial Intelligence (AI) to provide real-time information about the environment. For people who are blind or have low vision, smart glasses can assist with tasks like reading text aloud, identifying objects or people, recognising scenes, and navigating unfamiliar spaces. Some models, like <a href="https://www.letsenvision.com/glasses/home">Envision Glasses</a> or <a href="https://www.orcam.com/en-gb/orcam-myeye-3-pro?srsltid=AfmBOorT1bRtRte0xroar8QYZzZIisDYxVVOInHASS9pqRUT8GBC1-K7">OrCam MyEye</a>, are specifically designed as assistive tools, while others, like <a href="https://www.meta.com/gb/ai-glasses/?srsltid=AfmBOorXxbOTNw3ob8vnvLaQsECue6LAnGjaTcOo_O662l-mXP8UVGku">Ray-Ban Meta Smart Glasses</a>, can be adapted with AI apps to offer helpful visual information through audio feedback. One of our directors, <a href="https://tink.uk/using-ray-ban-meta-glasses/">Léonie Watson, writes about her experience using the Ray Ban Meta smart glasses here</a>.</p>
<h4 id="keyboard-shortcuts" tabindex="-1">Keyboard shortcuts</h4>
<p><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">Browsing with a keyboard</a> and using key combinations allows people who are blind or have low vision to quickly navigate and perform tasks without relying on a mouse or touchpad. Keyboard shortcuts offer an efficient, non-visual method of navigating digital interfaces. By reducing the need to locate icons or menu items visually, keyboard shortcuts provide a faster, more consistent way to access functions, especially when used in combination with screen readers or memorised navigation patterns.</p>
<h4 id="high-contrast-mode" tabindex="-1">High contrast mode</h4>
<p>High contrast mode is a visual display setting that enhances the distinction between foreground and background colours to improve readability. It often uses bright text, such as white or yellow, on a dark background, or the reverse, to make text and interface elements easier to see. This mode is especially helpful for individuals with low vision, glare sensitivity, or colour perception difficulties, as it reduces visual clutter and highlights key content more clearly.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/photo-andre-1.jpg" alt="A black and white photo of Andre playing an electronic keyboard sitting side on. Andre is a younger black man and wears a striped shirt and Ray-Ban Meta Smart Glasses" />
<figcaption>Andre, a blind composer and music producer, &quot;I use audio software to control the output from my keyboard during gigs; without accessibility there would be no music&quot;. He also uses his Ray Ban Meta smart glasses to stream gigs live.</figcaption>
</figure>
<h3 id="hearing" tabindex="-1">Hearing</h3>
<figure class="inline-image__container">
<svg role="img" aria-label="Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter." class="services__icon inline-image" style="max-width:15rem" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1456 832">
<desc>Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter.</desc>
<circle cx="323.26" cy="17.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="54.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="93.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="128.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="165.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="202.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="239.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="276.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<path d="M147.19 94.951v105.321M234.772 94.951v105.321M59.361 94.951v105.32" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M409.778 94.951v105.321M453.49 59.806v174.307" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M278.514 59.806v174.307M102.644 59.806v174.308M191.568 128.677v38.269M16.26 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M496.789 94.951v105.321M367.09 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
</svg>
<figcaption>Hearing</figcaption>
</figure>
<p><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=out%20match%20information%22.-,Hearing,-Hearing">People with hearing disabilities</a> refers to disabilities related to hearing, which affect a person's ability to hear.</p>
<p>A note on Deaf and deaf: Capitalised Deaf refers to the cultural identity and shared experiences of the Deaf community. Lowercase deaf describes the physical condition of hearing loss.</p>
<h4 id="hearing-aids" tabindex="-1">Hearing aids</h4>
<p>Hearing aids are small electronic devices worn in or behind the ear that amplify sound. They help people with hearing loss hear speech and environmental sounds more clearly by making them louder and more focused.</p>
<h4 id="cochlear-implants" tabindex="-1">Cochlear implants</h4>
<p>Cochlear implants are surgically implanted devices that bypass damaged parts of the ear to directly stimulate the auditory nerve. They provide a sense of sound for people with severe or profound hearing loss who get limited benefits from hearing aids.</p>
<h4 id="real-time-captioning" tabindex="-1">Real-time captioning</h4>
<p>Communication Access Real-Time Translation (CART) provides live, human-generated captions for spoken content. It’s often used in classrooms, meetings, or events to make spoken information accessible for people who are Deaf or hard of hearing.</p>
<h4 id="captions-or-subtitles-by-default" tabindex="-1">Captions or subtitles by default</h4>
<p>Watching videos or TV with <a href="https://www.youtube.com/watch?v=hDlwTvjas00">captions</a> or subtitles is a common strategy to ensure access to spoken content. Many people enable captions by default, whether watching online videos, attending webinars, or streaming entertainment.</p>
<h4 id="speech-to-text-apps" tabindex="-1">Speech-to-text apps</h4>
<p>Speech-to-text apps convert spoken words into written text in real time using voice recognition technology. They are useful in everyday conversations, meetings, or phone calls, providing visual access to spoken content.</p>
<h4 id="written-communication" tabindex="-1">Written communication</h4>
<p>Many people who are Deaf or hard of hearing choose to communicate through written channels like email, text messaging, or chat apps. This strategy avoids the barriers of phone or voice communication and allows for clear, accessible, and asynchronous conversations. Furthermore, modern text messaging has its roots in early text-based tools like the teletypewriter (TTY), which was developed to enable Deaf individuals to communicate with both Deaf and hearing people.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/photo-steve-1.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing side on as he holds is camera up to his face looking focused" />
<figcaption>Steve, a poet and photographer who is hard of hearing and has low vision, &quot;Accessibility means I can confidently plan travel and enjoy an audiobook through my hearing aids using an app&quot;.</figcaption>
</figure>
<h3 id="moving" tabindex="-1">Moving</h3>
<figure class="inline-image__container">
<svg role="img" aria-label="Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round" viewBox="0 0 2000 2000">
<desc>Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers.</desc>
<path d="m1065.706 708.118-173.129 16.325M925.004 494.866 850.806 642" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="952.313" cy="509.696" rx="72.034" ry="71.948" style="fill:none;stroke:#f56f00;stroke-width:66.16px;stroke-linejoin:round" transform="matrix(1.296876 .309661 -.310446 1.296688 0 .000045)"></ellipse>
<circle cx="829.201" cy="610.838" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="755.201" cy="684.064" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="735.076" cy="783.726" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="659.404" cy="854.256" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<path d="m-26.236 630.142 237.923 158.427 503.906-244.915 97.835-173.021" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m1030.303 388.093 236.14-186.422M976.637 114.574l-82.991 169.119M1430.983 310.65l-327.907 197.926M1169.014 637.587l275.527-119.762M1443.616 711.127l-239.727 103.226" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M-29.981 1295.769s117.993 55.771 175.933 78.57c14.77 5.812 32.202 13.241 47.838 15.962 25.925 4.51 53.387-2.442 78.941-8.72 37.498-9.214 105.251-51.804 133.772-73.316 182.45-137.621 468.758-362.081 468.758-362.081l120.517-2.67 115.366-44.809" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
</svg>
<figcaption>Moving</figcaption>
</figure>
<p><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=using%20an%20app%22.-,Moving,-Moving">People with moving disabilities</a> refers to disabilities related to moving, which affect a person's ability to perform physical tasks.</p>
<h4 id="eye-tracking-devices" tabindex="-1">Eye-tracking devices</h4>
<p>Eye-tracking devices allow people to control a computer or communication system using only their eye movements. These tools track where a person is looking and translate that into actions like moving a cursor, selecting buttons, or typing text which is useful for individuals with limited or no hand movement.</p>
<h4 id="switch-controls" tabindex="-1">Switch controls</h4>
<p>Switch controls are customisable input devices that let people interact with technology through simple, repeated movements, like pressing a button, puffing into a tube, or tapping their head. They are often used with scanning software to navigate menus or type text, one selection at a time.</p>
<h4 id="speech-recognition-software" tabindex="-1">Speech recognition software</h4>
<p><a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">Browsing with speech recognition</a> allows people to operate devices through spoken commands. Programs like <a href="https://en.wikipedia.org/wiki/Dragon_NaturallySpeaking">Dragon NaturallySpeaking</a> lets people dictate text, move the cursor, open applications, and browse the web without using their hands which is ideal for people with limited mobility or repetitive strain injuries.</p>
<h4 id="keyboard-shortcuts-1" tabindex="-1">Keyboard shortcuts</h4>
<p>Many people <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browse with a keyboard</a> instead of a mouse to reduce the number of physical movements required. Some also remap keys to easier-to-reach locations or use external programmable keypads for quick access to frequent actions.</p>
<h4 id="customising-the-user-interface" tabindex="-1">Customising the user interface</h4>
<p>People may customise user interfaces (UI) to reduce complexity, such as pinning essential apps to the home screen, increasing icon size, or using simplified launcher apps, which minimise the number of taps, clicks, or movements needed to navigate.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/photo-josh-1.jpg" alt="A black and white photo of Josh, a younger white man with short brown hair. He is sitting in his wheelchair as he laughs at the camera holding an ordnance survey map" />
<figcaption>Josh, sportsman and a wheelchair user with Spinal Muscular Atrophy, &quot;I use my laptop, sensors, Alexa, and phone to train for the Paralympics and find accessible outdoor routes for hikes.&quot;.</figcaption>
</figure>
<h3 id="thinking" tabindex="-1">Thinking</h3>
<figure class="inline-image__container">
<svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
<ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
<circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
<figcaption>Thinking</figcaption>
</figure>
<p><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=my%20own%20time%22.-,Thinking,-This%20refers%20to">People with thinking disabilities</a> refers to disabilities related to neurodivergence, which affect a person's ability to process information, communicate and interact socially.</p>
<h4 id="text-to-speech-(tts)" tabindex="-1">Text-to-speech (TTS)</h4>
<p>TTS tools like <a href="https://www.naturalreaders.com/">Natural Reader</a>, <a href="https://www.voicedream.com/">Voice Dream Reader</a>, or built-in features on phones and computers read written text aloud. This supports people who have difficulty reading, processing, or comprehending written language.</p>
<h4 id="speech-to-text-and-voice-dictation" tabindex="-1">Speech-to-text and voice dictation</h4>
<p>Tools like <a href="https://support.google.com/docs/answer/4492226?hl=en">Google Voice Typing</a> or <a href="https://en.wikipedia.org/wiki/Dragon_NaturallySpeaking">Dragon NaturallySpeaking</a> convert spoken words into text. These are useful for people who struggle with typing, writing, or spelling.</p>
<h4 id="reading-support" tabindex="-1">Reading support</h4>
<p>Apps like <a href="https://support.microsoft.com/en-gb/office/use-immersive-reader-in-word-a857949f-c91e-4c97-977c-a4efcaf9b3c1">Immersive Reader</a> (by Microsoft) help people by simplifying text, highlighting words as they're read aloud, and offering picture supports or definitions.</p>
<h4 id="password-managers" tabindex="-1">Password managers</h4>
<p>Tools like <a href="https://1password.com/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=22108402284&amp;utm_content=728672511012&amp;utm_term=1password&amp;gad_source=1&amp;gad_campaignid=22108402284&amp;gbraid=0AAAAAD_PA59KBaCNNPmWdAxKQKwqQTdt_&amp;gclid=EAIaIQobChMIqvrPhaT7jQMVJrKDBx3HiA3cEAAYASAAEgL2aPD_BwE&amp;gclsrc=aw.ds">1Password</a> simplify logins and reduce cognitive load by securely storing and auto filling saved passwords.</p>
<h4 id="alarms-and-timers" tabindex="-1">Alarms and timers</h4>
<p>Using alarms and timers as external memory aids is a way to offload the mental burden of remembering when to do something or how long to do it for some people with thinking disabilities. For example, a person with ADHD may set a 25 minute timer to stay focused on a task, followed by a 5 minute break. This is known as the <a href="https://www.pomodorotechnique.com/">Pomodoro technique</a>.</p>
<h4 id="browser-extensions-or-reader-modes" tabindex="-1">Browser extensions or reader modes</h4>
<p>For many people with thinking disabilities, such as ADHD, or dyslexia, reading content online can be overwhelming due to cluttered layouts, flashing ads, and inconsistent formatting. A helpful adaptive strategy is using browser tools like reader mode, which simplifies pages by removing distractions and showing only clean text and images, or ad blockers which hide pop-ups and autoplay videos to support focus and limit distraction.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/photo-lauren-1.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is grinning as she sits at a desk with an On Air sign on it as she holds a strip of film up to the light with her left hand" />
<figcaption>Lauren, a film editor who has ADHD and chronic pain, &quot;Accessible software lets me adapt my environment and online experience, so I can focus on what I want to do&quot;.</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>European Accessibility Act (EAA) FAQ</title>
    <link href="https://tetralogical.com/blog/2025/07/18/eaa-faq/"/>
    <updated>2025-07-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/07/18/eaa-faq/</id>
    <content type="html"><![CDATA[
        <p>The <a href="https://commission.europa.eu/strategy-and-policy/policies/justice-and-fundamental-rights/disability/union-equality-strategy-rights-persons-disabilities-2021-2030/european-accessibility-act_en">European Accessibility Act (EAA)</a> came into effect on 28 June 2025. Many of our customers have asked what impact that may have on the digital services they offer.</p>
<p>This post provides information on the application of the EAA in the context of websites and mobile apps.</p>
<p>Understanding any new legislation can be challenging. The nature of the European Accessibility Act as a directive and its wide scope can make it particularly difficult to fully understand.</p>
<p>While our <a href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/">Understanding the European Accessibility Act (EAA)</a> post provides a review of the entire directive, this post focuses on digital content only, to make it easier for organisations offering websites, mobile apps, and other digital content to find the information they need.</p>
<h2 id="what-is-the-difference-between-a-directive-and-a-law%3F" tabindex="-1">What is the difference between a directive and a law?</h2>
<p>The EAA is a <strong>directive</strong>, not a law. It sets the overall goals that organisations must achieve, but it does not contain details about how these goals are enforced and monitored. This is decided at a national level by each European Union (EU) member state.</p>
<p>Over the past few years, all EU member states have transposed the EAA into <strong>national law</strong>. Organisations operating in EU markets must comply with the relevant national law in order to comply with the EAA.</p>
<h2 id="does-the-eaa-apply-to-my-organisation's-websites-and-apps%3F" tabindex="-1">Does the EAA apply to my organisation's websites and apps?</h2>
<p>This depends on many factors, including the size of your organisation, the countries it operates in, and the types of digital services it offers.</p>
<p>The following decision tree may help you understand whether your organisation's websites and apps are covered by the EAA:</p>
<ol>
<li>Does your organisation have 10 employees or more AND an annual turnover of 2 million Euros or more?</li>
<li>Does your organisation operate in EU markets?</li>
<li>Do the digital services your organisation offers fall into any of the following categories?
<ul>
<li><strong>Digital communication services</strong>: communication apps like Zoom and WhatsApp</li>
<li><strong>TV and video streaming services</strong>: platforms like Netflix and YouTube</li>
<li><strong>Transport services</strong>: websites and apps to book or access air, rail, bus, or water transport</li>
<li><strong>Financial services</strong>: consumer banking websites and apps</li>
<li><strong>Digital books and reading applications</strong>: eBooks and eBook reading apps</li>
<li><strong>E-commerce platforms</strong>: consumer facing marketplaces such as Amazon and eBay</li>
</ul>
</li>
</ol>
<p>If you answered <em>Yes</em> to all of these questions, the EAA most likely applies to your organisation's digital services.</p>
<p>Even if your organisation does not provide services directly to customers but sell web or native content to other organisations that make it available to the public, it still needs to consider the requirements of the EAA. Unless its content is compliant, organisations covered by the EAA may be unable to purchase or integrate it into their services.</p>
<h2 id="what-are-the-requirements-my-organisation-needs-to-meet%3F" tabindex="-1">What are the requirements my organisation needs to meet?</h2>
<p>There are three sets of requirements your organisation need to consider:</p>
<ul>
<li>The <strong>general requirements</strong> that apply to all digital services, as described in the EAA</li>
<li>The additional <strong>service-specific requirements</strong>, also set out in the EAA</li>
<li>The <strong>country-specific requirements</strong>, outlined in national law</li>
</ul>
<p>The <strong>general requirements</strong> your organisation must meet are set in the EU &quot;harmonised standard&quot; <a href="https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf">EN 301 549 (PDF)</a>. According to the EN 301 549, digital services must meet <a href="https://www.w3.org/TR/WCAG21/">WCAG 2.1</a> compliance. Note that this is due to be updated to reference WCAG 2.2 soon.</p>
<p>Your organisation must then check whether the services it provides are subject to the additional <strong>service-specific requirements</strong> described in <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882#anx_I:~:text=modes%20of%20communication.-,Section%20IV,-Additional%20accessibility%20requirements">Annex I Section IV</a> of the EAA. For example, one of the requirements in the EAA for consumer banking services is:</p>
<blockquote>
<p>Ensuring that the information is understandable, without exceeding a level of complexity superior to level B2 (upper intermediate) of the Council of Europe’s Common European Framework of Reference for Languages.</p>
</blockquote>
<p>Finally, organisations must comply with the <strong>country-specific requirements</strong> in the national law of the countries they operate in.</p>
<h2 id="does-all-web-content-need-to-comply-with-the-eaa%3F" tabindex="-1">Does <em>all</em> web content need to comply with the EAA?</h2>
<p>No, the EAA lists a number of exemptions:</p>
<blockquote>
<ul>
<li>Pre-recorded time-based media published before 28 June 2025;</li>
<li>Office file formats published before 28 June 2025;</li>
<li>Online maps and mapping services, if essential information is provided in an accessible digital manner for maps intended for navigational use;</li>
<li>Third-party content that is neither funded, developed by, or under the control of, the economic operator concerned;</li>
<li>Content of websites and mobile applications qualifying as archives, meaning that they only contain content that is not updated or edited after 28 June 2025.</li>
</ul>
</blockquote>
<p>The EAA also contains a section about disproportionate burden; if an organisation believes that making some of its content compliant would result in a disproportionate burden, it can request for it to be exempt. However, very few cases are likely to meet the criteria for disproportionate burden. For example, a small organisation offering self-help eBooks might qualify if the cost of full compliance would genuinely threaten its ability to operate. A larger company with greater resources, however, is unlikely to meet that threshold.</p>
<h2 id="how-can-my-organisation-reach-compliance%3F" tabindex="-1">How can my organisation reach compliance?</h2>
<p>The steps that organisations should take as they work towards reaching compliance are described in another EU harmonised standard referenced by the EAA: <a href="https://accessible-eu-centre.ec.europa.eu/content-corner/digital-library/en-171612019-design-all-accessibility-following-design-all-approach-products-goods-and-services_en">EN 17161 Design for All</a></p>
<p>As described in <a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a>, this standard explains how organisations can integrate accessibility in their processes and practices across the following areas:</p>
<ul>
<li>Context of the organisation</li>
<li>Leadership</li>
<li>Planning</li>
<li>Support</li>
<li>Operation</li>
<li>Performance evaluation</li>
<li>Improvement</li>
</ul>
<h2 id="how-is-compliance-with-the-eaa-monitored%3F" tabindex="-1">How is compliance with the EAA monitored?</h2>
<p>Monitoring compliance is responsibility of the individual EU member states. Each state has its own monitoring processes and has appointed one or more <a href="https://single-market-economy.ec.europa.eu/single-market/goods/building-blocks/market-surveillance/organisation_en">market surveillance authorities</a> to carry them out.</p>
<p>The market surveillance authorities are ultimately responsible for ensuring that organisations operating in their country follow the EU harmonised standards EN 301 549 and EN 17161 and any additional country-specific requirements, thus complying with the EAA requirements.</p>
<p>They are also tasked with reviewing the applications for disproportionate burden claims.</p>
<h2 id="how-can-my-organisation-document-compliance%3F" tabindex="-1">How can my organisation document compliance?</h2>
<p>Your organisation's websites and apps must be <a href="https://tetralogical.com/services/assessments/">assessed</a> against WCAG and their compliance level must be described in a publicly available accessibility statement.</p>
<p>Currently, the EAA does not provide details on the contents or format of this statement. However, in 2022 <a href="https://ec.europa.eu/transparency/documents-register/detail?ref=C(2022)6456&amp;lang=en">the European Commission (EC) requested the harmonised standard EN 301 549 be updated</a> and part of this update will be to include &quot;a model accessibility statement in accordance with <a href="https://digital-strategy.ec.europa.eu/en/policies/web-accessibility-directive-standards-and-harmonisation">Directive (EU) 2016/2102</a>&quot;. Many organisations are therefore already using the <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32018D1523#anx_1">model accessibility statement template</a> from Directive (EU) 2016/2102 to document the compliance level of their digital services.</p>
<p><a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882#anx_I:~:text=of%20service%20providers-,Article%2013,-Obligations%20of%20service">Article 13</a> of the EAA also requires organisations to inform the relevant market surveillance authorities of non-compliant services:</p>
<blockquote>
<p>In the case of non-conformity, service providers shall take the corrective measures necessary to bring the service into conformity with the applicable accessibility requirements. Furthermore, where the service is not compliant with applicable accessibility requirements, service providers shall immediately inform the competent national authorities of the member states in which the service is provided, to that effect, giving details, in particular, of the non-compliance and of any corrective measures taken.</p>
</blockquote>
<p>Since each member state is ultimately responsible for monitoring conformance, your organisation should also check any country-specific requirements around documenting compliance.</p>
<h2 id="what-are-the-consequences-of-non-compliance%3F" tabindex="-1">What are the consequences of non-compliance?</h2>
<p>The penalties for non-compliance are set by the individual EU member states; they may include fines or prohibition on selling services altogether.</p>
<p>According to <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882#:~:text=of%20service%20providers-,Article%2013,-Obligations%20of%20service">Article 13</a> of the EAA, if you are contacted by a market surveillance authority you must:</p>
<blockquote>
<p>Provide it with all information necessary to demonstrate the conformity of the service with the applicable accessibility requirements. [You] shall cooperate with that authority, at the request of that authority, on any action taken to bring the service into compliance with those requirements.</p>
</blockquote>
<p>Based on this, it is likely that market surveillance authorities will first ask organisations to rectify any existing issues and make their services compliant. However, if issues are not acted upon promptly, organisations are likely to face penalties.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>To learn more about the EEA and associated standards, you can read our <a href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/">Understanding the European Accessibility Act (EAA)</a> and <a href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/">Understanding EN 17161 Design for All</a> posts. We can also provide EAA <a href="https://tetralogical.com/services/assessments/">assessments</a> and <a href="https://tetralogical.com/services/sustainable-accessibility/">sustainable accessibility</a> support to help you meet your goals.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Screen reader HTML support tables</title>
    <link href="https://tetralogical.com/blog/2025/07/10/HTML-support/"/>
    <updated>2025-07-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/07/10/HTML-support/</id>
    <content type="html"><![CDATA[
        <p>With the addition of <a href="https://tetralogical.com/about/team/#glemon">Gez Lemon</a> to the editing team, work continues on expanding and improving the HTML and screen reader support information.</p>
<h2 id="current-html-support-tables" tabindex="-1">Current HTML support tables</h2>
<p>So far, we’ve published the following support tables. These are works in progress, and we’re continuing to add others, including combinations such as TalkBack and iOS:</p>
<ul>
<li><a href="https://tetralogical.github.io/screen-reader-HTML-support/JAWS.html">JAWS HTML support</a> in progress but <strong>safe to use</strong></li>
<li><a href="https://tetralogical.github.io/screen-reader-HTML-support/NVDA.html">NVDA HTML support</a> in progress but <strong>safe to use</strong></li>
</ul>
<h2 id="background-to-the-html-support-tables" tabindex="-1">Background to the HTML support tables</h2>
<p>Since the start of my accessibility work in 2001 I have had an interest in how screen reader software supports the <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">semantics</a> of HTML elements. I was initially taken by an article (now lost in the interwebs, I have looked, but nowhere to be found) which provided information about how JAWS supported various HTML 4 elements. This interest led me into creating the <a href="https://w3c.github.io/html-aam/">HTML Accessibility API mappings</a> in 2010 and working on it until editing was taken over solely by <a href="https://www.scottohara.me/">Scott O'hara</a>.</p>
<p>By “support”, I mean how HTML elements are communicated to people using the software. For example, how are headings announced? Can people navigate to them easily? What level of interaction is possible? These questions help us understand how well screen readers and other tools support different HTML elements.</p>
<p>I don't know about you, but even though I have used various screen readers as part of my accessibility testing work for many years, I still forget what keystrokes can be used to interact with elements. The HTML support tables help with this as they provide keyboard interaction information for HTML elements.</p>
<h2 id="how-we-document-html-support" tabindex="-1">How we document HTML support</h2>
<p>As an example, the data for the <code>&lt;abbr&gt;</code> element from the JAWS and NVDA support tables is reproduced below together with an explanation of what data is documented in each column:</p>
<ul>
  <li><strong>Element</strong>: name of the HTML element linked to the HTML spec definition of the element</li>
  <li><strong>Test Case</strong>: link to the test case used</li>
  <li><strong>Represents</strong>: Short description of what the element represents</li>
  <li><strong>Aural UI</strong>: What is announced when a person using JAWS or NVDA interacts with the element.</li>
  <li><strong>Interaction:</strong> Ways in which the content can be navigated to and interacted with</li>
  <li><strong>Supported:</strong> if and how the screen reader supports the element semantics</li>
  <li><strong>Notes:</strong> further information</li>
</ul>
<div class="table-wrapper" role="region" aria-label="Table" tabindex="0">
<table>
<tbody>
<tr>
<th scope="col">Element</th>
<th scope="col">Test Case</th>
<th scope="col">Represents</th>
<th scope="col">AURAL UI</th>
<th scope="col">Interaction</th>
<th scope="col">Supported</th>
<th scope="col">Notes</th>
</tr>
<tr>
<th scope="row">&nbsp;
<p><strong>JAWS</strong></p>
<p><a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-abbr-element"><code>abbr</code></a></p></th><p></p>
<td><a href="https://stevefaulkner.github.io/AT-browser-tests/test-files/abbr.html"><code>abbr</code> test</a></td>
<td>An abbreviation</td>
<td><em>Element content</em></td>
<td>No special commands
<p>JAWS can read <code>title</code> text associated with
abbreviations on web pages.
To enable this feature, open Settings Center and expand
the Web/HTML/PDFs group. Next, expand the Reading group
and use the abbreviation and acronym options</p></td><p></p>
<td>By default
<p>Via preference</p></td><p></p>
<td>No semantics conveyed by default
Note that expansions are not announced by default and
that expansions provided using the <code>title</code> attribute are not available to keyboard only users.
Refer to <a href="https://www.paciellogroup.com/blog/2013/01/using-the-html-title-attribute-updated/">Using the HTML title attribute</a>.</td>
</tr>
<tr>
<th scope="row"><strong>NVDA</strong>
<p><a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-abbr-element"><code>abbr</code></a></p></th><p></p>
<td><a href="https://stevefaulkner.github.io/AT-browser-tests/test-files/abbr.html"><code>abbr</code>
test</a></td>
<td>An abbreviation</td>
<td><em>Element content</em></td>
<td>No special commands</td>
<td></td>
<td>No semantics conveyed by default
<p>Note that expansions are not announced by NVDA and that expansions provided using the <code>title</code> attribute are not available to keyboard only users.
Refer to <a href="https://www.paciellogroup.com/blog/2013/01/using-the-html-title-attribute-updated/">Using the HTML title attribute</a>.</p></td><p></p>
</tr>
</tbody>
</table>
</div>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://w3c.github.io/html-aam/">HTML Accessibility API mappings</a></li>
<li><a href="https://w3c.github.io/html-aam/">Core Accessibility API Mappings 1.2</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Information about our <a href="https://tetralogical.com/services/assessments/">Assessment</a> service or browse our <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Interview with Lola Odelola</title>
    <link href="https://tetralogical.com/blog/2025/07/02/interview-with-lola-odelola/"/>
    <updated>2025-07-02T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/07/02/interview-with-lola-odelola/</id>
    <content type="html"><![CDATA[
        <p>Lola Odelola is a force to be reckoned with. Which is why TetraLogical are delighted to sponsor her work on the W3C Technical Architecture Group (TAG). They are currently involved with a number of important efforts involving Web Standards and accessibility. Here at TetraLogical we follow with interest and wholly support their work.</p>
<p><img src="https://tetralogical.com/blog/2025/07/02/interview-with-lola-odelola/lola.png" alt="Illustrated profile of Lola with a geometric fade haircut resembling circuit board patterns, wearing large hoop earrings and glasses, facing right." /></p>
<h2 id="how-did-you-get-to-where-you-are%3F" tabindex="-1">How did you get to where you are?</h2>
<p>My first degree was in Creative Writing and English Literature. At the time I was a poet and very focussed on my writing. One of my lecturers published my final project, <a href="https://www.waterstones.com/book/lost-and-found/damilola-odelola/9781908998729">Lost and Found</a>, and I got paid £0.00 for it. I thought then it may be best to find something more lucrative. Since I was a writer, I wanted to build a website to showcase all my writing in one place, however I couldn't afford to pay anyone to build it for me, so I decided to learn HTML. I then discovered <a href="https://en.wikipedia.org/wiki/Ruby_(programming_language)">Ruby</a> where I really fell in love with coding.</p>
<p>I did a Ruby bootcamp and then dove into the tech industry. I've worked in various areas such as web development, software engineering, tech support, web advocacy and more. In that time I also ran a non-profit, <a href="https://blackgirl.tech/">blackgirl.tech</a>, with the aim of getting more black girls, women, and non-binary people into coding.</p>
<p>I got into standards through my job at Samsung Internet where I was responsible for advising the Samsung Internet Engineering team on which privacy standards were on the horizon and which standards the team be looking to adopt into the Samsung Internet browser. I went on to lead the Web Platform Program at <a href="https://www.bocoup.com/">Bocoup</a> which is where I learnt about accessibility standards and resources (as well as a bunch of other stuff) through the <a href="https://aria-at.w3.org/">ARIA-AT</a> program.</p>
<p>I'm still an artist, although not writing as much anymore, and I'm always trying to find ways to bring the two together; I document what I do on <a href="https://lolaslab.co/">https://lolaslab.co</a>.</p>
<h2 id="what-motivated-you-to-run-for-the-tag-(w3c-technical-architecture-group)%3F" tabindex="-1">What motivated you to run for the TAG (W3C Technical Architecture Group)?</h2>
<p>Initially I didn't think I was in the stage in my career to run, so I didn't actually consider it, however, a couple of members of the <a href="https://www.w3.org/2001/tag/">W3C TAG (Technical Architecture Group)</a> reached out to me separately asking if I'd consider it. I enjoy working in standards, this is a part of my job where I genuinely feel like I'm making positive, meaningful contributions and working on TAG is an opportunity to increase the impact I make in the community. I care first and foremost about web users, and I wanted the opportunity to continue to develop and contribute to the work that actively prioritises them with documents like <a href="https://www.ocmsolution.com/wp-content/uploads/2020/12/AGS-Social-Impact-Assessment-Questionnaire.pdf">Societal Impact Questionnaire, PDF</a>, the <a href="https://www.w3.org/TR/ethical-web-principles/">Ethical Web Principles</a>, and more.</p>
<h2 id="what-are-your-priorities-and-plans-for-working-on-the-tag%3F" tabindex="-1">What are your priorities and plans for working on the TAG?</h2>
<p>I recently became the co-editor of the <a href="https://w3ctag.github.io/societal-impact-questionnaire/">Societal Impact Questionnaire Working Group</a> with my colleagues Sarven and Tristan, so that's a priority for me. I want to help the W3C think about ways we can be more considerate about the social implications of the technology we create.</p>
<p>I'm also interested in developer education and demystifying the standards process, so I've started a podcast called <a href="https://podcasts.apple.com/us/podcast/what-the-spec/id1808741502">What the Spec?!</a> where I unpack web standards and browsers with the people who create them.</p>
<p>I've started contributing <a href="https://web-platform-tests.org/">Web Platform Tests</a> in the accessibility area, as I think this is a really good way to gain a deeper understanding in how specs are implemented in browsers. I also think it'll make me better at reviewing specifications.</p>
<p>My biggest priority is conducting design reviews of incoming specifications. TAG reviews spec proposals as part of our work and most recently I've been paying close attention to privacy-focussed specifications, particularly those which aim to replace a function of third-party cookies, and specifications which may have some kind of impact on accessibility.</p>
<h2 id="do-you-feel-that-your-first-degree-being-in-the-humanities-gives-you-a-different-viewpoint%3F" tabindex="-1">Do you feel that your first degree being in the humanities gives you a different viewpoint?</h2>
<p>Yes. I think it gives me a human-centred perspective, which often balances out technical abstraction with real-world impact. I approach standards work thinking about how it affects people's lives, not just code or systems.</p>
<h2 id="why-did-you-start-blackgirl.tech%3F" tabindex="-1">Why did you start blackgirl.tech?</h2>
<p>Before I began to learn how to code after my first degree, I didn't know being a software engineer or web developer was an option for me. We didn't do coding in my ICT classes in secondary school. I was also often times the only black person or black woman in many of the technical rooms I was in. I wanted black girls to know that if they want to, they can use code to build things online, and I wanted to to give them the skills to do that. Initially it wasn't about jobs or a career in tech, it was more about making digital creations.</p>
<h2 id="what-was-the-most-rewarding-and-the-most-challenging-thing-about-running-blackgirl.tech%3F" tabindex="-1">What was the most rewarding and the most challenging thing about running blackgirl.tech?</h2>
<p>The most rewarding thing was the internship program I ran in the last year of blackgirl.tech. We were able to get two women from our community onto a paid 3 month training program which then led to an 18 month internship program with the agency <a href="https://8thlight.com/">8th Light</a>. Originally the training was unpaid with only one place, but it was important to me that if folks were going to be in full time training, they have a way to sustain themselves, even if the training is free. Once 8th Light saw how many applicants there were, they decided to take on two people.</p>
<p>The most challenging part was the racism and misogyny in the industry. When you're running a program for marginalised people, those outside the marginalised group think that by helping you, they're doing you a favour. Or they want to use you to sanitise their image in some way.</p>
<h2 id="what-barriers-do-under-represented-groups-face-in-web-standards%3F" tabindex="-1">What barriers do under-represented groups face in web standards?</h2>
<p>I think the biggest ones are financial backing and being unaware that web standards and the W3C exists. When I speak to folks from under-represented backgrounds about the work I do in standards, many of them don't realise that the W3C produces more than WCAG. So I think there's an outreach/marketing thing there. But also, of the those who do know about the W3C, they can't afford to join.</p>
<p>In 2021 I was co-chair of the developer council and one of our aims was to reach out to folks from underrepresented backgrounds to participate in web standards. I was working with a task force, all folks from various parts of the web however, only myself and the other co-chair, Boaz Sender were funded, which meant the others couldn't participate as much as they would have liked. Eventually we had to stop the work (for a few reasons also) because it wasn't sustainable.</p>
<h2 id="tell-us-more-about-your-work-on-automated-testing-of-screen-reader-support-for-web-standards" tabindex="-1">Tell us more about your work on automated testing of screen reader support for web standards</h2>
<p>At Bocoup, I was the Web Platform Program Lead and one of the projects I was looking after was <a href="https://w3c.github.io/at-driver/">AT-Driver</a>, a specification which details a protocol to allow remote testing of screen-readers.</p>
<p>When I joined the AT-Driver was still being developed in the ARIA Community Group and wasn't on the standards track, and while there was some buy-in from some assistive tech vendors, there were others who were concerned about various security issues. I essentially had to do some campaigning for the project, as well as make decisions about how to prioritise incoming issues. I led the chartering of the project in the Browser Tools and Testing Working Group, which is the first step to getting the spec on the standards track. This means that BTT commits to producing the specification and giving time to the project.</p>
<p>AT-Driver is currently being used in the ARIA-AT project to run tests for the patterns listed in the <a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide</a>. AT-Driver is heavily influenced by WebDriver BiDi so it's a very low level technology, the idea is that others will build on top of it, to create testing libraries for screen-readers that can remotely access the screen-reader in a test environment. Mike Pennisi is the current editor and lead engineer on the project, and Meta (specifically Matt King) is also providing direction and funding for the project.</p>
<h2 id="more-from-lola" tabindex="-1">More from Lola</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Lola_Odelola">Lola on Wikipedia</a></li>
<li><a href="https://youtu.be/lA9r9AE9GZk">Improving Accessibility with ARIA-AT: A Web Standards Case Study - video</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about TetraLogical's W3C activities, read <a href="https://tetralogical.com/about/impact/">Our Impact</a></p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Understanding EN 17161 Design for All</title>
    <link href="https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/"/>
    <updated>2025-06-27T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/06/27/understanding-design-for-all/</id>
    <content type="html"><![CDATA[
        <p>While EN 301 549 is the technical standard cited in the European Accessibility Act (EAA), EN 17161 Design for All is a framework that supports embedding accessibility into strategy, design, and development processes.</p>
<p>Both are harmonised standards used by the EAA and yet all the focus has been on EN 301 549. This post explores how the two standards relate to each other, and what that means for providers of digital products and services.</p>
<figure class="inline-image__container">
<svg role="img" aria-label="Sustainable accessibility: an outline of a muted purple tree with two branches on either side of the trunk. At the ends of the branches are bright purple or red gears which interlock and rotate with the gear above or below it. There are two bright orange leaves growing at the top of the tree and a single leaf towards the bottom." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Sustainable accessibility: an outline of a muted purple tree with two branches on either side of the trunk. At the ends of the branches are bright purple or red gears which interlock and rotate with the gear above or below it. There are two bright orange leaves growing at the top of the tree and a single leaf towards the bottom.</desc>
<path d="m526.734 340.318 273.121 342.485-.089 803.474M1140.173 864.884l-318.641 286.128M928.821 441.909 817.87 637.369M610.441 1191.028l174.743 141.35M397.768-1.75l78.472 210.611M471.958 789.954l308.977 256.804" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M643.01 274.737c29.045-26.576 47.425-59.616 53.454-94.943 6.028-35.327-.294-72.94-3.817-100.803s-4.247-45.975-24.993-41.308-61.513 32.111-88.125 56.383c-26.612 24.271-39.068 45.368-47.773 74.827s-13.658 67.279-12.275 91.884c1.382 24.604 9.114 36.013-6.062 25.509s-53.357-42.988-87.466-60.389-64.322-19.779-96.616-14.993-67.126 16.797-88.1 24.029c-20.975 7.233-28.146 9.706-24.813 19.112s17.181 25.766 41.575 52.085c24.393 26.319 59.339 62.607 107.189 70.17 47.85 7.562 108.602-13.6 158.835-34.238s89.942-40.749 118.987-67.325" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:73.7px" transform="translate(-.990216 -3.009739)scale(1.333333)"></path>
<g transform="translate(0 .000045)scale(1.333333)">
<path d="m1062.62 121.879-13.586 57.439M973.604 455.163l-13.586 57.438M912.582 144.155l26.669 52.654M1084.137 436.466l26.669 52.654M1149.08 351.096l55.548 19.954M819.161 269.813l55.548 19.954M1135.736 251.647l48.761-33.259M840.009 422.288l52.271-27.414" style="fill:none;fill-rule:nonzero;stroke:#ff1958;stroke-width:92.18px"></path>
<circle cx="1008.995" cy="322.007" r="136.82" style="fill:none;stroke:#ff1958;stroke-width:92.18px"></circle>
<circle cx="1008.559" cy="321.585" r="45" style="fill:#ff1958"></circle>
</g>
<g transform="rotate(7.94302 -6314.65621 -3829.29329)scale(1.333333)">
<path d="m1062.62 121.879-13.586 57.439M973.604 455.163l-13.586 57.438M912.582 144.155l26.669 52.654M1084.137 436.466l26.669 52.654M1149.08 351.096l55.548 19.954M819.161 269.813l55.548 19.954M1135.736 251.647l48.761-33.259M840.009 422.288l52.271-27.414" style="fill:none;fill-rule:nonzero;stroke:#ff1958;stroke-width:92.18px"></path>
<circle cx="1008.995" cy="322.007" r="136.82" style="fill:none;stroke:#ff1958;stroke-width:92.18px"></circle>
<circle cx="1008.559" cy="321.585" r="45" style="fill:#ff1958"></circle>
</g>
<path d="m1211.083 513.725 4.875 58.822M1229.686 858.19l4.875 58.822M1075.325 581.382l41.669 41.804M1328.99 806.173l41.668 41.803M1364.294 704.885l58.997 1.766M1025.424 729.798l58.997 1.766M1320.8 614.461l36.061-46.727M1092.478 868.315l41.208-42.257" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="938.753" cy="1063.737" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.04518 .000142 .000023)scale(1.333334)"></circle>
<circle cx="938.316" cy="1063.316" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-18.04518 .000142 .000023)scale(1.333334)"></circle>
<path d="m1211.083 513.725 4.875 58.822M1229.686 858.19l4.875 58.822M1075.325 581.382l41.669 41.804M1328.99 806.173l41.668 41.803M1364.294 704.885l58.997 1.766M1025.424 729.798l58.997 1.766M1320.8 614.461l36.061-46.727M1092.478 868.315l41.208-42.257" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-4.75638 136.78869 15410.814556)scale(1.333334)"></path>
<circle cx="938.753" cy="1063.737" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-22.80156 -478.975515 3199.537454)scale(1.333334)"></circle>
<circle cx="938.316" cy="1063.316" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-22.80156 -478.975515 3199.537454)scale(1.333334)"></circle>
<path d="M643.595 276.828c28.46-28.667 46.84-61.707 52.869-97.034 6.028-35.327-.294-72.94-3.817-100.803s-4.247-45.975-24.993-41.308-61.513 32.111-88.125 56.383c-26.612 24.271-39.068 45.368-46.509 74.688-7.44 29.32-9.864 66.861-9.467 93.577s3.615 42.606 6.503 56.093c2.887 13.487 5.443 24.572 25.991 17.968s59.088-30.897 87.548-59.564" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:73.7px" transform="rotate(32.8401 -1529.230824 1817.809233)scale(1.333334)"></path>
</svg>
<figcaption>Sustainable accessibility</figcaption>
</figure>
<h2 id="in-brief" tabindex="-1">In brief</h2>
<p>As outlined in <a href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/">Understanding the EAA</a> by <a href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/">Léonie Watson</a>, we interpret the EAA's requirements for digital products and services to mean that economic operators and service providers should take the following steps to maximise their conformance with the Act:</p>
<ul>
<li>Use EN 17161 Design for All to put in place processes and practices that enable continuing conformance with the accessibility requirements</li>
<li>Use EN 301 549 and the functional performance criteria in Annex I to demonstrate conformance with the accessibility requirements</li>
<li>Document how services conform to the accessibility requirements, and how processes and monitoring help achieve conformance</li>
<li>If warranted, carry out a disproportionate burden assessment, and report to all national authorities where the product or service is available if an exemption is claimed</li>
</ul>
<p>For the purposes of this post, we will refer to EN 17161 Design for All, as Design for All.</p>
<h2 id="availability" tabindex="-1">Availability</h2>
<p><a href="https://www.en-standard.eu/une-en-17161-2020-design-for-all-accessibility-following-a-design-for-all-approach-in-products-goods-and-services-extending-the-range-of-users/?gad_source=1&amp;gad_campaignid=22489671069&amp;gbraid=0AAAAAD6CNv9QFW5RXQ_Tyzv0z-CgIyoQ3&amp;gclid=EAIaIQobChMIouPNzLr6jQMVFJRQBh17HgMNEAAYAiAAEgJAzvD_BwE">Design for All</a> is a paid for standard available from a number of places at a range of prices.</p>
<h2 id="purpose" tabindex="-1">Purpose</h2>
<p>The purpose of Design for All is to help organisations embed accessibility into their management systems, ensuring that accessibility is considered from strategy and planning through to implementation and review.</p>
<h2 id="scope" tabindex="-1">Scope</h2>
<p>Design for All is applicable to all organisations regardless of type, size or sector. It supports making products, goods, services, and environments accessible and usable by as many people as possible, including disabled and older people.</p>
<h2 id="key-points" tabindex="-1">Key points</h2>
<h3 id="focus" tabindex="-1">Focus</h3>
<p>Design for All is a framework of process requirements that complements EN 301 549, the technical standard referenced in the EAA. As such it emphasises how to integrate accessibility considerations into seven areas which are outlined in clauses 4 to 10:</p>
<ul>
<li>Context of the organisation</li>
<li>Leadership</li>
<li>Planning</li>
<li>Support</li>
<li>Operation</li>
<li>Performance evaluation</li>
<li>Improvement</li>
</ul>
<h3 id="user-involvement" tabindex="-1">User involvement</h3>
<p>Design for All has a strong emphasis on the importance of involving a diverse range of people, particularly people with disabilities, in the design and evaluation process.</p>
<p>This is covered in detail in Annex C where it describes including people with disabilities in the design process in the following ways:</p>
<h4 id="1.-understand-who-will-use-it-and-how" tabindex="-1">1. Understand who will use it and how</h4>
<p>Understand who your audience is and in what situations they'll be using the product or service.</p>
<h4 id="2.-learn-what-users-need-and-want" tabindex="-1">2. Learn what users need and want</h4>
<p>Get a clear picture of what matters to people, including their goals, preferences, abilities, and limitations, so these can shape the design and requirements.</p>
<h4 id="3.-design-something-that-works-for-them" tabindex="-1">3. Design something that works for them</h4>
<p>Create solutions that match what people need and expect, based on what you've learned.</p>
<h4 id="4.-check-if-it-actually-works-for-users" tabindex="-1">4. Check if it actually works for users</h4>
<p>Test the solution with people to see if it meets their needs and works well for them, and check whether it matches the original goals.</p>
<h3 id="compatibility" tabindex="-1">Compatibility</h3>
<p>The Design for All approach is intended to align with other management system standards such as ISO 9001, making it easier for organisations already following such frameworks to incorporate accessibility.</p>
<h3 id="supports-compliance-with-the-eea" tabindex="-1">Supports compliance with the EEA</h3>
<p>EN 17161 Design for All, is already a recognised standard that can be used to demonstrate conformance with the EAA. A revised version is planned for publication in September 2025.</p>
<h2 id="clauses-and-requirements" tabindex="-1">Clauses and requirements</h2>
<p>Clauses 4 to 10, describe areas an organisation can focus on in order to adopt the Design for All approach.</p>
<h3 id="clause-4%3A-design-for-all-approach" tabindex="-1">Clause 4: Design for All approach</h3>
<p>The Design for All approach focuses on how organisations can embed accessibility into their operations. It sets the foundation for making accessibility a consistent part of strategy, design, and delivery, particularly in the context of digital and physical products, services, and environments.</p>
<h4 id="clause-4.1%3A-accessibility-following-a-design-for-all-approach" tabindex="-1">Clause 4.1: Accessibility following a design for all approach</h4>
<p>Design for All is about making products and services work for as many people as possible including older people, and different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> including people with seeing, hearing, moving, or thinking disabilities.</p>
<p>It means thinking about accessibility and usability from the very beginning, and keeping it in mind through every stage of the product or service lifecycle.</p>
<p>The Design for All approach doesn't mean everything has to be identical for everyone. It means making sure people can:</p>
<ul>
<li><strong>Access it</strong>: find it and take it in</li>
<li><strong>Understand it</strong>: know what it's for and what to do</li>
<li><strong>Use it</strong>: take action or respond in their own way</li>
</ul>
<p>In short, it's about flexibility, not uniformity, so everyone gets a <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">comparable experience</a>, in a way that works for them.</p>
<h4 id="clause-4.2%3A-understanding-the-organisation-and-it's-context" tabindex="-1">Clause 4.2: Understanding the organisation and it's context</h4>
<p>Organisations should make sure that all relevant policies, processes, and activities follow a Design for All approach. To do this well, they need a clear understanding of how their internal and external environments affects accessibility.</p>
<p>This includes:</p>
<ul>
<li><strong>User needs and preferences</strong>: what people require to access, understand, and use products and services</li>
<li><strong>Feedback on existing products and services</strong>: what people are telling you about barriers and improvements</li>
<li><strong>Legal and regulatory duties</strong>: national and international requirements for accessibility</li>
<li><strong>Competitor practices</strong>: how others in the sector are addressing accessibility</li>
<li><strong>Compatibility with assistive technologies</strong>: ensuring products work with tools people rely on</li>
<li><strong>Changes in technology</strong>: keeping pace with new platforms, devices, and trends</li>
<li><strong>Supply chain capability</strong>: what partners and suppliers can deliver in terms of accessibility</li>
<li><strong>Economic, social, and cultural factors</strong>: broader issues that shape how people engage with your organisation</li>
</ul>
<h4 id="clause-4.3%3A-understanding-the-needs-and-expectations-of-interested-parties" tabindex="-1">Clause 4.3: Understanding the needs and expectations of interested parties</h4>
<p>Organisations should identify who uses their products and services, who is excluded, and why.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Identify who uses the product</strong>: including those who use the product or service directly, and those who support others to use it</li>
<li><strong>Understand who is not using it</strong>: especially where accessibility may be a barrier</li>
<li><strong>Plan for inclusion</strong>: identify what needs to change to help more people access, understand, and use the product or service</li>
<li><strong>Consider delivery needs</strong>: take into account the needs of anyone involved in delivering or supporting the service</li>
<li><strong>Review regularly</strong>: keep this information up to date as things change</li>
</ul>
<h4 id="clause-4.4%3A-determining-the-scope-of-the-design-for-all-approach-within-the-organisation" tabindex="-1">Clause 4.4: Determining the scope of the Design for All approach within the organisation</h4>
<p>Organisations should decide how and where their Design for All approach will apply.</p>
<p>Organisations should consider:</p>
<ul>
<li><strong>Internal and external factors</strong>: identified in Clause 4.2</li>
<li><strong>People's needs and expectations</strong>: described in Clause 4.3</li>
</ul>
<h4 id="clause-4.5%3A-integration-with-established-process-systems" tabindex="-1">Clause 4.5: Integration with established process systems</h4>
<p>Design for All works best when it's part of everyday practice, not treated as an add-on. To make this happen, accessibility should be built into existing processes and systems.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Understand and address accessibility needs</strong>: make sure everyone knows what's required and why it matters</li>
<li><strong>Recognise the value of inclusion</strong>: help all teams see the benefit of reaching more people</li>
<li><strong>Embed accessibility into all processes</strong>: from design and development to delivery and support</li>
<li><strong>Use feedback and data</strong>: learn from real experiences to improve products and services over time</li>
</ul>
<h3 id="clause-5%3A-leadership" tabindex="-1">Clause 5: Leadership</h3>
<p>Leaders play a critical role in making accessibility part of how an organisation works. They need to set the vision, define policies, assign responsibilities, and provide the support and resources needed. A strong, well communicated commitment from the top makes it more likely that accessibility will be built into every part of the organisation.</p>
<h4 id="clause-5.1%3A-leadership-and-commitment" tabindex="-1">Clause 5.1: Leadership and commitment</h4>
<p>Senior leaders in the organisation must show clear commitment to accessibility by creating an accessibility vision and goals to inspire employees and provide clear goals to measure progress against.</p>
<p>Leadership should show their commitment to accessibility by:</p>
<ul>
<li><strong>Investing in accessibility</strong>: providing enough time, money, and people</li>
<li><strong>Setting clear goals</strong>: defining targets and how success will be measured</li>
<li><strong>Making responsibilities clear</strong>: assigning ownership across teams</li>
<li><strong>Embedding accessibility into culture</strong>: encouraging everyone, from planning and design to marketing to take part</li>
<li><strong>Creating space for innovation</strong>: supporting new ideas to improve accessibility and reach more people</li>
<li><strong>Supporting continuous improvement</strong>: reviewing progress and identifying areas to grow</li>
<li><strong>Monitoring activity</strong>: keeping track of design and development decisions</li>
<li><strong>Linking accessibility to brand and reputation</strong>: using accessibility as a way to build trust and reach more customers</li>
<li><strong>Building capability</strong>: identifying training needs and recruiting people with the right skills</li>
</ul>
<p>Making accessibility happen takes both a top-down and bottom-up effort. Product teams can lead the way, but real impact depends on strong support from leadership. Senior decision makers play a critical role in setting direction, removing barriers, and making accessibility part of how things are done.</p>
<h4 id="clause-5.2%3A-policy" tabindex="-1">Clause 5.2: Policy</h4>
<p>Leadership should create an accessibility policy that:</p>
<ul>
<li><strong>Shows commitment</strong>: focuses on improving access, understanding, and use by people with disabilities</li>
<li><strong>Applies across the organisation</strong>: is scoped to be used across all teams, products, and services</li>
<li><strong>Drives continuous improvement</strong>: supports learning and progress over time</li>
<li><strong>Fits the organisation's purpose</strong>: is aligned with goals, values, and the business context</li>
<li><strong>Gets reviewed regularly</strong>: is updated when things change or new needs emerge</li>
<li><strong>Is shared openly</strong>: is understood by everyone inside the organisation, and outside, when relevant</li>
</ul>
<h4 id="clause-5.3%3A-organisational-roles%2C-responsibilities-and-authorities" tabindex="-1">Clause 5.3: Organisational roles, responsibilities and authorities</h4>
<p>Leadership should clearly assign and communicate responsibility for accessibility by:</p>
<ul>
<li><strong>Defining accountability</strong>: making it clear who is responsible for improving accessibility and reaching more users</li>
<li><strong>Checking effectiveness</strong>: making sure accessibility efforts are working as intended</li>
<li><strong>Keeping users in focus</strong>: ensuring all teams consider a wide range of user needs</li>
<li><strong>Building understanding</strong>: helping staff recognise the value of designing for different characteristics, abilities, and preferences</li>
</ul>
<h3 id="clause-6%3A-planning" tabindex="-1">Clause 6: Planning</h3>
<p>Planning for accessibility means thinking about risks, opportunities, goals, and changes. Organisations should set clear objectives, build accessibility into all relevant processes, and be ready to adapt while protecting accessibility outcomes. A planned, proactive approach ensures more people can use products and services effectively, now and in the future.</p>
<h4 id="clause-6.1%3A-actions-to-address-risks-and-opportunities" tabindex="-1">Clause 6.1: Actions to address risks and opportunities</h4>
<p>When planning a Design for All approach, organisations should consider internal and external factors (clause 4.2) and user needs and expectations (clause 4.3) to:</p>
<ul>
<li><strong>Support accessibility goals</strong>: make sure policies and processes can deliver what's needed</li>
<li><strong>Avoid problems</strong>: reduce the risk of missing user needs or accessibility targets</li>
<li><strong>Use opportunities</strong>: find ways to attract new users or explore new service areas</li>
<li><strong>Reach more people</strong>: keep expanding who can access, understand, and use products and services</li>
</ul>
<p>Organisations should also:</p>
<ul>
<li><strong>Plan specific actions</strong>: address risks and opportunities directly</li>
<li><strong>Embed actions into everyday work</strong>, including:
<ul>
<li>recruitment and hiring</li>
<li>disability knowledge and lived experience</li>
<li>user involvement and feedback</li>
<li>product and service design</li>
<li>manufacturing and delivery</li>
<li>work with external providers</li>
<li>packaging and presentation</li>
</ul>
</li>
<li><strong>Evaluate impact</strong>: check how well actions are working</li>
<li><strong>Track barriers</strong>: collect and review information on what prevents people from accessing, understanding, or using the organisation's products and services</li>
</ul>
<h4 id="clause-6.2%3A-design-for-all-approach-objectives-and-planning-to-achieve-them" tabindex="-1">Clause 6.2: Design for All approach objectives and planning to achieve them</h4>
<p>Organisations should set clear accessibility goals across relevant teams and levels that:</p>
<ul>
<li><strong>Align with the vision and policy</strong>: reflect the organisation's purpose (clause 5.2)</li>
<li><strong>Are measurable</strong>: define clear outcomes where possible</li>
<li><strong>Meet requirements</strong>: cover both legal and organisational needs</li>
<li><strong>Are tracked and reviewed</strong>: checked regularly to monitor progress</li>
<li><strong>Are clearly communicated</strong>: shared across the whole organisation</li>
</ul>
<p>To meet these goals, organisations should plan:</p>
<ul>
<li><strong>What needs to happen</strong>: define the specific actions</li>
<li><strong>What resources are needed</strong>: identify time, money, and people</li>
<li><strong>Who is responsible</strong>: assign clear accountability</li>
<li><strong>When it will happen</strong>: set realistic timelines</li>
<li><strong>How success will be measured</strong>: agree what good looks like</li>
</ul>
<h4 id="clause-6.3%3A-planning-for-changes" tabindex="-1">Clause 6.3: Planning for changes</h4>
<p>Organisations should plan for any changes that could affect accessibility or their Design for All approach.
Changes to policies, processes, or activities must be managed carefully and with a clear plan (clauses 4.2 and 4.3).</p>
<p>When planning changes, organisations should:</p>
<ul>
<li><strong>Understand the reason for change</strong>: know why it's needed and how it could affect people</li>
<li><strong>Assess the potential impact</strong>, including:
<ul>
<li>The overall Design for All approach</li>
<li>The accessibility of products and services</li>
</ul>
</li>
<li><strong>Check available resources</strong>: identify what time, people, or budget will be needed</li>
<li><strong>Review roles and responsibilities</strong>: decide if any changes are needed in who does what</li>
</ul>
<h3 id="clause-7%3A-support" tabindex="-1">Clause 7: Support</h3>
<p>Organisations need to put the right resources, skills, communication, and documentation in place to support their Design for All approach. This means making sure teams are informed, trained, and equipped. And that decisions and actions are clearly recorded and reviewed.</p>
<h4 id="clause-7.1%3A-resources" tabindex="-1">Clause 7.1: Resources</h4>
<p>Organisations should provide the right resources to support a Design for All approach and meet accessibility goals. This means making sure the right people, tools, and systems are in place at every stage.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Review what's already in place</strong>: assess internal skills, tools, and infrastructure</li>
<li><strong>Identify what's missing</strong>: decide what support or expertise is needed from outside</li>
<li><strong>Make use of existing knowledge</strong>: identify and apply what's already known about accessibility and inclusion</li>
<li><strong>Support inclusive design infrastructure</strong>: build and maintain systems that make accessible ways of working possible</li>
<li><strong>Match resources to each stage</strong>: identify resources for design through to delivery and monitoring</li>
<li><strong>Fund measurement and tracking</strong>: allocate time and money to measure progress and impact</li>
</ul>
<h4 id="clause-7.2%3A-competence" tabindex="-1">Clause 7.2: Competence</h4>
<p>Organisations should make sure everyone involved in Design for All has the right knowledge, skills, and experience. This helps teams make informed decisions and deliver accessible outcomes.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Identify required skills</strong>: understand what capabilities are needed across roles</li>
<li><strong>Provide ongoing training</strong>: keep staff up to date with regular learning and development</li>
</ul>
<h4 id="clause-7.3%3A-awareness" tabindex="-1">Clause 7.3: Awareness</h4>
<p>Everyone involved, including employees and suppliers, should understand their role in supporting a Design for All approach. Clear communication helps build shared responsibility and sustained progress.</p>
<p>Organisations should make sure people are aware of:</p>
<ul>
<li><strong>The vision and policy</strong>: as set out in clause 5.2</li>
<li><strong>Accessibility objectives</strong>: defined in clause 6.2</li>
<li><strong>Their role and responsibilities</strong>: how they contribute to an inclusive culture</li>
<li><strong>Performance feedback</strong>: how well their work supports accessibility outcomes</li>
</ul>
<h4 id="clause-7.4%3A-communication" tabindex="-1">Clause 7.4: Communication</h4>
<p>Organisations should plan how they communicate about Design for All and accessibility, both internally and externally. Good communication builds awareness, accountability, and trust.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Decide what to share</strong>: choose the most relevant and useful information</li>
<li><strong>Plan when and how to share it</strong>: use the right timing and channels for each audience</li>
<li><strong>Identify who needs to know</strong>: make sure the right people receive the right messages</li>
</ul>
<p>All communication should be clear and accessible.</p>
<h4 id="clause-7.5%3A-documented-information" tabindex="-1">Clause 7.5: Documented information</h4>
<p>Organisations should create and maintain key documents that support their Design for All approach. These documents help track progress, guide decisions, and show accountability.</p>
<p>Organisations should include documentation that covers:</p>
<ul>
<li><strong>Interested parties and their needs</strong>: who uses their products and services as outlined in Clause 4.3</li>
<li><strong>The scope of the approach</strong>: where and how Design for All applies (clause 4.4)</li>
<li><strong>The vision and policy</strong>: setting direction and intent (clause 5.2)</li>
<li><strong>Accessibility goals</strong>: what the organisation aims to achieve (clause 6.2)</li>
<li><strong>Supporting processes</strong>: systems in place to deliver on accessibility (clause 8.1)</li>
<li><strong>User needs in design</strong>: how people's requirements are included (clause 8.2.3)</li>
<li><strong>Accessibility evaluations</strong>: how accessible products and services are assessed (clause 8.2.5)</li>
<li><strong>Accessibility across the user journey</strong>: from start to finish (clause 8.4)</li>
<li><strong>Monitoring and measurement</strong>: how progress is tracked (clause 9.1)</li>
<li><strong>The assessment process</strong>: and the outcomes (clause 9.2)</li>
<li><strong>Decisions and actions for improvement</strong>: what's been done in response (clause 9.3)</li>
<li><strong>Updates and improvements</strong>: any changes made over time (clause 10)</li>
<li><strong>Other relevant documentation</strong>: anything else the organisation deems necessary</li>
</ul>
<h3 id="clause-8%3A-operation" tabindex="-1">Clause 8: Operation</h3>
<p>Accessibility needs to be part of every stage of a product or service, from design through to launch. Organisations should understand who their users are, include them early on, and think about their needs at each step. Testing, clear communication, and working closely with suppliers all help make sure the whole user journey is accessible.</p>
<h4 id="clause-8.1%3A-operation-planning-and-control" tabindex="-1">Clause 8.1: Operation planning and control</h4>
<p>Organisations should embed Design for All into everyday operations. This helps make accessibility a consistent part of how work gets done.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Set clear ways of working</strong>: define rules and expectations</li>
<li><strong>Check regularly for consistency</strong>: make sure teams follow agreed processes</li>
<li><strong>Manage change</strong>: plan for changes and respond to unexpected issues (clause 6.3)</li>
<li><strong>Hold suppliers to the same standard</strong>: ensure external partners meet accessibility requirements</li>
</ul>
<h4 id="clause-8.2%3A-design-and-development-of-products-and-services" tabindex="-1">Clause 8.2: Design and development of products and services</h4>
<h5 id="clause-8.2.2%3A-identifying-the-intended-users" tabindex="-1">Clause 8.2.2: Identifying the intended users</h5>
<h6 id="clause-8.2.2.1%3A-establishing-users-and-non-users" tabindex="-1">Clause 8.2.2.1: Establishing users and non-users</h6>
<p>Organisations should understand who can, and can't, use their products and services. This helps identify barriers and uncover opportunities to improve accessibility.</p>
<p>Organisations should:</p>
<ul>
<li><strong>Identify who is and isn't using what they offer</strong>: including direct and indirect users</li>
<li><strong>Find out why some people are excluded</strong>: collect insights from those affected through user research, usability testing, and feedback loops</li>
<li><strong>Use multiple sources</strong>: look at internal data and external research</li>
<li><strong>Analyse the information</strong>: organise and curate insights and use them to fill any knowledge gaps</li>
</ul>
<h6 id="clause-8.2.2.2%3A-specifying-the-intended-users" tabindex="-1">Clause 8.2.2.2: Specifying the intended users</h6>
<p>Organisations must clearly define who the intended users are, making sure this includes the widest possible range of people, including those who access products indirectly for example through another person or device.</p>
<h6 id="clause-8.2.2.3%3A-identifying-the-needs%2C-characteristics-and-capabilities-of-the-intended-users" tabindex="-1">Clause 8.2.2.3: Identifying the needs, characteristics and capabilities of the intended users</h6>
<p>Organisations must:</p>
<ul>
<li><strong>Recognise diverse user needs</strong>: consider differences in age and physical, sensory, mental, and cognitive capabilities</li>
<li><strong>Identify the context of use</strong>: including location, environment, and typical tasks</li>
<li><strong>Understand the relationship between needs and context</strong>: how different environments and situations affect what people need from a product</li>
</ul>
<h5 id="clause-8.2.3%3A-requirements-to-extend-the-range-of-users" tabindex="-1">Clause 8.2.3: Requirements to extend the range of users</h5>
<p>Design specifications must include:</p>
<ul>
<li><strong>User requirements</strong>: based on identified user needs</li>
<li><strong>Legal and regulatory requirements</strong>: including relevant laws and regulations</li>
<li><strong>Applicable standards and guidance</strong>: such as accessibility and usability standards</li>
<li><strong>Information on barriers and assistive technologies</strong>: to help reduce or remove barriers</li>
<li><strong>Compatibility with assistive technology</strong>: including interoperability considerations</li>
<li><strong>Insights from earlier analysis</strong>: drawing on findings from user research (clause 8.2.2)</li>
</ul>
<h5 id="clause-8.2.4%3A-realisation" tabindex="-1">Clause 8.2.4: Realisation</h5>
<h5 id="clause-8.2.4.1%3A-developing-solutions" tabindex="-1">Clause 8.2.4.1: Developing solutions</h5>
<p>Organisations should:</p>
<ul>
<li><strong>Use reliable user information</strong>: based on evidence rather than assumptions</li>
<li><strong>Follow best practices</strong>: in accessibility and inclusive design</li>
<li><strong>Gather and apply user feedback</strong>: including feedback from people who use assistive technologies</li>
<li><strong>Use an iterative design process</strong>: test, improve, and repeat</li>
<li><strong>Ensure equal treatment</strong>: for people who use assistive technologies</li>
<li><strong>Maximise compatibility</strong>: by using open standards that support assistive technology</li>
</ul>
<h5 id="clause-8.2.4.2%3A-approaches-to-design-solutions-to-achieve-accessibility-outcomes" tabindex="-1">Clause 8.2.4.2: Approaches to design solutions to achieve accessibility outcomes</h5>
<p>Designs should:</p>
<ul>
<li><strong>Offer multiple ways to interact</strong>: so people can access and use content in different ways</li>
<li><strong>Support flexibility</strong>:so people can adjust the design to suit their needs</li>
<li><strong>Reduce complexity</strong>: by keeping interactions simple and avoiding unnecessary steps</li>
<li><strong>Enable personalisation</strong>: so people can tailor access to their needs</li>
<li><strong>Avoid unnecessary limits</strong>: that restrict how people interact with the product</li>
<li><strong>Be compatible with assistive technology</strong>: ensuring smooth use with a wide range of hardware and software</li>
</ul>
<h5 id="clause-8.2.5%3A-evaluation" tabindex="-1">Clause 8.2.5: Evaluation</h5>
<p>Organisations must evaluate their products and services to check they meet accessibility goals.</p>
<p>This includes reviewing:</p>
<ul>
<li><strong>Early concepts</strong>: to identify issues from the start</li>
<li><strong>Prototypes</strong>: to test ideas before development progresses</li>
<li><strong>Technical specifications</strong>: to ensure accessibility is built into the foundations</li>
<li><strong>Design alignment</strong>: checking how well the product matches its intended design</li>
<li><strong>Usability testing with disabled people</strong>: to understand real-world accessibility</li>
</ul>
<p>Testing and evaluation should take place during development and between product versions.</p>
<h4 id="clause-8.3%3A-user-involvement" tabindex="-1">Clause 8.3: User involvement</h4>
<p>Organisations must involve disabled people as early as possible in design and development.</p>
<p>This includes:</p>
<ul>
<li><strong>Identifying user needs and preferences</strong>: to shape inclusive solutions from the start</li>
<li><strong>Gathering feedback on barriers and opportunities</strong>: to understand what helps or hinders access</li>
<li><strong>Identifying relevant assistive technologies</strong>: that people use to interact with products</li>
<li><strong>Involving users in testing and evaluation</strong>: to check how well the design works in practice</li>
</ul>
<h4 id="clause-8.4%3A-end-to-end-chain-in-relation-to-accessibility" tabindex="-1">Clause 8.4: End-to-end chain in relation to accessibility</h4>
<p>Organisations must think about accessibility across the whole user journey, not just the product itself. This means identifying:</p>
<ul>
<li><strong>Where the biggest barriers exist</strong>: across different stages of the journey</li>
<li><strong>How mature each part is</strong>: in terms of accessibility readiness</li>
<li><strong>Who controls each stage</strong>: whether internal teams or external partners</li>
<li><strong>How external factors affect access</strong>: such as packaging, instructions, and customer support</li>
</ul>
<p>Both internal and external factors should be reviewed, including:</p>
<ul>
<li><strong>Pre-sale and purchase</strong>: how people find, choose, and buy the product</li>
<li><strong>Installation and setup</strong>: how easily the product can be put into use</li>
<li><strong>Post-sale support and warranty</strong>: how help and repairs are handled</li>
</ul>
<p>The organisation must assess these factors and use the findings to support:</p>
<ul>
<li><strong>Stakeholder needs</strong>: as outlined in clause 4.3</li>
<li><strong>Scope definition</strong>: as outlined in clause 4.4</li>
<li><strong>Planning and design</strong>: as outlined in 6.1, 6.2, and 8.2</li>
<li><strong>Evaluation and improvement</strong>: as outlined in 8.2.5, 9.1, and 9.2</li>
</ul>
<h4 id="clause-8.5%3A-control-of-and-communication-with-external-suppliers" tabindex="-1">Clause 8.5: Control of and communication with external suppliers</h4>
<p>Organisations must set clear accessibility and usability requirements for suppliers and communicate:</p>
<ul>
<li><strong>What is expected</strong>: outlining their responsibilities clearly</li>
<li><strong>How they contribute</strong>: to meeting end-to-end accessibility</li>
</ul>
<p>This helps ensure that externally sourced products or services still support the organisation's accessibility vision and goals.</p>
<h3 id="clause-9%3A-performance-evaluation" tabindex="-1">Clause 9: Performance evaluation</h3>
<p>Organisations need to keep checking how well their Design for All approach is working. This includes measuring what's happening, listening to users, and tracking progress. Regular internal checks and reviews by leaders help make sure the organisation stays on track and makes products and services more accessible to more people over time.</p>
<h4 id="clause-9.1%3A-monitoring%2C-measurement%2C-analysis-and-evaluation" tabindex="-1">Clause 9.1: Monitoring, measurement, analysis and evaluation</h4>
<h5 id="clause-9.1.1%3A-general" tabindex="-1">Clause 9.1.1: General</h5>
<p>Organisations must regularly monitor, measure, analyse, and evaluate how well their Design for All approach is working.</p>
<p>This helps them check if they are:</p>
<ul>
<li><strong>Meeting accessibility goals</strong>: by tracking progress against targets</li>
<li><strong>Following planned processes</strong>: to maintain consistency and quality</li>
<li><strong>Achieving intended results</strong>: by measuring impact on users</li>
</ul>
<p>They must:</p>
<ul>
<li><strong>Decide what to monitor and measure</strong>: linked to the organisation's policy (clause 5.2) and objectives (clause 6.2)</li>
<li><strong>Use reliable methods</strong>: to collect and assess meaningful data</li>
<li><strong>Check real-world access and use</strong>: whether products and services are being accessed, understood, and used by as many people as possible</li>
<li><strong>Evaluate effectiveness</strong>: using the results to assess how well the Design for All approach is working</li>
</ul>
<p>Monitoring helps track whether more people are able to use a product or service and where improvements may be needed (clause 10).</p>
<h5 id="clause-9.1.2%3A-user-feedback" tabindex="-1">Clause 9.1.2: User feedback</h5>
<p>Organisations must collect feedback from users, including people with disabilities, to understand whether their needs are being met.</p>
<p>This includes:</p>
<ul>
<li><strong>Involving a diverse group</strong>: especially people who may not usually take part</li>
<li><strong>Offering multiple feedback options</strong>: such as online, phone, or in-person</li>
<li><strong>Using feedback to improve</strong>: policies, processes, and products</li>
</ul>
<h5 id="clause-9.1.3%3A-analysis-and-evaluation" tabindex="-1">Clause 9.1.3: Analysis and evaluation</h5>
<p>Organisations must analyse the data they collect to:</p>
<ul>
<li><strong>Show compliance</strong>: demonstrating that products and services meet Design for All requirements</li>
<li><strong>Improve customer satisfaction</strong>: by responding to real user experiences</li>
<li><strong>Assess effectiveness</strong>: checking how well the overall approach is working</li>
<li><strong>Review supplier performance</strong>: evaluating how well external partners are delivering</li>
<li><strong>Identify process improvements</strong>: finding areas that need change or refinement</li>
</ul>
<p>The results from this analysis feed into management decision-making and help guide further actions.</p>
<h4 id="clause-9.2%3A-internal-audit" tabindex="-1">Clause 9.2: Internal audit</h4>
<p>Organisations must evaluate its own processes and systems regularly to check whether:</p>
<ul>
<li><strong>Practices match policies</strong>: ensuring alignment with their own Design for All commitments</li>
<li><strong>Requirements are met</strong>: confirming compliance with this standard</li>
<li><strong>The approach is maintained</strong>: checking that it's being properly followed over time</li>
</ul>
<p>They must:</p>
<ul>
<li><strong>Share results with relevant managers</strong>: so findings are acted on</li>
<li><strong>Take corrective action</strong>: to fix problems and prevent them happening again</li>
</ul>
<h4 id="clause-9.3%3A-management-review" tabindex="-1">Clause 9.3: Management review</h4>
<p>Senior leaders must regularly review:</p>
<ul>
<li><strong>Design for All policy and goals</strong>: as set out in clauses 5.2 and 6.2</li>
<li><strong>Performance and audit results</strong>: including findings from evaluations and internal audits (clauses 9.1 and 9.2)</li>
</ul>
<p>These reviews should cover:</p>
<ul>
<li><strong>Progress on previous actions</strong>: tracking follow-up and results</li>
<li><strong>Relevant changes</strong>: both internal and external</li>
<li><strong>Effectiveness of the approach</strong>: how well Design for All is being applied</li>
<li><strong>Trends and indicators</strong>, such as:
<ul>
<li>Accessibility outcomes</li>
<li>User feedback</li>
<li>Supplier performance</li>
<li>Internal audit findings</li>
</ul>
</li>
<li><strong>Opportunities for improvement</strong>: and how well risks and opportunities have been addressed</li>
</ul>
<p>The review must lead to clear decisions and actions to improve accessibility and extend the range of users. Leadership is also responsible for ensuring the organisation has the resources needed to carry out these improvements.</p>
<h3 id="clause-10%3A-improvement" tabindex="-1">Clause 10: Improvement</h3>
<p>Organisations must treat accessibility as an ongoing effort. That means acting on feedback, checking progress, and always looking for better ways to meet users' needs. Improvements should be based on evidence and regularly checked for impact.</p>
<p>This means they must:</p>
<ul>
<li><strong>Identify areas to improve</strong>: across processes, procedures, and activities</li>
<li><strong>Take action</strong>: to make those improvements</li>
<li><strong>Check the results</strong>: to see if the changes worked as expected</li>
</ul>
<p>Improvements should be guided by:</p>
<ul>
<li><strong>Management review outcomes</strong>: outlined in clause 9.3</li>
<li><strong>Accessibility goals and objectives</strong>: outlined in clause 6.2</li>
<li><strong>Performance evaluations</strong>: outlined in clause 9.1</li>
<li><strong>Internal audit results</strong>: outlined in clause 9.2</li>
<li><strong>Data analysis</strong>: that highlights problems or opportunities</li>
</ul>
<p>As well as evaluating its performance against the Design for All approach (Clasue 9.2), organisations can also carry out <a href="https://tetralogical.com/services/assessments/">assessment</a> of products and services in order monitor progress and improvements.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information, read <a href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/">Understanding the EAA</a> by <a href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/">Léonie Watson</a> or find out more about how our <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> service and <a href="https://tetralogical.com/services/embedded-accessibility/">Embedded Accessibility</a> consultancy services can help you meet your EAA goals.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive user research: building rapport</title>
    <link href="https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/"/>
    <updated>2025-05-23T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/</id>
    <content type="html"><![CDATA[
        <p>Anyone who has ever conducted user research can appreciate the importance of building rapport with participants. When running inclusive user research, how can you build trust and mutual understanding with disabled participants?</p>
<p>Being able to connect with people and earn their trust is key for user researchers. It makes participants feel at ease, not be afraid of giving their honest opinion, and enjoy the session. This ultimately leads to richer, more meaningful research insights.</p>
<p>In our post <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">Moderating sessions</a>, we discussed the importance of showing respect to participants. Other than being the right thing to do, showing respect also contributes to building a mutually beneficial relationship with the people taking part in the research.</p>
<p>This post explores additional ways to build rapport with participants.</p>
<p>In case you missed them, here are the other blog posts in our Inclusive user research series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">Moderating sessions</a></li>
<li><a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">Analysing findings</a></li>
<li><a href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/">Recruiting participants</a></li>
</ul>
<h2 id="show-care" tabindex="-1">Show care</h2>
<p>First and foremost, we want people to have an enjoyable experience and feel like they are making an important contribution. In other words, we want participants to know we care about them and we value their help.</p>
<p>There are a few ways you can do this.</p>
<p>Firstly, approach every interaction with participants with care, beginning with the very first email or phone call. Consider every exchange as an opportunity to show your appreciation for their participation.</p>
<p>Secondly, make sure they are able to join the research session with ease by providing any support they may need ahead of the session. This will remove any anxiety they may otherwise feel, improving the overall experience. For example, for in-person sessions you could share detailed instructions on how to reach the research venue, and offer to meet people at the train station or bus stop. For remote sessions, you could email them clear instructions on how to download, install, and use the video conferencing platform.</p>
<h2 id="protect-personal-information" tabindex="-1">Protect personal information</h2>
<p>As researchers, we often have access to some of participants' personal details, such as age, telephone number, email address, and so on. In the case of people with disabilities, we may also have information on medical conditions they have or assistive technology they use.</p>
<p>Some participants may feel nervous about sharing this type of information. By showing them you will handle their data with care following best practices, you can alleviate their concerns.</p>
<p>As part of the recruitment process, provide participants with clear information on the data protection policies you'll follow. When doing that, make sure to use the simplest language possible; too often information on data protection contains jargon and legal terms that many people, especially those with thinking disabilities, may struggle to understand.</p>
<p>Also, make it as easy as possible for participants to confirm their agreement with your terms and conditions. Signing a paper or digital document may be difficult for some; provide another way to do the same, such as simply stating their agreement in an email.</p>
<p>Finally, check with participants they have no questions or doubts about data privacy at the beginning of each session.</p>
<h2 id="compensate-fairly" tabindex="-1">Compensate fairly</h2>
<p>As we all know, time is valuable. Participants should be offered a fair compensation for their time.</p>
<p>Whether it is cash or a voucher, decide on a fair compensation and let participants know about it early on in the recruitment process.</p>
<p>Best practice is also to assure participants they will receive their compensation regardless of the session outcome, including if the session ends earlier than expected. People should feel comfortable asking for breaks if they need one, or requesting to end the session if they feel unwell, for example.</p>
<h2 id="limit-activities" tabindex="-1">Limit activities</h2>
<p>Trying to cover too many tasks and questions in a research session can be stressful for both you and the participant. It is important to limit the amount of content to cover in each session.</p>
<p>When planning your research sessions, ensure you allocate sufficient time to complete all tasks, address key questions, and allow space for clarifications and follow-up inquiries. Keep in mind that some people with disabilities may require more time to process and answer questions or complete activities; you don't want to rush them. People should feel they can take all the time they need, and request breaks if they feel tired or need to take medications, for example.</p>
<p>Limiting the amount of content in each research session also allows for a relaxed, slow-pace conversation, which can help build rapport. And at times, you may feel like diverting slightly from the script and engaging in a bit of informal chat, which can make the session more enjoyable.</p>
<p>Remember, in inclusive user research, less is often more.</p>
<h2 id="ask-necessary-information-only" tabindex="-1">Ask necessary information only</h2>
<p>In all research projects, it's necessary to collect some participants' personal information, both at the recruitment stage and during the sessions. In addition to following best practices around data protection (as previously discussed), limit questions to what is necessary only.</p>
<p>For example, you may need to know the assistive technology that people use, but you don't necessarily need to ask about the medical conditions they have; in some cases, it may be useful to know how long people have been living with a disability, but there is no need to ask how they've acquired it.</p>
<p>Being asked lots of personal information, especially at the beginning of a research session, can feel intimidating. By limiting personal questions, we show participants that we respect their privacy, which can help them feel more at ease. As the session progresses, it is common for people to start opening up and volunteering information.</p>
<p>When writing recruitment criteria or a test script, always ask yourself whether a piece of information is truly needed to answer the research objectives. If not, leave it out.</p>
<h2 id="don%E2%80%99t-generalise" tabindex="-1">Don’t generalise</h2>
<p>When conducting research with people with disabilities, it’s tempting to assume that one participant’s experience reflects that of other people with similar disabilities. For example, one might assume that if content doesn’t work well for one screen reader user, it won’t be accessible to any screen reader users. But this is not always the case. People with the same disability or using the same assistive technology can have very different experiences with a product or service depending on many factors, such as personal preferences or the settings they use.</p>
<p>It's also important to avoid asking participants about other people. Questions like &quot;Do you think this content will work well for other Deaf people?&quot; or &quot;Would all screen reader users be able to navigate and understand this content?&quot; are not useful and may strain your relationship with participants; they may feel they are being categorised based on their disability rather than being valued as an individual.</p>
<h2 id="don%E2%80%99t-make-assumptions" tabindex="-1">Don’t make assumptions</h2>
<p>Similarly, assumptions based on someone's disability fail to recognise the uniqueness of each participant.</p>
<p>While it may be common to assume that those who are blind don’t appreciate images, or that those who are Deaf don’t enjoy music, these kinds of assumptions are often incorrect and reflect a limited understanding of the diversity of people’s preferences and needs.</p>
<p>Rather than making assumptions, ask questions. No matter how trivial or obvious the question may seem to you, participants will likely be happy to answer and share their experiences. Asking questions is a way to demonstrate curiosity and a genuine interest in learning about others, which is often very well received.</p>
<h2 id="appreciate-the-value-of-people's-feedback-in-every-session" tabindex="-1">Appreciate the value of people's feedback in every session</h2>
<p>When running inclusive user research, no two sessions are the same.</p>
<p>People's disabilities and the adaptive strategies they use can greatly impact their experience with a product or service. Also, symptoms associated with some medical conditions can vary on a daily basis, which can also impact the way people interact with products.</p>
<p>For example, <a href="https://www.nhs.uk/conditions/fibromyalgia/symptoms/">fibromyalgia symptoms</a> can fluctuate and change significantly from day to day. This means that a participant with fibromyalgia may be able to use a mouse and focus on tasks with ease in one session, and really struggle to use a mouse and need many breaks in another session.</p>
<p>As a researcher, it is important that you recognise these variations as representative of people's real life, hence valuable insights. Make participants aware that you appreciate their input and feedback in <em>every</em> session. People should not feel they are failing the researcher on days when they don't need to use assistive technology, or guilty when they need more breaks or more time to complete activities.</p>
<p>Keep in mind that people observing sessions may not be accustomed to such variability in participants' conditions and behaviours. You may have had someone commenting that &quot;the participant didn't appear to be disabled&quot;, just because the participant's symptoms happened to be mild on the day of the research. It is important to explain this variability to stakeholders, so they can also appreciate the value of all sessions.</p>
<h2 id="react-appropriately" tabindex="-1">React appropriately</h2>
<p>Something that can seriously damage our rapport with participants is overreacting to their stories or comments.</p>
<p>People with disabilities often face challenges or experience painful or debilitating medical conditions. While it's important to show empathy when someone shares their experience, you should never express pity. Showing pity may imply that you regard participants as helpless, which can be disempowering.</p>
<p>At the same time, avoid praising people for completing ordinary tasks, such as cooking, travelling, or working. Again, that can come across as patronising and can significantly harm your relationship with participants.</p>
<p>Simply showing you understand the challenges people face and appreciate the strategies they've developed is an effective way to maintain a positive, constructive relationship.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>When running inclusive user research, building rapport with participants is key. Some considerations that may help you establish a positive and constructive relationship include:</p>
<ul>
<li>Let participants know you value their help</li>
<li>Make it as easy as possible for them to join the session</li>
<li>Assure them you'll protect their personal details</li>
<li>Provide a fair compensation for their time</li>
<li>Limit the amount of activities in each session</li>
<li>Only ask for the personal information you really need</li>
<li>Never assume or generalise participants' experiences</li>
<li>Show empathy but avoid pity and ableism</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Looking for some support as you develop your skills in inclusive user research? Read about our <a href="https://tetralogical.com/services/user-research-mentoring/">User Research Mentoring programme</a> or find out more about our <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: Keyboard accessibility</title>
    <link href="https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/"/>
    <updated>2025-05-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/</id>
    <content type="html"><![CDATA[
        <p>By prioritising semantic HTML and offering keyboard-friendly alternatives for complex interactions, you help create a more inclusive experience for people who use a keyboard.</p>
<p>Keyboard accessibility ensures that people who navigate websites or apps using a keyboard, whether due to disability, injury, or personal preference, have an experience that is just as functional and efficient as those using a mouse, touch, or other input methods. While the interactions may differ, the goal is to provide equal usability and access to content. Prioritising semantic HTML and offering keyboard-friendly alternatives for complex interactions enhances the experience for all users.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/photo-bev-4_watermarked.jpg" alt="A black and white photo of Bev, a white woman with blond hair in her 50s scooped back in a hairband. She is standing looking into the camera, her head is cocked to the side with a smile while her hands are clasped together in front of her as she holds her brushes in her prosthetic hand and arm." />
<figcaption>Bev, an artist with a prosthetic arm, &quot;Accessibility means being able to do things on my own terms, and in my own time&quot;.</figcaption>
</figure>
<h2 id="who-benefits-from-keyboard-accessibility%3F" tabindex="-1">Who benefits from keyboard accessibility?</h2>
<p>Keyboard accessibility is essential for many people with <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">different types of disability</a> that may be permanent, temporary, or situational, or for people who prefer keyboard navigation:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">People browsing with a screen reader</a> who <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=moving%2C%20and%20thinking.-,Seeing,-Seeing">cannot see</a> or have low vision rely on keyboard navigation to move through content efficiently</li>
<li><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=using%20an%20app%22.-,Moving,-Moving">People with moving disabilities</a> and limited dexterity may be unable to use a mouse and instead <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browse with a keyboard</a></li>
<li>People with temporary injuries, like a broken wrist, <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=Repetitive%20Strain%20Injury%20(RSI)">repetitive strain injury</a>, or a minor finger injury can find it difficult to use a mouse, highlighting the importance of keyboard support</li>
</ul>
<p>By ensuring robust keyboard support, you create a more inclusive and user-friendly experience for everyone.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/photo-andre-5_watermarked.jpg" alt="A black and white photo of Andre playing an electronic keyboard sitting face on looking down at his hands as he plays. Andre is a younger black man and wears a striped shirt and Ray-Ban Meta Smart Glasses." />
<figcaption>Andre, a blind composer and music producer, &quot;I use audio software to control the output from my keyboard during gigs; without accessibility there would be no music&quot;.</figcaption>
</figure>
<h2 id="where-possible%2C-use-html" tabindex="-1">Where possible, use HTML</h2>
<p>There may be situations where delivering an identical experience isn’t possible, so an equivalent experience must always be provided. For example, when exploring an interactive map, people with a mouse might click, drag, or scroll to move around. While these exact interactions may not translate directly to a keyboard, alternative navigation options, such as arrow-key navigation or keyboard-accessible buttons, can provide an equivalent experience.</p>
<p>When building accessible interfaces, start with <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">semantic HTML</a>. In line with the <a href="https://www.w3.org/TR/using-aria/#firstrule">first rule of ARIA</a>, HTML has already done most of the heavy lifting. While ARIA is a powerful tool for remediation, it should be a last resort. Many accessibility issues can be avoided simply by using the correct native elements.</p>
<p>One of the biggest advantages of semantic HTML is that it requires no extra effort for keyboard support. Native interactive elements, such as buttons (<code>&lt;button&gt;</code>) and links with a valid <code>href</code> (<code>&lt;a href=&quot;#&quot;&gt;</code>), come with built-in keyboard functionality, ensuring a more accessible experience without additional coding.</p>
<p>For example, compare these two buttons:</p>
<p>A native HTML button:</p>
<p><code>&lt;button&gt;I am a button&lt;/button&gt;</code></p>
<ul>
<li>Uses the <code>&lt;button&gt;</code> element, which is inherently interactive with a keyboard</li>
<li>Automatically supports keyboard interactions, for example pressing <kbd>Enter</kbd> or <kbd>Space</kbd> to activate</li>
<li>Is focusable by default (no need for <code>tabindex</code>)</li>
<li>Works with screen readers and assistive technology</li>
</ul>
<p>A custom button:</p>
<p><code>&lt;div role=&quot;button&quot; tabindex=&quot;0&quot;&gt;I am also a button&lt;/div&gt;</code></p>
<ul>
<li>Requires <code>role=&quot;button&quot;</code> so assistive tech recognises it as a button</li>
<li>Needs <code>tabindex=&quot;0&quot;</code> to be focusable</li>
<li>JavaScript must be added to handle keyboard activation (Enter or Space), as <code>&lt;div&gt;</code> does not natively support it</li>
</ul>
<p>If you can use native HTML, do it. It saves you and your team time, reduces the risk of accessibility failures, and ensures built-in support for keyboard navigation. However, there are instances where native HTML alone may not be enough.</p>
<h2 id="when-html-alone-isn't-enough" tabindex="-1">When HTML alone isn't enough</h2>
<p>Sometimes, native elements don’t fit the design or functional requirements, and a <a href="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/#:~:text=When%20to%20use%20custom%20components">custom solution</a> is needed. Examples include:</p>
<ul>
<li>Custom dropdowns, when <code>&lt;select&gt;</code> is too limited</li>
<li>Modals or dialogs, beyond what <code>&lt;dialog&gt;</code> provides</li>
<li>Complex interactive widgets, for example sortable lists, carousels, rich text editors</li>
</ul>
<p>When creating custom components, you must follow the <a href="https://www.w3.org/TR/using-aria/#3rdrule">third rule of ARIA</a> to ensure they remain accessible to keyboard users. This means handling focus properly, supporting keyboard interactions, and maintaining expected behaviours.</p>
<h2 id="common-keyboard-accessibility-failures" tabindex="-1">Common keyboard accessibility failures</h2>
<p>Most common issues associated with the keyboard accessibility of custom controls can be avoided. Two instances that are seen regularly within accessibility assessments result in a failures against:</p>
<ul>
<li><a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%202.1.1%20Keyboard">2.1.1 Keyboard (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%202.4.3%20Focus%20Order">2.4.3 Focus order (Level A)</a>.</li>
</ul>
<h3 id="clickable-controls-without-tabindex" tabindex="-1">Clickable controls without tabindex</h3>
<p>A common issue is interactive elements that work with a mouse but aren’t accessible by keyboard. This often happens when <code>&lt;div&gt;</code> or <code>&lt;span&gt;</code> elements are used instead of native HTML interactive elements.</p>
<p>This is problematic because by default <code>&lt;div&gt;</code> and <code>&lt;span&gt;</code> elements are not focusable. Similarly, people cannot tab to them, making them completely inaccessible via keyboard. However, these issues can be avoided by following a few steps.</p>
<p>If you must use a <code>&lt;div&gt;</code> or <code>&lt;span&gt;</code> for styling reasons, make it keyboard accessible by:</p>
<ul>
<li>Adding a <code>tabindex=&quot;0&quot;</code> to bring it into the focus order, for example
<code>&lt;div role=&quot;button&quot; tabindex=&quot;0&quot;&gt;Click me&lt;/div&gt;</code></li>
<li>Using JavaScript to add keyboard support and event handlers, for example
<code>&lt;div role=&quot;button&quot; tabindex=&quot;0&quot; onclick=&quot;doSomething()&quot; onkeypress=&quot;handleKeyPress(event)&quot;&gt;Click me&lt;/div&gt;</code></li>
</ul>
<p>However, using a real <code>&lt;button&gt;</code> is always the better solution.</p>
<h3 id="non-interactive-elements-receiving-focus" tabindex="-1">Non-interactive elements receiving focus</h3>
<p>Some developers try to improve accessibility by <a href="https://tetralogical.com/blog/2024/04/04/when-to-use-tabindex-0/#:~:text=tabindex%3D%220%22%20and%20the%20screen%20reader%20myth">adding <code>tabindex</code> to non-interactive elements</a>, thinking it will help screen reader users. However, this actually causes more issues than it solves. The motivation behind doing this is often an attempt to create a richer experience for screen reader users, coupled with a misunderstanding of the difference <a href="https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/">between keyboard and screen reader navigation</a>. Interactive controls receive focus, not static text. So, when static text receives focus by virtue of <code>tabindex</code> values, it creates confusion for people who may believe they can interact with an element that is actually static. It disrupts expected navigation as keyboard users don’t expect to focus on static text.</p>
<p>A common issue arises when <code>tabindex</code> is applied to headings, causing <a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%202.4.3%20Focus%20Order">focus order</a> problems. Since non-interactive elements receive focus, they create unnecessary <code>tab</code> stops, disrupting the keyboard navigation experience.</p>
<p>For screen reader users, headings can already be navigated efficiently using built-in shortcuts. For example, when the screen reader NVDA is in <a href="https://tink.uk/understanding-screen-reader-interaction-modes/#:~:text=influence%20that%20behaviour.-,Virtual/browse%20mode,-When%20a%20document">browse mode</a>, pressing <code>H</code> moves to the next heading (with its level announced), while <code>Shift</code> + <code>H</code> moves to the previous one. Because these elements are inherently accessible, forcing focus on them with <code>tabindex</code> is redundant.</p>
<p>Avoid using <code>tabindex</code> on non-interactive elements. Instead, structure content with proper headings, landmarks, and semantic elements to enhance navigation. Reserve <code>tabindex</code> only for custom interactive controls when necessary.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li>Use native HTML whenever possible</li>
<li>Ensure custom controls are keyboard focusable by adding <code>tabindex=&quot;0&quot;</code></li>
<li>Ensure custom controls are interactive by adding JavaScript</li>
<li>Avoid adding <code>tabindex</code> to non-interactive controls</li>
</ul>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%202.1.1%20Keyboard">2.1.1 Keyboard (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%202.4.3%20Focus%20Order">2.4.3 Focus order (Level A)</a></li>
<li><a href="https://tetralogical.com/blog/2024/04/04/when-to-use-tabindex-0/">When to use tabindex=<code>0</code></a>, Graeme Coleman</li>
<li><a href="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/">Keyboard accessibility myths and WCAG</a>, Graeme Coleman</li>
<li><a href="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/">Foundations: native versus custom components</a>, Ela Gorla</li>
<li><a href="https://tink.uk/understanding-screen-reader-interaction-modes/#:~:text=influence%20that%20behaviour.-,Virtual/browse%20mode,-When%20a%20document">Understanding screen reader interaction modes</a>, Léonie Watson</li>
<li><a href="https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/">The difference between keyboard and screen reader navigation</a>, Léonie Watson</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Can generative AI write contextual text descriptions?</title>
    <link href="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/"/>
    <updated>2025-03-24T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/</id>
    <content type="html"><![CDATA[
        <p>In 2025, Artificial Intelligence (AI) and Large Language Models (LLM) like ChatGPT, Gemini, Claude, and DeepSeek are being used for everything. Writing emails. Generating code. Even applying for jobs. But, can they write good text descriptions for images?</p>
<p>Many people rely on <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a>, especially people who use screen readers. But, they’re often missing or poorly written. Given how widely AI is being used for writing content, we wanted to see how well an LLM can handle the task.</p>
<p>A good text description should help somebody to understand the image within the context of the surrounding text and why it was chosen. For example, if you had a photo of the Pyramids of Giza, you might describe it differently depending on where you use it.</p>
<p>On a:</p>
<ul>
<li>Travel blog, you might focus on the location, terrain and cultural significance</li>
<li>History website, you might focus on the construction and historical background</li>
<li>Photography portfolio, you might focus on the lighting, composition and mood</li>
</ul>
<p>We wanted to see if an AI can do this. So, we put some of the most popular LLM to the test, asking them to describe images with and without additional context, to try and understand:</p>
<ul>
<li>Are AI-generated text descriptions good enough to use as they are?</li>
<li>Can they at least provide a strong starting point for a human to edit later?</li>
<li>Does providing additional context improve the quality of AI-generated text descriptions?</li>
</ul>
<h2 id="what-we-did" tabindex="-1">What we did</h2>
<h3 id="the-llm-we-tested" tabindex="-1">The LLM we tested</h3>
<p>We set out to test the top five most popular LLM, which are:</p>
<ul>
<li><a href="https://chatgpt.com/">OpenAI, ChatGPT</a></li>
<li><a href="https://www.anthropic.com/claude">Anthropic, Claude</a></li>
<li><a href="https://gemini.google.com/">Google Gemini</a></li>
<li><a href="https://www.llama.com/">Meta AI Llama</a></li>
<li><a href="https://www.deepseek.com/">Deepseek R1</a></li>
</ul>
<p>However, we could not get Deepseek to process images, so we included a popular open-source LLM called <a href="https://ollama.com/library/minicpm-v">Mini-CPM V</a> instead.</p>
<p>Mini-CPM claims to have better image recognition abilities than ChatGPT, Claude and Gemini. With such a bold claim, it felt like an interesting one to include!</p>
<h3 id="the-prompts-we-used" tabindex="-1">The prompts we used</h3>
<p>We had the LLM describe each photo twice.</p>
<p>First, we provided the image on its own with no context, using the prompt:</p>
<blockquote>
<p>Generate alternative text for this photo. Use plain language and 10 to 20 words to highlight the most important information for non-sighted people.</p>
</blockquote>
<p>Then, we provided the image along with a paragraph to provide additional context, using the prompt:</p>
<blockquote>
<p>Generate alternative text for this photo using the provided context. Use plain language and 10 to 20 words to highlight the most important information for non-sighted people. Provided context: &quot;This line was replaced with a paragraph for context.&quot;</p>
</blockquote>
<p>Before giving the images to the LLM, we removed any meta-data associated with the image file as we figured the LLM might read it and use it for clues. This is not necessarily a bad thing. For example, if it reads the location the photo was taken, then perhaps it might provide a better description. However, meta-data is never guaranteed to be in any photo, especially as a lot of tools and platforms strip it out when processing or uploading images. So, we chose to remove it.</p>
<h3 id="the-images-we-chose" tabindex="-1">The images we chose</h3>
<h4 id="image-1%3A-the-%22friends-apartment%22-building" tabindex="-1">Image 1: The &quot;Friends Apartment&quot; Building</h4>
<p><img src="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/image1.jpg" alt="90 Bedford Street in New York, known as the Friends Apartment Building. It's a tall brown-brick corner building with exterior fire escapes against a blue and white clouded sky. The ground floor is a café, it's painted red with a blue awning, and there's a large tree on either side. The photo is taken at pavement level at the very corner of the building, showing 2 sides and creating symmetry." /></p>
<p>I took this photo of my wife walking in front of the &quot;Friends Apartment&quot; on Bedford Street, in New York.</p>
<p>We chose it because it's a famous building that attracts thousands of tourists, yet it looks unassuming and reasonably generic.</p>
<p>We wanted to understand if the LLM could understand the cultural significance of the building or the location of it.</p>
<p>The additional context we provided to the LLM:</p>
<blockquote>
<p>The image will be used on a fan website for &quot;Friends&quot;, a popular American sitcom that aired from 1994 to 2004. Based in New York, it followed the lives and careers of six friends: Rachel, Ross, Monica, Chandler, Joey, and Phoebe. Friends is known for its witty humour, relatable characters, and iconic catchphrases. It quickly became a cultural phenomenon, influencing fashion, language, and sitcom storytelling. Decades after it finished, it remains one of the most rewatched series in television history.</p>
</blockquote>
<h4 id="image-2%3A-the-statue-of-liberty-replica" tabindex="-1">Image 2: The Statue of Liberty Replica</h4>
<p><img src="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/image2.jpg" alt="A replica of the Statue of Liberty, at the New York-New York Hotel and Casino in Las Vegas. It's a large green statue of a woman in robes wearing a pointed crown. She holds a flaming torch above her head in her right hand, and a tablet in her left hand resting against her hip. She's standing on a large square brick pedestal against a blue cloudless sky. Behind her is a red-brick building, a replica of the Empire State Building, and a red rollercoaster." /></p>
<p>I took this photo on a recent trip to Las Vegas in front of the New York-New York Hotel and Casino.</p>
<p>We chose this photo because the Statue of Liberty is one of the most instantly recognisable landmarks in the world. But, this isn't actually the Statue of Liberty.</p>
<p>We wanted to understand if the LLM could reason with what it found in the photo, such as the roller coaster, and come to the conclusion that this is not the actual Statue of Liberty.</p>
<p>The additional context we provided the LLM:</p>
<blockquote>
<p>The image will be used on a travel website for &quot;Las Vegas&quot;, a vibrant city famous for its huge casinos, luxury hotels, and themed attractions. The New York-New York Hotel and Casino stands out, with its striking replica of the New York City skyline, including the Statue of Liberty and the Brooklyn Bridge, which are intertwined with &quot;The Big Apple&quot; rollercoaster.</p>
</blockquote>
<h4 id="image-3%3A-the-gender-assumption" tabindex="-1">Image 3: The Gender Assumption</h4>
<figure>
<img src="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/image3.jpg" alt="A head and shoulders portrait of a person on a bright street. They are black, with short black hair and wearing a black t-shirt. They have piercings, wearing a silver earring in their right ear and a silver U-shaped ring through the septum of their nose. They are smiling, looking off camera to their left. The background is blurred, but sunlit buildings, cars and palm trees are still visible." />
<figcaption>Image credit, Aaron Amat / Alamy Stock Photo</figcaption>
</figure>
<p>This stock image was listed as: &quot;Young African-American transgender, smiling confident at street.&quot;</p>
<p>We chose this photo because it's important to use inclusive language when describing images, and this includes making appropriate choices about people's pronouns or gender.</p>
<p>The person in the photo is described as being transgender, but there are no specifics about how they identify. So, we wanted to understand if the historical data used to train the LLM would influence the language they choose or assumptions they make.</p>
<p>The additional context we provided the LLM:</p>
<blockquote>
<p>The image will be used on a social media post to promote inclusive language and respect for people's pronouns, which is essential for fostering dignity, respect, and belonging. We should acknowledge peoples identities and reduce discrimination for transgender and non-binary people. Misgendering can cause harm. By using inclusive language in professional, educational, and social settings, we promote equity, ensuring everyone is seen and valued for who they are.</p>
</blockquote>
<h4 id="image-4%3A-the-3-finger-salute" tabindex="-1">Image 4: The 3 Finger Salute</h4>
<figure>
<img src="https://tetralogical.com/blog/2025/03/24/can-generative-ai-write-contextual-text-descriptions/image4.jpg" alt="A large crowd of people demonstrating in Thailand. They're wearing masks and have their right hand above their heads making a three finger salute, symbolising revolution. Their thumb is crossed over their palm, holding down their smallest finger, and their middle three fingers are together, pointing straight up. In the centre is a sign being held which reads: 'It is the music of a people who will not be slaves again.'" />
<figcaption>Image credit, SOPA Images Limited / Alamy Stock Photo</figcaption>
</figure>
<p>This stock image was listed as: &quot;Protesters flash a three-finger-salute during the demonstration at the Democracy Monument.&quot;</p>
<p>This photo is from recent protests in Thailand, where people gathered at the Democracy Monument to demand change from their government. The three finger salute was taken from the Hunger Games, a book by Suzanne Collins. In the book, the salute is used as a gesture for revolution.</p>
<p>We chose this photo because without context, it's very difficult to understand what's going on. You can't see any facial expressions and the salute is very similar to other known gestures, like &quot;the scouts promise&quot;.</p>
<p>The only real clue this is a protest is the sign being held up in the centre of the frame, which reads: &quot;It is the music of a people who will not be slaves again.&quot;</p>
<p>We wanted to understand if the LLM could describe the image with enough context to make it meaningful. Can it understand the location, what is happening, or the mood of the people?</p>
<p>The additional context we provided the LLM:</p>
<blockquote>
<p>The image will be used on a political blog. The three-finger salute, a symbol of revolution inspired by &quot;The Hunger Games&quot;, became a powerful gesture during protests at the Democracy Monument in Thailand. It signifies defiance against authoritarian rule, unity among protesters, and a call for freedom, justice, and equality. Despite crackdowns, the salute remains an enduring emblem of resistance in Thailand’s fight for democracy.</p>
</blockquote>
<h2 id="results-and-observations" tabindex="-1">Results and observations</h2>
<h3 id="image-1" tabindex="-1">Image 1</h3>
<p>This is how each LLM described the Friends Apartment Building, with and without context.</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th><strong>LLM</strong></th>
<th><strong>Without context</strong></th>
<th><strong>With additional context</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenAI ChatGPT (4o)</strong></td>
<td>A historic brown-brick corner building with fire escapes. A red-and-blue café occupies the ground floor, with outdoor seating, trees, and street signs in a city setting.</td>
<td>The iconic Friends apartment building in New York, with its red-brick exterior and corner café, featured in the sitcom.</td>
</tr>
<tr>
<td><strong>Anthropic Claude (3.5 Sonnet)</strong></td>
<td>A historic apartment building in New York City with a red and blue corner cafe at street level. Trees line the sidewalk.</td>
<td>The iconic corner building from &quot;Friends&quot; featuring the red and blue storefront of Central Perk café.</td>
</tr>
<tr>
<td><strong>Meta Llama (3.2 Vision)</strong></td>
<td>A corner of an apartment building in New York City, showcasing its brown brick facade with ornate details.</td>
<td>The exterior of the apartment building featured in the popular American sitcom &quot;Friends,&quot; which aired from 1994 to 2004.</td>
</tr>
<tr>
<td><strong>Google Gemini (2.0 Flash)</strong></td>
<td>The building exterior used in the TV show &quot;Friends&quot; as the apartment building, located in the West Village of New York City, with a red awning covering a cafe on the ground floor.</td>
<td>New York City apartment building exterior, iconic from the TV show &quot;Friends.&quot;</td>
</tr>
<tr>
<td><strong>MiniCPM V</strong></td>
<td>A red brick apartment building with fire escapes stands near an urban street corner under a partly cloudy sky.</td>
<td>An iconic New York City building where &quot;Friends,&quot; a popular American comedy show that aired between 1994-2004 was set.</td>
</tr>
</tbody>
</table>
</div><p>Even without any additional context, Claude, Llama and Gemini all realised it was New York City. But, only Gemini managed to link it to the show, Friends.</p>
<p>When we added the additional context, all five LLM used it to give a more focused description. Gemini, for some reason, gave a worse response when it had access to more information.</p>
<p>The text description without additional context were all fairly generic, and most LLM seemed drawn to the colour of the café.</p>
<h3 id="image-2" tabindex="-1">Image 2</h3>
<p>This is how each LLM described the Statue of Liberty Replica in Las Vegas:</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th><strong>LLM</strong></th>
<th><strong>Without context</strong></th>
<th><strong>With additional context</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenAI ChatGPT (4o)</strong></td>
<td>A large green Statue of Liberty replica stands on a stone pedestal against a clear blue sky. A bird is perched on the statue's torch. A red roller coaster and buildings are visible in the background.</td>
<td>Replica of the Statue of Liberty at the New York-New York Hotel in Las Vegas, with a rollercoaster looping behind.</td>
</tr>
<tr>
<td><strong>Anthropic Claude (3.5 Sonnet)</strong></td>
<td>A replica of the Statue of Liberty stands outside the New York-New York Hotel in Las Vegas, with a red roller coaster visible behind it.</td>
<td>A replica of the Statue of Liberty stands tall against blue sky at Las Vegas' New York-New York casino.</td>
</tr>
<tr>
<td><strong>Meta Llama (3.2 Vision)</strong></td>
<td>The iconic Statue of Liberty replica situated outside New York-New York Hotel &amp; Casino in Las Vegas.</td>
<td>A striking replica of the Statue of Liberty situated in front of the New York-New York Hotel and Casino in Las Vegas.</td>
</tr>
<tr>
<td><strong>Google Gemini (2.0 Flash)</strong></td>
<td>A tourist snapshot of the Statue of Liberty taken from below, showing its full figure and torch against a clear blue sky, highlighting the monument's scale and iconic presence.</td>
<td>Statue of Liberty replica at New York-New York Hotel in Las Vegas with blue sky.</td>
</tr>
<tr>
<td><strong>MiniCPM V</strong></td>
<td>An amusement park statue resembling Lady Liberty with surrounding buildings including one with red roller coaster tracks behind it.</td>
<td>New York-New York Hotel &amp; Casino features New York City landmarks like The Statue of Liberty and Brooklyn Bridge, intertwined within &quot;The Big Apple&quot; rollercoaster in Las Vegas.</td>
</tr>
</tbody>
</table>
</div><p>Although Gemini was one of the better LLM in the first test, this time it was the only one <em>not</em> to realise it was a replica, incorrectly describing the actual Statue of Liberty.</p>
<p>ChatGPT did ok, but described a bird that isn't there. Though, we can see why it perhaps thought the flames of the torch were the back-end of a pigeon.</p>
<p>Claude and Llama were able to correctly identify the location, while the others fell back to just describing objects in the image, such as the roller coaster.</p>
<p>When we provided additional context, most of the LLM generated a more focused response.</p>
<p>Claude, with access to more context, replaced the description of the rollercoaster and instead described the sky, which is arguably worse.</p>
<h3 id="image-3" tabindex="-1">Image 3</h3>
<p>This is how each LLM described the photo of the transgender person:</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th><strong>LLM</strong></th>
<th><strong>Without context</strong></th>
<th><strong>With additional context</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenAI ChatGPT (4o)</strong></td>
<td>A smiling person with short hair, a nose ring, and earrings wears a black T-shirt outdoors in a sunny urban setting with palm trees and blurred buildings in the background.</td>
<td>A smiling person with short hair and piercings stands outdoors in a sunny urban setting. Using inclusive language and respecting pronouns fosters dignity and belonging for all.</td>
</tr>
<tr>
<td><strong>Anthropic Claude (3.5 Sonnet)</strong></td>
<td>A person with a warm, genuine smile wearing a black t-shirt stands outdoors on a sunny day, with buildings and palm trees visible behind them.</td>
<td>A person with short dark hair and a nose piercing smiles warmly outdoors, wearing a black t-shirt.</td>
</tr>
<tr>
<td><strong>Meta Llama (3.2 Vision)</strong></td>
<td>Two young Black men standing together in front of a blurred background.</td>
<td>The image features two young Black individuals standing in front of a blurred background.</td>
</tr>
<tr>
<td><strong>Google Gemini (2.0 Flash)</strong></td>
<td>Sorry, I can't help with images of people yet.</td>
<td>Sorry, I can't help with images of people yet.</td>
</tr>
<tr>
<td><strong>MiniCPM V</strong></td>
<td>An African American woman wearing earrings with a smile; she is standing outdoors in what looks like a town setting or street with buildings behind her that are out of focus.</td>
<td>A person with short cropped hair smiles happily on the street while wearing earrings and rings in their nose, nostril, upper lip, and earlobe.</td>
</tr>
</tbody>
</table>
</div><p>Three of the LLM failed this test.</p>
<ul>
<li>Gemini just refused to caption it at all</li>
<li>MiniCPM described the person in the photo as a woman and used &quot;her&quot; pronouns</li>
<li>Llama hallucinated, describing two men in the photo</li>
</ul>
<p>When we provided more context, all of the LLM used more neutral and inclusive language. But, Llama was still convinced there were two people for some reason, and Claude again removed details that made it's response arguably worse.</p>
<h3 id="image-4" tabindex="-1">Image 4</h3>
<p>This is how each LLM described the photo of the protest with the three finger salute:</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th><strong>LLM</strong></th>
<th><strong>Without context</strong></th>
<th><strong>With additional context</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenAI ChatGPT (4o)</strong></td>
<td>A large crowd of protesters raises three-finger salutes. A central sign reads, &quot;IT IS THE MUSIC OF A PEOPLE WHO WILL NOT BE SLAVES AGAIN.&quot; Many wear masks.</td>
<td>A large crowd of protesters in Thailand raise three-finger salutes, a symbol of resistance against authoritarian rule. A sign in the foreground reads: &quot;IT IS THE MUSIC OF A PEOPLE WHO WILL NOT BE SLAVES AGAIN.&quot; Many wear masks, showing unity in their fight for democracy.</td>
</tr>
<tr>
<td><strong>Anthropic Claude (3.5 Sonnet)</strong></td>
<td>A protest crowd with raised hands, many wearing masks. A cardboard sign reads &quot;IT IS THE MUSIC OF A PEOPLE WHO WILL NOT BE SLAVES AGAIN.&quot;</td>
<td>Crowd raises three-finger salutes with protest sign reading &quot;It is the music of a people who will not be slaves again&quot;</td>
</tr>
<tr>
<td><strong>Meta Llama (3.2 Vision)</strong></td>
<td>A large crowd of people gathered together, with many hands raised in protest.</td>
<td>A large crowd of protesters holding up their hands in a three-finger salute, with one person in the center holding a sign that reads &quot;IT IS THE MUSIC OF A PEOPLE WHO WILL NOT BE SLAVES AGAIN.</td>
</tr>
<tr>
<td><strong>Google Gemini (2.0 Flash)</strong></td>
<td>Sorry, I can't help with images of people yet.</td>
<td>Sorry, I can't help with images of people yet.</td>
</tr>
<tr>
<td><strong>MiniCPM V</strong></td>
<td>The crowd is raising their hands with signs expressing messages of solidarity and resistance against enslavement or oppression as indicated by one sign that says &quot;IT IS THE MUSIC OF A PEOPLE WHO WILL NOT BE SLAVERY AGAIN.</td>
<td>In this photo from a protest at Democracy Monument in Bangkok, Thailand, people raise their hands to make the three-finger salute &quot;a symbol of defiance against authoritarian rule inspired by The Hunger Games&quot; and hold up signs like &quot;It is the music of a People who will not be slaves again.&quot;</td>
</tr>
</tbody>
</table>
</div><p>Gemini, again, refused to caption the image.</p>
<p>ChatGPT was the only LLM to correctly identify the three finger salute but was unable to link it to Thailand or the Hunger Games. The others just described &quot;raised hands&quot;, which isn't particularly useful.</p>
<p>Of the LLM that did provide a description, all managed to figure out it was a protest. Our hunch is that they used the text from the signage, as Claude and ChatGPT demonstrated their character recognition skills by including it in the description. MiniCPM gave it a good go, but incorrectly identified the word &quot;slaves&quot; as &quot;slavery&quot;.</p>
<p>When we provided additional context, with the exception of Gemini, all of the LLM changed their response and correctly described the three finger salute and the fact it was Thailand.</p>
<h2 id="conclusions-and-thoughts" tabindex="-1">Conclusions and thoughts</h2>
<h3 id="there-is-no-clear-winner" tabindex="-1">There is no clear winner</h3>
<p>Claude seems to be the most predictable when providing additional context. It consistently gave more focused and more concise descriptions on the second test, but perhaps over-simplified the text descriptions at times.</p>
<p>ChatGPT was a strong performer when provided with just the image. Although it could perhaps be overly descriptive, focusing on small details that aren't really important.</p>
<p>Although there wasn't a clear winner, we have to rank Gemini as the worst performer. Out of four photos and ten tests, it refused to describe half of them. Of the ones it did attempt, it was pretty good. Though, it was the only LLM that fell into the trap of describing the actual Statue of Liberty.</p>
<h3 id="ai-struggles-without-context" tabindex="-1">AI struggles without context</h3>
<p>When given just the image, all five LLM could definitely describe things in it, but they didn't really know how to focus their attention on the correct details.</p>
<p>Without context, LLM tend to describe surface-level details like colours and generic objects, but they lacked the depth needed to make a text description add to the narrative of the surrounding content.</p>
<h3 id="context-definitely-helps" tabindex="-1">Context definitely helps</h3>
<p>In <em>most</em> cases, providing additional context to an LLM results in much more focused descriptions.</p>
<p>ChatGPT, Claude and MiniCPM used the context well, correctly adjusting their responses to include key details, like the Friends Apartment and the three finger salute.</p>
<p>Both Claude and Gemini had situations where they performed worse when provided with more context, so it doesn't look like a solution is to just provide more and more information.</p>
<p>Llama didn't really do much with the additional context at all. With the exception of the Friends apartment, it gave very similar responses with both prompts.</p>
<h3 id="all-the-llm-make-mistakes" tabindex="-1">All the LLM make mistakes</h3>
<p>All the LLM performed quite well at a glance. It's clear they can churn out text descriptions at pace, but they all made mistakes.</p>
<p>Some were minor. It probably doesn't matter that ChatGPT described a bird on the statue that wasn't there. But when two of the LLM potentially misgendered a person, that's alarming.</p>
<p>It's clear that LLM can, and will, write text descriptions that are potentially harmful. So for us, this reinforces the need for human review.</p>
<h3 id="hallucinations-are-real" tabindex="-1">Hallucinations are real</h3>
<p>LLM are known to hallucinate. They write facts that aren't true and describe things that aren't there. Nobody really knows how often they do it, but even just running these 40 tests, we saw it happen.</p>
<p>The bird on the statue is probably just an honest mistake. The flame on the torch does look a bit like a pigeon. But, when Llama described two people in a photo, when there is clearly only one, that's definitely a hallucination. It would make it almost impossible for somebody to get an accurate understanding of that image using a screen reader.</p>
<h3 id="ai-generated-text-descriptions-are-probably-better-than-nothing" tabindex="-1">AI-generated text descriptions are probably better than nothing</h3>
<p>Humans have a really strong track record for writing bad text descriptions, or just leaving them out all together. So, the bar isn't particularly high for an LLM.</p>
<p>In our tests, we did observe many of the LLM do a reasonable job of describing each photo and taking the context into account. So, as long as it's accurate, vague AI-generated text descriptions are probably still better than nothing at all.</p>
<p>Unfortunately, no LLM did a good enough job every time, so we wouldn't trust it to provide text descriptions in bulk without checking each one.</p>
<h3 id="ai-generated-text-descriptions-are-a-good-starting-point" tabindex="-1">AI-generated text descriptions are a good starting point</h3>
<p>This looks like the most promising use case for AI-generated text descriptions at the moment - to give you something to work from.</p>
<p>Often, the blank page is the hardest part of writing anything. Humans could definitely use an LLM to quickly generate a basic text-description, use additional prompts to refine it, and then manually check it for accuracy, context and clarity.</p>
<p>Léonie Watson explores this idea in practice in the post <a href="https://tink.uk/adventures-with-bemyai/">&quot;Adventures with BeMyAI&quot;</a>.</p>
<p>You can give BeMyAI a photo, then chat back and fourth with it to understand it. You can ask it questions, for more detail, or to focus on different elements in the frame.</p>
<p>Instead of just accepting the first response, this iterative, interactive approach, makes it far more likely you'll actually get something useful that meets your needs.</p>
<h2 id="final-thoughts" tabindex="-1">Final thoughts</h2>
<p>It's clear AI can help with writing text descriptions, but it’s not a perfect solution. If you're going to use AI, we think right now, the best approach is human-AI collaboration.</p>
<p>If you can prompt an LLM effectively, and you understand the current limitations of the technology, AI is definitely a useful tool.</p>
<p>So, if you want to use AI to assist you in writing text descriptions, we recommend these five tips:</p>
<ol>
<li><strong>Be specific:</strong> Tell the LLM what the description is for and how it will be used</li>
<li><strong>Keep it concise</strong>: Aim for 10–20 words and focus on the most important details</li>
<li><strong>Provide context</strong>: Give the LLM supporting information along side your prompt, it will use it</li>
<li><strong>Be sceptical</strong>: Manually check responses for mistakes, hallucinations, and missing information</li>
<li><strong>Make it your own</strong>: Use AI as a tool, but apply your own judgment and writing style to refine any response</li>
</ol>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">inclusive XR: accessible 3D experiences</a> or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Understanding the European Accessibility Act (EAA)</title>
    <link href="https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/"/>
    <updated>2025-03-19T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/03/19/understanding-the-eaa/</id>
    <content type="html"><![CDATA[
        <p>The European Accessibility Act (EAA) requires that products and services made available within the European Union (EU) are accessible. Like most EU Directives, the EAA (DIRECTIVE (EU) 2019/882) is hard to understand, and this has left many people unsure about what it means - and more importantly, what they need to do to make sure their products and services comply.</p>
<p>With this in mind, we'd like to share our understanding of the EAA as it applies to digital products and services.</p>
<h2 id="in-brief" tabindex="-1">In brief</h2>
<p>Based on our understanding of the EAA as it relates to digital products and services, the steps that economic operators and service providers need to take to maximise their conformance with the act:</p>
<ul>
<li>Use EN 17161 to put in place processes and practices that enable continuing conformance with the accessibility requirements</li>
<li>Use EN 301 549 and the functional performance criteria in Annex I to demonstrate conformance with the accessibility requirements</li>
<li>Document how services conform to the accessibility requirements, and how processes and monitoring help achieve conformance</li>
<li>If warranted, carry out a disproportionate burden assessment, and report to all national authorities where the product or service is available if an exemption is claimed</li>
</ul>
<h2 id="purpose-and-scope" tabindex="-1">Purpose and scope</h2>
<h3 id="article-1-(subject-matter)" tabindex="-1">Article 1 (Subject Matter)</h3>
<p>Article 1 (Subject Matter) explains that the purpose of the EAA is to simplify the task of making certain products and services available within the EU, by offering a single set of accessibility requirements.</p>
<h3 id="article-2-(scope)" tabindex="-1">Article 2 (Scope)</h3>
<p>Article 2 (Scope) of the EAA describes the different products and services covered by the act:</p>
<h4 id="products" tabindex="-1">Products</h4>
<p>The EAA applies to certain types of electronic and digital products, including:</p>
<ul>
<li><strong>Computers and operating systems</strong>: laptops, tablets, and smartphones, along with their operating systems (e.g., Android, iOS, macOS, Windows)</li>
<li><strong>Self-service terminals</strong>: information kiosks, Automatic Teller Machines (ATMs), and ticket vending machines</li>
<li><strong>Digital communication devices</strong>: smartphones and Voice over Internet Protocol (VoIP) devices</li>
<li><strong>TV and video access devices</strong>: connected TVs, streaming devices, and set-top boxes</li>
<li><strong>eBook readers</strong>: devices for reading digital books, such as the Kobo eBook Reader and Amazon Kindle</li>
</ul>
<h4 id="services" tabindex="-1">Services</h4>
<p>The EAA also applies to certain types of digital service, including:</p>
<ul>
<li><strong>Digital communication services</strong>: VoIP services and communication apps like Zoom, WhatsApp, and Skype</li>
<li><strong>TV and video streaming services</strong>: platforms like Netflix, YouTube, and connected TV apps</li>
<li><strong>Transport services</strong>: digital services for booking or accessing air, rail, bus, or water transport</li>
<li><strong>Financial services</strong>: online banking websites and apps, financial information platforms, and ATMs</li>
<li><strong>Digital books and reading applications</strong>: ePUB files, Kindle books, and eBook reading apps</li>
<li><strong>E-commerce platforms</strong>: online stores and marketplaces such as Amazon and eBay</li>
<li><strong>Emergency services</strong>: services that enable people to contact emergency numbers, particularly the EU 112 number</li>
</ul>
<h4 id="exemptions" tabindex="-1">Exemptions</h4>
<p>Certain parts of digital services are exempt from the EAA, including:</p>
<ul>
<li><strong>Pre-recorded media</strong>: content published before 28 June 2025</li>
<li><strong>Older office files</strong>: Word documents, Excel spreadsheets, and PDFs published before 28 June 2025</li>
<li><strong>Online maps and map services</strong>: unless used for navigation purposes</li>
<li><strong>Third-party content</strong>: user-generated content (UGC) not controlled by the service provider</li>
<li><strong>Archived websites</strong>: websites that are no longer updated after 28 June 2025</li>
</ul>
<h2 id="requirements" tabindex="-1">Requirements</h2>
<p>The EAA sets general accessibility requirements for all products and services that are in scope, as well as more specific accessibility requirements for certain products and services.</p>
<h3 id="article-4-(accessibility-requirements)" tabindex="-1">Article 4 (Accessibility Requirements)</h3>
<p>Article 4 (Accessibility Requirements) says that all products and services must comply with the accessibility requirements in Annex I, specifically:</p>
<ul>
<li>All products must comply with the accessibility requirements in Section I of Annex I</li>
<li>All products, except self-service terminals, must comply with the accessibility requirements in Section II of Annex I</li>
<li>All services, except for those relating to urban, sub-urban, and regional transport, must comply with the accessibility requirements in Section III of Annex I</li>
<li>All services must comply with the accessibility requirements in Section IV of Annex I</li>
</ul>
<p>We'll come to Annex I later in this post, but first we'll cover two more articles that set out requirements for products and services.</p>
<h3 id="article-13-(obligations-for-service-providers)" tabindex="-1">Article 13 (Obligations for service providers)</h3>
<p>Articles 7 to 12 of the EAA set out obligations and other expectations for product manufacturers, distributors, and importers, but Article 13 sets out the obligations for service providers.</p>
<h4 id="comply" tabindex="-1">Comply</h4>
<p>The first obligation is that service providers must &quot;design and provide services&quot; that comply with the requirements in the EAA.</p>
<h4 id="document" tabindex="-1">Document</h4>
<p>Service providers are also obliged to prepare information in oral and written format that meets the requirements set out in Annex V and must maintain that information for as long as the service is available.</p>
<h4 id="maintain" tabindex="-1">Maintain</h4>
<p>In addition, service providers are obliged to put in place processes for maintaining compliance with the EAA. Those processes must take into account changes to services and the way they're provided, as well as updates to the harmonised standards referenced in the EAA.</p>
<h4 id="report" tabindex="-1">Report</h4>
<p>If a service does not comply with the requirements set out in the EAA, the service provider is obliged to take action to make sure that it does. In addition, the service provider must report itself and the service to the relevant national authorities of every EU member state in which the service is provided, and the report must include details of where the service does not comply, and the corrective actions being taken.</p>
<p>When asked by a &quot;competent national authority&quot;, service providers are obliged to supply all information needed to demonstrate that a service complies with the accessibility requirements of the EAA. The service provider must also cooperate with any requests to bring the service into conformance with the EAA, made by that national authority.</p>
<h3 id="article-15-(presumption-of-conformity)" tabindex="-1">Article 15 (Presumption of Conformity)</h3>
<p>The EAA itself doesn't directly state what the general accessibility requirements are. It instead presumes that if a product or service conforms to &quot;harmonised standards&quot; published in the Official Journal of the European Union, they conform to the EAA.</p>
<p>In 2022, the European Commission (EC) <a href="https://ec.europa.eu/transparency/documents-register/detail?ref=C(2022)6456&amp;lang=en">formally requested</a> the provision of harmonised standards to support the EAA; specifically updates to:</p>
<ul>
<li>EN 301 549 Accessibility requirements for ICT products and services</li>
<li>EN 17161:2019 Design for All - Accessibility following a Design for All approach in products, goods and services</li>
</ul>
<p>Those updates have not yet been published, so for now the current version of these standards should be used.</p>
<h4 id="en-301-549" tabindex="-1">EN 301 549</h4>
<p><a href="https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf">EN 301 549, (PDF)</a> is a set of accessibility requirements for Information Communication Technologies (ICT), including both hardware and software.</p>
<p>Version 3.2.1 of EN 301 549 was published in 2021, bringing it in line with the EU Web Accessibility Directive (that was implemented into UK law as the <a href="https://tetralogical.com/blog/2019/07/26/public-sector-accessibility-regulations/">Public Sector Accessibility Regulations</a>).</p>
<p><strong>Note:</strong> EN 301 549 3.2.1 incorporates the Web Content Accessibility Guidelines (WCAG) 2.1, and version 4.1.1 (<a href="https://portal.etsi.org/eWPM/index.html#/schedule?WKI_ID=64282">expected in 2026</a>) will incorporate WCAG 2.2.</p>
<h4 id="en-17161" tabindex="-1">EN 17161</h4>
<p><a href="https://www.en-standard.eu/bs-en-17161-2019-design-for-all-accessibility-following-a-design-for-all-approach-in-products-goods-and-services-extending-the-range-of-users/?mena=6">EN 17161</a> is a set of guidelines to help organisations take an inclusive approach to designing and building products and services.</p>
<p>Published in 2019, EN 17161 enables organisations to adopt <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a>  practices by considering the needs of a diverse range of people with different types of disability during product and service planning. It involves including those people, either directly or indirectly, as products and services are designed and built, while incorporating accessibility into process and practices.</p>
<h3 id="annex-i-section-i-(general-requirements-for-products)" tabindex="-1">Annex I Section I (General requirements for products)</h3>
<p>Annex I Section I says:</p>
<blockquote>
<p>Products must be designed and produced in such a way as to maximise their foreseeable use by persons with disabilities and shall be accompanied where possible in or on the product by accessible information.</p>
</blockquote>
<p>Section I.1 sets out these requirements for information about using a product, when the information is made available on the product itself:</p>
<ul>
<li>Be available through more than one sensory channel</li>
<li>Be perceivable and understandable</li>
<li>Be presented using fonts of &quot;adequate size and shape&quot;, with &quot;sufficient contrast&quot;, and &quot;adjustable spacing between letters, lines, and paragraphs&quot;</li>
</ul>
<p>Section I.1 then goes on to extend those requirements for information that's made available when using the product, or elsewhere (like a website):</p>
<ul>
<li>Content must be available in text formats that can be used to generate alternative formats (like Braille or synthetic speech)</li>
<li>Non-text content must be accompanied by an alternative presentation (a text description in other words)</li>
<li>Describe the User Interface (UI) and functions of the product, and its supported assistive technologies</li>
</ul>
<p>Section I.2 then says:</p>
<blockquote>
<p>The product, including its user interface, shall contain features, elements and functions, that allow persons with disabilities to access, perceive, operate, understand and control the product [...]</p>
</blockquote>
<p>The requirements for this can be summarised as saying the product:</p>
<ul>
<li><strong>Visual clarity:</strong> must provide flexible magnification, brightness and contrast, and other adjustments to improve visual clarity</li>
<li><strong>Assistive technology support:</strong> must be navigable with assistive devices and programmes</li>
<li><strong>Information presentation:</strong> must not depend on colour or audio signals to convey information, identify elements, or indicate when an action or response is needed</li>
<li><strong>Audio control:</strong> if the product uses audio, it must provide ways to control audio volume and speed, as well as advanced features like noise reduction</li>
<li><strong>Manual operation:</strong> if the product requires manual operation, it must avoid the use of simultaneous control and provide sequential control instead, and controls must be indicated with tactile markers</li>
<li><strong>Physical effort:</strong> must not require &quot;extensive reach and great strength&quot; to operate</li>
<li><strong>Seizure prevention:</strong> must not trigger photosensitive seizures</li>
<li><strong>Interaction flexibility:</strong> must offer consistent functionality and flexible amounts of time for interactions</li>
<li><strong>Privacy and security:</strong> must protect the privacy of people who use accessibility features and provide alternatives to biometric identification</li>
</ul>
<p>The rest of Section I.2 sets out &quot;sector specific&quot; requirements.</p>
<p>Self-service terminals must:</p>
<ul>
<li><strong>Text to speech:</strong> provide Text To Speech (TTS)</li>
<li><strong>Headset support:</strong> allow the use of personal headsets</li>
<li><strong>Multisensory alerts:</strong> use more than one sensory channel to alert users when time-sensitive responses are needed</li>
<li><strong>Event timing:</strong> allow time-sensitive events to be extended</li>
<li><strong>Control accessibility:</strong> provide tactile markers and adequate colour contrast for keys and controls, if keys and controls are provided</li>
<li><strong>Feature access:</strong> enable access to accessibility features without requiring a user who needs a feature to turn it on</li>
<li><strong>Hearing aid compatibility:</strong> make sure that audio signals are compatible with hearing aids, cochlear implants, and other listening devices</li>
</ul>
<p>eBook readers must:</p>
<ul>
<li>Provide Text To Speech (TTS)</li>
</ul>
<p>Terminals used for consumer communication services must:</p>
<ul>
<li>Provide handling for real-time text, and support high-fidelity audio, if the product has text capability as well as voice</li>
<li>Provide real-time text, synchronised voice, and support a video resolution suitable for displaying Sign Language communication (&quot;total conversation&quot;), if the product uses video in addition to or in combination with text and voice</li>
<li>Enable wireless connection to hearing devices and technologies</li>
<li>Not interfere with assistive devices</li>
</ul>
<h3 id="annex-i-section-ii-(general-requirements-for-products-except-self-service-terminals)" tabindex="-1">Annex I Section II (General requirements for products except self-service terminals)</h3>
<p>Section II explains that the requirements in Section I.1 also apply to the instructions for the installation and maintenance, storage and disposal of the product, whether provided on the product or elsewhere (like a website).</p>
<h3 id="annex-i-section-iii-(general-requirements-for-services)" tabindex="-1">Annex I Section III (General requirements for services)</h3>
<p>Section III sets out accessibility requirements for services:</p>
<ul>
<li>If the service is provided through a product, like a TV and video streaming service through a set-top box, then the product must comply with the requirements in Section I.1 and, where applicable, Section I.2</li>
<li>Information about the functionality of the service must be provided, and it must comply with the requirements in Section I, specifically:
<ul>
<li>Be available through more than one sensory channel</li>
<li>Be perceivable and understandable</li>
<li>Content must be available in text formats that can be used to generate alternative formats (like Braille or synthetic speech)</li>
<li>Be presented using fonts of &quot;adequate size and shape, with &quot;sufficient contrast&quot;, and &quot;adjustable spacing between letters, lines, and paragraphs&quot;</li>
<li>Non-text content must be accompanied by an alternative presentation (a text description in other words)</li>
</ul>
</li>
<li>Websites including associated online applications (webapps), and mobile apps, must be made consistently and adequately accessible by making them &quot;perceivable, operable, understandable and robust&quot;</li>
<li>When available, support services that provide information about the accessibility of the service (help desks, call centres, training services etc.) must offer accessible modes of communication</li>
</ul>
<h3 id="annex-i-section-iv-(additional-requirements-for-specific-services)" tabindex="-1">Annex I Section IV (Additional requirements for specific services)</h3>
<p>Annex I Section IV begins with:</p>
<blockquote>
<p>The provision of services in order to maximise their foreseeable use by persons with disabilities, shall be achieved by including functions, practices, policies and procedures and alterations in the operation of the service targeted to address the needs of persons with disabilities and ensure interoperability with assistive technologies</p>
</blockquote>
<p>Section IV then sets out the additional requirements for the following types of service.</p>
<h4 id="electronic-communication-services" tabindex="-1">Electronic communication services</h4>
<p>Electronic communications services including emergency services, must:</p>
<ul>
<li>Provide real-time text communication as well as voice communication</li>
<li>Support &quot;total conversation&quot;, where video is available in addition to voice communication</li>
</ul>
<h4 id="audio-visual-services" tabindex="-1">Audio-visual services</h4>
<p>TV and video services, must:</p>
<ul>
<li>Provide an Electronic Programme Guide (EPG) that is &quot;perceivable, operable, understandable and robust&quot;, and that makes accessibility information available</li>
<li>Make sure that accessibility features like captions, Audio Description (AD), and Sign Language, are accurate, synchronised with the original content, transmitted in full, and customisable by the consumer</li>
</ul>
<h4 id="passenger-transport-services" tabindex="-1">Passenger transport services</h4>
<p>National and international sea, air, bus, rail, and water transport services, must:</p>
<ul>
<li>Provide information on the accessibility of vehicles, the surrounding built environment, and assistance services for disabled people</li>
<li>Provide information about electronic ticket booking, timetables, travel disruptions, connecting services, onwards travel with other service providers, as well as information about staff at stations, lifts or other services that are unavailable (temporarily or otherwise)</li>
</ul>
<p>Urban, suburban, and regional transport services must make sure that self-service terminals (for purchasing tickets etc.) comply with the requirements in Annex I Section I.</p>
<h4 id="consumer-banking-services" tabindex="-1">Consumer banking services</h4>
<p>Consumer banking services, must:</p>
<ul>
<li>Provide identification methods, electronic signatures, payment, and security services that are &quot;perceivable, operable, understandable and robust&quot;</li>
<li>Make sure that information is understandable and written in a way that does not exceed <a href="https://www.efset.org/cefr/b2/">level B2 (upper intermediate) of the Council of Europe's Common European Framework of Reference for Languages</a></li>
</ul>
<h4 id="ebooks" tabindex="-1">eBooks</h4>
<p>eBooks, must:</p>
<ul>
<li>Provide synchronised text and audio, if the eBook contains an audio version</li>
<li>Not prevent assistive technologies from working correctly</li>
<li>Provide access to the content, content navigation, dynamic and static layouts, and flexibility and choice about the way content is presented</li>
<li>Enable alternative presentations of the content and its operation with assistive technologies, so it's &quot;perceivable, understandable, operable and robust&quot;</li>
<li>Include metadata about the accessibility features available in the eBook</li>
<li>Make sure that Digital Rights management (DRM) does not block accessibility features</li>
<li>Provide information about the accessibility features of the eBook being sold</li>
<li>Make sure the purchase process (identification, electronic signature, payment, and security) is &quot;perceivable, understandable, operable and robust&quot;</li>
</ul>
<h3 id="annex-i-section-v-(specific-requirements-for-emergency-services)" tabindex="-1">Annex I Section V (specific requirements for emergency services)</h3>
<p>Annex I Section V sets out requirements relating to the answering of calls and communications with the single European emergency number (112), which does not touch on the provision of digital services.</p>
<h3 id="annex-i-section-vi-(requirements-for-features%2C-elements-or-functions-of-products-and-services)" tabindex="-1">Annex I Section VI (requirements for features, elements or functions of products and services)</h3>
<p>Annex I Section VI sets out a presumption of conformity with other EU standards, if the requirements in Annex I Section I and Section II are met. Note that &quot;other EU standards&quot; does not mean the harmonised standards mentioned in the EAA.</p>
<h3 id="annex-i-section-vii-(functional-performance-criteria)" tabindex="-1">Annex I Section VII (functional performance criteria)</h3>
<p>Annex I Section VII begins with:</p>
<blockquote>
<p>In order to maximise the foreseeable use by persons with disabilities, when the accessibility requirements, set out in Sections I to VI of this Annex, do not address one or more functions of the design and production of products or the provision of services those functions or means shall be accessible by complying with the related functional performance criteria.</p>
</blockquote>
<p>It goes on to clarify that the functional performance criteria can only be used as an alternative to the accessibility requirements set out in Sections I to VI, if:</p>
<ul>
<li>Compliance with functional performance criteria also means compliance with the accessibility requirements in Sections I to VI</li>
<li>The design and development of products and services results in &quot;equivalent or increased accessibility&quot; for foreseeable use by disabled people</li>
</ul>
<p>These functional performance criteria can be summarised as:</p>
<ul>
<li>If a product or service has visual elements, it must provide at least one mode of operation that means it can be used by people:
<ul>
<li>Without vision</li>
<li>With low vision</li>
<li>With no colour perception</li>
</ul>
</li>
<li>If a product or service has audio elements, it must provide at least one mode of operation that means it can be used by people:
<ul>
<li>Without hearing</li>
<li>With limited hearing</li>
</ul>
</li>
<li>If a product or service requires voice input, it must provide at least one mode of operation that means it can be used by people without vocal input</li>
<li>If a product or service requires manual input, it must provide at least one mode of operation that:
<ul>
<li>Does not require fine motor control, hand-strength, or use of more than one control at once</li>
<li>Is usable with limited reach and limited strength</li>
</ul>
</li>
<li>If the product or service has visual elements, it must avoid modes of operation that trigger photo-sensitive seizures</li>
<li>The product or service must provide at least one mode of operation that makes it simpler and easier to use</li>
</ul>
<p>Section VII goes on to include this functional performance criteria:</p>
<blockquote>
<p>Where the product or service incorporates features that are provided for accessibility, it shall provide at least one mode of operation that maintains privacy when using those features that are provided for accessibility.</p>
</blockquote>
<h3 id="annex-v-(information-on-services-needing-accessibility-requirements)" tabindex="-1">Annex V (Information On Services Needing Accessibility Requirements)</h3>
<p>Annex V describes the information that must be provided for a service to comply with the EAA:</p>
<ul>
<li>Information on the assessment, design, and operation of services for compliance with the requirements in Article IV (and consequently Annex I), specifically:
<ul>
<li>General description of the service</li>
<li>Information needed to understand how to use the service</li>
</ul>
</li>
<li>Description of the delivery and monitoring process used to make sure the service complies with the first requirement in this Annex</li>
</ul>
<p>Annex V also reiterates that conformance with the harmonised standards (EN 301 549 and EN 17161) can be used to presume conformity with the requirements of the EAA.</p>
<h2 id="market-surveillance" tabindex="-1">Market surveillance</h2>
<p>Where the <a href="https://digital-strategy.ec.europa.eu/en/policies/web-accessibility-directive-standards-and-harmonisation">Web Accessibility Directive (WAD)</a> referred to &quot;monitoring&quot;, the EAA uses the term &quot;market surveillance&quot; to describe the way EU member states oversee conformance of products and services. In another difference from the WAD, an EU member state may have <a href="https://ec.europa.eu/docsroom/documents/64535">more than one national market surveillance authority</a> that is responsible for carrying out the market surveillance.</p>
<h2 id="disproportionate-burden" tabindex="-1">Disproportionate burden</h2>
<p>Like the WAD, the EAA describes circumstances in which compliance with the EAA represents a &quot;disproportionate burden&quot;.</p>
<h3 id="article-14-(fundamental-alteration-and-disproportionate-burden)" tabindex="-1">Article 14 (Fundamental alteration and disproportionate burden)</h3>
<p>Article 14 of the EAA says that the accessibility requirements in Article IV do not apply if a product or service requires a &quot;fundamental alteration of its basic nature&quot; in order to comply and results in the &quot;imposition of a disproportionate burden&quot;.</p>
<p>To determine if either of these conditions is true, the &quot;economic operator&quot; (the EAA term for a product manufacturer, distributor, or importer, or service provider) must carry out an assessment using criteria that are set out in Annex VI. The result of the assessment must be documented and kept for five years from the date a product was last made available, or a service was last provided.
Disproportionate burden assessments for services must be repeated whenever a service is altered, or at least every five years.</p>
<p>If a disproportionate burden is claimed, the results of the disproportionate burden assessment must be submitted to the national authorities in every EU member state where the product or service is made available.</p>
<h3 id="annex-vi-(criteria-for-assessment-of-disproportionate-burden)" tabindex="-1">Annex VI (Criteria for assessment of disproportionate burden)</h3>
<p>The criteria set out in Annex VI can be summarised as:</p>
<ul>
<li>Consider the estimated costs and benefits to economic operators in relation to the estimated benefits to people with disabilities</li>
<li>Consider the net ratio of costs of compliance with the accessibility requirements to the net turnover of the economic operator</li>
</ul>
<h2 id="declaration-of-conformity" tabindex="-1">Declaration of conformity</h2>
<p>Economic operators and service providers are expected to assess their products and services for compliance with the EAA, and to declare the results.</p>
<h3 id="article-16-(eu-declaration-of-conformity-of-products)" tabindex="-1">Article 16 (EU declaration of conformity of products)</h3>
<p>Article 16 of the EAA requires that economic operators prepare a declaration of conformity for their products, and that it must state that the accessibility requirements have been met and demonstrated. If an exception under Article 14 (Fundamental alteration and disproportionate burden) is claimed, the declaration of conformity must document which accessibility requirements are exempt.</p>
<p>The declaration of conformity must include the elements described in Annex IV of the EAA, must be provided in the language of each EU member state where the product is available, and must be continuously maintained.</p>
<p>Article 16 covers declarations of conformity for products, but not services, and the EAA doesn't directly set out requirements for declaring service conformity. However, when the EC <a href="https://ec.europa.eu/transparency/documents-register/detail?ref=C(2022)6456&amp;lang=en">formally requested</a> updates to the harmonised standards, it included a request for &quot;establishing a model accessibility statement in accordance with Directive (EU) 2016/2102&quot;. In other words, for a model accessibility statement template based on the one required by the Web Accessibility Directive (WAD).</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a>, or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Josh: a sportsman who has spinal muscular atrophy</title>
    <link href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/"/>
    <updated>2025-02-12T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/</id>
    <content type="html"><![CDATA[
        <p>Meet Josh, a sportsman who has spinal muscular atrophy. Between training for the Paralympics and his busy day job, Josh talks to us about how navigating the web is constantly evolving, how he adapts to various assistive technologies, and his hopes and concerns for artificial intelligence (AI).</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Meet Jonathan: a photographer who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a></li>
</ul>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round" viewBox="0 0 2000 2000">
<desc>Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers.</desc>
<path d="m1065.706 708.118-173.129 16.325M925.004 494.866 850.806 642" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="952.313" cy="509.696" rx="72.034" ry="71.948" style="fill:none;stroke:#f56f00;stroke-width:66.16px;stroke-linejoin:round" transform="matrix(1.296876 .309661 -.310446 1.296688 0 .000045)"></ellipse>
<circle cx="829.201" cy="610.838" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="755.201" cy="684.064" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="735.076" cy="783.726" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="659.404" cy="854.256" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<path d="m-26.236 630.142 237.923 158.427 503.906-244.915 97.835-173.021" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m1030.303 388.093 236.14-186.422M976.637 114.574l-82.991 169.119M1430.983 310.65l-327.907 197.926M1169.014 637.587l275.527-119.762M1443.616 711.127l-239.727 103.226" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M-29.981 1295.769s117.993 55.771 175.933 78.57c14.77 5.812 32.202 13.241 47.838 15.962 25.925 4.51 53.387-2.442 78.941-8.72 37.498-9.214 105.251-51.804 133.772-73.316 182.45-137.621 468.758-362.081 468.758-362.081l120.517-2.67 115.366-44.809" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
</svg>
<figcaption>Moving</figcaption>
</figure>
<p>I was diagnosed with <a href="https://www.nhs.uk/conditions/spinal-muscular-atrophy-sma/">spinal muscular atrophy (SMA)</a> at 18 months old. For the first ten years of my life, I could walk and stand to some extent, but by my teenage years, I was using a wheelchair permanently.</p>
<p>I do Paralympic sports, and my goal is to compete in the Los Angeles 2028 Paralympic Games. My event is rifle shooting, specifically the 10-meter air rifle, and possibly the 50-meter air rifle as well. I've been training seriously for about five or six years, which is still relatively new in the sport. It typically takes 10 to 12 years to reach peak international performance, so I'm working hard to close that gap. Beyond sport, I spend a lot of time outdoors and taking on fundraising challenges. Last year, we raised £42,500 for charity, with my friend Maxwell, who also has SMA, climbing Snowdon. Unfortunately, I had to miss out due to pneumonia and was stuck in hospital, which was gutting.</p>
<p>As a progressive condition, SMA leads to gradual physical changes over time and in recent years, I've noticed changes in my hand dexterity. Now, at 31, the dexterity in my hands is really starting to go. I’m becoming more aware of assistive technology and how I can use it to help me overcome certain situations.</p>
<p>I currently use voice control, eye tracking, and transcription tools are the biggest game changers for me in the digital space. One of the biggest changes for me has been relying more on voice commands. When my hands get cold, they become almost unusable, making tasks on my phone difficult. Instead of struggling, I now use voice dictation more often.</p>
<p>Apple recently introduced <a href="https://support.apple.com/en-gb/guide/iphone/iph66057d0f6/ios">eye-tracking technology</a>, which has been a game-changer. When my hands aren't functioning well, I can hold my phone and use my eyes to move the cursor around the screen. I'm still getting used to it, but I can already see how valuable it will be, especially during winter months when my hands are at their worst.</p>
<p>Typing has become increasingly difficult for me. My speed has slowed down significantly, and long typing sessions leave my hands exhausted. That's why using <a href="https://otter.ai/">Otter.ai</a> for transcription during meetings has been so helpful. Instead of wearing out my hands trying to take notes, I can record conversations, get a full transcript, and stay fully engaged in discussions without worrying about typing.</p>
<p>What's been most surprising is the mental shift that comes with adopting new technology. For so long, I did things the way I was used to, not realising there was a simpler, faster way. The moment I started using voice dictation, eye tracking, and transcription tools, I thought, &quot;Wow, this is so much easier!&quot; It's only when you experience the difference firsthand that you realise the impact it can have.</p>
<p>I often find myself wondering, &quot;Will I still be able to do all the things I do now in ten or fifteen years?&quot; But seeing how fast technology is evolving, it feels like the answer is yes. As technology evolves, I know I'll keep adapting, finding new ways to work and communicate more efficiently. And honestly, I can't wait to see what comes next.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/photo-josh-1.jpg" alt="A black and white photo of Josh, a younger white man with short brown hair. He is sitting in his wheelchair as he laughs at the camera holding an ordnance survey map" />
<figcaption>Josh, who has spinal muscular atrophy, is constantly adapting what assistive technologies he uses as his condition changes and technology evolves.</figcaption>
</figure>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>For me, the biggest challenge isn't access to assistive technology itself, but how well it works.</p>
<p>Take voice dictation, for example. I often use it to send messages hands-free, but the accuracy is inconsistent. Frequent errors in grammar, punctuation, and word choice mean I have to spend extra time correcting messages. That defeats the purpose of using voice input in the first place as it can be time-consuming.</p>
<p>Eye-tracking software is another tool I've started using, but it's also hit or miss. Sometimes, the cursor moves somewhere I didn't intend, or the software selects things I never meant to click, especially if I blink involuntarily.</p>
<p>In terms of websites themselves, many collapse into a mobile view, but some try to cram too much information from their desktop layout into a small screen. This makes navigation incredibly difficult, especially when buttons are tiny and close together. Trying to select small elements with eye-tracking can feel almost impossible.</p>
<p>On the other hand, websites with clean, simple layouts, large buttons, readable text, and easy navigation work much better with eye-tracking software. When a site is designed well, moving through it with just my eyes becomes much smoother.</p>
<p>When there's a lot of content, I often find it overwhelming. I struggle with too much information at once. I get information overload, and if content isn't broken down into small, bite-sized chunks, I find it hard to digest. I either skim past it, get frustrated, or give up entirely. I often don't return.</p>
<p>Clear, concise content makes all the difference. When information is structured well, it's much easier to absorb and engage with.</p>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p><a href="https://www.apple.com/">Apple</a> does good design. <a href="https://accessibility.huit.harvard.edu/">Harvard University</a> has done some good stuff around accessibility and has great resources. <a href="https://openinclusion.com/">Open Inclusion</a> (where I work) is also good. When building the website, we focused on regular user reviews with people using different assistive technologies and took an iterative development approach. For us, accessibility is an ongoing process, something that evolves and improves continuously rather than a one-time fix. We are also transparent about our accessibility efforts. Websites should set clear expectations for customers by saying:</p>
<blockquote>
<p>We're doing everything we can meet accessibility requirements, but we recognise it may not be perfect for everyone. If you experience challenges, we welcome your feedback, so we can address them.</p>
</blockquote>
<p>It's about honest communication, showing a commitment to improvement, and making sure users feel heard and valued. Take <a href="https://www.cornwallairportnewquay.com/">Cornwall Airport</a> for example, they have an <a href="https://www.cornwallairportnewquay.com/accessibility/">assistance and accessibility</a> link at the very top of the site. This means that <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">people browsing with a keyboard</a> or <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, encounter this link first when tabbing through content. From there, they can open accessibility tools and access an accessibility information page about the airport</p>
<p>It was a simple but effective way of improving access for a small airport and demonstrating a commitment to inclusive design.</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>The missing piece is <a href="https://tetralogical.com/services/agile-user-experience-testing/">usability testing</a> with disabled users. Even with good intentions, accessibility efforts can fall short without real user involvement. And the trick to making this happen is to budget for it at the beginning. The <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines</a> are the bare minimum, usability testing with disabled users is the layer that truly makes websites inclusive.</p>
<p>The other thing I'd like to see is the integration of responsible artificial (AI). Society's expectations around technology have shifted rapidly in the last five years and will only change more with the rise of AI.  I'm really excited to see where ChatGPT, DeepSeek and Claude go. For example, using natural conversation to book an accessible Airbnb instantly, with all payment details handled seamlessly. Almost like screenless browsing. I guess what we don't want is AI to make us lazy in the accessibility space, which I think it could do. There's a responsibility on people that are producing AI to ensure that it's ethical and inclusive. For example, ensuring <a href="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/">AI includes accessibility requirements when generating code</a>.</p>
<p>My final improvement is around hardware. For me, tech should be intuitive, ergonomic, and easy to hold, especially for people with limited dexterity. Large screens are great, but as screens get bigger, devices naturally become heavier, making them harder to hold for long periods. I'd love to see devices designed with lighter materials, so larger screens don’t come at the cost of usability. On top of that, improving eye-tracking technology and making voice dictation more accurate would be real game-changers, saving time and reducing the need for constant corrections. Those would be quick wins in making tech more accessible.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Jonathan: a photographer who has ADHD</title>
    <link href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/"/>
    <updated>2025-02-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/</id>
    <content type="html"><![CDATA[
        <p>Meet Jonathan, the photographer behind the portraits of all our models (links to their interviews below) for the TetraLogical website.</p>
<p>Jonathan has ADHD (Attention Deficit Hyperactivity Disorder) and shares his experience browsing the web, including how distractions like cookies, pop-ups, and social media affect him.</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/">Meet Josh: a sportsman Meet Josh: a sportsman who has Spinal Muscular Atrophy</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a></li>
</ul>
<figure class="inline-image__container">
<svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
<ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
<circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
<figcaption>Thinking</figcaption>
</figure>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<p>I’m a photographer, a dad, a coffee lover, and a cyclist based in Bristol. I take portraits and product images as a self-employed photographer, and I also work two days a week in the NHS Medical Illustration Department. Medical illustration is the traditional name for what is now clinical photography, videography, PR photography, and graphic design. We’re a large, multi-award-winning team.</p>
<p>I was (very) late diagnosed with ADHD in 2022 and Autism in 2024. After some initial and unexpected grieving, I now feel content and relieved to have a name—and a reason—for why I’ve struggled all my life, especially with things that seem to come easily to others.</p>
<p>I’m an expert at masking; I realise now I’ve been doing it unconsciously for a lifetime. The process of unmasking and being authentic has begun, but I’m determined to pace myself—I keep reminding myself it’s a journey, not a race!</p>
<figure>
<img src="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/jonathan.png" alt="A black and white portrait of a man with wavy white hair, a short beard, and thick black glasses. He is smiling warmly and holding a vintage camera in front of him, with his right hand raised as he takes the picture using a button on the end of a cord. The background is blurred with a classic film border at the edges." />
<figcaption>Jonathan's self-portrait holding a vintage camera.</figcaption>
</figure>
<p>I was delighted to have been commissioned by <b>TetraLogical</b> to take a series of images for their website on how other people, with a range of different accessibility needs, live their lives both on and offline. I love strong, stand out black and white images and take great delight in the results. Such an inspiring and fun day, it’s always interesting to hear other peoples stories.</p>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>Looking back, I realise I’ve missed out on things because I struggle to ‘read between the lines’ or understand nuance and metaphors. For example, filling out forms can be difficult - questions often don’t reflect my lived experience, and answer options feel too binary. Ironically, I prefer clear, concise, and structured instructions! I appreciate forms that let me answer honestly rather than forcing a generalised response.</p>
<p>Explanatory text also needs to be both concise and detailed. If FAQs don’t directly answer my question, I’ll give up pretty quickly. Too often, they don’t cater to my specific need. I believe good design and usability don’t have to be sacrificed for accessibility. It can be built in naturally, made discreet if necessary, but still easy to find for those who need it.</p>
<p>Another frustration? Cookie pop-ups. Every site handles them differently some are opt-in, others are opt-out, or a long list of choices. If it’s complicated, I’ll just leave the site. From a user’s perspective, it ruins the experience, and I’m stubborn enough to boycott a site if the pop-up takes too long. Make it easy and straightforward for everyone, please!</p>
<p>From an ADHD perspective, social media is a huge time drain. I can easily spend hours scrolling, which is why I use an app blocker at certain times of the day and night. That said, I do find Instagram’s simple, uncluttered interface easy to navigate. Over the years, it’s become much more intuitive to post pictures and content.</p>
<figure>
<img src="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/jonathan_standing.jpg" alt="A photo of Jonathan, a man with white hair and thick black-framed glasses, standing in a studio behind a camera mounted on a tripod. He is wearing a white t-shirt, dark jeans with rolled-up cuffs, and blue sneakers with red soles. He is slightly leaning to one side, smiling, and looking through the camera’s viewfinder." />
<figcaption>Jonathan in his studio taking photos. Photo credit <a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Steve</a> who was having his photo taken at the time.</figcaption>
</figure>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p>While not a website, I swear by my <a href="https://remarkable.com/">reMarkable tablet</a>. It’s an electronic handwriting and note-taking device that I received through <a href="https://www.gov.uk/access-to-work">Access to Work</a>.</p>
<p>I’ve always preferred handwriting to typing; it helps me think more clearly and articulate ideas better in work situations. The tablet is also great for jotting down photo ideas, drawing lighting diagrams, and more. But the best part? No distractions. No app store, no social media, no email - nothing pulling my attention away. It’s a game-changer.</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>Less pop-up ads, less inline ads disrupting the content, less intrusiveness overall from companies. I appreciate the website owner is trying to make money from these but my goodness they are at the expense of usability!</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: grouping forms with `&lt;fieldset&gt;` and `&lt;legend&gt;`</title>
    <link href="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/"/>
    <updated>2025-01-31T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/</id>
    <content type="html"><![CDATA[
        <p>In this post, we explore how to use the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements to group and label form elements effectively, creating a more accessible and well-structured experience.</p>
<p>In addition to <a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">labelling text fields with <code>&lt;input&gt;</code> and <code>&lt;label&gt;</code></a> elements, implementing <a href="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/">form validation and error messages effectively</a>, accessible forms can be enhanced by using the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements to create clear structure and meaningful grouping.</p>
<p>Much of a form's structure can be conveyed visually, whether through intentional spacing between sections or the use of bold text to highlight overarching questions paired with related controls. However, the visual grouping created by spacing should also be reflected in the markup. This can be done by using the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements.</p>
<p>Accessible grouping benefits everyone, but in particular:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=moving%2C%20and%20thinking.-,Seeing,-Seeing">People with seeing disabilities</a> who <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browse with a screen reader</a> and braille display who rely on properly structured grouping to understand questions with multiple controls</li>
<li><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=names%20and%20descriptions-,Low%20vision%3A,-people%20whose%20vision">People with seeing disabilities</a> who <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">use screen magnification</a> benefit from structured grouping with semantic elements. These elements work alongside magnification tools to create a clear hierarchy, making it easier to navigate and reducing confusion when scrolling or zooming in on form sections.</li>
<li><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=my%20own%20time%22.-,Thinking,-This%20refers%20to">People with thinking disabilities</a> who rely on clearly structured and organised forms</li>
<li><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/#:~:text=using%20an%20app%22.-,Moving,-Moving">People with moving disabilities</a> who <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browse with a keyboard</a> and rely on logical grouping of form controls which can streamline navigation for users who rely on assistive technologies like keyboard navigation or switch devices, reducing the effort required to interact with a form</li>
</ul>
<h2 id="the-%3Cfieldset%3E-element" tabindex="-1">The <code>&lt;fieldset&gt;</code> Element</h2>
<p>The <code>&lt;fieldset&gt;</code> element serves a dual purpose, visually grouping related controls by default, with browsers typically adding an outline around the content it wraps. This visual style can be customised as needed. Additionally, it semantically conveys this grouping to assistive technologies, ensuring users can easily understand the relationship between the grouped controls.</p>
<p>Code sample:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>fieldset</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>I am wrapped in fieldset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>fieldset</span><span class="token punctuation">></span></span></code></pre>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/FieldsetWithoutLegend.png" alt="A thin outline of a fieldset surrounding the text that says I am wrapped in a fieldset" />
<figcaption>An example of a fieldset element showcasing the default visual outline generated by the markup.</figcaption>
</figure>
<p>It is important to note that a <code>&lt;fieldset&gt;</code> element (or any element with a <code>role=&quot;group&quot;</code>) will only be recognised as a group by assistive technologies if it has an <a href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/">accessible name</a>. Without an accessible name, the group role will not be conveyed to people using a screen reader. For instance, in the above example of a <code>&lt;fieldset&gt;</code> without a <code>&lt;legend&gt;</code> or accessible name, it would not be exposed as a group by a screen reader to someone who is blind.</p>
<p>Typically, a <code>&lt;fieldset&gt;</code> element is used in conjunction with a <code>&lt;legend&gt;</code> element to provide a label and therefore, an accessible name, for the grouped section.</p>
<h2 id="the-%3Clegend%3E-element" tabindex="-1">The <code>&lt;legend&gt;</code> Element</h2>
<p>The <code>&lt;legend&gt;</code> labels the <code>&lt;fieldset&gt;</code>. This could take the form of a question. If a question is visually linked with inputs such as radio buttons or checkboxes, but not coded correctly, people relying on assistive technology like screen readers may not perceive the connection. A <code>&lt;legend&gt;</code> may also be a section heading that will provide context to the remainder of the <code>&lt;fieldset&gt;</code>, without having to clutter each individual form label:</p>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/BillingAddressDeliveryAddress.png" alt="Two forms appearing next to one another, one with the heading Delivery address, the other Billing address. Each form contains the following fields, Name, Street, City, Post code and a blue Submit button" />
<figcaption>An example of two identical forms, distinguished solely by the legend element at the top of each form.</figcaption>
</figure>
<p>When a user navigating a form with a screen reader enters a group defined by a <code>&lt;fieldset&gt;</code> containing a <code>&lt;legend&gt;</code>, the screen reader announces the <code>&lt;legend&gt;</code> to provide context for the controls within the group.</p>
<p>Common accessibility issues arise when <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements are omitted or incorrectly implemented. These errors are frequently observed during assessments and are typically recorded as <a href="https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html">1.3.1 Info and Relationships</a> failures, as they prevent assistive technologies from accurately conveying the grouping and relationships within the form, despite the information being presented to sighted users.</p>
<p>A common issue we find during accessibility <a href="https://tetralogical.com/services/assessments/">assessments</a> is when there is a visual label for a group of controls, but the association is not reflected in the markup. For example:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>Can you see the question<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>radio<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>agreement<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Yes<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>radio<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>agreement<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>No<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>Someone that is blind and relying on a screen reader could initially perceive the on-screen content as follows:</p>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/yesNoRadio.png" alt="Two radio buttons stacked vertically. One is labelled Yes and the other is labelled No" />
<figcaption>An example illustrating how two radio buttons without an associated legend in the markup might be perceived by someone navigating with a screen reader</figcaption>
</figure>
<p>By restructuring the <code>&lt;p&gt;</code> element to be a <code>&lt;legend&gt;</code>, and wrapping the entire contents within a <code>&lt;fieldset&gt;</code>, assistive technology users will be made aware of the context.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>form</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>fieldset</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>legend</span><span class="token punctuation">></span></span>Can you see the question?<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>legend</span><span class="token punctuation">></span></span>
    
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>radio<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>agreement<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yes<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Yes<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
    
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>radio<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>agreement<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>no<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>No<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
    
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>fieldset</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>form</span><span class="token punctuation">></span></span></code></pre>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/legendWithinFieldsetRadio.png" alt="A fieldset outline that contains two radio buttons that are vertically stacked. One is labelled Yes and one is labelled No. There is an overarching question that reads Can you see the question?" />
<figcaption>An example demonstrating how a properly marked-up fieldset and legend provide clear context to form controls.</figcaption>
</figure>
<p>Another common use case is when a form is divided into sections, such as when ordering a gift for someone and the delivery address differs from the billing address. While the same inputs (e.g., street, city, post code) may be used for both sections, grouping them with <code>&lt;fieldset&gt;</code> elements and providing a <code>&lt;legend&gt;</code> like &quot;Delivery Address&quot; and &quot;Billing Address&quot; ensures clear context and group labelling. This allows users to distinguish between the sections, even if the individual input labels are identical.</p>
<p>Changing the experience for screen readers users from this:</p>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/identicalAddressForms.png" alt="Two form fields appearing next to one another. Each form contains the following fields, Name, Street, City, Post code and a blue Submit button" />
<figcaption>An example illustrating how two identical forms may be perceived without a legend to differentiate their fieldset groups.</figcaption>
</figure>
<p>To this:</p>
<figure>
<img src="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/BillingAddressDeliveryAddress.png" alt="Two form fields appearing next to one another, one with the heading Delivery address, the other Billing address. Each form contains the following fields, Name, Street, City, Post code and a blue Submit button" />
<figcaption>An example of two identical forms, distinguished solely by the legend element at the top of each form.</figcaption>
</figure>
<h2 id="technical-considering-for-%3Cfieldset%3E-and-%3Clegend%3E" tabindex="-1">Technical considering for <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code></h2>
<h3 id="%3Clegend%3E-as-first-child" tabindex="-1"><code>&lt;legend&gt;</code> as first child</h3>
<p>For a <code>&lt;legend&gt;</code> to function as intended serving as a label for the group defined by the <code>&lt;fieldset&gt;</code> it must be the first child of the <code>&lt;fieldset&gt;</code>. This means no elements can appear between the opening <code>&lt;fieldset&gt;</code> element and the <code>&lt;legend&gt;</code> element. Placing any element between the two disrupts their semantic relationship, causing the <code>&lt;legend&gt;</code> to no longer be recognised as the label for the group. As a result, assistive technologies cannot convey the relationship between the grouped elements and their label, reducing the accessibility of the form.</p>
<p>If hints or instructions need to precede the controls, they should be placed after the <code>&lt;legend&gt;</code> within the <code>&lt;fieldset&gt;</code>. Alternatively, ARIA attributes can be used to provide the necessary grouping and labelling, which is discussed in more detail later.</p>
<h3 id="headings-as-%3Clegend%3E-elements" tabindex="-1">Headings as <code>&lt;legend&gt;</code> elements</h3>
<p>Previously, the HTML specification did not allow headings to also function as <code>&lt;legend&gt;</code> elements, but this has since changed and headings can now be wrapped within a <code>&lt;legend&gt;</code>. For example,</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>legend</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Your order details<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>legend</span><span class="token punctuation">></span></span></code></pre>
<h2 id="using-aria-instead-of-%3Cfieldset%3E-and-%3Clegend%3E" tabindex="-1">Using ARIA Instead of <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code></h2>
<p>In some cases, grouping and labelling may not be achievable with HTML semantics, requiring the use of ARIA instead. This might occur when a <code>&lt;legend&gt;</code> cannot be the first child of a <code>&lt;fieldset&gt;</code> or when existing content on the page is being referenced as a label for the group.</p>
<p>Regardless of the approach, a defined group and its corresponding label are essential to ensure accessible grouping and labelling.
While you can now wrap a heading within a <code>&lt;legend&gt;</code>, it’s also possible to use a heading (or any other element) outside of a <code>&lt;fieldset&gt;</code> to label the group. To do this, assign an <code>id</code> to the heading or other element, and reference it with the <code>&lt;fieldset&gt;</code> using the <code>aria-labelledby</code> attribute. This approach allows the heading to serve as the label for the <code>&lt;fieldset&gt;</code> group.</p>
<p>For example:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>contactDetails<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Your contact details<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>fieldset</span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>contactDetails<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
…
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>fieldset</span><span class="token punctuation">></span></span></code></pre>
<p>If the <code>&lt;legend&gt;</code> cannot be placed as the first child of a <code>&lt;fieldset&gt;</code>, the semantic relationship between the two elements is disrupted. In such cases, adding <code>role=&quot;group&quot;</code> (or in the case of a group of radio buttons, <code>role=&quot;radiogroup&quot;</code>) to the grouping element can help convey the intended grouping to assistive technologies. However, note that the visual outline typically provided by the <code>&lt;fieldset&gt;</code> will not be displayed. To add a label to the group, assign an <code>id</code> to the element that will act as a label and reference it with <code>aria-labelledby</code> on the grouping element. This ensures assistive technologies recognise the group and its label.</p>
<p>For example:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>group<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>group-label<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>group-label<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Please select your preferences:<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox1<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>option1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Option 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox2<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>option2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Option 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>Using the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements is an effective way to improve form accessibility and usability. These elements ensure that visual structure is conveyed to assistive technologies, benefiting a broad range of users. By implementing them thoughtfully, you create forms that are both visually organised and semantically structured.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li>Group related controls using <code>&lt;fieldset&gt;</code> and label them with <code>&lt;legend&gt;</code> to provide clear context for users, especially those relying on assistive technologies</li>
<li>Ensure the <code>&lt;legend&gt;</code> is the first child of the <code>&lt;fieldset&gt;</code> to preserve the semantic relationship</li>
<li>Leverage ARIA when needed. If <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> cannot be used, apply <code>role=&quot;group&quot;</code> (or in the case of a group of radio buttons, <code>role=&quot;radiogroup&quot;</code>) and <code>aria-labelledby</code> for semantic grouping</li>
<li>Use a <code>&lt;legend&gt;</code> for overarching context instead of repeating similar labels for every control</li>
<li>If the default <code>&lt;fieldset&gt;</code> appearance doesn't fit your design, use CSS to customise its visual style while retaining accessibility</li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html">1.3.1 Info and Relationships (A)</a></li>
<li><a href="https://www.tpgi.com/fieldsets-legends-and-screen-readers-again/">Fieldsets, legends and screen readers again</a>, Steve Faulkner</li>
<li><a href="https://accessibility.blog.gov.uk/2016/07/22/using-the-fieldset-and-legend-elements/">Using the fieldset and legend elements</a>, Léonie Watson</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>
<p>Updated 13 June, 2025</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>XR Accessibility: for people with moving disabilities</title>
    <link href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/"/>
    <updated>2024-12-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/</id>
    <content type="html"><![CDATA[
        <p>Extended Reality (XR) experiences provide immersive experiences which tend to require movement based interactions. But we need to consider alternative input methods for people who can’t move.</p>
<p>In this post, we’ll explore considerations for designing and developing inclusive XR experiences for people with moving disabilities.</p>
<p>If you haven't already, you can also explore other articles in this series including:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/">XR Accessibility: for people with seeing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/">XR Accessibility: for people with hearing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">XR Accessibility: for people with thinking disabilities</a></li>
</ul>
<p>You can also watch my <a href="https://www.youtube.com/watch?v=5XGwY5PSsb8&amp;list=PLn7dsvRdQEfFompoGO_CE5z-_HjEdgVit">Introduction to XR accessibility talk</a> from InclusiveDesign 24 (#ID24).</p>
<h2 id="who-does-this-affect%3F" tabindex="-1">Who does this affect?</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round" viewBox="0 0 2000 2000">
<desc>Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers.</desc>
<path d="m1065.706 708.118-173.129 16.325M925.004 494.866 850.806 642" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="952.313" cy="509.696" rx="72.034" ry="71.948" style="fill:none;stroke:#f56f00;stroke-width:66.16px;stroke-linejoin:round" transform="matrix(1.296876 .309661 -.310446 1.296688 0 .000045)"></ellipse>
<circle cx="829.201" cy="610.838" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="755.201" cy="684.064" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="735.076" cy="783.726" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="659.404" cy="854.256" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<path d="m-26.236 630.142 237.923 158.427 503.906-244.915 97.835-173.021" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m1030.303 388.093 236.14-186.422M976.637 114.574l-82.991 169.119M1430.983 310.65l-327.907 197.926M1169.014 637.587l275.527-119.762M1443.616 711.127l-239.727 103.226" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M-29.981 1295.769s117.993 55.771 175.933 78.57c14.77 5.812 32.202 13.241 47.838 15.962 25.925 4.51 53.387-2.442 78.941-8.72 37.498-9.214 105.251-51.804 133.772-73.316 182.45-137.621 468.758-362.081 468.758-362.081l120.517-2.67 115.366-44.809" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
</svg>
<figcaption>Moving</figcaption>
</figure>
<p>People with moving disabilities might include:</p>
<ul>
<li>People who have multiple sclerosis and experience muscle weakness and spasms</li>
<li>People who have arthritis and find some movements difficult or painful</li>
<li>People with Parkinson's disease who experience tremors</li>
<li>People who use a mobility aid like a wheelchair or walking stick</li>
<li>People who have a broken arm and are unable to use it</li>
</ul>
<p>As we mentioned in <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a>, there are different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> that might be permanent, temporary, or situational. Regardless, we need to create experiences that are usable by everyone.</p>
<h2 id="provide-alternative-navigation-methods" tabindex="-1">Provide alternative navigation methods</h2>
<p>Augmented Reality (AR) and Virtual Reality (VR) experiences often require people to move around their physical environment in order to interact with the experience.</p>
<p>In an AR experience, locating an object might involve moving your phone around. In a VR experience, it could involve walking up to objects or manipulating them. However, these interactions may not be possible if people are unable to make the required movements. As a result, we need to think about how we can provide alternatives that allow people to use our experiences.</p>
<p>Some user stories to help us think about this need could be:</p>
<blockquote>
<p>As someone with a moving disability, I want to be able to navigate through an XR experience without having to physically move.</p>
</blockquote>
<blockquote>
<p>As someone who uses a wheelchair with their phone mounted in a stand, I want to be able to navigate around an AR experience without having to move my device.</p>
</blockquote>
<p>In the case of an AR experience, this could be achieved by providing a control that centres the object in the device's field of view. Instead of requiring people to move around the object to view it, you could provide a control that automatically rotates the object, allowing people to see it without moving. In addition to this, you could curate a few different interesting viewpoints and present these as controls. When a control is selected, you can snap the object to the relevant viewpoint and allow people to easily view them.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/tetralogical-principles-cube-viewport-example.png" alt="TetraLogical principles cube, a 3D model of a cube with TetraLogical's 4 principles presented on the different faces. Surrounding the model are controls for playing an animation, zooming in an out, and navigating to different viewpoints, for each of the principles. In this case, the 'Inclusive' viewport has been selected, and the model rotated to show the relevant face. A description is provided to describe this part of the model." />
<figcaption>Example of curated viewports, used in the <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a> 3D model viewer.</figcaption>
</figure>
<p>For a VR experience, instead of requiring people to walk around, we can provide teleportation functionality. This would allow people to instantly navigate to where they want to be. We would need to make sure that we clearly convey the location to where a user is about to teleport to. This way, people have enough information to know whether they want to navigate to that location. Providing this information will help to prevent people having to teleport multiple times to find the location that they are looking for.</p>
<h2 id="include-motion-agnostic-interactions" tabindex="-1">Include motion agnostic interactions</h2>
<p>We need to make sure that our interactions don't require a specific physical movement, or fine motor control. People may not be able to make specific movements or gestures, which could pose a barrier. If people cannot complete the interaction, they may be unable to use the experience.</p>
<p>To help summarise this consideration, use the following user needs:</p>
<blockquote>
<p>As someone without arms, I want to be able to use all of an XR experience's functionality.</p>
</blockquote>
<blockquote>
<p>As someone who experiences tremors, I want to be able to target objects without having to hold a VR controller stationary.</p>
</blockquote>
<p>For a VR experience, being able to hold motion controllers, perform gestures, and target objects, requires a high level of dexterity. People who experience tremors, spasms, or are unable to move their arms, may find these interactions pose a barrier. Instead, think about different input methods, such as button presses, or an external keyboard. Instead of using a motion controller to target an item, people could use a single button press to interact with the object directly in front of them. Alternatively, people could use a shortcut to access a list of objects around them, in order to navigate to, and interact with the experience.</p>
<p>For example, imagine an AR experience which allows people to play rock, paper, scissors. It might be that by default, people place their hand in front of the camera and make a rock, paper, or scissors gesture. This might work really well and be intuitive for some people. But for people who are unable to make the gesture, provide an alternative method of input. An example of this could be selecting a corresponding rock, paper, or scissor control on-screen.</p>
<p>Another approach could be to implement a sticky keys-like feature. When enabled, this would allow people to press one key after the other, rather than having to press multiple keys at the same time. It could also be used for gestures, allowing people to make smaller, single gestures, rather than multiple complex movements.</p>
<p>At its core, this consideration is about <a href="https://inclusivedesignprinciples.info/#offer-choice">offering choice</a> and providing people with multiple ways to interact with the experience. These alternatives allow people to continue to use all of the functionality in a way that works best and is most comfortable for them.</p>
<p>A key part of designing for XR experiences for people with moving disabilities is making sure that we don't try and recreate inaccessible physical environments and interactions. For example, people shouldn't have to open and close doors in a VR experience, when this could be done with a single button press. Searching for items can be provided through search functionality, and manipulating objects can be done with single button presses. While we may design interactions based on what we're familiar with from our physical environments, we don't share the same physical constraints when creating XR experiences. We can be more creative when considering the needs of people with moving disabilities because we are not constrained by the physical environment. This allows us to offer choices and alternatives, enabling everyone to interact in ways that work best for them</p>
<p>In summary, experiences can have unique or interesting interactions. It's about making sure that alternative methods of input are provided so that people can still use your experience.</p>
<h3 id="customise-interactions-target-sizes" tabindex="-1">Customise interactions target sizes</h3>
<p>To help with creating usable interactions, use customisable target sizes.</p>
<p>By default, interactive objects and controls should be sized appropriately. This helps to make content easy to interact with, and prevents people accidentally selecting the wrong controls. For experiences on the Meta Quest devices, their <a href="https://developer.oculus.com/resources/hands-design-ui/">documentation on User Interface Components</a> recommends that:</p>
<blockquote>
<p>Buttons should be at least 6 centimeters or more on each axis. Targets smaller than 5 centimeters quickly drop off in accuracy and speed, and there’s somewhat of a plateau above 6 centimeters.</p>
</blockquote>
<p>For the Apple Vision Pro, it's recommended that <a href="https://developer.apple.com/videos/play/wwdc2023/10073?time=366">target sizes have an area of at least 60 points</a> (pts). This can be achieved by sizing elements in a way that their area is 60pts or greater, or by using a combination of sizing and spacing, to ensure that controls do not overlap within a 60pt area.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/vision-pro-example-of-appropriately-sized-targets.png" alt="Apple Vision Pro window, with 4 controls presented horizontally next to each other, with a faint yellow border showing that they have been sized appropriately, with spacing between them, to prevent accidental selection." />
<figcaption>Example of appropriately sized targets in an application for the Apple Vision Pro, from Apple's <a href="https://developer.apple.com/videos/play/wwdc2023/10073/?time=366">Design for spatial input</a> video.</figcaption>
</figure>
<p>However, people may find it better if content is sized larger than this. As a result, allow people to change the target area size for interactive controls. This could be done through settings that allow people to change the size of user interface (UI) elements, alongside things like text size. Alternatively, it could be achieved through techniques such as making all interactive objects larger. There may also be settings from desktop experiences that could apply to XR. When using VR motion controllers, allowing people to customise the pointer size and sensitivity of the controllers, might also help to make the experience more usable.</p>
<p>Given that people's needs change and are dependent on the context of use, customisation ensures that our experiences continue to be easy to use.</p>
<h3 id="customise-the-speed-of-interactions" tabindex="-1">Customise the speed of interactions</h3>
<p>Another way to create usable interactions, is to allow people to change the speed.</p>
<p>If the experience requires people to interact at certain points, then allowing people to adjust the speed of the experience, or the window of opportunity for interactions, may help make this more usable.</p>
<p>Similarly, in VR experiences, where movement is required, you can allow people to change the speed at which they can move. This could be done through different modifiers, or by allowing people to change the sensitivity of their controls.</p>
<h2 id="support-speech-recognition" tabindex="-1">Support speech recognition</h2>
<p>At the start of this <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">XR accessibility series</a>, we discussed different input methods like external keyboards. However, another input method to consider is speech recognition control. This is supported by default in desktop and both Android and iOS devices. Speech recognition allows people to use standardised spoken commands, which are interpreted by their device, and used to operate and interface. You can read our post, <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a> for more information about how this works when browsing the web.</p>
<p>For example, imagine a multiplayer VR experience which allows people to move around the interactive environment, interact with important objects, navigate the UI, and talk to other people, all using voice commands. Voice commands should be available for all interactions that someone may wish to complete using any other input method.</p>
<p>To help people use the experience, you could provide a list of the available voice commands in the settings menu. Alongside this, adding optional functionality that overlays the commands on top of the corresponding controls, can be used to help people learn the commands. This functionality is available in mobile devices, and allows people to better understand the names of controls and how to interact with them.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/voice-control-with-overlaid-labels.jpeg" alt="The TetraLogical website's header, with iOS' Voice Control active, and the names of the controls presented alongside the controls." style="max-width:30em;" />
<figcaption>iOS' Voice Control with item names overlaid.</figcaption>
</figure>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>XR allows people to experience immersive environments. We must create these environments in a way that includes the needs of people with moving disabilities. This can be done by ensuring that the experiences are easy to navigate, don't rely on people making physical movements or gestures, and provide alternative ways of interacting with the experience.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://equalentry.com/virtual-reality-accessibility-gaming-myst/">Accessibility Options in Virtual Reality Gaming: A Case Study with Myst</a>, Equal Entry</li>
<li><a href="https://equalentry.com/adapting-vr-games-accessibility-vr-recap/">Adapting VR Games for People with Disabilities</a>, Equal Entry</li>
<li><a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a>, BBC</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, Joe Lamyman</li>
<li><a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>, Joe Lamyman</li>
<li><a href="https://www.youtube.com/watch?v=2VUl30gL4QQ">Multiple Locomotion Styles in Virtual Reality for People with Disabilities</a>, Shivam Sharma at A11yVR</li>
<li><a href="https://www.w3.org/TR/xaur/">XR Accessibility User Requirements</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Andre: a music producer and blind screen reader user</title>
    <link href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/"/>
    <updated>2024-11-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/</id>
    <content type="html"><![CDATA[
        <p>Meet Andre, a music producer and blind screen reader user who is not afraid to take his custom elsewhere if your site is not accessible.</p>
<p>Andre shares his experience using the web including his love of headings and consistent design to help him navigate, and his dislike of accessibility overlays and poorly implemented page updates using live regions.</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Meet Jonathan: a photographer who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/">Meet Josh: a sportsman Meet Josh: a sportsman who has Spinal Muscular Atrophy</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a></li>
</ul>
<figure class="inline-image__container">
<svg role="img" aria-label="Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see.</desc>
<path d="m294.636 90.539 908.399.501-3.066 1315.008H294.798z" style="fill:#f6f5f3;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m855.358 222.599-210.233-2.061v375.121h212.294M653.37 406.037h150.46" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="609.396" cy="768.028" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="536.803" cy="736.469" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="776.388" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="504" cy="845.122" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="576.722" cy="883.541" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="608.28" cy="956.39" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="535.431" cy="996.181" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="949.402" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="736.125" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="822.696" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="907.894" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1040.323" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="685.135" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="822.216" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="488.408" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1252.672" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1252.673" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
</svg>
<figcaption>Seeing</figcaption>
</figure>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<p>My name is <a href="https://www.instagram.com/onj_andrelouis/">Andre Louis</a>, and I'm a musician from London. I'm blind and always have been, as far as anybody knows anyway.</p>
<p>I use VoiceOver on macOS and NVDA on Windows when <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, and iOS VoiceOver and Android Talkback when <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/photo-andre-1.jpg" alt="A black and white photo of Andre playing an electronic keyboard sitting side on. Andre is a younger black man and wears a striped shirt and Ray-Ban Meta Smart Glasses" />
<figcaption>Andre, a blind composer and music producer, &quot;I use audio software to control the output from my keyboard during gigs; without accessibility, there would be no music&quot;.</figcaption>
</figure>
<p>I like to help other blind people get to grips with software such as the VoiceOver screen reader and Logic Pro for macOS. Many people who come to me seem to think they can jump the first hurdle and go for the big one, but that's not a good idea.</p>
<p>I've recently started wearing <a href="https://www.meta.com/gb/smart-glasses/shop-all/">Meta Smart glasses</a> and especially like the video function when I am performing. I played a gig at Mu Cocktail bar in East London as part of a quartet and I <a href="https://www.instagram.com/p/DAknnkzIcfU/">recorded a few solos</a> as I played a one hundred year old open German piano. It was fun to record my hands on the keys showing all the hammers in the piano that I could share with the audience. I could have done it years ago with a GoPro, but these glasses make that even better because they're something I would wear on stage anyway.</p>
<figure>
<video controls="">
<source src="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/andre-meta-glasses-with-AD.mp4" type="video/mp4" />
<track default="" label="English" kind="captions" srclang="en" src="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/andre-meta-glasses-captions.vtt" />
</video>
<figcaption>A video of Andre's view of his hands as he gracefully plays a Yamaha keyboard in a large studio with black squares for soundproofing on parts of the walls in front of him. He looks to the right as the photographer asks him to smile as he takes photos with a lady in a yellow shirt standing with a laptop behind him.</figcaption>
</figure>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>Just this week, I was asked to fill out an online survey. It was all on-click items which didn't play particularly nicely with screen-readers, I just couldn't find a way to easily complete the task. These pretty on-click things; they're so hateful.</p>
<p>I was on a site the other day that had no headings, which was a nightmare to navigate. It was a shopping website, so I ended up buying from elsewhere. These days, there are enough places online you can shop, so I will go elsewhere, even if it is a site I have used for years.</p>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p><a href="https://www.amazon.co.uk/">Amazon UK</a> is pretty good; it's simple and has lots of headings I can navigate by. The fact that I can browse any product I want by the heading on the page means that I can quickly skim like a sighted person at a glance and listen to the relevant information. And if I want more detail, I’ll drill down by using arrow keys or links or buttons. If the heading was just the price instead of the actual product name, or if it was just the review count, it would be pointless to me, and I would probably look at buying somewhere else.</p>
<p>Amazon UK just works, more so than <a href="https://www.amazon.com/">Amazon USA</a> which is an entirely different experience when I'd expect it to <a href="https://inclusivedesignprinciples.info/#be-consistent">be consistent</a>. It's less accessible and harder to navigate. I mean it's doable but not comfortable.</p>
<p><a href="https://www.bbc.co.uk/news">BBC news</a> and <a href="https://www.404media.co/">404 Media</a> news are sites I often use. Both are functional and consistent. I have a deep love and respect for BBC because I think what they've done for accessibility, no other organisation has done in this country.</p>
<p>404 Media have great emails. I can easily navigate by jumping between sections. For example, if I hear &quot;separator&quot; I can press S and jump top the next block of content. Really useful.</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>I'd like to see absolutely <em>zero</em> <a href="https://overlayfactsheet.com/en/">accessibility overlays</a>. They should be banned by law in all countries without prejudice. Horrible things. They are so not for me that I’ve actually managed to cut them out of my life entirely like a cancerous growth.</p>
<p>Always use headings. Every site where you're browsing and shopping should have at least a few of them.</p>
<p>Don't misuse <a href="https://tetralogical.com/blog/2024/05/01/why-are-my-live-regions-not-working/">live regions</a> to update the page, for example, to tell the time, perform countdowns or otherwise interfere with a screen reader's use of your site, so I can't clearly hear what it is saying. They are the fastest way to lose my custom. Trust me on that.</p>
<p>Allow me to go back to 2001 in the time machine just for a moment and state categorically that I'm glad flash is dead!</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/photo-andre-2.jpg" alt="A black and white photo of Andre playing an electronic keyboard sitting side on facing the camera with a slight smile. Andre is a younger black man and wears a striped shirt and Ray-Ban Meta Smart Glasses" />
<figcaption>Andre says, &quot;I'd like to see absolutely <em>zero</em> accessibility overlays. They should be banned by law in all countries without prejudice. Horrible things.</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: types of disability</title>
    <link href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/"/>
    <updated>2024-11-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/</id>
    <content type="html"><![CDATA[
        <p>This post offers an overview of various disability types across four groups: seeing, hearing, moving, and thinking, and provides a brief exploration of what disability is, highlighting how permanent, temporary, or situational disabilities can affect us all.</p>
<p>We are all, in essence, temporarily abled. As an ageing society, the reality is that our abilities are not fixed - they change over time. Disability is a complex and deeply personal experience that can impact anyone, whether through permanent, temporary, or situational conditions, or even a mix of these.</p>
<blockquote>
<p>Disability can be something we live with, something you experience for a period of time, or something that is caused by where you are or what you're doing.</p>
<p><a href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/">Léonie Watson</a></p>
</blockquote>
<p>The medical and social models of disability can be used to understand how disability impacts an individual: the medical model focuses on the personal aspects of disability, while the social model highlights how societal attitudes, infrastructure, and inaccessible environments can disable individuals.</p>
<blockquote>
<p>Disability results from the interaction between individuals with a health condition, such as cerebral palsy, Down syndrome, and depression, and personal and environmental factors including negative attitudes, inaccessible transportation and public buildings, and limited social support.</p>
<p><a href="https://www.who.int/health-topics/disability#tab=tab_1">World Health Organisation</a> (WHO)</p>
</blockquote>
<p>When something is inaccessible, it can be inaccessible to people with a permanent disability, such as blindness, but also those with temporary disabilities, like a migraine, or situational challenges, such as struggling to read a screen due to sun glare.  Disability and accessibility (or inaccessibility) will impact us all at some point, and by designing inclusively and considering the full diversity of human experiences, we can do our best to ensure that everyone, regardless of ability, can fully participate in society.</p>
<p>Disabilities can be broadly categorised into four groups: seeing, hearing, moving, and thinking all of whom may use different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/blog/2025/07/15/foundations-types-of-assistive-technology-and-adaptive-strategies/">types of assistive technology and adaptive strategies</a> when consuming digital content.</p>
<h2 id="seeing" tabindex="-1">Seeing</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see.</desc>
<path d="m294.636 90.539 908.399.501-3.066 1315.008H294.798z" style="fill:#f6f5f3;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m855.358 222.599-210.233-2.061v375.121h212.294M653.37 406.037h150.46" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="609.396" cy="768.028" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="536.803" cy="736.469" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="776.388" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="504" cy="845.122" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="576.722" cy="883.541" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="608.28" cy="956.39" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="535.431" cy="996.181" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="949.402" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="736.125" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="822.696" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="907.894" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1040.323" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="685.135" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="822.216" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="488.408" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1252.672" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1252.673" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
</svg>
<figcaption>Seeing</figcaption>
</figure>
<p>This refers to disabilities related to vision, which affect a person's ability to see.</p>
<h3 id="permanent" tabindex="-1">Permanent</h3>
<ul>
<li><strong>Blind</strong>: people with complete or near complete lack of vision who <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browse with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">mobile screen reader</a> and rely on logical <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a>, <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for images, and <a href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/">accessible names and descriptions</a></li>
<li><strong>Low vision</strong>: people whose vision cannot be fully corrected with glasses or contact lenses who may <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browse with screen magnification</a> or customise their platform or browser settings and rely on good <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">colour contrast</a>, alternatives for <a href="https://tetralogical.com/blog/2022/02/15/colour-meaning/">colour and meaning</a> and large enough <a href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/">touch target</a> sizes</li>
<li><strong>Colour-blindness</strong>: people who can't distinguish between certain colours, commonly red and green, who rely on alternatives for colour and meaning</li>
</ul>
<h3 id="temporary" tabindex="-1">Temporary</h3>
<ul>
<li><strong>Eye injury</strong>: people who may have a scratched eye, conjunctivitis, or an infection</li>
<li><strong>Surgery recovery</strong>: people recovering from cataract surgery, retinal repair, or general surgery that may affect vision</li>
<li><strong>Migraines and eye strain</strong>: people who have blurred vision, are sensitive to light or white backgrounds</li>
</ul>
<h3 id="situational" tabindex="-1">Situational</h3>
<ul>
<li><strong>Sunlight</strong>: people struggling to read screens in bright sunlight due to the glare and will benefit from high <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">colour contrast</a></li>
<li><strong>Low light</strong>: people having difficulty seeing details in dark or dimly lit areas</li>
<li><strong>Driving</strong>: People who are driving cannot visually engage with a screen and must rely on auditory alternatives such as voice notes or hands-free voice commands</li>
</ul>
<p><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a>. Hasmukh shares his experience using the web with a screen reader and highlights the importance of accessible emails, forms, language, and prioritising content within a web page.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/photo-hasmukh-3.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his cricket whites standing and looking into the camera with a cheeky smile as he holds his bat which is resting on his left shoulder" />
<figcaption>Hasmukh, a blind cricketer, &quot;I use the web to shop, listen to spiritual talks, and plan transport to cricket matches. Images are important as often they include information I need when shopping and finding out match information&quot;.</figcaption>
</figure>
<h2 id="hearing" tabindex="-1">Hearing</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter." class="services__icon inline-image" style="max-width:15rem" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1456 832">
<desc>Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter.</desc>
<circle cx="323.26" cy="17.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="54.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="93.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="128.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="165.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="202.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="239.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="276.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<path d="M147.19 94.951v105.321M234.772 94.951v105.321M59.361 94.951v105.32" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M409.778 94.951v105.321M453.49 59.806v174.307" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M278.514 59.806v174.307M102.644 59.806v174.308M191.568 128.677v38.269M16.26 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M496.789 94.951v105.321M367.09 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
</svg>
<figcaption>Hearing</figcaption>
</figure>
<p>This refers to disabilities related to hearing, which affect a person's ability to hear.</p>
<p>A note on Deaf and deaf: Capitalised Deaf refers to the cultural identity and shared experiences of the Deaf community. Lowercase deaf describes the physical condition of hearing loss.</p>
<h3 id="permanent-1" tabindex="-1">Permanent</h3>
<ul>
<li><strong>Deaf (upper case):</strong> people who are Deaf identify as part of a cultural and linguistic community, often using <a href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/">sign language</a> as their primary means of communication and rely on <a href="https://www.youtube.com/watch?v=hDlwTvjas00">captions</a> in video</li>
<li><strong>deaf (lower case)</strong>: people who are deaf have hearing loss and typically use spoken language, often with assistive devices like hearing aids and may rely on captions in video</li>
</ul>
<h3 id="temporary-1" tabindex="-1">Temporary</h3>
<ul>
<li><strong>Ear infections</strong>: people with discomfort in the ear and can in some cases lead to temporary hearing loss</li>
<li><strong>Tinnitus</strong>: people with a temporary or chronic ringing or buzzing in the ear with no external source</li>
<li><strong>Cold or sinus infections</strong>: people that are experiencing congestion due to a cold or infection may experience blocked ears and difficulty with balance, temporarily affecting their hearing and stability</li>
</ul>
<h3 id="situational-1" tabindex="-1">Situational</h3>
<ul>
<li><strong>Noisy environments</strong>: people on public transport who can't hear clearly due to the surrounding noise and rely on captions when watching something on their screen</li>
<li><strong>Quiet environments</strong>: people in a library or in a room with someone sleeping will avoid using sound on their device, and may activate captions</li>
<li><strong>Flying</strong>: people flying may experience reduced hearing clarity due to cabin pressure and surrounding noise, making it necessary for them to rely on captions when watching in-flight entertainment</li>
</ul>
<p><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a>. Steve shares his experience of the web including increasing font size and using good colour contrast as well as the joys of using his Bluetooth headphones.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/photo-steve-3.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is facing into the camera while he holds his camera over his right eye" />
<figcaption>Steve, a poet and photographer who is hard of hearing and has low vision, &quot;Accessibility means I can confidently plan travel and enjoy an audiobook through my hearing aids using an app&quot;.</figcaption>
</figure>
<h2 id="moving" tabindex="-1">Moving</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round" viewBox="0 0 2000 2000">
<desc>Moving: a bright pink outline of an arm and open hand. A large purple gear in the elbow is connected by a wavey line of orange dots to an orange circle in the wrist with two purple lines extending pathways towards the fingers.</desc>
<path d="m1065.706 708.118-173.129 16.325M925.004 494.866 850.806 642" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="952.313" cy="509.696" rx="72.034" ry="71.948" style="fill:none;stroke:#f56f00;stroke-width:66.16px;stroke-linejoin:round" transform="matrix(1.296876 .309661 -.310446 1.296688 0 .000045)"></ellipse>
<circle cx="829.201" cy="610.838" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="755.201" cy="684.064" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="735.076" cy="783.726" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="659.404" cy="854.256" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px;stroke-linejoin:round" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt" transform="rotate(-59.49478 .00004 .000023)scale(1.333333)"></circle>
<path d="m-26.236 630.142 237.923 158.427 503.906-244.915 97.835-173.021" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m1030.303 388.093 236.14-186.422M976.637 114.574l-82.991 169.119M1430.983 310.65l-327.907 197.926M1169.014 637.587l275.527-119.762M1443.616 711.127l-239.727 103.226" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M-29.981 1295.769s117.993 55.771 175.933 78.57c14.77 5.812 32.202 13.241 47.838 15.962 25.925 4.51 53.387-2.442 78.941-8.72 37.498-9.214 105.251-51.804 133.772-73.316 182.45-137.621 468.758-362.081 468.758-362.081l120.517-2.67 115.366-44.809" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px;stroke-linejoin:round" transform="translate(0 .000045)scale(1.333333)"></path>
</svg>
<figcaption>Moving</figcaption>
</figure>
<p>This refers to disabilities related to moving, which affect a person's ability to perform physical tasks.</p>
<h3 id="permanent-2" tabindex="-1">Permanent</h3>
<ul>
<li><strong>Parkinson’s disease</strong>: people with Parkinson's disease have their movement impacted, causing tremors, bradykinesia and rigidity, and who may <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browse with speech recognition</a> and may benefit from clear visible <a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">text field labels</a>, <a href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/">accessible names and descriptions</a> and increased <a href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/">target sizes</a></li>
<li><strong>Motor Neurone Disease (MND)</strong>: people with MND experience a gradual loss of mobility and increasingly struggle with speaking and swallowing as the condition progresses and may browse with speech recognition</li>
<li><strong>Missing an arm or hand</strong>: people can be born without an arm or hand, or can be the result of a congenital condition or accident, leading them to rely on assistive technology, and may browse with speech recognition</li>
</ul>
<h3 id="temporary-2" tabindex="-1">Temporary</h3>
<ul>
<li><strong>Repetitive Strain Injury (RSI)</strong>: a condition caused by repetitive motion or overuse, leading to pain and discomfort which can often impact wrists, shoulders and neck, and may <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browse with a keyboard</a></li>
<li><strong>Broken wrist</strong>: people may experience temporary pain and have restricted use of the hand or arm</li>
<li><strong>Pregnancy</strong>: people who are pregnant may experience swelling, joint pain, reduced mobility, increased flexibility in some joints due to hormonal changes, and fatigue</li>
</ul>
<h3 id="situational-2" tabindex="-1">Situational</h3>
<ul>
<li><strong>Cold hands</strong>: people with cold hands may struggle to use their fingers to interact with their phone as they normally would, as stiffness or reduced sensation can make precise movements difficult and they will benefit from increased target sizes</li>
<li><strong>Holding heavy shopping bags</strong>: people holding heavy shopping bags have restricted movement and limit the use of their hands for other tasks</li>
<li><strong>Wet hands</strong>: people who are washing dishes or have been swimming may be restricted from using digital devices until their hands are dry and will need to rely on alternative input methods, such as voice commands, and text to speech functionality</li>
<li><strong>Cooking</strong>: people that are cooking and following a recipe online may struggle to interact with their devices easily due to messy or wet hands, making it challenging to scroll, type, or touch screens</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/photo-bev-1.jpg" alt="A black and white photo of Bev, a white woman in her 50s with blond hair scooped back in a hairband. She is sitting in front of a canvas laughing while she paints with her right hand and holds the canvas and some paint brushes in her prosthetic hand and arm" />
<figcaption>Bev, an artist with a prosthetic arm, &quot;Accessibility means being able to do things on my own terms, and in my own time&quot;.</figcaption>
</figure>
<h2 id="thinking" tabindex="-1">Thinking</h2>
<p>This refers to disabilities related to neurodivergence, which affect a person's ability to process information, communicate and interact socially.</p>
<figure class="inline-image__container">
<svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
<ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
<circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
<figcaption>Thinking</figcaption>
</figure>
<h3 id="permanent-3" tabindex="-1">Permanent</h3>
<ul>
<li><strong>Autistic Spectrum Disorder (ASD)</strong>: is a developmental condition affecting social interaction, communication, and behaviour, impacting people in diverse ways and to varying degrees. People with ASD can be assisted by <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> to minimise distraction, and will benefit from accessible <a href="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/">animations and flashing content</a></li>
<li><strong>Dyslexia</strong>: people with dyslexia who struggle with reading, spelling, and writing and may <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browse with speech recognition</a> and may benefit from accessible <a href="https://tetralogical.com/blog/2022/03/07/session-timeouts/">session timeouts</a> and accessible animations and flashing content that reduce distraction</li>
<li><strong>Dyscalculia</strong>: people with dyscalculia who have difficulty in processing and understanding numbers, managing time, and handling math-related tasks that may benefit from clear <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a>, <a href="https://inclusivedesignprinciples.info/#be-consistent">consistent</a> page formatting and accessible session timeouts</li>
</ul>
<h3 id="temporary-3" tabindex="-1">Temporary</h3>
<ul>
<li><strong>Cold or flu</strong>: symptoms like headaches, fatigue and congestion will impact people's ability to focus, and perform tasks with their usual dexterity</li>
<li><strong>Recovering from an operation</strong>: people experiencing fatigue and brain fog from anaesthesia, pain, or medication may find their ability to focus, make decisions, and retain information temporarily impacted</li>
<li><strong>Jet lag</strong>: people who are experiencing jet lag often have a disrupted circadian rhythm, leading to impaired focus, memory issues, and confusion or disorientation caused by traveling across time zones</li>
<li><strong>Hungover</strong>: people who are hungover may experience brain fog due to dehydration, fatigue from disrupted sleep, a dysregulated nervous system, and slower reaction times</li>
</ul>
<h3 id="situational-3" tabindex="-1">Situational</h3>
<ul>
<li><strong>Using a different language</strong>: people who are non-native speakers may face challenges with comprehension and communication when using a language they are less familiar with, potentially leading to difficulties in understanding, delays in completing tasks, and problem-solving issues</li>
<li><strong>Working under pressure</strong>: people experiencing stress and anxiety triggered from working under pressure may have reduced cognitive clarity, impaired memory and lack critical thinking</li>
<li><strong>Multitasking</strong>: people that are juggling a lot at the same time may experience an increased cognitive load, leading to difficulties with focus, processing information, and communication</li>
</ul>
<p><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a>. Lauren shares what helps her stay focused when browsing the web and why white backgrounds and autoplaying video are not helpful for her.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/photo-lauren-2.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is grinning as she sits at a desk with an On Air sign on it as she holds a strip of film up to the light with her left hand and inspects it closely" />
<figcaption>Lauren, a film editor who has ADHD and chronic pain, &quot;Accessible software lets me adapt my environment and online experience, so I can focus on what I want to do&quot;.</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Lauren: a film editor who has ADHD</title>
    <link href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-ADHD/"/>
    <updated>2024-11-12T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-ADHD/</id>
    <content type="html"><![CDATA[
        <p>Meet Lauren, a film editor moving into the world of producing and production management who has ADHD (Attention Deficit Hyperactivity Disorder).</p>
<p>Lauren shares what helps her stay focused when browsing the web and why white backgrounds and autoplaying video are not helpful for her.</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Meet Jonathan: a photographer who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/">Meet Josh: a sportsman Meet Josh: a sportsman who has Spinal Muscular Atrophy</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a></li>
</ul>
<figure class="inline-image__container">
<svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
<ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
<circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
<figcaption>Thinking</figcaption>
</figure>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<p>I'm Lauren, I am an early career film editor moving into the world of producing and production management. My interests broadly include 70s and 80s horror films and moody music. I never grew out of my goth phase! I also really enjoy making jewellery in my spare time.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-ADHD/photo-lauren-1.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is grinning as she sits at a desk with an On Air sign on it as she holds a strip of film up to the light with her left hand" />
<figcaption>Lauren, a film editor who has ADHD and chronic pain, &quot;Accessible software lets me adapt my environment and online experience, so I can focus on what I want to do&quot;.</figcaption>
</figure>
<p>In terms of assistive technologies, I find text-to-speech features really useful. I have ADHD, and I find it helpful to be able to walk around and listen to the content of a page. Moving helps me stay focused as I often lose focus quite quickly when sitting still and reading! So if I am working with a client and need to read a contract for example, I would rather listen to this large body of text than read it.</p>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>When web pages contain large blocks of text, it can be really overwhelming to try and sift through this visual information and stay engaged and receptive to the content I'm trying to read.</p>
<p>This happened recently on a blog post I was trying to read, and I thought I would simply put this text into a speech generator, so I could listen to it instead. It turns out that this text was embedded into an image on the page of the website, rather than as native body copy, meaning I couldn't get my software to 'read' it. This was really disheartening because it's such a simple thing to overlook when it comes to designing a webpage and making sure the content is accessible.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-ADHD/photo-lauren-5.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is standing looking over her left shoulder into the camera with a smile as she holds a film reel up to the light with her right hand" />
<figcaption>Lauren likes to use text to speech so she can walk around the room and listen to pages to stay focused.</figcaption>
</figure>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p>I can't name any particular ones off the top of my head, but it's always a relief when websites are properly optimised for both laptop and phone browser viewing. There's nothing worse than trying to navigate a website on a desktop which has clearly been only optimised for mobile or vice versa! It's very disorientating to try and navigate, as someone who struggles with spatial awareness and short-term memory.</p>
<p>As for short-term memory, I would liken it to entering a room and then forgetting why you went there - if I click on a link to navigate to a blog post for example, I find it really helpful if the title of the page is clearly displayed in the browser tab. If more websites displayed clear and concise page titles this would help me a lot!</p>
<p>Having a <a href="https://inclusivedesignprinciples.info/#be-consistent">consistent</a> website theme is very useful for me. For example, if a website lacks a clearly defined visual theme, navigating it can be challenging. If the 'help' link is in one position and colour on one page, and a different position or colour on another, it slows me down and often leads to frustration and disengagement. Consistent colour and style throughout are easier to read and more visually comfortable. Softer whites are also much easier to read than full white.</p>
<p>Limiting <a href="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/">animations</a> and autoplaying media is another big thing for me. I am immediately distracted and often overwhelmed by autoplaying videos with loud sound. It means I forget why I went to that page in the first place!</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>More <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for images and more fully screen reader-friendly pages so I can listen to the content while walking around to keep me focused. Both of these accessibility improvements don't need to cost you your webpage design either! There can be parity between something visually striking and on brand, as well as being accessible to the broad variety of people who may encounter your website.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-ADHD/photo-lauren-4.jpg" alt="A black and white photo of Lauren, a younger white woman with long curly red hair. She is standing looking into the camera with a smile as she holds a flat round metal film canister in her left hand" />
<figcaption>For Lauren, autoplaying media is a big distraction and means she can forget why she came to a page in the first place.</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Steve: a photographer who is deaf and low vision</title>
    <link href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/"/>
    <updated>2024-10-29T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/</id>
    <content type="html"><![CDATA[
        <p>Meet Steve, a photographer from London who is deaf and low vision. He is an ex-civil servant who then went on to do freelance technology journalism and travelled the world.</p>
<p>Steve shares his experience of the web including increasing font size and using good colour contrast as well as the joys of using his Bluetooth hearing aids.</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh: a blind cricketer and screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Meet Jonathan: a photographer who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/">Meet Josh: a sportsman Meet Josh: a sportsman who has Spinal Muscular Atrophy</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
</ul>
<figure class="inline-image__container">
<svg role="img" aria-label="Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter." class="services__icon inline-image" style="max-width:15rem" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1456 832">
<desc>Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter.</desc>
<circle cx="323.26" cy="17.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="54.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="93.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="128.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="165.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="202.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="239.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="276.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<path d="M147.19 94.951v105.321M234.772 94.951v105.321M59.361 94.951v105.32" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M409.778 94.951v105.321M453.49 59.806v174.307" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M278.514 59.806v174.307M102.644 59.806v174.308M191.568 128.677v38.269M16.26 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M496.789 94.951v105.321M367.09 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
</svg>
<figcaption>Hearing</figcaption>
</figure>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<p>I'm 80, married, have two grown up daughters and have been retired for 6 years. I spent 20 years in the civil service and at the age of 51, took voluntary early retirement to become a self-employed freelance technical journalist, writing about computer software for project managers. Very niche, but it took me all over Europe, the States, and South Africa.</p>
<p>I love photography. I use a Canon, a really nice camera, but have to use it on &quot;idiot settings&quot; because all the buttons and settings are just too small for me to see on the camera. But the basic settings work perfectly well and I can get good pictures that way. When I was a journalist, I actually sold some of the pictures I took, which was nice.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/photo-steve-3.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is facing into the camera while he holds his camera over his right eye" />
<figcaption>Steve, a poet and photographer who is hard of hearing and has low vision, &quot;Accessibility means I can confidently plan travel and enjoy an audiobook through my hearing aids using an app&quot;.</figcaption>
</figure>
<p>Amongst other things, I run a Facebook page called <a href="https://www.facebook.com/DeafNotStupid/?locale=en_GB">Deaf - not stupid</a> for, as you might guess, people who are deaf. It has 8,000 followers in 43 different countries, which I think is a bit amazing!</p>
<p>I wear hearing aids. Without these, I'm useless. For the last few weeks, I've had Bluetooth hearing aids which are wonderful. And what I'd really like for somebody to invent is a plug-in Bluetooth transmitter from a computer, so I could hear that. I've already got my phone linked through the hearing aid. I have a very good monitor with built-in speakers, so I can adjust the volume and make sure everything is good and clear.</p>
<p>As far as visual technology is concerned, I don't use screen readers or anything like that. What I do have is enlarged text on the computer screen and on the phone. The text size on phones is normally too small for me to read even though I have a good-sized phone, so I need everything enlarged.</p>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>The main barrier I experience is when website designers haven't considered that some people use large text. As a result, parts of the page don't fit on the screen, or a pop-up box doesn't appear on the screen because they are below the level of the monitor, so I can't scroll up and down. That's the main problem I come across. It's not uncommon, I normally just swear and delete the page!</p>
<p>I can hear video with my hearing aids and as far as lip-reading is concerned, I will do so unconsciously. Like most other people who are severely deaf, if I can't see your mouth, it's likely I won't be able to hear you. Having said that, I do not consciously lip-read. I probably wouldn't know what you said if you asked me directly. It all depends on the context. Lip reading is not just lips; it's expression, body language, and context. If you ask me a question with a yes or no answer, and I see the shape, even if I can't hear it, I will probably understand. However, if someone says something unexpected, I probably won't catch any of it. I did a couple of lip-reading courses, which helped a little, but I lip-read better when I don't think about it.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/photo-steve-4.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing facing into the camera while he holds his book or poetry and photos open in front of him" />
<figcaption>Steve says, &quot;The main barrier I experience is when website designers haven't considered that some people use large text&quot;.</figcaption>
</figure>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p>The <a href="https://www.nhs.uk/">NHS</a> website is a very good one. They have taken increasing font sizes into account. Another thing they do, and I know this because I'm on their panel, is they send out research opportunities for people with disabilities. They ask you to log into the site, complete some tasks and then ask, &quot;what do you expect at this point?&quot; and &quot;how do you expect to go on from here?&quot;. As a result, not only is the website easy to see and read, it's also much more intuitive than some sites because they tailor it to what people expect.</p>
<p>It's difficult to say what other sites I find especially accessible. I use lots of sites, banking apps and all that, but I'm used to them now, so I know my way around. Navigation on some of these sites isn't intuitive at first, but that's more about poor page design than any accessibility issue.</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>More thought should be given to intuitiveness and more accessible menus. Quite often, the menus are in small fonts when you click on them. Also, poor <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">colour contrast</a> combinations, like white text on a light blue background, can make things hard to read, and I lose patience with those sites quickly!</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/photo-steve-6.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing facing into the camera while he holds his book or poetry and photos open in front of him" />
<figcaption>Steve would like to see better use of colour contrast and bigger font sizes in menus.</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: form validation and error messages</title>
    <link href="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/"/>
    <updated>2024-10-21T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/</id>
    <content type="html"><![CDATA[
        <p>As well as <a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">labelling text fields with input and labels</a>, and <a href="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/">grouping forms with the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements</a>, form validation and error messages are also essential to making forms accessible to everyone.</p>
<p>Forms are crucial for interactive web experiences, but they can often lead to errors requiring validation. Inaccessible validation and feedback can cause frustration and can sometimes result in form abandonment. However, when made accessible, the process becomes seamless and frictionless.</p>
<p>This benefits everyone, but in particular:</p>
<ul>
<li>People <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a screen reader</a> and braille displays who cannot see content and rely on the properly coded form validation and error messages to progress with the form</li>
<li>People with cognitive disabilities who need clear and concise error feedback to understand the issue and how to fix it</li>
<li>People with reduced focus or short attention spans who rely on both clear in-line error messages and post-submission error notifications</li>
</ul>
<p>Accessible form validation and error messages come in two forms, in-line error messages, and post-submission error messages.</p>
<h2 id="in-line-error-messages" tabindex="-1">In-line error messages</h2>
<p>When filling out a form, real-time error messages can appear thanks to client-side validation, a feature in modern web browsers. This checks and displays errors as the form is filled out, ensuring inputs meet specific criteria before submission. Native HTML validation is useful because it enforces rules and guides users on what’s expected. However, if not well-designed, in-line error messages can become overwhelming. For example, flagging a field as incorrect after just one character can be disruptive, especially if the person filling out the form hasn't finished typing.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/premature_error_message.jpg" alt="Email field with an inline error message that appears as soon as some character are typed" />
<figcaption>Premature error messages appearing before the full email address is entered can be disorientating</figcaption>
</figure>
<p>The ideal implementation of in-line messages is to appear once focus has moved to the next form field. When an error is detected, the message typically appears &quot;in-line&quot; or adjacent to the field in error. This approach provides immediate feedback without prematurely registering an error, and saves people from the frustration of submitting a form with errors. It also reduces cognitive load, making the form-filling process smoother and less stressful.</p>
<p>For example, password fields often have length requirements that should be clearly communicated both visually and programmatically for the benefit of people browsing with a screen reader. By using attributes like <a href="https://html.spec.whatwg.org/multipage/input.html#the-maxlength-and-minlength-attributes"><code>minlength</code> and <code>maxlength</code></a>, you can easily control the number of characters allowed in a text field. If someone uses too few characters, in-line validation can immediately alert them to the error.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/password_insufficient_character_error.jpg" alt="New password input field with three asterisks indicating entered characters. Below the field is a red error message that reads, ‘Error: Your password must contain at least 8 characters." />
<figcaption>An inline error message appears after focus leaves the password field, indicating that the entered password is too short.</figcaption>
</figure>
<h2 id="post-submission-error-message" tabindex="-1">Post-submission error message</h2>
<p>When a form is submitted, server-side validation checks for errors. If the form contains errors, they should ideally be reported in a summary at the top of the page. This approach has the advantage of not interrupting the flow of anyone filling out the form, ensuring that only valid data is submitted. However, this method can be frustrating if multiple errors are found, as it can be time-consuming to correct them all. Additionally, addressing numerous errors at once can increase cognitive load, making the process of fixing mistakes more challenging.</p>
<p>The default approach is to use a combination of both. Client-side validation provides quick feedback with inline error messages. Server-side validation catches errors missed or bypassed on the client side and can report error summaries clearly and concisely. Using both creates a balanced and reliable validation system.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/error_summary.jpg" alt="Error summary box with two bullet points in red text: ‘The name field is required’ and ‘Your password must contain at least 8 characters." />
<figcaption>This error summary appears at the top of a form, listing issues that need to be addressed by the user before submission.</figcaption>
</figure>
<h2 id="common-accessibility-issues-with-form-validation-and-error-messages" tabindex="-1">Common accessibility issues with form validation and error messages</h2>
<p>Most common issues with form validation and error messages can be easily avoided. It is common to see, but easy to solve, with the following techniques.</p>
<h3 id="the-error-state-of-the-form-is-not-communicated" tabindex="-1">The error state of the form is not communicated</h3>
<p>When a form field with an error state gets focus, it doesn't always communicate the error to assistive technologies, leaving screen reader users unaware of the issue and failing to meet accessibility standard <a href="https://www.w3.org/TR/WCAG22/#name-role-value">4.1.2 Name, role, value</a>.</p>
<p>The solution is to add the <code>aria-invalid=&quot;true&quot;</code> attribute to the field with an error. This ensures assistive technologies can recognise and announce the error when the field is focused.</p>
<h3 id="the-error-messages-are-not-communicated-to-assistive-technology" tabindex="-1">The error messages are not communicated to assistive technology</h3>
<p>Sometimes, error messages are visible on the screen but not communicated to assistive technologies, preventing screen reader users from receiving important information, making it difficult for people with visual impairments to correct mistakes and complete the form accurately. This can also lead to a failure to meet <a href="https://www.w3.org/TR/WCAG22/#name-role-value:~:text=Success%20Criterion%204.1.3%20Status%20Messages">4.1.3 Status messages</a>.</p>
<p>The solution is to ensure they are announced by adding <code>role=&quot;alert&quot;</code> to error elements. Alternatively, use <code>aria-live</code> regions to ensure changes to error messages are promptly communicated. For more guidance on how to implement live region, see <a href="https://tetralogical.com/blog/2024/05/01/why-are-my-live-regions-not-working/">Why are my live regions not working?</a>.</p>
<h3 id="error-messages-are-not-associated-with-the-field-in-error" tabindex="-1">Error messages are not associated with the field in error</h3>
<p>Sometimes, error messages appear visually connected to a field, but the markup doesn't support that relationship. As a result, screen readers don't recognise the error message as related to the field, making it harder for users with visual impairments to fix errors. It can also lead to a <a href="https://www.w3.org/TR/WCAG22/#info-and-relationships:~:text=Success%20Criterion%201.3.1%20Info%20and%20Relationships">1.3.1 Info and relationships</a> failure.</p>
<p>The solution is to use the <code>aria-describedby</code> attribute on the control and set it to the <code>id</code> of the element containing the error message so screen readers can link the message to the correct field. Ensure that the <code>id</code>/<code>aria-describedby</code> relationship is only active when an error is present, or include the error message text in the DOM only when an error occurs. Otherwise, if the error message text remains in the DOM when the control is not in an error state, it may still be announced, even if it is hidden.</p>
<h2 id="write-clear-and-helpful-error-messages" tabindex="-1">Write clear and helpful error messages</h2>
<p>After addressing the markup for accessible form validation, focus on making error messages clear and actionable. Error messages must contain helpful guidance for resolving errors. Simply notifying people of a problem isn’t enough; clear instructions on how to fix it are essential. This will also ensure that success criteria <a href="https://www.w3.org/TR/WCAG22/#error-suggestion">3.3.3 Error suggestion</a> is fulfilled.</p>
<ul>
<li><strong>Provide specific instructions:</strong> clearly describe what needs to be corrected. For example, if an email is entered incorrectly, explain what is missing or incorrect</li>
<li><strong>Include examples or suggestions:</strong> whenever possible, offer examples or suggestions to guide people in fixing the error</li>
<li><strong>Be concise and focused:</strong> ensure that error messages are brief and to the point; clear and concise messages help everyone quickly understand and resolve issues without confusion</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/email_format_error.jpg" alt="Email input field populated with ‘dfeltham@tetralogicalcom’. Below the field is a red error message that reads, ‘Error: Enter in the format: name@example.com.’" />
<figcaption>Inline error messages with clear instructions help users understand the correct format for input, making the form easier to complete.</figcaption>
</figure>
<h2 id="tips" tabindex="-1">Tips</h2>
<p>Tips for accessible form validation and error messages:</p>
<ul>
<li><strong>Combine in-line and post-submission validation</strong>: use a combination of in-line and post-submission error messages to provide comprehensive feedback</li>
<li><strong>Expose error states</strong>: add the <code>aria-invalid=&quot;true&quot;</code> attribute to communicate errors to assistive technologies</li>
<li><strong>Ensure error messages are accessible</strong>: make sure screen readers can announce error messages by using appropriate attributes like <code>role=&quot;alert&quot;</code> or <code>aria-live</code></li>
<li><strong>Associate error messages with fields</strong>: use the <code>aria-describedby</code> attribute to link error messages to the relevant form fields, ensuring accessibility for assistive technologies</li>
<li><strong>Provide clear instructions</strong>: offer specific and actionable guidance on how to resolve errors</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG22/#info-and-relationships:~:text=Success%20Criterion%201.3.1%20Info%20and%20Relationships">1.3.1 Info and relationships</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#error-suggestion">3.3.3 Error suggestion</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#name-role-value">4.1.2 Name, role, value</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#status-messages">4.1.3 Status messages</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet Hasmukh: a blind cricketer and screen reader user</title>
    <link href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/"/>
    <updated>2024-10-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/</id>
    <content type="html"><![CDATA[
        <p>Meet Hasmukh, a talented blind cricketer with lots of patience and determination.</p>
<p>Hasmukh shares his experience using the web with a screen reader and highlights the importance of accessible emails, forms, language, and prioritising content within a web page.</p>
<p>If you haven't already:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/11/26/meet-andre-a-music-producer-and-blind-screen-reader-user/">Meet Andre: a music producer and blind screen reader user</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/07/meet-jonathan-a-photographer-with-adhd/">Meet Jonathan: a photographer who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2025/02/12/meet-josh-a-sportsman-who-has-spinal-muscular-atrophy/">Meet Josh: a sportsman Meet Josh: a sportsman who has Spinal Muscular Atrophy</a></li>
<li><a href="https://tetralogical.com/blog/2024/11/12/meet-lauren-a-film-editor-who-has-adhd/">Meet Lauren: a film editor who has ADHD</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve: a photographer who is deaf and low vision</a></li>
</ul>
<figure class="inline-image__container">
<svg role="img" aria-label="Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see.</desc>
<path d="m294.636 90.539 908.399.501-3.066 1315.008H294.798z" style="fill:#f6f5f3;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m855.358 222.599-210.233-2.061v375.121h212.294M653.37 406.037h150.46" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="609.396" cy="768.028" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="536.803" cy="736.469" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="776.388" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="504" cy="845.122" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="576.722" cy="883.541" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="608.28" cy="956.39" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="535.431" cy="996.181" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="949.402" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="736.125" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="822.696" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="907.894" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1040.323" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="685.135" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="822.216" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="488.408" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1252.672" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1252.673" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
</svg>
<figcaption>Seeing</figcaption>
</figure>
<h2 id="tell-us-about-yourself" tabindex="-1">Tell us about yourself</h2>
<p>My name is Hasmukh. I'm visually impaired. I do need to explain however that even if someone is visually impaired, there can be varying degrees of vision. In my case, I have no vision at all. I depend on a keyboard and <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a screen reader</a> to access the web. I use a desktop computer and a smartphone for some apps.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/photo-hasmukh-6.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his Metro Blind Sport cricket club shirt, sitting and proudly holding the top of his bat with both hands as the bottom rests on the floor as if he is waiting to go into bat" />
<figcaption>Hasmukh, a blind cricketer, &quot;I use the web to shop, listen to spiritual talks, and plan transport to cricket matches. Images are important as often they include information I need when shopping and finding out match information&quot;</figcaption>
</figure>
<p>My interest is walking and playing cricket for <a href="https://www.metroblindsport.org/">Metro Blind Sports Club</a>. I'd always had a passion for playing cricket but never played much when I had sight. When I gradually lost my sight between the ages of 25 to 30, I went to a rehabilitation centre, and it's there I met someone who used to play blind cricket. He was amazing and put me in touch with the secretary of the club. And that's how I got involved.</p>
<p>It's a great game, in the UK we play with a softball that rattles because there are ball bearings in it, so we can hear it. It's almost the size of a football. International cricket uses a cricket ball.</p>
<p>I'm a people person, so initially I didn't want to learn about computers. But just before I was going to retire from my job as an operator, my manager, who was very nice, advised me to learn computer skills. He gave me a day a week off work so I could do a three year course at the College of Northwest London.</p>
<h2 id="what-barriers-have-you-experienced-using-the-web%3F" tabindex="-1">What barriers have you experienced using the web?</h2>
<p>This is a very interesting question because I face challenges every day, but I don't give up. I'm very patient and want to complete the task, but sometimes I get stuck, so I have to get help from somebody to carry on.</p>
<p>The main challenge is when apps I am familiar with get updated, and suddenly I can't use them anymore! People who design websites need to include people like us so that they understand what works for us. Unless they watch how we use things, how will they know?!</p>
<p>Other challenges can be simple things. For example, an email with graphics with no <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> means I can't use it! This is a big problem with meeting invites. I've actually missed a few meetings because I can't read the time or date or find the join meeting button. Sometimes I have to ask somebody for help and wait for them to have the time to help me which is frustrating.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/photo-hasmukh-2.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his cricket whites smiling as he stands ready to bat" />
<figcaption>Hasmukh says &quot;People who design websites need to include people like us so that they understand what works for us. Unless they watch how we use things, how will they know?!&quot;</figcaption>
</figure>
<h2 id="are-there-any-websites-you-find-especially-accessible%3F" tabindex="-1">Are there any websites you find especially accessible?</h2>
<p>I do volunteer work for a small charity called <a href="https://aftb.org.uk/">Middlesex Association for the Blind</a> and their website is good because it's simple.</p>
<p>Otherwise, I'm struggling to be honest because even simple things can make it difficult when you have no sight. If you have a little vision, maybe you can see an icon, click on it, and be on your way. But without any vision, simple things like filling in a form can be really hard. One recent example was selecting my age from a dropdown. I selected &quot;75 and above&quot; but when I clicked on it, the cursor jumped onto the &quot;16 to 25&quot; age group. But I didn't know this when I submitted the form! So should I go back and double-check everything?</p>
<p>Another thing with forms is sometimes I don't know what the question is because I can't find a <a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">form label</a>. If I get really stuck, I use an app called <a href="https://bemyeye.com/">Be My Eye</a>. This app has volunteers who can tell me what the question is. Even consent forms can be hard to sign especially if they are protected. Sometimes I can't win.</p>
<p>Overall these kinds of issues are getting better and better, I must say. You know, it's improving all the time. But the problem is it keeps changing as well!</p>
<h2 id="what-features-or-improvements-would-you-like-to-see-on-the-web%3F" tabindex="-1">What features or improvements would you like to see on the web?</h2>
<p>Making things easy to find on a page. For example, when I click on a link and go to a new page, I expect the information to be right on the top or under a <a href="https://tetralogical.com/blog/2022/02/28/headings/">heading</a>. Otherwise, I spend so much time looking for the information that should be just there. It can really waste my time because websites can be so complicated with lots of information you have to go through. Mostly I will find it after a while, but sometimes I can't.</p>
<p>I must say that skip links are excellent because you pass all the other bits and get straight into the content. But whether I get into the content that I'm looking for depends on how it's designed.</p>
<p>The last point I want to add is language because English is my second language. Keywords are important. For example, I was on a website for a train station and looking for a café where I could have a cup of coffee. I searched for &quot;R&quot; for restaurant, &quot;C&quot; for café, and &quot;F&quot; for food. But to my surprise, after spending so much time looking for this information it was under &quot;R&quot; for retail. Now, retail, I think, is a shop like Debenhams, Marks and Spencer's, or Primark. I would never think to look for a café under &quot;retail&quot;.</p>
<p>I'd like to see better alternatives for maps which are not accessible. I was looking at a PDF of a map the other day where they listed the names of the shops next to the map. But they didn't say where on the map the shops were located, so it wasn't really very useful.</p>
<p>Finally, I want to say, while initially I wasn't interested in technology, it is so important to me. Email in particular has allowed me to find so many opportunities and stay in touch.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/photo-hasmukh-1.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his cricket whites smiling as he stands ready to bat" />
<figcaption>Hasmukh says &quot;The main challenge is when apps I am familiar with get updated, and suddenly I can't use them anymore!&quot;</figcaption>
</figure>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Whether you're at the start of your accessibility journey or partway through it, our free six-day newsletter <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a> is designed to help you kick start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>XR Accessibility: for people with hearing disabilities</title>
    <link href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/"/>
    <updated>2024-10-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/</id>
    <content type="html"><![CDATA[
        <p>Extended Reality (XR) experiences tend to focus on providing immersive sounds and directional audio to convey information. But we need to consider how we convey the information in these experiences to people who can’t hear them.</p>
<p>In this post, we’ll explore considerations for designing and developing inclusive XR experiences for people with hearing disabilities.</p>
<p>If you haven't already, you can also explore other articles in this series including:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/">XR Accessibility: for people with seeing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/">XR Accessibility: for people with moving disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">XR Accessibility: for people with thinking disabilities</a></li>
</ul>
<p>You can also watch my <a href="https://www.youtube.com/watch?v=5XGwY5PSsb8&amp;list=PLn7dsvRdQEfFompoGO_CE5z-_HjEdgVit">Introduction to XR accessibility talk</a> from InclusiveDesign 24 (#ID24).</p>
<h2 id="who-does-this-affect%3F" tabindex="-1">Who does this affect?</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter." class="services__icon inline-image" style="max-width:15rem" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1456 832">
<desc>Hearing: two clusters of vertical bars of varying heights resemble sound waves. The bright purple bars on the left are separated from the muted purple bars on the right by a vertical column of red dots indicating a barrier or filter.</desc>
<circle cx="323.26" cy="17.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="54.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="93.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="128.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="165.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="202.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="239.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<circle cx="323.26" cy="276.26" r="16.26" style="fill:#ff1958" transform="scale(2.834646)"></circle>
<path d="M147.19 94.951v105.321M234.772 94.951v105.321M59.361 94.951v105.32" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M409.778 94.951v105.321M453.49 59.806v174.307" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M278.514 59.806v174.307M102.644 59.806v174.308M191.568 128.677v38.269M16.26 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:32.52px" transform="scale(2.834646)"></path>
<path d="M496.789 94.951v105.321M367.09 128.677v38.268" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:32.52px" transform="scale(2.834646)"></path>
</svg>
<figcaption>Hearing</figcaption>
</figure>
<p>People with hearing disabilities might include:</p>
<ul>
<li>People who are Deaf and have been born with permanent hearing loss</li>
<li>People who are deaf and have age-related hearing loss</li>
<li>People who are in a loud environment and are experiencing noise-induced hearing loss</li>
<li>People who have an ear infection and are experiencing hearing loss</li>
<li>People who are experiencing migraines, who might find sounds uncomfortable and be unable to focus on listening to sounds</li>
</ul>
<p>As we mentioned in <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a>, there are different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> that might be permanent, temporary, or situational. Regardless, we need to create experiences that are usable by everyone.</p>
<h2 id="provide-sign-language" tabindex="-1">Provide sign language</h2>
<p>People who are D/deaf may use a sign language as their primary language. Therefore it's important that sign language is available in our services and products.</p>
<p>Here's a user story that summarises this need:</p>
<blockquote>
<p>As someone with permanent hearing loss, I want to be able to view content in my primary language, British Sign Language (BSL), so that I can easily understand content.</p>
</blockquote>
<p>It's about using the Inclusive Design Principle of <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">provide comparable experience</a>, to make sure that people can access content in their preferred way. For context, British Sign Language (BSL) is the first language of 87,000 people in the UK. Using their primary language might make the experience more usable for people. For people who use sign language, the expressions and tone information communicated by the interpreters, may make information easier to understand than reading text.</p>
<p>When adding sign language videos in XR we need to make sure that sign language interpreters are clearly visible and appropriately sized. The <a href="https://www.w3.org/TR/xaur/">XR Accessibility User Requirements</a> (XRAUR), which we covered in <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a>, require that any signing videos are at least a third of the size of the original stream's size. Signing video sizes are important for helping to ensure that gestures and facial expressions are easily visible.</p>
<p>It's important that you design for and implement videos appropriately. Test your experience with the videos, make sure that they don't cover important information. Make sure that the videos can be enabled from the start of the experience. If you're unsure of how best to add or author these videos, consult people with hearing disabilities in your audience.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/forza-horizon-5-with-BSL-interpreter.jpg" alt="A sign language interpreter clearly visible, positioned to the right of a scene in the Forza Horizon 5 game" />
<figcaption>A British Sign Language interpreter in Forza Horizon 5</figcaption>
</figure>
<p>It's important to note however that sign languages are a lot more regional than spoken languages. The <a href="https://gameaccessibilityguidelines.com/provide-signing/">Game accessibility guidelines</a>, notes:</p>
<blockquote>
<p>However be aware that sign language is highly localised, due to it not having a written form it has much greater regional differences than speech. Regional accents are very strong, and international differences are extreme, with separate localised signing required for BSL, ASL and AUSLAN (British, American, Australian) for example, even though the original audio / captions would be almost identical.</p>
</blockquote>
<p>This isn't to say that you can't include sign language. It's about understanding the needs of your audience and including languages that are the most relevant.</p>
<h2 id="identifying-sounds-and-audio" tabindex="-1">Identifying sounds and audio</h2>
<p>We also need to consider the different types of information that we convey with audio. We may use audio as alerts to convey the position of items or people and identify objectives.</p>
<p>Examples of user needs for this requirement might include:</p>
<blockquote>
<p>As someone with hearing loss, I want to understand any audio identifiers used in the experience, so that I can understand what I need to interact with.</p>
</blockquote>
<blockquote>
<p>As someone with ear pain, I want an alternative way to access audio information, so that I can continue to use the experience.</p>
</blockquote>
<p>To address these needs, we can take a multi-modal approach to designing our experience. Throughout this XR Accessibility blog post series, we've covered different ways to present information to people. The core focus is to make sure that we don't rely on a single way of providing information.</p>
<p>When designing for people with hearing disabilities, we can pair audio information along with visual affordances. If we want to help people navigate to sounds, we can include arrows that point in the relevant direction. Such patterns will already be familiar to people who play video games. An example of this can be found in Fortnite, in which sound effects are displayed visually, allowing people to quickly understand the location of sounds.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/fortnite-sound-visualisation-wheel.jpg" alt="A screenshot from Fortnite, in which the sound visualisation wheel is displayed with footsteps and gunshot sounds displayed using icons, positioned on the wheel corresponding to the sound's location" />
<figcaption>Fortnite's sound visualisation wheel, image from the Can I Play That? <a href="https://caniplaythat.com/2022/04/26/fortnite-accessibility-review-can-i-play-that/">Fortnite Accessibility Review</a></figcaption>
</figure>
<p>There may also be ways that you can incorporate sounds into your experience. For example, characters or objects could respond when audio is played to help convey information. Characters in the game could help by using sign language if appropriate. Alongside this captions could be used to help describe any environmental sound effects. If available, haptic feedback could correspond to sounds to help people identify information.</p>
<h2 id="captions" tabindex="-1">Captions</h2>
<p>Captions and subtitles are a great way of conveying information in XR, similar to the way they're used in other mediums. A user story for this might be:</p>
<blockquote>
<p>As someone with hearing loss, I want audio content to be presented as text, so that I can easily understand the audio information.</p>
</blockquote>
<h3 id="types-of-captions" tabindex="-1">Types of captions</h3>
<p>Currently, there are two main approaches for presenting captions in XR:</p>
<ul>
<li><strong>Head locked captions</strong> which are locked to the devices movements, and move with the hardware, so that they are permanently visible</li>
<li><strong>Fixed captions</strong> which are tied to a virtual or physical object and remain in proximity to that object, regardless of the device's movements</li>
</ul>
<p>Each has their own benefits and drawbacks, and will depend on the context of use. If you're creating an Augmented Reality (AR) experience in which people can view different models, head locked captions may be more appropriate. Whereas if you're developing a Virtual Reality (VR) experience with characters, tying captions to the character that is speaking might work better.</p>
<p>Head locked captions are always visible, and alongside them, we can include directional prompts to inform people as to where the audio is coming from. Directional prompts could be included as arrows, pointing to the location of the source of the audio.</p>
<p>While fixed captions can allow you to easily identify speakers and the position of audio, we also need to consider their size. If the character speaking is far from the user, we need to ensure a minimum caption size is included to maintain legibility. Similarly, if the character is off-screen but can be heard, ensure the captions remain visible.</p>
<p>An example of great caption design in XR can be found in Owlchemy Labs' games. In the talk <a href="https://www.youtube.com/watch?v=J5m8JHWuu2o">Subtitles in XR: A Practical Framework</a>, Andrew Eiche explains how they use a blended approach to XR captions. The way this works is by using fixed captions when the character that is speaking is visible, but when the character is out of view, the experienbce switches to head locked captions. The head locked captions follow the VR device's head movements, and use an arrow to point to the off-screen location of the speaker.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/job-simulator-captions-example.png" alt="A screenshot from Job Simular, with a character positioned just off-screen. At the centre of the view are captions for that character's audio, with an arrow pointing in the direction of the character to help with finding them," />
<figcaption>Job Simulator's captioning system, image from Owlchemy Labs' <a href="https://www.youtube.com/watch?v=J5m8JHWuu2o">Subtitles in XR: A Practical Framework talk</a></figcaption>
</figure>
<p>Regardless of the method used, captions must be available to people using assistive technologies such as screen magnification as people might be both low vision and hard of hearing.</p>
<h3 id="customising-captions" tabindex="-1">Customising captions</h3>
<p>As always, <a href="https://inclusivedesignprinciples.info/#give-control">give control</a> to people to allow them to customise captions. People may want the names of characters to be included in captions, they may want directional information, and they may want to change the presentation of captions. Ensure that people are able to choose between different font types and different font sizes to find a presentation that works best for them. Similarly, there should be a choice of sufficiently contrasting text colours and backgrounds, that can help people to better perceive the captions. All of these different options allow people to make the experience more usable based on their own needs.</p>
<p>Another of the Inclusive Design Principles is relevant for this functionality, <a href="https://inclusivedesignprinciples.info/#be-consistent">be consistent</a>:</p>
<blockquote>
<p>Familiar interfaces borrow from well-established patterns. These should be used consistently within the interface to reinforce their meaning and purpose. This should be applied to functionality, behavior, editorial, and presentation. You should say the same things in the same way and users should be able to do the same things in the same way.</p>
</blockquote>
<p>Your captions and available options should match those that people are familiar with when using other forms of multimedia. People might be very familiar with the way that captions work in their favourite streaming platforms and video games, so it's important that your implementation is consistent. Morgan L. Baker's fantastic article on the topic provides an in-depth summary of <a href="https://leahybaker.com/deaf_access/">best practice for subtitles and closed captions</a>.</p>
<h2 id="mono-and-stereo-audio" tabindex="-1">Mono and stereo audio</h2>
<p>A final consideration is to make sure that experiences can provide information using both stereo and mono audio. While stereo audio can make use of multiple speakers to replicate how directional sound works, this information can prevent people from hearing sounds if they have hearing loss in one of their ears. This is because in delivering stereo audio, sounds might be quieter, or silent, through one speaker or earphone. If this is the case, people might miss this audio cue.</p>
<p>Provide an option that can combine multiple audio channels used for stereo audio, into a single, mono audio track. This mono audio can then be provided through all speakers, so people can hear all the audio information. A user story for this would be:</p>
<blockquote>
<p>As someone with hearing loss in one ear, I want to be able to switch on mono audio, so that I can hear all the audio.</p>
</blockquote>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>XR allows people to experience immersive environments. We must create these environments in a way that includes the needs of people with hearing disabilities. This can be done by providing information in people's primary language, designing in a multi-modal approach, providing captions and subtitles, and allowing people to switch between mono and stereo audio.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.playstation.com/en-gb/games/the-last-of-us-part-ii/accessibility/">Accessibility options for The Last of Us Part II</a>, by Playstation</li>
<li><a href="https://equalentry.com/accessibility-virtual-reality-captions-open-source/">Accessibility Virtual Reality: How to Add Captions Using Open Source</a>, by Equal Entry</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, by Joe Lamyman</li>
<li><a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>, Joe Lamyman</li>
<li><a href="https://leahybaker.com/a11ytogaming2020/">When/How to use Deaf Accessibility Tools (a11yTO Gaming 2020)</a>, by Morgan L. Baker</li>
<li><a href="https://learn.microsoft.com/en-us/gaming/accessibility/xbox-accessibility-guidelines/104">Xbox Accessibility Guideline 104: Subtitles and captions</a>, by Microsoft</li>
<li><a href="https://www.w3.org/TR/xaur/">XR Accessibility User Requirements</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>XR Accessibility: for people with thinking disabilities</title>
    <link href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/"/>
    <updated>2024-09-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/</id>
    <content type="html"><![CDATA[
        <p>Extended Reality (XR) experiences tend to focus on providing rich, visual content to convey information. But we need to consider how we convey the information in these experiences in a way that isn’t overwhelming, scary, or difficult to understand.</p>
<p>In this post, we’ll explore considerations for designing and developing inclusive XR experiences for people with thinking disabilities.</p>
<p>If you haven't already, you can also explore other articles in this series including:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/">XR Accessibility: for people with seeing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/">XR Accessibility: for people with hearing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/">XR Accessibility: for people with moving disabilities</a></li>
</ul>
<p>You can also watch my <a href="https://www.youtube.com/watch?v=5XGwY5PSsb8&amp;list=PLn7dsvRdQEfFompoGO_CE5z-_HjEdgVit">Introduction to XR accessibility talk</a> from InclusiveDesign 24 (#ID24).</p>
<h2 id="who-does-this-affect%3F" tabindex="-1">Who does this affect?</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Thinking: a bright pink gear connected to a smaller purple gear above it by a wavey line of orange dots. The bright pink gear slots together with a smaller purple gear on the bottom right showing a different way to make a connection.</desc>
<ellipse cx="-788.85" cy="948.749" rx="72.02" ry="72.025" style="fill:none;stroke:#e100a0;stroke-width:62.3px" transform="matrix(.435224 -1.260301 1.260326 .435151 0 .000045)"></ellipse>
<circle cx="608.717" cy="150.431" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="721.221" cy="152.846" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="790.921" cy="240.215" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="899.099" cy="262.497" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="992.119" cy="314.954" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1032.995" cy="417.149" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<circle cx="1007.729" cy="521.125" r="45" style="fill:#f56f00;stroke:#f56f00;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(13.44665 -.00019 .000022)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.33275 -3070.062039 614.253546)scale(1.333333)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-77.82752 -753.275124 -251.065112)scale(1.333333)"></circle>
<path d="m64.736 941.596 42.592 40.862M306.701 1187.47l42.592 40.862M9.28 1086.13l58.877-4.164M351.2 1082.746l58.905 3.751M306.114 983.457l45.389-37.73M68.609 1226.449l45.39-37.73M210.591 944.534l-.772-59.018M211.164 1285.915l-1.291-59.01" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-11.4554 1666.324087 -4969.819966)scale(1.333334)"></path>
<circle cx="-833.549" cy="731.289" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<circle cx="-832.693" cy="730.105" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-70.95018 672.846365 -599.840257)scale(1.333334)"></circle>
<path d="m620.438 828.808-5.899-81.355M725.413 837.597l33.233-74.491M863.384 1001.93l79.814-16.823M856.314 1122.342l79.117 19.848M809.951 1210.585l58.895 56.434M820.475 906.527l60.436-54.78M513.982 861.69l-46.484-67.027M434.024 944.448l-70.869-40.385M411.348 1053.617l-81.566-.54M434.918 1162.916l-73.308 35.767M507.972 1250.316l-50.007 64.44M605.94 1282.193l-6.131 81.337M750.295 1346.514l-33.759-74.254" style="fill:none;fill-rule:nonzero;stroke:#e100a0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<ellipse cx="-791.2" cy="950.597" rx="223.807" ry="223.584" style="fill:none;stroke:#e100a0;stroke-width:92.18px" transform="matrix(.434696 -1.260483 1.260143 .43568 0 .000045)"></ellipse>
</svg>
<figcaption>Thinking</figcaption>
</figure>
<p>People with thinking disabilities might include:</p>
<ul>
<li>People who have Autistic Spectrum Disorder (ASD)</li>
<li>People who have dementia</li>
<li>People with anxiety</li>
<li>People who are recovering from an operation or illness</li>
</ul>
<p>As we mentioned in <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a>, there are different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> that might be permanent, temporary, or situational. Regardless, we need to create experiences that are usable by everyone.</p>
<h2 id="muting-non-critical-information" tabindex="-1">Muting non-critical information</h2>
<p>People with thinking disabilities may need to personalise XR experiences in different ways.</p>
<p>The W3C’s <a href="https://www.w3.org/TR/xaur/">XR accessibility user requirements</a> includes a requirement related to personalisation. Requirement <a href="https://www.w3.org/TR/xaur/#immersive-personalization">4.3 Immersive personalization</a> states that:</p>
<blockquote>
<p>Users with cognitive and learning disabilities may need to personalize the immersive experience in various ways.</p>
</blockquote>
<p>This is then broken down in to two user requirements, with one of them being:</p>
<blockquote>
<p>Allow the user to turn off or 'mute' non-critical environmental content such as animations, visual or audio content, or non-critical messaging.</p>
</blockquote>
<p>The requirement is quite broad, but we can break it down into a few different areas. It could cover animations, environmental, visual, and audio content. Outside those areas, it might also apply to non-critical messaging and notifications.</p>
<p>As an example, imagine a virtual reality (VR) experience where people put on a headset to use an experience. This can feel overwhelming by itself. Once inside, people might find themselves in a busy, detailed environment with animations for the surroundings or noisy people walking by. If these details aren't important, people might feel distracted or overwhelmed making it difficult for people to continue to use the experience.</p>
<p>Personalisation can be used as a way of managing these layers of information. Personalisation helps people <a href="https://inclusivedesignprinciples.info/#give-control">control</a> the environment remove non-critical information that may be distracting.</p>
<p>When designing and building your experience, try to think about the content as layers. Start with a concept of what the critical information is. This could be key narration or virtual objects that the user has to interact with. Once you know this, ensure that there is a way for the user to experience just this content. Once you have your core experience, you can layer non-critical information on top of it. Add this content in a way that it can be muted or turned off if it is not helpful for people.</p>
<p>To implement this, people should be able to update their preferences at any time. This could be done through the experience's settings menu. This is because people might set their preferences when first using the experience, but these may change over time. As people become more familiar, they might want less help for example. It might also be that due to the environment that people are in, that they want to update their settings for that period of use.</p>
<p>This does not stop you from creating rich worlds with animations or audio. Instead, it's about making sure that people can tailor their experience. This allows people to get just the information they need, so that the experience is usable.</p>
<h2 id="understanding-the-objective" tabindex="-1">Understanding the objective</h2>
<p>It’s also important that people are able to clearly understand their objectives. The experience might allow people to freely investigate the virtual environment. Alternatively, maybe there are tasks that people need to complete. Whatever the aim, people should be able to easily find this information. A user story for this need might be:</p>
<blockquote>
<p>As someone with a short-term memory impairment, I want to know the tasks that I need to complete, so that I can use the XR experience.</p>
</blockquote>
<p>To achieve this, you should inform people what their objectives are and provide guidance about how interactions work. This way, people who need additional information, can still use the experience.</p>
<p>Depending on the experience, you can tie in the functionality in different ways. As an example, if your experience has characters, these could remind the player of their current task. Or in educational or training experiences, a clear, easily visible objective might be more appropriate.</p>
<p>When designing this functionality, be mindful of the requirements covered in the previous blog post in this series, <a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">for people with seeing disabilities</a>, including:</p>
<ul>
<li>Design content bearing in mind that people may be zoomed in and loose context</li>
<li>Ensure that text content can be personalised to make the display easily readable</li>
<li>Design affordances in a multi-modal way, so that as many people as possible can access the information</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/illustration-of-person-in-vr-reading-notice.png" alt="Illustration of someone wearing a VR headset, reading a notice." />
<figcaption>Credit to the XR Association, from the <a href="https://xra.org/wp-content/uploads/2020/10/XRA_Developers-Guide_Chapter-3_Web_v3.pdf">XR Association Developers Guide</a></figcaption>
</figure>
<p>Where possible, give people a <a href="https://inclusivedesignprinciples.info/#offer-choice">choice</a>, so they can complete actions in multiple ways. This allows people to use alternative methods of input, which may be more usable for them.</p>
<p>As a last resort, it should be possible to skip tasks so that people can continue to use the experience. This is useful in situations where people are unable to complete a task because it is too complex or the cognitive load too high. Instead of preventing people from using the experience, they can bypass the problem. However, this depends on the context of use, and may not be possible in experiences that relate to training or certification.</p>
<h2 id="safe-spaces" tabindex="-1">Safe spaces</h2>
<p>The <a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a> research by the BBC, identifies accessibility barriers found in immersive environments experienced by disabled people. One of the cognitive barriers identified is “Expectation”. The team found that if experiences break people’s expectations, either in the way that it displays or represents content, it can lead to people feeling unsafe.</p>
<p>Expectations are centred around the way that people will expect something to work based on their own lived experiences. In XR, breaking expectations might include unexpected sounds, shadows, bodily representation like hands and legs, or placing people into an unfamiliar simulated situation which feels unsafe, for example underwater or in a confined space. Any differences from the way in which people expect things to behave, or that differ from their experiences, may break expectations and pose a barrier.</p>
<p>In <a href="https://www.youtube.com/watch?v=xCsR8-dmTfc">Jamie + Lion’s fantastic talk on the Barriers Browser research</a>, Jamie explains a few situations in which expectations of virtual environments, changed how people used them.</p>
<p>In one example, people encountered a cobbled path in the virtual environment and did not want to navigate the path due to their experiences with cobbled paths in the physical world. People’s expectations changed their behaviour. Experiences in the physical environment shaped their perception of the virtual space.</p>
<p>Jamie shared another takeaway about why someone was forced to leave an experience. A participant with a learning impairment slowly became comfortable wearing the VR headset. Over time, they were able to wear it for longer periods. During this process, the research team reassured the participant, telling them the VR experience was virtual and couldn't cause harm. Once the participant was comfortable using the VR, a team member handed them a controller. However, this moment broke the user's expectations. In the virtual space, the controller seemed to fly toward them, while in reality, they felt it bump into them. This broke the user's expectations, as they believed nothing in the virtual world would affect the physical world.</p>
<p>This experience highlights the concerns that people may have when using XR experiences. Immersive experiences provided in VR can be uncomfortable, overwhelming, and scary. This is partly because people's entire view is filled with the VR content and people are placed in environments that they are not used to.</p>
<p>Additionally, people might not be familiar with characters and objects in virtual spaces. Therefore, provide a way for people to quickly exit an XR experience. It’s not enough to rely on people being able to remove a headset. This is because people may not be able to do this independently, or quickly. Instead, provide a way for people to navigate to a safe space in the virtual environment. This space should remove all models and characters. It should be a quiet room, or a user-set location in the current environment, in which they previously felt comfortable in.</p>
<p>When designing this, make sure that people are aware of how they can navigate to the safe space. People need to be able to activate this functionality quickly, for example with:</p>
<ul>
<li>A key press (for example Escape)</li>
<li>A gesture</li>
<li>A voice command</li>
</ul>
<p>Devices like the <a href="https://www.meta.com/gb/quest/quest-3/">Meta Quest 3</a> VR headset, provide a home environment as part of the operating system. These spaces are included with the headset, which can be used as a safe space. Ensure that the devices you are designing for have this functionality, and if not, make sure that you provide it.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/vr-home-screen-quest-environment.png" alt="Meta Quest's home environment, featuring a sandy area with the sun setting over the horizon, hot air balloons in the sky, and a series of hills visible in the background. At the centre of the display is the application launcher screen, with a representation of the user's hands visible." />
<figcaption>Quest home environment</figcaption>
</figure>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>XR allows people to experience immersive environments. However, these immersive environments must be created in a way that includes the needs of disabled people.</p>
<p>By designing experiences with clear objectives, the ability to turn off non-critical information, and safe spaces, we can create inclusive and usable XR experiences that can be used by as many people as possible.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>, Joe Lamyman</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, by Joe Lamyman</li>
<li><a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a>, BBC</li>
<li><a href="https://www.youtube.com/watch?v=xCsR8-dmTfc">XR Access Speaker Series | Jamie + Lion</a>, Jamie + Lion</li>
<li><a href="https://www.w3.org/TR/xaur/">XR accessibility user requirements</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>XR Accessibility: for people with seeing disabilities</title>
    <link href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/"/>
    <updated>2024-09-19T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/</id>
    <content type="html"><![CDATA[
        <p>Extended Reality (XR) experiences tend to focus on providing rich, visual content to convey information. But we need to consider how we convey the information in these experiences to people who can’t see them.</p>
<p>In this post, we’ll explore considerations for designing and developing inclusive XR experiences for people with seeing disabilities.</p>
<p>If you haven't already, you can also explore other articles in this series including:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/">XR Accessibility: for people with hearing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/">XR Accessibility: for people with moving disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">XR Accessibility: for people with thinking disabilities</a></li>
</ul>
<p>You can also watch my <a href="https://www.youtube.com/watch?v=5XGwY5PSsb8&amp;list=PLn7dsvRdQEfFompoGO_CE5z-_HjEdgVit">Introduction to XR accessibility talk</a> from InclusiveDesign 24 (#ID24).</p>
<h2 id="who-does-this-affect%3F" tabindex="-1">Who does this affect?</h2>
<figure class="inline-image__container">
<svg role="img" aria-label="Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Seeing: a bright purple outline of an eye chart with a bold orange E at the top. On the row below are smaller muted red letters for S and L. The bottom line has three smaller letters; H, T, and O, made up of muted purple dots, as the letters become harder to see.</desc>
<path d="m294.636 90.539 908.399.501-3.066 1315.008H294.798z" style="fill:#f6f5f3;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="m855.358 222.599-210.233-2.061v375.121h212.294M653.37 406.037h150.46" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="609.396" cy="768.028" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="536.803" cy="736.469" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="776.388" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="504" cy="845.122" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="576.722" cy="883.541" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="608.28" cy="956.39" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="535.431" cy="996.181" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="464.081" cy="949.402" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="736.125" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="822.696" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="907.894" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="870.375" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="955.574" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1040.323" cy="996.375" r="36.375" style="fill:#ff1958" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="685.135" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="822.216" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1141.875" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="752.625" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="422.719" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="488.408" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="552.553" cy="1217.397" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1011.738" cy="1290.248" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1182.737" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="1077.342" cy="1252.672" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
<circle cx="949.008" cy="1252.673" r="31.125" style="fill:#7c618b" transform="translate(0 .000045)scale(1.333333)"></circle>
</svg>
<figcaption>Seeing</figcaption>
</figure>
<p>People with seeing disabilities might include:</p>
<ul>
<li>People who are blind and have no sight</li>
<li>People who have low vision and are able to see some content, but might find content blurry, or may have spots in their vision where they cannot see</li>
<li>People with colour vision deficiency, who might not be able to perceive information conveyed using colour alone</li>
<li>People with light sensitivity, who might find bright experiences to be painful or uncomfortable</li>
<li>People who are experiencing migraines, who might have their vision affected and be unable to focus on content</li>
</ul>
<p>As we mentioned in <a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a>, there are different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> that might be permanent, temporary, or situational. Regardless, we need to create experiences that are usable by everyone.</p>
<h2 id="identify-content" tabindex="-1">Identify content</h2>
<p>We’ll start with one of the most fundamental user requirements. How do we ensure that people who cannot see can understand what’s in our experience and how they can interact with it?</p>
<p>Here are a few user stories that summarise this need:</p>
<blockquote>
<p>As someone with low vision, I want to know the objects that are available to me, so that I can find the item I need.</p>
</blockquote>
<blockquote>
<p>As someone with no vision, I want to know what an item is and any information within it, so that I can understand its purpose.</p>
</blockquote>
<p>In short, people need to be able to identify objects around them, and interact with them.</p>
<h3 id="querying-content" tabindex="-1">Querying content</h3>
<p>If this were the web, we know that content and controls will be in the browser’s accessibility tree. A screen reader can query the tree and announce the content to a user. But this isn’t the case with XR experiences. It might be that a web-based XR experience uses a <a href="https://github.com/immersive-web/dom-overlays/blob/master/explainer.md">DOM Overlay</a>, which allows us to use HTML elements. In which case, there <em>would</em> be an accessibility tree. Yet, most experiences will probably be built with game engines. These engines use controls and objects that don’t convey programmatic information. Instead, they rely on appearance to convey information.</p>
<p>There are many ways that we can design for this need, but as always, the solution will depend on the context of use.</p>
<p>You could allow people to query the experience with a shortcut. Once triggered, it would activate a screen reader, announcing content around the player. People could then listen to the content and interact with it, if they want to.</p>
<h3 id="using-text-to-speech-descriptions" tabindex="-1">Using Text to Speech descriptions</h3>
<p>In the virtual reality (VR) experience <a href="https://store.steampowered.com/app/1491490/Cosmonious_High/">Cosmonious High</a>, a Text to Speech (TTS) engine provides information to players. People can use the VR controllers to hover over objects to hear a description about the content.</p>
<p>If someone has low vision, but can still see the experience, we could use personalisation. Examples might include increasing zoom, contrast, or adding visual identifiers around important objects. These adjustments would allow people to find the objects themselves and perceive them.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/cosmonious-high-vr-vision-at-settings.png" alt="Screenshot taken from Cosmonious High, with the accessibility settings displayed on the back of the player's backpack. Settings allow the user to turn vision assistance on or off, turn on high contrast object outlines, and enable grab and release object confirmation." />
<figcaption>Vision accessibility settings in Cosmonious High, image from <a href="https://owlchemylabs.com/blog/owlchemy-labs-shares-the-first-of-its-kind-vision-accessibility-update-for-cosmonious-high">Owlchemy Labs</a></figcaption>
</figure>
<p>In addition to this, we could also use a multi-modal approach. For example, you could add multiple identifiers to help people locate objects. You could add haptic feedback, which might be a rumble in the controllers. Alongside this, you could pair the feedback with audio cues and visual outlines. These different approaches will provide people with different ways to find objects.</p>
<h2 id="navigating-through-the-experience" tabindex="-1">Navigating through the experience</h2>
<p>We also need to make sure that information about how to navigate the environment and user interface (UI) is available to people who cannot see it. User stories for this, could include:</p>
<blockquote>
<p>As someone with low vision, I want to know where I need to go, so that I can complete my objectives.</p>
</blockquote>
<blockquote>
<p>As someone with no vision, I want to know where I am, so that I can understand if I’m in the right location.</p>
</blockquote>
<p>For UI elements (for example menus), we could allow people to hover over the content for more information. However, describing environmental and directional information is more complex. This is because we may need to provide the user with the information ahead of time. This might be before they can even interact with it. It may be before people even know about the environment they're going to navigate in to.</p>
<p>When creating an experience, think about how you could describe a location. Think about how you can inform people about where they have to go and what they have to do. Provide clear and easy objectives, that allow people to understand what they must do. Alongside this, describe the space around people, so that they know if they're in the right place.</p>
<p>Using another example, consider a VR experience where somebody's holding a multimeter and looking at a fuse box.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/vr-electrician-example.jpeg" alt="Screenshot taken from a VR experience where the user is holding a multimeter with both hands, with the connection points touching circuits in a fuse box." />
<figcaption>VR Safety Training example, image from <a href="https://metaenga.com/vr-training-library/occupational-safety-and-health">Metaenga</a></figcaption>
</figure>
<p>In this case, think about the important information that people need to operate this:</p>
<ul>
<li>What do they need to know to use this piece of equipment?</li>
<li>Where should they place the equipment?</li>
<li>Are different colours used for different wires or buttons with a different purpose?</li>
<li>Is there information about the environment that people need to know? For example, a  fuse box is in front of them</li>
<li>How about the state of the objects as well? Is there important information about the switches and their state?</li>
<li>Is there important information about where the wire from this fuse box goes to?</li>
</ul>
<p>These are all things that we would need to explain to people if they had low vision or colour blindness.</p>
<p>There are ways that we can provide this information using a multi-modal approach. Instead of an audio description, you might also be able to use audio and sound effects as well. Using spatial audio, you could play a sound effect to guide people to their objective.</p>
<h2 id="context-of-view" tabindex="-1">Context of view</h2>
<p>If someone is zoomed in, there might be a lot of information outside their field of vision. If this information is important, people need to know about it and have access to it.</p>
<blockquote>
<p>As someone with low vision, when zoomed in, I want to know important context about content outside of my field of view.</p>
</blockquote>
<p>Think about the important information that your experience needs to communicate. This might be objectives or environmental information. People might miss this information if zoomed in to 200%. Don’t design assuming that people can see everything that is on-screen. Instead, consider ways that you can provide information, without having to zoom out.</p>
<p>Your solution for this might depend on how zoom functionality is provided. For example, <a href="https://www.apple.com/uk/apple-vision-pro/">Apple’s Vision Pro headset</a> provides the ability to use the zoom functionality in a window, or the ability to zoom the whole view to 200%. Knowing how this works, can help you to better tailor the experience for people using magnification.</p>
<h2 id="personalise-displays" tabindex="-1">Personalise displays</h2>
<p>We need to make sure that our experiences support people's preferences. Think about the different parts of the visual design that people might want to change. This could include:</p>
<ul>
<li>Font family</li>
<li>Font size</li>
<li>Font weight</li>
<li>Colour theme</li>
<li>Display of captions</li>
<li>Focus indicators</li>
</ul>
<p>People might want to change these aspects of the display so that they can perceive the content.</p>
<blockquote>
<p>As someone with low vision, I want to change the appearance of text in the experience, so that I can comfortably read it.</p>
</blockquote>
<p>Providing larger or customisable text sizes may make the experience more comfortable to use. This might also lead to people being able to use the experience for longer.</p>
<p><a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">Good contrast</a> is also important in XR to ensure that people can perceive content. The colours that we choose might not work for everyone. Instead, providing alternative themes is a great way to <a href="https://inclusivedesignprinciples.info/#offer-choice">offer choice</a>. For example, you could add a dark mode for people who prefer darker interfaces to avoid migraines. Or high contrast mode for people with low vision, who find this more usable.</p>
<h2 id="moving-closer-to-content" tabindex="-1">Moving closer to content</h2>
<p>Large fonts may allow people to comfortably read content, but it might not work for everyone. In Jesse Anderson's excellent #ID24 talk <a href="https://www.youtube.com/watch?v=SpYH093s3yM">An Illegally Sighted Look at VR Accessibility</a>, he explains how sometimes larger text size isn’t enough. Besides, some platforms behave unexpectedly with large text. So instead, Jesse often leans in to get closer to content to be able to read it. Based on Jesse’s experience, we can use the following user story:</p>
<blockquote>
<p>As someone with low vision, I want to be able to view text as close as I need to, so that I can comfortably read it.</p>
</blockquote>
<p>To achieve this, allowing people to move closer to content they want to read, can be a helpful approach. It enables people to get as close to the content as they need.</p>
<p>An alternative approach is to allow people to move the content. In the Apple Vision Pro, people are able to move the application windows closer to themselves. This way, they do not have to move themselves towards the content. This approach might also work better for people who are unable to lean in due to having reduced movement.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/apple-vision-pro-resize-app-window.png" alt="Screenshot taken from using the Apple Vision Pro, with the Photos application visible. At the bottom corner of the Photos application is a handle for people to change the size of the window." />
<figcaption>Handle for resizing applications in the Apple Vision Pro, image from <a href="https://support.apple.com/en-gb/guide/apple-vision-pro/dev009366408/visionos">Apple</a></figcaption>
</figure>
<h2 id="resetting-a-view" tabindex="-1">Resetting a view</h2>
<p>As people move around, it’s important that they can reset or re-centre their view. This is because sometimes this might allow people to move closer to content to read it. It also helps in cases where content disappears due to issues with tracking or the hardware. Resetting the view brings the content back into focus so that people can continue to use the experience.</p>
<blockquote>
<p>As someone with low vision, I want to be able to recalibrate my view, so that I can continue to use the experience.</p>
</blockquote>
<p>Allowing people to recalibrate or reset their view allows them to use the experience without disruption.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>XR allows people to experience immersive environments. We must create these environments in a way that includes the needs of people with seeing disabilities. This can be done by providing means to identify and query content, text to speech description, navigation prompts, context descriptions, personalisation, and zoom features.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>, Joe Lamyman</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, by Joe Lamyman</li>
<li><a href="https://www.youtube.com/watch?v=SpYH093s3yM">An Illegally Sighted Look at VR Accessibility</a>, Jesse Anderson</li>
<li><a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a>, BBC</li>
<li><a href="https://www.youtube.com/watch?v=SuoSPt6qggo">Inventing the &quot;screenreader&quot; for VR: Owlchemy Labs' Cosmonious High</a>, Owlchemy Labs</li>
<li><a href="https://www.w3.org/TR/xaur/">XR accessibility user requirements</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Introduction to XR Accessibility</title>
    <link href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/"/>
    <updated>2024-09-11T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/</id>
    <content type="html"><![CDATA[
        <p>Extended Reality (XR) provides immersive experiences through detailed visual, audio, and multi-media content. When using these different types of content, we need to consider how we can communicate the same information to people with disabilities in order to make XR accessible to everyone.</p>
<p>In this introduction to the XR accessibility series, we’ll explore key considerations for designing and developing inclusive XR experiences. Whether you’re working with Augmented Reality (AR) or Virtual Reality (VR), and regardless of the hardware, this series will provide guidance to improve usability for people with disabilities.</p>
<p>You can explore other articles in this series including:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/">Introduction to XR accessibility</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/">XR Accessibility: for people with seeing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/">XR Accessibility: for people with hearing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/">XR Accessibility: for people with moving disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">XR Accessibility: for people with thinking disabilities</a></li>
</ul>
<p>You can also watch my <a href="https://www.youtube.com/watch?v=5XGwY5PSsb8&amp;list=PLn7dsvRdQEfFompoGO_CE5z-_HjEdgVit">Introduction to XR accessibility talk</a> from InclusiveDesign 24 (#ID24).</p>
<h2 id="who-does-this-affect%3F" tabindex="-1">Who does this affect?</h2>
<p>Before we dive in, there are different <a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">types of disability</a> that might be permanent, temporary, or situational:</p>
<ul>
<li><strong>Permanent disabilities</strong>: which are constant and include people with seeing, hearing, moving and thinking disabilities</li>
<li><strong>Temporary disabilities</strong>: which are periodic and include people who are ill such as experiencing a migraine, or have reduced motion due to wearing a cast or sling</li>
<li><strong>Situational disabilities</strong>: which are external and dependent on the situation or the environment and include people who are in a loud environment and are unable to hear the related audio, or people who might be multitasking and working under pressure</li>
</ul>
<p>In order to better understand the needs of people using XR, let's get started by understanding some related standards!</p>
<h2 id="standards-and-starting-points" tabindex="-1">Standards and starting points</h2>
<p>Whether you're starting to design and develop an XR experience, or you're updating an existing project, standards offer a helpful foundation. They allow us to understand what we need to conform to, and for those related to usability, allow us to consider the needs of people using the experience so that we can tailor our design and development to better meet our audience's needs.</p>
<h3 id="web-content-accessibility-guidelines" tabindex="-1">Web Content Accessibility Guidelines</h3>
<p>While incredibly useful, it's not always easy to map the <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines (WCAG)</a> to other mediums that are not traditional interfaces such as XR experiences. For example, in some instances, guidelines reference markup and HTML directly, which may not be used at all in an XR product.</p>
<p>WCAG is useful to reference, particularly when creating user interfaces such as menus, which are more similar to content that you would encounter on the web. However, for AR and VR functionality using 3D objects and complex interactions, other standards offer more relevant considerations, specific to the XR medium. For a deeper dive into WCAG, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG Primer</a>.</p>
<h3 id="xr-accessibility-user-requirements" tabindex="-1">XR accessibility user requirements</h3>
<p>A good starting point is the W3C's <a href="https://www.w3.org/TR/xaur/">XR accessibility user requirements</a> (XRAUR). This document includes 19 succinct descriptions of user needs and requirements for people with disabilities. For example:</p>
<blockquote>
<p><strong>User Need 1</strong>: A user of assistive technology wants to navigate, identify locations, objects and interact within an immersive environment.</p>
</blockquote>
<p>Each need is then broken down into individual requirements, helping to make them more tangible and actionable.</p>
<blockquote>
<p><strong>REQ 1a</strong>: Navigation mechanisms must be intuitive with robust affordances. Navigation, location and object descriptions must be accurate and identified in a way that is understood by assistive technology.</p>
</blockquote>
<p>In addition to this, the requirements aren't restricted to the web, so can be used as a starting point for any XR experience.</p>
<p>Due to the focus on XR, these requirements are more specific to the needs of people, than they would be when attempting to map to WCAG requirements.</p>
<p>In a <a href="https://www.cencenelec.eu/media/CEN-CENELEC/CWAs/RI/cwa18006_2023.pdf">workshop exploring the use of XR in learning and education</a>, the European Committee for Standardisation (CEN) acknowledged that:</p>
<blockquote>
<p>In web accessibility, it is plausible to enforce accessibility laws because of existing guidelines, such as Web Content Accessibility Guidelines … The situation is different in XR accessibility.</p>
</blockquote>
<p>The section continues with a brief description of the few standards efforts that exist in this space, but ultimately concludes by saying:</p>
<blockquote>
<p>…we would especially like to emphasize the XR Accessibility User Requirements from W3C as an appropriate starting point</p>
</blockquote>
<p>Therefore, these are the requirements that we would recommend that you use as a basis for designing and developing an XR experience.</p>
<p>It's important to note however, that the authors of the XRAUR document state that:</p>
<blockquote>
<p>This document is most explicitly not a collection of baseline requirements.</p>
</blockquote>
<p>So while meeting the requirements won't mean that your experience is fully accessible, it will help to ensure that you have a good starting point. As always, considering the specific needs of your audience and the different contexts of use, are critical. Make sure that you carry out <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing</a> with a range of people with disabilities who will be using your product or service.</p>
<h3 id="barriers-browser" tabindex="-1">Barriers Browser</h3>
<p>Alongside the XRAUR, you can also use the BBC's <a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a> research, to understand common barriers present in XR experiences, and make sure that these problems are not present in your products.</p>
<p>The barriers identified are the result of research conducted with over 100 research participants, and are presented by disability group, with further information and, where possible, examples and solutions provided for the problems found.</p>
<h3 id="inclusive-design-principles" tabindex="-1">Inclusive Design Principles</h3>
<p>Finally, the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> are also relevant to XR design and development as well. These principles offer clear guidance and help to promote disabled people's needs when designing and developing functionality.</p>
<p>Principles such as, <a href="https://inclusivedesignprinciples.info/#be-consistent">be consistent</a> and <a href="https://inclusivedesignprinciples.info/#offer-choice">offer choice</a> are surfaced through techniques such as personalisation, which are vital to creating accessible XR experiences.</p>
<h2 id="challenges-with-controllers" tabindex="-1">Challenges with controllers</h2>
<p>In both the XRAUR and the Barriers Browser research, there are multiple challenges raised in relation to the controllers, which can cause issues for people with different types of disability. In particular, issues relate to Virtual Reality (VR) controllers; typically, two handheld motion-detecting controllers that come with most VR headsets.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/vr-oculus-controllers.jpg" alt="Two handheld controllers made of black plastic with a grip that leads to a circular band. On the side of the grips are a button and a trigger button. On the face of the grips, are a joystick and more buttons" />
<figcaption>Oculus Touch controllers, image from WikiMedia Commons used under the <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0 International license</a></figcaption>
</figure>
<p>These types of controllers often have a grip with buttons on the back to be used with the index fingers, and on the front are joysticks and buttons which are to be operated using the thumbs. These controllers require a high level of dexterity and motion, plus people need to remember how the controls map to the experience that they are using. This is a high level of complexity when compared to other input methods that people might be using such as head tracking, keyboards, or adaptive controllers.</p>
<p>Handheld controllers require precise input, relying heavily on motion controls and fine motor skills to target and interact with the correct elements or objects. This might not be possible for people who experience tremors or have reduced motion.</p>
<h2 id="accessible-input-methods" tabindex="-1">Accessible input methods</h2>
<p>Instead of designing and developing solely for a VR headset's motion controllers, you should design and develop for multiple different input methods.</p>
<p>Experiences shouldn't be reliant on motion-only controls. If somebody needs to use a keyboard or an adaptive controller, this should be possible. This relates back to one of the Inclusive Design Principles to <a href="https://inclusivedesignprinciples.info/#offer-choice">offer choice</a>:</p>
<blockquote>
<p>Consider providing different ways for people to complete tasks, especially those that are complex or non standard.</p>
</blockquote>
<p>By implementing different ways of interacting with the experience, you are allowing people to choose their preferred way of interacting with XR, which might better suit them and allow them to use the experience.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/xbox-adaptive-controller.jpg" alt="A white rectangular controller with two large buttons positioned alongside a D-pad and home and settings buttons. Various cables are plugged in to the controller which connect external switches and large buttons to the controller." />
<figcaption>Xbox adaptive controller, image from Rosenfeld Media used under the <a href="https://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution (CC BY 2.0) license</a></figcaption>
</figure>
<p>Additionally, we need to carefully consider how people will use these different inputs and design interactions that suit them. Different input methods include keyboard, switches, and adaptive controllers.</p>
<p>In designing for different input methods, ensure that you can support simultaneous input methods too. For example, it might not be possible for someone to use both of the handheld motion controllers that come with a VR headset at the same time. They might be able to hold one motion controller in one hand, but then need to use an adaptive controller with their other hand. People should be given control in order to interact with an experience as they need to, so that they can use it. This relates to the Inclusive Design Principle to <a href="https://inclusivedesignprinciples.info/#give-control">give control</a>:</p>
<blockquote>
<p>Ensure people are in control. People should be able to access and interact with content in their preferred way.</p>
</blockquote>
<p>Using different input methods allows people to access the experience in the way that works best for them.</p>
<p>Finally, you should also make it possible for people to change the input device that they're using without affecting their experience.</p>
<p>Imagine an experience that requires you to hold motion controls up for a long period of time, which could get tiring for anybody. In this case, being able to switch to a different method of input should be possible. The person using the experience shouldn't have to reset everything, or quit out of the application just to do this, the experience should accept the new method of input seamlessly.</p>
<h2 id="provide-accessibility-settings-up-front" tabindex="-1">Provide accessibility settings up front</h2>
<p>Make sure accessibility settings are easily available when joining or starting the experience. If it's someone's first time using the experience, display the different options and settings as the first thing that people interact with. Otherwise, if the accessibility settings are hidden in the experience's menus, people might not be able to navigate to them and use your experience!</p>
<p>Using video games as an example for this, The Last of Us: Part 2, provides people with accessibility options the first time they start the game, so that people can ensure that they are using the experience in the way that works best for them. Similarly, Forza Horizon 5 includes an option to access the accessibility options menu from the start screen, and uses a screen reader on the game's menus to allow people to easily understand the different options available.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/09/11/introduction-to-xr-accessibility/forza-horizon-5-start-screen-with-accessibility-settings.jpeg" alt="Forza Horizon start screen, with two controls, 'Start game' and 'Accessibility/settings', visible underneath the Forza Horizon 5 logo." />
<figcaption>Accessibility options available from the start screen in Forza Horizon 5</figcaption>
</figure>
<h2 id="context-of-use" tabindex="-1">Context of use</h2>
<p>It's important to remember that design decisions will always be affected by the context of use. For example, visually demonstrating how people should interact with objects to complete an action is something that we might want to make really easy and obvious if we're designing an educational experience or a training experience. However, that's going to differ quite a lot if you're creating an entertainment application such as a virtual escape room.</p>
<p>In cases like this, you may want to subvert interactions slightly and make controls look less obvious so that people can try and discover things themselves. This approach might factor into an education experience as well. As people progress and build their skills and capabilities, you might want to gradually remove affordances to make something more difficult, or less guided, to test how much they've learnt.</p>
<p>Context of use relates to the Inclusive Design Principle to <a href="https://inclusivedesignprinciples.info/#consider-situation">consider situation</a>:</p>
<blockquote>
<p>People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.</p>
</blockquote>
<p>We can think about the context of use when providing context sensitive help, and make sure that people are able to get the right level of support and help that they need to use the experience, without this being overbearing, disruptive, or distracting.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>The XR Accessibility User Requirements and the Barriers Browser research are great starting points for considering the needs of disabled people when developing XR experiences, as well as some elements of WCAG.</p>
<p>In general, we need to make sure that we:</p>
<ul>
<li>Support different input methods, so people can choose how they interact with an experience</li>
<li>Provide up front access to accessibility settings when people first use an experience</li>
</ul>
<p>Now that you're aware of general considerations for accessible XR experiences, you can explore the rest of the posts in this series which cover specific groups of disabilities:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2024/09/19/xr-accessibility-for-people-with-seeing-disabilities/">XR Accessibility: for people with seeing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/09/26/xr-accessibility-for-people-with-thinking-disabilities/">XR Accessibility: for people with thinking disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/10/01/xr-accessibility-for-people-with-hearing-disabilities/">XR Accessibility: for people with hearing disabilities</a></li>
<li><a href="https://tetralogical.com/blog/2024/12/09/xr-accessibility-for-people-with-moving-disabilities/">XR Accessibility: for people with moving disabilities</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=SpYH093s3yM">An Illegally Sighted Look at VR Accessibility</a>, Jesse Anderson</li>
<li><a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a>, BBC</li>
<li><a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, TetraLogical</li>
<li><a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>, TetraLogical</li>
<li><a href="https://www.w3.org/TR/xaur/">XR accessibility user requirements</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: labelling text fields with input and label</title>
    <link href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/"/>
    <updated>2024-08-21T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/</id>
    <content type="html"><![CDATA[
        <p>In this post about forms, we explore how to effectively label text fields using <code>&lt;input&gt;</code> and <code>&lt;label&gt;</code> elements to create form inputs that are both accessible and user-friendly.</p>
<p>Forms play a key role in making the web interactive. They enable people to enter and submit data for various purposes such as logging into accounts, making purchases, filling out surveys and so on. There are many ways to make forms more accessible, including <a href="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/">grouping forms with the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements</a>, implementing <a href="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/">form validation and error messages</a> effectively, as well as ensuring that every form field has a clear and accessible label.</p>
<p>This benefits everyone, but in particular:</p>
<ul>
<li>People <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with screen a reader</a> and braille displays who cannot see content and rely on the properly coded form labels to understand the input requirements</li>
<li>People <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> or browser zoom who rely on visible labels adjacent to fields to understand the input requirements</li>
<li>People <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a> who rely on visible labels in order to interact with form inputs</li>
<li>People with cognitive disabilities who rely on clearly visible labels, so they understand input requirements</li>
<li>People with reduced focus or short attention spans who rely on persistent labels, and not placeholder text, so they understand input requirements</li>
</ul>
<p>Form inputs with inaccessible labels result in increased errors and barriers to completing tasks. This wastes time and may discourage people from returning to the form all together. One way to prevent this issue is by providing form labels using the <a href="https://html.spec.whatwg.org/multipage/input.html#the-input-element"><code>&lt;input&gt;</code></a> and <a href="https://html.spec.whatwg.org/multipage/forms.html#the-label-element"><code>&lt;label&gt;</code></a> elements.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/photo-hasmukh-1.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his cricket whites smiling as he stands ready to bat." />
<figcaption><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user">Hasmukh</a>, a blind cricketer and screen reader user, sometimes can't use forms because there are no labels on form inputs. He has to ask for help which is frustrating.</figcaption>
</figure>
<h2 id="the-%3Cinput%3E-element" tabindex="-1">The <code>&lt;input&gt;</code> element</h2>
<p>The <code>&lt;input&gt;</code> element defines where people can input data and what type of data they should enter. It serves as a visual cue by clearly indicating the expected data and programmatic cue for assistive technology users.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Multiple_input_fields.jpg" alt="A collection of different input types, including password, date of birth date picker and a select element for country selection." />
<figcaption>Form fields with text labels of &quot;Password&quot;, &quot;Date of Birth&quot;, and &quot;Country&quot;.</figcaption>
</figure>
<p>The <code>type</code> attribute in HTML is used to specify the type of form input being used within an <code>&lt;input&gt;</code>. These are defined in the markup using the <a href="https://html.spec.whatwg.org/multipage/input.html#attr-input-type"><code>type</code></a> attribute on each <code>&lt;input&gt;</code> element.</p>
<p>Common input types include:</p>
<ul>
<li><code>password</code></li>
<li><code>date</code></li>
<li><code>checkbox</code></li>
<li><code>radio</code> buttons</li>
</ul>
<p>It is important to decide  what type of data the form input is collecting, as this will inform the value of the <code>type</code> attribute for each input. For example, a login would need a field for the email, and a field for the password. The advantage of including the <code>type</code> attribute, is that when the form is submitted, it automatically validates the format, email or password.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></pre>
<p>Below is a list of some additional attributes that can be used:</p>
<ul>
<li><code>required</code> communicates that the field must be populated prior to form submission</li>
<li><code>maxlength</code> determines the maximum number of characters that can populate the field</li>
<li><code>minlength</code> determines the minimum number of characters that can populate the field</li>
<li><code>placeholder</code> determines the contents of the field prior to it being populated. It will act as hint text</li>
</ul>
<h2 id="the-%3Clabel%3E-element" tabindex="-1">The <code>&lt;label&gt;</code> element</h2>
<p>The <code>&lt;input&gt;</code> element describes the required data visually and programmatically, helping people to understand what is needed. A clear and descriptive <code>&lt;label&gt;</code> makes form inputs clear, especially when multiple form inputs of the same type are present in the same form.</p>
<p>For example, when purchasing a gift card for someone, one email field will collect the email address of whoever is purchasing the gift card.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Your_email_field.jpg" alt="Email input field labelled with your email." />
<figcaption>A text field labelled as Your email</figcaption>
</figure>
<p>And one email field will collect the recipient's email address.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Recipient_email-1.jpg" alt="Recipients email input field." />
<figcaption>A text field labelled as Recipients email</figcaption>
</figure>
<p>Clear labelling is crucial here to explain the different purposes of the field, as the <code>&lt;input&gt;</code> <code>type</code> does not change.</p>
<h2 id="a-note-on-placeholder-text" tabindex="-1">A note on placeholder text</h2>
<p>Although this article does not aim to be exhaustive, it’s important to note that using <code>placeholder</code> text as a substitute for a label is inadequate from both usability and accessibility standpoints.</p>
<p>Placeholder text disappears when people begin entering information or change the field selection. This can create challenges for people with cognitive impairments, who may not remember what the form input is for, and make it harder for them to complete the form confidently.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Password_placeholder_text-1.jpg" alt="Text field input with password as placeholder text" />
<figcaption>A text field clearly labelled by the placeholder text, “Password”.</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Form_without_label.jpg" alt="Text field input with no visible label and no placeholder text." />
<figcaption>The same text field once a user has started to enter text, appearing with no visible label.</figcaption>
</figure>
<p>For people that can see, the placement of a <code>&lt;label&gt;</code> near an <code>&lt;input&gt;</code> field helps them understand the connection. For example, if a text field is placed next to &quot;Name&quot; they recognise they are linked. However, to make this relationship accessible to people with visual impairments, it must be explicitly defined in the HTML markup. Without this, individuals with visual impairments may struggle to understand which labels correspond to which form inputs, much like how a sighted person would if the labels and fields were not clearly connected.</p>
<figure>
<img src="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/Text_fields_lack_labels-1.jpg" alt="Two text fields and a checkbox with no visible labels." />
<figcaption>A form field with two text field inputs with no visible label, and a checkbox with no visible label</figcaption>
</figure>
<h2 id="connecting-a-%3Clabel%3E-and-%3Cinput%3E-with-for-and-id" tabindex="-1">Connecting a <code>&lt;label&gt;</code> and <code>&lt;input&gt;</code> with <code>for</code> and <code>id</code></h2>
<p>Just as people that can see would intuitively associate a <code>&lt;label&gt;</code> with an <code>&lt;input&gt;</code> field based on their visual proximity, correct use of the <code>for</code> and <code>id</code> attributes ensures that when the <code>&lt;input&gt;</code> field receives focus, the <code>&lt;label&gt;</code>  becomes part of the form field’s accessible name. This improves the accessibility for people who rely on screen readers and other assistive technologies.</p>
<p>Add an <code>id</code> to the <code>&lt;input&gt;</code> element to uniquely identify the field:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email_login<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></pre>
<p>Set the <code>for</code> attribute on the <code>&lt;label&gt;</code> to match the <code>id</code> of the <code>&lt;input&gt;</code>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email_login<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Email:<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span></code></pre>
<p>When screen reader focus is on the email <code>&lt;input&gt;</code> field, it will be announced as “Email edit blank”, blank due to their being no content within the field.</p>
<h2 id="tips" tabindex="-1">Tips</h2>
<ul>
<li>Select the correct <code>&lt;input&gt;</code> field type using the <code>type</code> attribute</li>
<li>Write clear and descriptive labels for each form field</li>
<li>Don’t rely on placeholder text as the only <code>&lt;label&gt;</code>  for <code>&lt;input&gt;</code> fields</li>
<li>Ensure labels and inputs are properly linked, one way this can be achieved is using <code>for</code> and <code>id</code> attributes</li>
<li>Use standard label positioning to make forms easier for everyone to navigate</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html">1.3.1 Info and Relationships (A)</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html">4.1.2 Name, Role, Value (A)</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/labels-or-instructions">3.3.2 Labels or instructions (A)</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/headings-and-labels">2.4.6 Headings and labels (AA)</a></li>
</ul>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG22/Techniques/general/G131">Providing descriptive labels</a>, W3C</li>
<li><a href="https://www.w3.org/WAI/tutorials/forms/instructions/">W3C Form instructions</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Techniques/general/G162">WCAG 2.2 Techniques: Positioning labels to maximize predictability of relationships</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label">The Label element</a>, MDN web docs</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input">The Input element</a>, MDN web docs</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Design patterns and WCAG</title>
    <link href="https://tetralogical.com/blog/2024/08/09/design-patterns-wcag/"/>
    <updated>2024-08-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/08/09/design-patterns-wcag/</id>
    <content type="html"><![CDATA[
        <p>The <a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide (APG)</a> contains an extensive range of design patterns aimed at helping developers to create accessible web experiences using <a href="https://www.w3.org/TR/wai-aria-1.2/">WAI-ARIA</a>. However, while we encourage web authors to follow these design patterns, a common misconception is that their usage is a prerequisite for conformance.</p>
<p>This is not the case.</p>
<h2 id="overview" tabindex="-1">Overview</h2>
<p>Design patterns have a long history in software development. They provide practical solutions to common problems that occur when interacting with a user interface. For developers, design patterns help contextualise how low level, and often complex, code can be turned into something meaningful and understandable. For users, design patterns help foster familiarity and <a href="https://inclusivedesignprinciples.info/#be-consistent">consistency</a>.</p>
<p>The <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">APG design patterns</a> are often used as a basis for creating accessible user interfaces, and with good reason. They cover different types of user interface components from basic buttons through to carousels and complex grids. Each design pattern includes information about:</p>
<ul>
<li>How WAI-ARIA roles, states, and properties should be applied</li>
<li>How keyboard accessibility should be supported, including suggested keystrokes</li>
</ul>
<p>Additionally, many of the patterns include working examples and code samples that web authors can then adapt to their own specific needs. It's no wonder that widgets built using these design patterns tend to have strong support for accessibility.</p>
<p>However, design patterns are not rules or regulations. Good design patterns can be built upon or modified to meet the changing needs of people and technologies. Design patterns should therefore be treated as best practice guidelines for resolving current problems rather than immovable decrees.</p>
<p>Even so, we are often asked the following question: must my implementation follow the related APG design pattern, or any other design pattern, to conform to the <a href="https://www.w3.org/TR/WCAG22">Web Content Accessibility Guidelines (WCAG)</a>?</p>
<h2 id="normative-and-informative-requirements-in-wcag" tabindex="-1">Normative and informative requirements in WCAG</h2>
<p>WCAG, like most specifications, uses the terms <a href="https://www.w3.org/TR/WCAG22/#dfn-normative">normative</a> and <a href="https://www.w3.org/TR/WCAG22/#dfn-informative">informative</a> to distinguish between the parts of the specification that must be met in order to conform (normative) and those that are advisory in nature and don't need to be met in order to conform (informative).</p>
<p>In WCAG, the principles, guidelines, and success criteria are normative, while everything else - including, but not limited to, the techniques and understanding documents - is informative.</p>
<p>While this distinction appears obvious, the terminology can lead to misunderstandings, particularly in terms of whether an approach &quot;passes&quot; or &quot;fails&quot; this success criterion.</p>
<h2 id="design-patterns-are-informative" tabindex="-1">Design patterns are informative</h2>
<p>The APG's design patterns, like all design patterns and even WCAG's techniques themselves, are informative rather than normative. While it is important to follow common conventions like those built into these design patterns, you are free to produce your own design patterns as long as the resultant implementation meets the related success criteria when implemented.</p>
<p>For example, let's say you are implementing a tabbed navigation widget, and know that you need to ensure it is keyboard accessible. You therefore decide to implement the widget to follow the <a href="https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/">APG's tabs design pattern</a>. You have implemented it so that, when the widget has focus, tabs can be accessed and selected by pressing the <kbd>Left</kbd> and <kbd>Right</kbd> arrow keys.</p>
<p>You then find out that a colleague has also implemented a tabbed navigation widget. However, it doesn't use the above keyboard interaction pattern. Although keyboard accessible, a user must press the <kbd>Tab</kbd> and <kbd>Shift</kbd> + <kbd>Tab</kbd> keys to navigate through the tablist, and separately press the <kbd>Enter</kbd> key or the <kbd>Spacebar</kbd> to select / activate the currently focused tab in order to display its related contents.</p>
<p>Does this mean that your implementation passes <a href="https://www.w3.org/TR/WCAG22/#keyboard">WCAG Success Criterion 2.1.1 Keyboard (Level A)</a>, but your colleague's implementation does not?</p>
<p>No.</p>
<p>Both approaches conform to the above success criterion. As I discussed in my earlier blog post on <a href="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/">keyboard accessibility myths and WCAG</a>, WCAG is primarily concerned with high level outcomes. Here, the tabbed navigation widget will meet this success criterion if it can be operated using the keyboard alone. This is the case in both of the above scenarios. There are no normative requirements for you to support specific keystrokes or follow any particular convention.</p>
<h2 id="caveats" tabindex="-1">Caveats</h2>
<p>Of course, conformance should never be viewed in a vacuum. Indeed, there are instances where you <em>should</em> follow design patterns, and indeed we often encourage web authors to follow design patterns like the APG's, even though it is not a WCAG requirement.</p>
<p>For instance, certain screen readers will often automatically announce the keystrokes required to interact with certain types of controls, based on generally accepted interaction methods. On encountering a combobox, JAWS will inform the user that they can change the current selection using the arrow keys. If your custom combobox relies on a different set of keystrokes, such as the <kbd>Tab</kbd> and <kbd>Shift</kbd> + <kbd>Tab</kbd> keys, your combobox will normatively meet the related success criterion, but may be confusing for people who use screen readers who discover that the arrow keys do not work as expected.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Normatively meeting WCAG success criteria is the minimum required to ensure your site works for people with disabilities. You can achieve this without following best practice guides like the APG design patterns.</p>
<p>However, following those design patterns goes beyond conformance, and benefits real people. Indeed, being consistent and borrowing from well-established design patterns is a key <a href="https://inclusivedesignprinciples.info/">inclusive design principle</a>, as people are more likely to understand how to operate a control when it supports familiar conventions for interaction.</p>
<p>Therefore, even though design patterns are not prerequisites for conformance, we strongly recommend you use them as the basis for designing and implementing an accessible user interface.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.w3.org/WAI/ARIA/apg/about/introduction">Introduction to the ARIA Authoring Practices Guide</a>, W3C Web Accessibility Initiative (WAI)</li>
<li><a href="https://hidde.blog/whats-normative-in-wcag/">What is &quot;normative&quot; in WCAG?</a>, Hidde de Vries</li>
<li><a href="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/">Keyboard accessibility myths and WCAG</a>, Graeme Coleman</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Does WCAG 2.2 apply to native apps</title>
    <link href="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/"/>
    <updated>2024-07-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/07/18/WCAG2ICT/</id>
    <content type="html"><![CDATA[
        <p>A big question for many organisations is if WCAG 2.2 applies to native apps. In this post we explore what does and doesn't apply.</p>
<p>With enforcement of the <a href="https://ec.europa.eu/social/main.jsp?catId=1202">European Accessibility Act</a> (EAA) due in 2025, many organisations that are economically active in Europe are working to ensure their apps are accessible. The timely update by the <a href="https://www.w3.org/">W3C</a> to the <a href="https://www.w3.org/TR/wcag2ict-22/">Guidance on Applying WCAG 2 to Non-Web Information and Communications Technologies (WCAG2ICT)</a> will help in this endeavour.</p>
<p>Does WCAG 2.2 apply to native apps? Yes, <em>mostly</em>.</p>
<p>How and where it applies (informatively) is detailed in <a href="https://www.w3.org/TR/wcag2ict-22/">Guidance on Applying WCAG 2 to Non-Web Information and Communications Technologies (WCAG2ICT)</a></p>
<h2 id="note-about-wcag2ict" tabindex="-1">Note about WCAG2ICT</h2>
<p><a href="https://www.w3.org/TR/wcag2ict-22/#guidance-in-this-document">WCAG2ICT</a> provides non-normative guidance on how to apply web accessibility guidelines (WCAG) to non-web technologies:</p>
<blockquote>
<p>This document (WCAG2ICT) provides <a href="https://www.w3.org/TR/WCAG22/#dfn-informative">informative</a> guidance (guidance that is not <a href="https://www.w3.org/TR/WCAG22/#dfn-normative">normative</a> and that does not set requirements) with regard to the interpretation and application of Web Content Accessibility Guidelines (WCAG) to non-web information and communications technologies (ICT). This document is a <a href="https://www.w3.org/2021/Process-20211102/#WGNote">Working Group Note</a> (in contrast to WCAG 2.0, WCAG 2.1, and WCAG 2.2, which are W3C Recommendations). Specifically, this document provides informative guidance on applying WCAG 2.0, 2.1, and 2.2 Level A and AA success criteria to non-web ICT, specifically to non-web documents and software.</p>
</blockquote>
<h2 id="mapping-wcag" tabindex="-1">Mapping WCAG</h2>
<p>Below is what I think is the pertinent information for Level A/AA criteria in an abbreviated form and includes links to <a href="https://appt.org/en/">APPT</a> solutions for:</p>
<ul>
<li>Android</li>
<li>Jetpack Compose</li>
<li>iOS</li>
<li>SwiftUI</li>
<li>Flutter</li>
<li>React Native</li>
<li>.NET MAUI</li>
<li>Xamarin</li>
</ul>
<h3 id="wcag-level-a-for-apps" tabindex="-1">WCAG Level A for apps</h3>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Criteria & Solutions</th>
<th>Applies</th>
<th>Remarks and Explanations</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#text-equiv-all">1.1.1 Non-text Content</a>
, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-1-1#solution">Implementation solutions for 1.1.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/non-text-content#intent">Intent from Understanding Success Criterion 1.1.1</a>
<p><a href="https://w3c.github.io/wcag2ict/#h-note-31">Note 1</a></p>
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#media-equiv-av-only-alt">1.2.1 Audio-only and Video-only (Prerecorded)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-2-1#solution">Implementation solutions for 1.2.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/audio-only-and-video-only-prerecorded#intent">Intent from Understanding Success Criterion 1.2.1</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-33">Note 1</a></p>
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#media-equiv-captions">1.2.2 Captions (Prerecorded)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-2-2#solution">Implementation solutions for 1.2.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/captions-prerecorded#intent">Intent from Understanding Success Criterion 1.2.2</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-33">Note 1</a></p>
<blockquote>The WCAG 2 definition of “<a href="https://www.w3.org/TR/WCAG22/#dfn-captions">captions</a>” notes that "in some countries, captions are called subtitles...”</blockquote>
</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#media-equiv-audio-desc">1.2.3 Audio Description or Media Alternative (Prerecorded)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-2-3#solution">Implementation solutions for 1.2.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/audio-description-or-media-alternative-prerecorded#intent">Intent from Understanding Success Criterion 1.2.3</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-36">Note 1</a>:</p>
<blockquote>The WCAG 2 definition of “<a href="https://www.w3.org/TR/WCAG22/#dfn-audio-descriptions">audio description</a>” says that "audio description" is "also called ‘video description’ and ‘descriptive narration’”.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-37">Note 2</a>:
<blockquote>Secondary or alternate audio tracks are commonly used for this purpose.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#content-structure-separation-programmatic">1.3.1 Info and Relationships</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-3-1#solution">Implementation solutions for 1.3.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships#intent">Intent from Understanding Success Criterion 1.3.1</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-36">Note 1</a>:</p>
<blockquote>In software, programmatic determinability is best achieved through the use of <a href="https://w3c.github.io/wcag2ict/#accessibility-services-of-platform-software">accessibility services provided by platform software</a> to enable interoperability between software and assistive technologies and accessibility features of software.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#content-structure-separation-sequence">1.3.2 Meaningful Sequence</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-3-2#solution">Implementation solutions for 1.3.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/meaningful-sequence#intent">Intent from Understanding Success Criterion 1.3.2</a>.
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#content-structure-separation-understanding">1.3.3 Sensory Characteristics</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-3-3#solution">Implementation solutions for 1.3.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/sensory-characteristics#intent">Intent from Understanding Success Criterion 1.3.3</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-without-color">1.4.1 Use of Color</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-1#solution">Implementation solutions for 1.4.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/use-of-color#intent">Intent from Understanding Success Criterion 1.4.1</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-dis-audio">1.4.2 Audio Control</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-2#solution">Implementation solutions for 1.4.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/audio-control#intent">Intent from Understanding Success Criterion 1.4.2</a>, replacing "on a Web page" with "in a non-web document or software”, "any content" with "any part of a non-web document or software”, "whole page" with "whole document or software”, and "on the Web page" with "in the document or software”; and removing "See Conformance Requirement 5: Non-Interference”</blockquote>
</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#keyboard-operation-keyboard-operable">2.1.1 Keyboard</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-1-1#solution">Implementation solutions for 2.1.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/keyboard#intent">Intent from Understanding Success Criterion 2.1.1</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-75">Note 1</a>:</p>
<blockquote>Keyboard interface does not refer to a physical device but to the interface between the software and any keyboard or keyboard substitute (i.e., an interface where the software accepts text or other keystroke input)...</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-76">Note 2</a>:
<blockquote>This success criterion does not imply that software always needs to directly support a keyboard or "keyboard interface”. Nor does it imply that software always needs to provide a <a href="https://w3c.github.io/wcag2ict/#virtual-keyboard">virtual keyboard</a>.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#keyboard-operation-trapping">2.1.2 No Keyboard Trap</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-1-2#solution">Implementation solutions for 2.1.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/no-keyboard-trap#intent">Intent from Understanding Success Criterion 2.1.2</a>, replacing "page" with "non-web document or software" and "on the Web page" with "in the non-web document or software"; and removing "See Conformance Requirement 5: Non-Interference”.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-78">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-79">Note 2, </a> <a href="https://w3c.github.io/wcag2ict/#h-note-80">Note 3</a> and <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#character-key-shortcuts">2.1.4 Character Key Shortcuts</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-1-4#solution">Implementation solutions for 2.1.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/character-key-shortcuts.html">Intent from Understanding Success Criterion 2.1.4</a>
<p><a href="https://w3c.github.io/wcag2ict/#h-note-82">Note 1</a>:</p>
<blockquote>The WCAG2ICT interpretation is that a long press of a key (2 seconds or more) and other accessibility features provided by the platform do not meet the WCAG definition of a keyboard shortcut. See the <a href="https://w3c.github.io/wcag2ict/#dfn-keyboard-shortcuts">keyboard shortcut</a> definition for more details.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#time-limits-required-behaviors">2.2.1 Timing Adjustable</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-2-1#solution">Implementation solutions for 2.2.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in Intent from <a href="https://www.w3.org/WAI/WCAG22/Understanding/timing-adjustable#intent">Understanding Success Criterion 2.2.1</a>, replacing "the content" with "non-web documents or software”.</blockquote>
</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#time-limits-pause">2.2.2 Pause, Stop, Hide</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-2-2#solution">Implementation solutions for 2.2.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide#intent">Intent from Understanding Success Criterion 2.2.2</a>, replacing "page" and "Web page" with "non-web documents and software" and removing "See Conformance Requirement 5: Non-Interference" in Note 2 of the success criterion.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-85">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-86">Note 2, </a> <a href="https://w3c.github.io/wcag2ict/#h-note-87">Note 3</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-88">Note 4</a> and <a href="https://w3c.github.io/wcag2ict/#h-note-89">Note 5</a></td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#seizure-does-not-violate">2.3.1 Three Flashes or Below Threshold</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-3-1#solution">Implementation solutions for 2.3.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/three-flashes-or-below-threshold#intent">Intent from Understanding Success Criterion 2.3.1</a>, replacing "Web pages" with "non-web documents or software", "the whole page" with "the whole non-web document or software”, and "the Web page" with "the non-web document or software”; and removing "See Conformance Requirement 5: Non-Interference”.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#h-note-90">Note</a></td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-skip">2.4.1 Bypass Blocks</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-1#solution">Implementation solutions for 2.4.1</a></td>
<td><img class="alignleft" src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/n-a.png" alt="not within an app" width="24" height="24" /></td>
<td><strong>This does not apply within an app</strong>, but <em>may</em> apply across a set of <em>related</em> apps.
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-91">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-92">Note 2, </a> <a href="https://w3c.github.io/wcag2ict/#h-note-93">Note 3</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-94">Note 4</a> and <a href="https://w3c.github.io/wcag2ict/#h-note-95">Note 5</a></p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-title">2.4.2 Page Titled</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-2#solution">Implementation solutions for 2.4.2</a></td>
<td><img class="alignleft" src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/n-a.png" alt="not within an app" width="24" height="24" /></td>
<td><a href="https://w3c.github.io/wcag2ict/#applying-sc-2-4-2-page-titled-to-non-web-documents-and-software">Appears to apply to whole applications</a> rather than individual screens. Although the, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-2#solution">implementation advice available</a> appears to provide individual screen level methods.
<p>Also see <a href="https://github.com/w3c/wcag2ict/issues/437">Issue #437</a> and Mobile Content Accessibility Guidelines (MCAG) <a href="https://getevinced.github.io/mcag/#screen-titled">3.1.1. Screen Titled</a></p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-focus-order">2.4.3 Focus Order</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-3#solution">Implementation solutions for 2.4.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-order#intent">Intent from Understanding Success Criterion 2.4.3</a> replacing "a Web page" with "non-web documents or software”.</blockquote>
</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-refs">2.4.4 Link Purpose (In Context)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-4#solution">Implementation solutions for 2.4.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote>This applies directly as written and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context#intent">Intent from Understanding Success Criterion 2.4.4</a>.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-98">Note</a>:
<blockquote>In software, a "link" is any text string or image in the user interface outside a user interface control that behaves like a hypertext link. <strong>This does not include general user interface controls or buttons. (An OK button, for example, would not be a link.)</strong></blockquote>
</td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#pointer-gestures">2.5.1 Pointer Gestures</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-1#solution">Implementation solutions for 2.5.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/pointer-gestures#intent">Intent from Understanding Success Criterion 2.5.1</a>
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-107">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-108">Note 2</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-109">Note 3</a> and <a href="https://w3c.github.io/wcag2ict/#h-note-110">Note 4</a></p></td><p></p>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#pointer-cancellation">2.5.2 Pointer Cancellation</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-2#solution">Implementation solutions for 2.5.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/pointer-cancellation.html#intent">Intent from Understanding Success Criterion 2.5.2</a>, making changes to the notes for non-web documents by replacing "web content" with "content", for non-web software applications by replacing "web content that interprets" with "user agents and other software applications that interpret" and "user agent" with "underlying platform software", and for non-web platform software by replacing "web content" with "platform software".</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-111">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-112">Note 2, </a> <a href="https://w3c.github.io/wcag2ict/#h-note-113">Note 3</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-114">Note 4</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-115">Note 5</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-116">Note 6</a> and <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#label-in-name">2.5.3 Label in Name</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-3#solution">Implementation solutions for 2.5.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/label-in-name.html#intent">Intent from Understanding Success Criterion 2.5.3</a>.</td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#motion-actuation">2.5.4 Motion Actuation</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-4#solution">Implementation solutions for 2.5.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/motion-actuation.html#intent">Intent from Understanding Success Criterion 2.5.4</a>.
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#meaning-doc-lang-id">3.1.1 Language of Page</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-1-1#solution">Implementation solutions for 3.1.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>Applies to application as a whole rather than individual screens</strong>
<p><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/language-of-page#intent">Intent from Understanding Success Criterion 3.1.1</a> <strong>replacing &quot;each web page&quot; with &quot;non-web documents or software”</strong>.</p>
<p><a href="https://w3c.github.io/wcag2ict/#h-note-128">Note 1</a>:</p>
<blockquote>Where software platforms provide a "locale / language" setting, applications that use that setting and render their interface in that "locale / language" would comply with this success criterion. Applications that do not use the platform "locale / language" setting but instead use an <a href="https://w3c.github.io/wcag2ict/#dfn-accessibility-supported">accessibility-supported</a> method for exposing the human language of the <a href="https://w3c.github.io/wcag2ict/#software">software</a> would also comply with this success criterion. Applications implemented in technologies where <a href="https://w3c.github.io/wcag2ict/#dfn-assistive-technologies">assistive technologies</a> cannot determine the human language and that do not support the platform "locale / language" setting may not be able to meet this success criterion in that locale / language.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#consistent-behavior-receive-focus">3.2.1 On Focus</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-2-1#solution">Implementation solutions for 3.2.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/on-focus#intent">Intent from Understanding Success Criterion 3.2.1</a>
<p>See also, the <a href="https://w3c.github.io/wcag2ict/#h-note-132">Note</a></p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#consistent-behavior-unpredictable-change">3.2.2 On Input</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-2-2#solution">Implementation solutions for 3.2.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/on-input#intent">Intent from Understanding Success Criterion 3.2.2</a></td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#consistent-help">3.2.6 Consistent Help</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-2-6#solution">Implementation solutions for 3.2.6</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong> and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/consistent-help#intent">Intent from Understanding Success Criterion 3.2.6</a>, replacing "Web page(s)" and "page(s)" with "non-web document(s) or software program(s)", "set of Web pages" with "set of non-web documents or set of software programs", "page content" with "content", "on the page" with "in the non-web document or software", "page is serialized" with "non-web document or software content is serialized", "different page" with "different non-web document, software, or Web page", and "page variation" with "content layout variation".</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-139">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-140">Note 2</a> and <a href="https://w3c.github.io/wcag2ict/#h-note-141">Note 3</a></td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#minimize-error-identified">3.3.1 Error Identification</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-1#solution">Implementation solutions for 3.3.1</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/error-identification#intent">Intent from Understanding Success Criterion 3.3.1</a>
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#minimize-error-cues">3.3.2 Labels or Instructions</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-2#solution">Implementation solutions for 3.3.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/labels-or-instructions#intent">Intent from Understanding Success Criterion 3.3.2</a>.</td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#redundant-entry">3.3.7 Redundant Entry</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-7#solution">Implementation solutions for 3.3.7</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/redundant-entry#intent">Intent from Understanding Success Criterion 3.3.7</a>.</td>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#ensure-compat-parses">4.1.1 Parsing</a></td>
<td>not applicable</td>
<td>&nbsp;
<p>2023 errata update indicates this criterion is always supported. See the <a href="https://www.w3.org/WAI/WCAG20/errata/#editorial">WCAG 2.0 Editorial Errata</a> and the <a href="https://www.w3.org/WAI/WCAG21/errata/#editorial">WCAG 2.1 </a><a href="https://www.w3.org/WAI/WCAG21/errata/#editorial">Editorial Errata</a></p></td><p></p>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#ensure-compat-rsv">4.1.2 Name, Role, Value</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-4-1-2#solution">Implementation solutions for 4.1.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td>
<blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/name-role-value#intent">Intent from Understanding Success Criterion 4.1.2</a>, replacing the note with: "This success criterion is primarily for software developers who develop or use custom user interface components. For example, standard user interface components on most accessibility-supported platforms already meet this success criterion when used according to specification.”.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-152">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-153">Note 2 </a>and <a href="https://w3c.github.io/wcag2ict/#h-note-154">Note 3</a>
<p>See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</p></td><p></p>
</tr>
</tbody>
</table>
</div>
<h3 id="wcag-level-aa-for-apps" tabindex="-1">WCAG Level AA for apps</h3>
<div class="table-wrapper">
<table><thead>
<tr><th width="180">Criteria & Solutions</th><th>Applies</th><th>Remarks and Explanations</th></tr></thead><tbody>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#media-equiv-real-time-captions">1.2.4 Captions (Live)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-2-4#solution">Implementation reference for 1.2.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/captions-live#intent">Intent from Understanding Success Criterion 1.2.4</a>.
<p>See also the <a href="https://w3c.github.io/wcag2ict/#h-note-39">Note</a>.</p></td></tr><p></p>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#media-equiv-audio-desc-only">1.2.5 Audio Description (Prerecorded)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-2-5#solution">Implementation solutions for 1.25</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/audio-description-prerecorded#intent">Intent from Understanding Success Criterion 1.2.5</a>.
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-40">Note 1</a> and <a href="https://w3c.github.io/wcag2ict/#h-note-40">Note 2</a>.</p></td></tr><p></p>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#orientation">1.3.4 Orientation</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-3-4#solution">Implementation solutions for 1.34</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/orientation#intent">Intent from Understanding Success Criterion 1.3.4</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-45">Note 1</a>:</p>
<blockquote>Content that is only used on hardware with a fixed display orientation or that has no sensor to detect or change the orientation is covered under the essential exception and does not need to provide support for orientation changes.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#identify-input-purpose">1.3.5 Identify Input Purpose</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-3-5#solution">Implementation solutions for 1.35</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/identify-input-purpose.html#intent">Intent from Understanding Success Criterion 1.3.5</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-47">Note 1</a>:</p><blockquote><a href="https://w3c.github.io/wcag2ict/#software">Non-web software</a> and <a href="https://w3c.github.io/wcag2ict/#document">non-web document</a> technologies that do not provide attributes that support identifying the expected meaning for the form input data are not in scope for this success criterion.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-48">Note 2</a>:<blockquote>For non-web software and non-web documents that present input fields, the terms for the input purposes would be the equivalent terms to those listed in the WCAG 2 section <a href="https://www.w3.org/TR/WCAG22/#input-purposes">Input Purposes for User Interface Components</a> that are supported by the technology used.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr><p></p>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast">1.4.3 Contrast (Minimum)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-3#solution">Implementation solutions for 1.43</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum#intent">Intent from Understanding Success Criterion 1.4.3</a>.
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-scale">1.4.4 Resize text</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-4#solution">Implementation solutions for 1.4.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/resize-text#intent">Intent from Understanding Success Criterion 1.4.4</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-53">Note 1</a>:</p><blockquote>The Intent section refers to the ability to allow users to enlarge the text on screen at least up to 200% without needing to use <a href="https://w3c.github.io/wcag2ict/#dfn-assistive-technologies">assistive technologies</a>. This means that the application provides some means for enlarging the text 200% (zoom or otherwise) without loss of <a href="https://w3c.github.io/wcag2ict/#content-on-and-off-the-web">content</a> or functionality, or that the application works with the platform accessibility features to meet this success criterion.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-54">Note 2</a>:<blockquote>For non-web software, there may be cases where the platform does not scale all text up to 200%. In such cases, authors are encouraged to meet user needs by scaling text to the extent supported by user settings in the platform.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr><p></p>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-text-presentation">1.4.5 Images of Text</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-5#solution">Implementation solutions for 1.4.5</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/images-of-text#intent">Intent from Understanding Success Criterion 1.4.5</a>.
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#reflow">1.4.10 Reflow</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-10#solution">Implementation solutions for 1.4.10</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/reflow.html#intent">Intent from Understanding Success Criterion 1.4.10</a>, replacing “web content” with “content”.<blockquote>Editors Note:<span style="font-size: inherit;">The WCAG2ICT Task Force made changes to give additional guidance around how 1.4.10 Reflow should be applied to non-web software in response to public comments.</span></blockquote>Refer directly to the WCAG2ICT documentation: <a href="https://w3c.github.io/wcag2ict/#applying-sc-1-4-10-reflow-to-non-web-documents-and-software">Applying SC 1.4.10 Reflow to Non-Web Documents and Software</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#non-text-contrast">1.4.11 Non-text Contrast</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-11#solution">Implementation solutions for 1.4.11</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong> and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html#intent">Intent from Understanding Success Criterion 1.4.11</a>, replacing "user agent" with "user agent or platform software.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-66">Note 1</a>:</p><blockquote>An example of appearance modification by the author is content that sets the visual style of a control, such as a color or border, to differ from the default style for the user agent or platform.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr><p></p>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#text-spacing">1.4.12 Text Spacing</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-12#solution">Implementation solutions for 1.4.12</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong> and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/text-spacing.html#intent">Intent from Understanding Success Criterion 1.4.12</a>.
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-68">Note 1</a>:</p>
<blockquote><strong>This success criterion only applies to <a href="https://w3c.github.io/wcag2ict/#document">non-web documents</a> and <a href="https://w3c.github.io/wcag2ict/#software">software</a> that are implemented using markup languages</strong> and allow the user to modify these text spacing properties.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-69">Note 2</a>:<blockquote>"Content implemented using markup languages" includes parts of software that use markup internally to define a user interface. Examples of markup languages that are used internally to define a software user interface include but are not limited to: HTML (e.g., in <a href="https://www.electronjs.org/">Electron</a> applications or iOS application Web views), XAML, XML (e.g., in Android application layouts), and XUL.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-70">Note 3</a>:<blockquote>There are several mechanisms that allow users to modify text spacing properties of content implemented in markup languages. For example, an eBook technology may have an available user agent that allows users to override document text styles, or a software application may provide a "user style sheet" facility to modify the appearance of the software's own user interface. This success criterion does not mean that documents and software need to implement their own mechanisms to allow users to set text spacing; however, when such a mechanism is available, the success criterion requires that content respond appropriately to it.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus">1.4.13 Content on Hover or Focus</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-1-4-13#solution">Implementation solutions for 1.4.13</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/content-on-hover-or-focus.html">Intent from Understanding Success Criterion 1.4.13</a>, replacing "user agent" with "user agent or platform software", "browser tooltips" with "tooltips", and "the HTML title attribute" with "user interface object attributes".</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-72">Note 1</a>:<blockquote>Examples of additional content controlled by the <ins>[user agent or platform software]</ins> include <ins>[tooltips]</ins> created through use of <ins>[user interface object attributes]</ins>.</blockquote></td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-mult-loc">2.4.5 Multiple Ways</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/n-a.png" alt="not within an app" /></td>
<td><strong>This applies directly as written</strong> and described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/multiple-ways#intent">Intent from Understanding Success Criterion 2.4.5</a>, replacing “set of Web pages” with “set of non-web documents” and <strong>“set of software programs”.</strong>
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-99">Note 1</a>:</p><blockquote>
See <a href="https://w3c.github.io/wcag2ict/#set-of-documents">set of documents</a> and <a href="https://w3c.github.io/wcag2ict/#set-of-software-programs">set of software programs</a> in the Key Terms section of the Introduction to determine when a group of documents or software is considered a set for this success criterion. (Sets of software that meet this definition appear to be extremely rare.) Those implementing this document (WCAG2ICT) will need to consider if this success criterion is appropriate to apply to non-web documents and software.
See the <a href="https://w3c.github.io/wcag2ict/#interpretation-of-web-terminology-in-a-non-web-context">Interpretation of Web Terminology in a Non-web Context</a>.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-100">Note 2</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-101">Note 3</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-102">Note 4</a>, and <a href="https://w3c.github.io/wcag2ict/#h-note-103">Note 5</a>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr><p></p>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-descriptive">2.4.6 Headings and Labels</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-6#solution">Implementation solutions for 2.4.6</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/headings-and-labels#intent">Intent from Understanding Success Criterion 2.4.6</a>.
<p><a href="https://w3c.github.io/wcag2ict/#h-note-105">Note</a>:</p>
<blockquote>In <a href="https://w3c.github.io/wcag2ict/#software">software</a>, headings and labels are used to describe sections of <a href="https://w3c.github.io/wcag2ict/#content-on-and-off-the-web">content</a> and controls respectively. In some cases it may be unclear whether a piece of static text is a heading or a label. But whether treated as a label or a heading, the requirement is the same: that if they are present they describe the topic or purpose of the item(s) they are associated with.</blockquote></td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#navigation-mechanisms-focus-visible">2.4.7 Focus Visible</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-7#solution">Implementation solutions for 2.4.7</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-visible#intent">Intent from Understanding Success Criterion 2.4.7</a>.
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#focus-not-obscured-minimum">2.4.11 Focus Not Obscured (Minimum)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-4-11#solution">Implementation solutions for 2.4.11</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum#intent">Intent from Understanding Success Criterion 2.4.11</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#dragging-movements">2.5.7 Dragging Movements</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-7#solution">Implementation solutions for 2.5.7</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html#intent">Intent from Understanding Success Criterion 2.5.7</a>, replacing "user agent" with "user agent or platform software", and making changes to the notes for non-web documents by replacing “web content” with "content", for non-web software applications by replacing "web content that interprets" with "user agents and other software applications that interpret" and "user agent" with "underlying platform software", and for non-web platform software by replacing "web content" with "platform software".</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-119">Note 1</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-120">Note 2</a>, <a href="https://w3c.github.io/wcag2ict/#h-note-121">Note 3</a>, and <a href="https://w3c.github.io/wcag2ict/#h-note-122">Note 4</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#target-size-minimum">2.5.8 Target Size (Minimum)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-2-5-8#solution">Implementation solutions for 2.5.8</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html#intent">Intent from Understanding Success Criterion 2.5.8</a>, replacing "user agent" with "user agent or platform software" and "on the same page" with "in the same non-web document or software".</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-123">Note 1</a>:<blockquote>Targets that allow for values to be selected spatially based on position within the target are considered one target for the purpose of the success criterion. Examples include sliders with granular values, color pickers displaying a gradient of colors, or editable areas where you position the cursor.</blockquote><a href="https://w3c.github.io/wcag2ict/#h-note-124">Note 2</a>:<blockquote>For inline targets the line-height should be interpreted as perpendicular to the flow of text. For example, in a language displayed vertically, the line-height would be horizontal.</blockquote><a href="https://w3c.github.io/wcag2ict/#h-note-124">Note 3</a>:<blockquote>In technologies where CSS is not used, the definition of 'CSS pixel' applies as described in <a href="https://w3c.github.io/wcag2ict/#applying-css-pixel-to-non-web-documents-and-software">Applying “CSS pixel” to Non-Web Documents and Software</a>.</blockquote></td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#meaning-other-lang-id">3.1.2 Language of Parts</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-1-2#solution">Implementation solutions for 3.1.2</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/language-of-parts#intent">Intent from Understanding Success Criterion 3.1.2</a> replacing “content” with “non-web document or software”.
<p>See also <a href="https://w3c.github.io/wcag2ict/#h-note-130">Note 1</a>:</p><blockquote>There are some <a href="https://w3c.github.io/wcag2ict/#software">software</a> and <a href="https://w3c.github.io/wcag2ict/#document">non-web document</a> technologies where there is no assistive technology supported method for marking the language for the different passages or phrases in the non-web document or software, and it would not be possible to meet this success criterion with those technologies.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr><p></p>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#consistent-behavior-consistent-locations">3.2.3 Consistent Navigation</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/n-a.png" alt="not within an app" /></td>
<td><blockquote><strong>This applies directly as written</strong> and described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/consistent-navigation#intent">Intent from Understanding Success Criterion 3.2.3</a>, replacing “set of Web pages” with “set of non-web documents” and “set of software programs”.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-133">Note 1</a>:<blockquote>
See <a href="https://w3c.github.io/wcag2ict/#set-of-documents">set of documents</a> and <a href="https://w3c.github.io/wcag2ict/#set-of-software-programs">set of software programs</a> in the Key Terms section of the Introduction to determine when a group of documents or software programs is considered a set for this success criterion. (Sets of software that meet this definition appear to be extremely rare.) Those implementing this document (WCAG2ICT) will need to consider if this success criterion is appropriate to apply to non-web documents and software.
See the <a href="https://w3c.github.io/wcag2ict/#interpretation-of-web-terminology-in-a-non-web-context">Interpretation of Web Terminology in a Non-web Context</a>.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-134">Note 2.</a>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#consistent-behavior-consistent-functionality">3.2.4 Consistent Identification</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/n-a.png" alt="not within an app" /></td>
<td><blockquote><strong>This applies directly as written</strong> and described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/consistent-identification#intent">Intent from Understanding Success Criterion 3.2.4</a>, replacing “set of web pages” with “set of non-web documents” and “set of software programs”.</blockquote>
See also <a href="https://w3c.github.io/wcag2ict/#h-note-136">Note 1</a>:<blockquote>
See <a href="https://w3c.github.io/wcag2ict/#set-of-documents">set of documents</a> and <a href="https://w3c.github.io/wcag2ict/#set-of-software-programs">set of software programs</a> in the Key Terms section of the Introduction to determine when a group of documents or software programs is considered a set for this success criterion. (Sets of software that meet this definition appear to be extremely rare.) Those implementing this document (WCAG2ICT) will need to consider if this success criterion is appropriate to apply to non-web documents and software.
See the <a href="https://w3c.github.io/wcag2ict/#interpretation-of-web-terminology-in-a-non-web-context">Interpretation of Web Terminology in a Non-web Context</a>.</blockquote> and <a href="https://w3c.github.io/wcag2ict/#h-note-137">Note 2</a></td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#minimize-error-suggestions">3.3.3 Error Suggestion</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-3#solution">Implementation solutions for 3.3.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/error-suggestion#intent">Intent from Understanding Success Criterion 3.3.3</a>.</td></tr>
<tr>
<td><a href="http://www.w3.org/TR/WCAG20/#minimize-error-reversible">3.3.4 Error Prevention (Legal, Financial, Data)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-4#solution">Implementation solutions for 3.3.4</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data#intent">Intent from Understanding Success Criterion 3.3.4</a> replacing “web pages” with “non-web documents or software”.</blockquote></td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG22/#accessible-authentication-minimum">3.3.8 Accessible Authentication (Minimum)</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-3-3-8#solution">Implementation solutions for 3.3.8</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><blockquote><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html">Intent from Understanding Success Criterion 3.3.8</a>, “the Web site” with “a Web site, non-web document, or software”.</blockquote>
  <a href="https://w3c.github.io/wcag2ict/#h-note-143">Note 1</a>:<blockquote>"Object recognition" and "Personal content" may be represented by images, video, or audio.</blockquote><a href="https://w3c.github.io/wcag2ict/#h-note-144">Note 2</a><blockquote>Examples of mechanisms that satisfy this criterion include: support for password entry by password managers to reduce memory need, and copy and paste to reduce the cognitive burden of re-typing.</blockquote>
<a href="https://w3c.github.io/wcag2ict/#h-note-145">Note 3</a>:
<blockquote>If the non-web software is an application, passwords used to unlock the underlying <a href="https://w3c.github.io/wcag2ict/#platform-software">platform software</a> are out of scope for this requirement as these are not up to a software application’s author.</blockquote><a href="https://w3c.github.io/wcag2ict/#h-note-146">Note 4</a><blockquote>There are cases where non-web software has an authentication process and no alternative or assistance mechanism is feasible, for example when entering a password on when starting, powering on / turning on an ICT (device or otherwise). In such situations, it may not be possible for the non-web software to meet this success criterion.</blockquote>
See also the <a href="https://w3c.github.io/wcag2ict/#comments-on-closed-functionality">Comments on Closed Functionality</a>.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/#status-messages">4.1.3 Status Messages</a>, <a href="https://appt.org/en/guidelines/wcag/success-criterion-4-1-3#solution">Implementation solutions for 4.1.3</a></td>
<td><img src="https://tetralogical.com/blog/2024/07/18/WCAG2ICT/yes.png" alt="yes" /></td>
<td><strong>This applies directly as written</strong>, and as described in <a href="https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html#intent">Intent from Understanding Success Criterion 4.1.3</a>.</td></tr></tbody></table>
</div>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Why are my live regions not working?</title>
    <link href="https://tetralogical.com/blog/2024/05/01/why-are-my-live-regions-not-working/"/>
    <updated>2024-05-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/05/01/why-are-my-live-regions-not-working/</id>
    <content type="html"><![CDATA[
        <p>Live regions have a reputation for being &quot;flaky&quot; and inconsistent. While this can be attributed in part to shortcomings in current implementations, the problem can also be caused by developers misunderstanding how live regions are intended to work.</p>
<h2 id="setting-the-scene" tabindex="-1">Setting the scene</h2>
<p>Currently, the exact behaviour of live regions is arguably not very well explained in the <a href="https://www.w3.org/TR/wai-aria-1.3">ARIA</a> specification, nor the <a href="https://w3c.github.io/core-aam/">Core-AAM</a> specification. As a result, support can vary across different browser/screen reader combinations. While efforts are underway to make the specifications clearer, and to harmonise the behaviour across implementations, there are approaches that developers can use that stand a much better chance of working than others.</p>
<h2 id="how-live-regions-are-supposed-to-work" tabindex="-1">How live regions are supposed to work</h2>
<p>In simple terms, when browsers encounter an element marked up as a live region (either explicitly with an <code>aria-live=&quot;…&quot;</code> attribute, or with a <a href="https://www.w3.org/TR/wai-aria-1.3/#live_region_roles"><code>role</code> that has an implicit live region</a>, such as <a href="https://www.w3.org/TR/wai-aria-1.3/#status"><code>role=&quot;status&quot;</code></a>), they expose this information to screen readers in the accessibility tree. Whenever the content of the live region <em>changes</em>, browsers send out events through the platform's accessibility API. Screen readers need to register for these events, and then announce them to the user.</p>
<h2 id="live-regions-that-are-already-%22populated%22-don't-work" tabindex="-1">Live regions that are already &quot;populated&quot; don't work</h2>
<p>One developer misstep that we often see with live regions is the use of containers that are already &quot;populated&quot; – live regions that already have content inside them that is meant to be announced by screen readers.</p>
<p>In some cases, developers include a live region directly in their page's markup, expecting it to be announced when the page is loaded.</p>
<pre class="language-html"><code class="language-html"><span class="token comment">&lt;!-- Already contained in the HTML sent from the server --></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">aria-live</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assertive<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
  Announce this when the page loads
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>In other cases, a live region container is present in the page, but hidden – both visually, and from assistive technologies.</p>
<pre class="language-html"><code class="language-html"><span class="token comment">&lt;!-- Pre-populated hidden live region container --></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>notification<span class="token punctuation">"</span></span> <span class="token attr-name">aria-live</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assertive<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>hidden<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<pre class="language-css"><code class="language-css"><span class="token selector">.hidden</span> <span class="token punctuation">{</span> <span class="token property">display</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span> <span class="token punctuation">}</span></code></pre>
<p>When developers then want a message to be announced by screen readers, they inject it into this hidden container, and <em>then</em> &quot;unhide&quot; the now populated live region container.</p>
<pre class="language-js"><code class="language-js"><span class="token comment">/* Get a reference to the hidden live region */</span>
<span class="token keyword">const</span> liveRegion <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'notification'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Generate text node for the message */</span>
<span class="token keyword">var</span> message <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createTextNode</span><span class="token punctuation">(</span><span class="token string">"Announce this when the container is unhidden"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Add message to the live region container */</span>
liveRegion<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>message<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Make the populated region appear (visually and to SRs) */</span>
liveRegion<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">'hidden'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<p>By far the most common cases we see are live region containers – complete with actual content – being generated dynamically via JavaScript and inserted into the current page.</p>
<pre class="language-js"><code class="language-js"><span class="token comment">/* Generate live region container */</span>
<span class="token keyword">const</span> newLiveRegion <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">"div"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
newLiveRegion<span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">"aria-live"</span><span class="token punctuation">,</span><span class="token string">"assertive"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Generate text node for message */</span>
<span class="token keyword">var</span> message <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createTextNode</span><span class="token punctuation">(</span><span class="token string">"Announce this when the container is appended to the body"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Add message to live region container */</span>
newLiveRegion<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>message<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Add the populated live region to the page */</span>
document<span class="token punctuation">.</span>body<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>newLiveRegion<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<p>All of these approaches generally fail to produce the desired result.</p>
<p>The ARIA specification is currently silent on whether or not the <strong>initial</strong> content inside a live region should be passed on to screen readers. The specification only refers to <em>content changes</em> in the section on <a href="https://www.w3.org/TR/wai-aria-1.3/#attrs_liveregions">Live Region Attributes</a>, and <em>updates</em> in the <a href="https://www.w3.org/TR/wai-aria-1.3/#dfn-live-region">definition for live region</a>.</p>
<p>The Core-AAM specification – which more specifically deals with how browsers should interact with, and expose content to, the platform's accessibility APIs – doesn't provide any further insights on this aspect either – see the section on <a href="https://w3c.github.io/core-aam/#mapping_events_visibility">changes to document content or node visibility</a>.</p>
<p>Because of this relative vagueness in the specifications, different browsers and screen readers currently can behave differently when it comes to live regions that are already &quot;populated&quot; with content, and whether or not that <strong>initial</strong> content is announced. However, following recent discussions within the ARIA Working Group (see <a href="https://github.com/w3c/aria/issues/2154">Clarification of when live regions are meant to be announced by AT</a>), it was confirmed that the intended behaviour is <strong>not</strong> to announce any initial content, and to only expose changes/updates – with one exception: containers with <code>role=&quot;alert&quot;</code>.</p>
<h2 id="the-exception%3A-role%3D%22alert%22-regions" tabindex="-1">The exception: <code>role=&quot;alert&quot;</code> regions</h2>
<p>For historical reasons, containers with <code>role=&quot;alert&quot;</code> receive special treatment. When a browser encounters a container with this <code>role</code>, it generally fires an immediate alert event to the accessibility API. See the explanation for the <a href="https://www.w3.org/TR/wai-aria-1.3/#alert"><code>alert</code> role</a> in ARIA (emphasis added to the last sentence):</p>
<blockquote>
<p>Alerts are assertive live regions, which means they cause immediate notification for assistive technology users. If the operating system allows, the user agent SHOULD fire a system alert event through the accessibility API <em>when the WAI-ARIA alert is created</em>.</p>
</blockquote>
<p>As a result, even pre-populated containers with <code>role=&quot;alert&quot;</code> result in the <strong>initial</strong> content being announced by screen readers – but even here, there are inconsistencies between different browsers/screen readers.</p>
<p>In addition, one aspect to consider when using <code>role=&quot;alert&quot;</code> is that screen readers will announce them differently. For instance, NVDA and Jaws will first announce &quot;Alert&quot;, followed by the actual content; in VoiceOver on macOS, alerts are preceded by a special sound/earcon. For this reason – and because <code>role=&quot;alert&quot;</code> will act as an assertive live region, which will interrupt the current output of a screen reader – you shouldn't use this <code>role</code> unless it's actually an important alert.</p>
<h2 id="priming-your-live-region-for-best-results" tabindex="-1">Priming your live region for best results</h2>
<p>Leaving aside <code>role=&quot;alert&quot;</code>, the most robust approach to using live regions is to make sure that the browser &quot;sees&quot; the empty live region container first.</p>
<p>Add your empty container directly in your page's markup:</p>
<pre class="language-html"><code class="language-html"><span class="token comment">&lt;!-- Empty live region container present in the HTML --></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>notification<span class="token punctuation">"</span></span> <span class="token attr-name">aria-live</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assertive<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>You can also go ahead and create the empty container dynamically using JavaScript:</p>
<pre class="language-js"><code class="language-js"><span class="token comment">/* Dynamically generate an *empty* live region container */</span>
<span class="token keyword">const</span> newLiveRegion <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">"div"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
newLiveRegion<span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">"aria-live"</span><span class="token punctuation">,</span><span class="token string">"assertive"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
newLiveRegion<span class="token punctuation">.</span>id <span class="token operator">=</span> <span class="token string">"notification"</span><span class="token punctuation">;</span>
document<span class="token punctuation">.</span>body<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>newLiveRegion<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<p>This gives screen readers time to register for any updates on that container being sent through the accessibility API.</p>
<p>Then, after a short delay (possibly using a <code>setTimeout()</code>), you can inject content <strong>into</strong> the live region container.</p>
<pre class="language-js"><code class="language-js"><span class="token comment">/* Get a reference to the live region container */</span>
<span class="token keyword">const</span> liveRegion <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"notification"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/* Remove any existing child nodes */</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>liveRegion<span class="token punctuation">.</span>firstChild<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  liveRegion<span class="token punctuation">.</span><span class="token function">removeChild</span><span class="token punctuation">(</span>liveRegion<span class="token punctuation">.</span>firstChild<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">/* Create new message and append it to the live region */</span>
<span class="token keyword">var</span> message <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createTextNode</span><span class="token punctuation">(</span><span class="token string">"Dynamic announcement to inject into the existing container"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
liveRegion<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>message<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<h2 id="current-live-region-behaviour" tabindex="-1">Current live region behaviour</h2>
<p>We recently <a href="https://patrickhlauke.github.io/aria/tests/live-regions/">tested</a> how some of the more common approaches to live regions behave in current browser/screen reader combinations. While results are likely to change in future, the following table shows the current support at the time of writing.</p>
<p>Note that for the pre-populated tests, we only want to have <code>role=&quot;alert&quot;</code> working, as it is treated differently from other live regions. If other types of live regions are announced, that goes against expectations/the specification.</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th></th>
<th>Populated live region on load</th>
<th>Populated live region via CSS</th>
<th>Populated live region via JS</th>
<th>Inject into existing live region</th>
<th>Generate live region via JS, then populate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Chrome / NVDA</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
</tr>
<tr>
<td>Edge / NVDA</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
</tr>
<tr>
<td>Firefox / NVDA</td>
<td>Not supported</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
</tr>
<tr>
<td>Chrome / JAWS 2024</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
</tr>
<tr>
<td>Edge / JAWS 2024</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
</tr>
<tr>
<td>Firefox / JAWS 2024</td>
<td>Not supported</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
</tr>
<tr>
<td>Chrome / Narrator</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with &quot;Alert&quot;)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> <em>not</em> prefixed)</td>
<td><em>All announced</em> (<code>role=&quot;alert&quot;</code> prefixed with &quot;Alert&quot;)</td>
</tr>
<tr>
<td>Edge / Narrator</td>
<td>Only <code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
</tr>
<tr>
<td>Firefox / Narrator</td>
<td>Not supported</td>
<td>Not supported</td>
<td>Not supported</td>
<td>Not supported</td>
<td>Not supported</td>
</tr>
<tr>
<td>Chromium / Orca</td>
<td>Not supported</td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
</tr>
<tr>
<td>Firefox / Orca</td>
<td>Not supported</td>
<td>Only <code>role=&quot;alert&quot;</code></td>
<td>Only <code>role=&quot;alert&quot;</code></td>
<td><code>role=&quot;alert&quot;</code> is <em>not</em> announced<br />all others work consistently</td>
<td><code>role=&quot;alert&quot;</code> inconsistently announced<br />all others work consistently</td>
</tr>
<tr>
<td>Safari / VoiceOver (macOS)</td>
<td>Not supported</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td><em>All announced</em> (<code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> prefixed with earcon)</td>
<td><em>All announced</em> (<code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> prefixed with earcon)</td>
</tr>
<tr>
<td>Chrome / VoiceOver (macOS)</td>
<td>Not supported</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td><em>All announced</em> (<code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> prefixed with earcon)</td>
<td><em>All announced</em> (<code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> prefixed with earcon)</td>
</tr>
<tr>
<td>Firefox / VoiceOver (macOS)</td>
<td>Not supported</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td>Only <code>role=&quot;alert&quot;</code> (prefixed with earcon)</td>
<td>Only <code>aria-live=&quot;assertive&quot;</code> (prefixed with earcon), <code>role=&quot;alert&quot;</code> (prefixed with earcon), and <code>role=&quot;log&quot;</code></td>
<td><em>All announced</em> (<code>aria-live=&quot;assertive&quot;</code> and <code>role=&quot;alert&quot;</code> prefixed with earcon)</td>
</tr>
<tr>
<td>Safari / VoiceOver (iOS)</td>
<td>Only <code>role=&quot;alert&quot;</code> inconsistently announced</td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
</tr>
<tr>
<td>Chrome / TalkBack</td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
<td><em>All announced</em></td>
</tr>
<tr>
<td>Firefox / TalkBack</td>
<td>Not supported</td>
<td>Not supported</td>
<td>Not supported</td>
<td>Only <code>aria-live=&quot;polite&quot;</code>, <code>aria-live=&quot;assertive&quot;</code>, <code>role=&quot;log&quot;</code></td>
<td>Only <code>aria-live=&quot;polite&quot;</code>, <code>aria-live=&quot;assertive&quot;</code>, <code>role=&quot;log&quot;</code></td>
</tr>
</tbody>
</table>
</div><h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>Despite a few outliers and bugs, we can see that behaviour is relatively consistent.</p>
<p>In the case of pre-populated live regions, it's mostly only <code>role=&quot;alert&quot;</code> regions that announce the initial content as soon as the region is created.</p>
<p>For all other types of live regions, make sure to &quot;prime&quot; an empty live region container first, and only then make a change to the container's content to trigger an announcement.</p>
<p>Note that the above testing is far from exhaustive. Live regions have additional attributes – <code>aria-atomic</code> and <code>aria-relevant</code> – that define how announcements should be handled. Our testing did not include <code>aria-live=&quot;off&quot;</code> – which, despite its misleading name, is intended to trigger live region announcements, but only when the user is focused on the region – nor containers with <code>role=&quot;marquee&quot;</code> or <code>role=&quot;timer&quot;</code>, which have an implicit <code>aria-live=&quot;off&quot;</code>. Lastly, it's often a common &quot;belt and braces&quot; practice to combine a live region <code>role</code> with an explicit <code>aria-live</code> attribute, just to be on the safe side. All these possible permutations are likely to surface further browser/screen reader inconsistencies and outright bugs – see for instance <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1885011">Firefox #1885011 Live region with aria-atomic=&quot;true&quot; not announced by screen reader</a>.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.scottohara.me/blog/2022/02/05/are-we-live.html">Are we live?</a>, Scott O'Hara</li>
<li><a href="https://www.scottohara.me/blog/2019/07/10/the-output-element.html">output: HTML's native live region element</a>, Scott O'Hara</li>
<li><a href="https://www.sarasoueidan.com/blog/accessible-notifications-with-aria-live-regions-part-1/">Accessible notifications with ARIA Live Regions (Part 1)</a>, Sara Soueidan</li>
<li><a href="https://www.htmhell.dev/adventcalendar/2023/22/">ARIA Live Regions</a>, Andrea de Souza</li>
<li><a href="https://dev.to/steady5063/aria-live-in-javascript-frameworks-4f9p">Aria-live in JavaScript Frameworks</a>, Mark Steadman</li>
<li><a href="https://dev.to/abbeyperini/live-regions-in-react-4dmd">Live Regions in React</a>, Abbey Perini</li>
<li><a href="https://a11y-guidelines.orange.com/en/articles/aria-live-alert/">The aria-live attribute and the role alert</a>, Orange</li>
<li><a href="https://www.youtube.com/watch?v=W5YAaLLBKhQ">The Many Lives of a Notification (video)</a>, Sarah Higley</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the ARIA, read our <a href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/">introduction to WAI-ARIA</a> or find out more about how our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Building a culture of accessibility</title>
    <link href="https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/"/>
    <updated>2024-04-19T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/04/19/building-a-culture-of-accessibility/</id>
    <content type="html"><![CDATA[
        <p>Accessibility isn't solely important in the final product; it's crucial at every step of the process. Adopting accessible practices from the outset unlocks your team's full potential. This approach not only improves the products you create but also nurtures a culture of inclusivity within your organisation and means your team will more accurately reflect the diversity of your customer base.</p>
<p>Building an accessible culture you can be proud of often starts with HR professionals, project and product managers, and leaders within your organisation. These effects can be amplified in small organisations where the culture is more adaptable.</p>
<h2 id="recruitment" tabindex="-1">Recruitment</h2>
<p>Working with a diverse team starts at the recruitment stage.</p>
<p>Review your <a href="https://tetralogical.com/services/recruitment/">recruitment</a> process to ensure your website and job adverts are accessible. Use inclusive language, provide necessary accommodations, and review your company values to reach the most diverse talent pool. This is a good opportunity to review all policies to verify they are inclusive and start to build your own <a href="https://includeability.gov.au/resources-employers">inclusive employment resources</a>.</p>
<p>By the time your new hires are ready to start, ensure your onboarding and induction courses are accessible. Discuss reasonable accommodations with new hires and provide managers with training on how to best support people with disabilities.</p>
<h2 id="training" tabindex="-1">Training</h2>
<p>It is beneficial to provide accessibility training courses to increase awareness and understanding amongst your teams. Setting clear objectives for individuals and teams to increase accessible practices can then capitalise on that training. This could start with training and tasking your design team to update or create an <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design system</a>, your marketing team with updating style guides to use <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">sufficient colour contrast</a> in branding, or your communications team with publishing accessible social media posts that include <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for images.</p>
<p>Embracing accessibility training not only raises awareness and understanding within your teams, it also nurtures an inclusive mindset and a culture of continuous improvement.</p>
<h2 id="inclusive-communication" tabindex="-1">Inclusive communication</h2>
<p>Effective communication is at the core of any successful team. Use clear, concise, and unambiguous language in all internal and external communications so everyone, with different reading and learning styles can fully participate.</p>
<p>Provide an agenda ahead of meetings, whether in person or virtual, so colleagues can prepare. Send follow-up emails with a summary of the agreed action points to establish clarity.</p>
<p>Not everyone is comfortable speaking up in a group environment. Offer alternative ways of communicating such as posting a comment in the meeting chat, submitting agenda items in advance, and ensuring you give time and space to everyone present.</p>
<p>Clarify the tone and context for communication. Some organisations use formal language with customers and colleagues and prefer to use email. Others may prefer informal instant messaging channels where the use of emojis is appropriate. Clear, context-specific guidelines are especially useful for neurodiverse colleagues.</p>
<h2 id="accessible-formats" tabindex="-1">Accessible formats</h2>
<p>For your team to work at their best, provide equal access to the information.</p>
<p>Produce documents in accessible formats and provide training on creating accessible content in software packages like Word, PowerPoint, Excel, and PDF. <a href="https://www.microsoft.com/en-us/accessibility/microsoft-365">Microsoft Office</a> offers detailed information about how to create accessible documents and additional resources.</p>
<p>To ensure content is inclusive, there are some things every member of your team can easily do:</p>
<ul>
<li>
<p>Always provide <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for images and graphs</p>
</li>
<li>
<p>Don’t rely solely on <a href="https://tetralogical.com/blog/2022/02/15/colour-meaning/">colour to convey information</a> such as a red highlight for an error in a form field or colour coding in graphs and charts</p>
</li>
<li>
<p>Provide a logical <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a> structure in Word and PDF documents as well as on the web</p>
</li>
</ul>
<p>Many of these accessibility fixes can be done without needing a technical background, only awareness. Use the Accessibility Checker in Word and other file formats to check documents as well as the <a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/">quick accessibility tests anyone can do</a> which require no specialised tools or knowledge to help you check your work.</p>
<p>Video is a great way of making information more understandable for people who struggle with text. Video can also be helpful for people who are blind, Deaf, or DeafBlind if you follow <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a>, and incorporate closed captions, audio descriptions, and transcripts.</p>
<p>Finally, ensure all the software and platforms your team are required to use are accessible. Many products have an <a href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/">Accessibility Conformance Report (ACR)</a>, a formal statement documenting how well a website or app complies with international accessibility guidelines. If procuring new products for your team to use, always ask the software vendor if it has an ACR.</p>
<h2 id="inclusive-leadership" tabindex="-1">Inclusive leadership</h2>
<p>Your leadership team sets the tone for accessibility within an organisation. Lead by example, champion inclusive behaviours, and set specific objectives for your teams. Implement a top-down approach, where accessibility is woven into the fabric of the organisation and modelled in the day-to-day running of the company. There are lots of ways to do this such as setting up:</p>
<ul>
<li>An accessibility working group, made up of people from different roles and teams who set the agenda for accessibility efforts</li>
<li>An <a href="https://www.bbc.co.uk/accessibility/forproducts/champions/">accessibility champions network</a> where people champion accessibility practices in their area including engineering, product, content, facilities, or any other areas of your organisation</li>
<li>An <a href="https://gds.blog.gov.uk/2018/06/20/creating-the-uk-governments-accessibility-empathy-lab/">empathy lab</a>, where employees can build their understanding of accessibility</li>
</ul>
<p>While shifting organisational culture is undoubtedly challenging, the rewards of prioritising accessibility are manifold. By embracing accessibility, you create a workplace that not only empowers every individual but also produces products and services that are inclusive and accessible to all.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about our <a href="https://tetralogical.com/services/recruitment/">recruitment support</a> service and <a href="https://tetralogical.com/services/training-courses/">training courses</a> or read about how to embed <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a> into your organisation.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>When to use tabindex=&#39;0&#39;</title>
    <link href="https://tetralogical.com/blog/2024/04/04/when-to-use-tabindex-0/"/>
    <updated>2024-04-04T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/04/04/when-to-use-tabindex-0/</id>
    <content type="html"><![CDATA[
        <p>When <code>tabindex=&quot;0&quot;</code> is applied to an HTML element, the content marked up using that element will become keyboard focusable, and is therefore a good starting point for supporting keyboard accessibility. However, applying this attribute haphazardly or unnecessarily can reduce the experience for people who use a keyboard or an equivalent input device to navigate web content.</p>
<h2 id="what-is-meant-by-keyboard-focus" tabindex="-1">What is meant by keyboard focus</h2>
<p>When a web page includes interactive controls such as buttons, links, and form fields, it is important that they are focusable. Unless a keyboard accessible alternative is provided, these elements must be reachable using the keyboard alone. This is important for people <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> and people <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a> or other input device.</p>
<p>People navigate focusable controls on a web page using the <kbd>Tab</kbd> and <kbd>Shift</kbd> + <kbd>Tab</kbd> keys or, for some controls like radio buttons, the arrow keys. When they reach each control, that control is said to have focus. Subsequently, and assuming the control is coded correctly, a person can then interact with it.</p>
<h2 id="focus-handling-in-html" tabindex="-1">Focus handling in HTML</h2>
<p>Most HTML elements intended for identifying interactive controls, such as the <code>&lt;button&gt;</code> element for buttons, are already focusable by default. Therefore, developers do not need to include additional markup to achieve this.</p>
<p>On the other hand, HTML elements intended for presenting and organising static content, such as text and images, are not focusable. This is for good reason. Static content is not, by definition, interactive. For example, clicking or tapping on a paragraph of text generally has no effect, unless that text is part of a link.</p>
<p>However, the line between only using interactive HTML elements for marking up interactive content and only using static HTML elements for marking up static content has become increasingly blurred. Indeed, developers will often build their own <a href="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/">custom</a> interactive controls using static HTML elements, such as the <code>&lt;div&gt;</code> and <code>&lt;span&gt;</code> elements, and then attach an appropriate JavaScript method to the element to ensure that a related action is triggered when the control is clicked using the mouse.</p>
<p>However, remember that content generated using static elements isn't keyboard focusable by default. This is where <code>tabindex=&quot;0&quot;</code> comes in.</p>
<h2 id="using-tabindex%3D%220%22" tabindex="-1">Using tabindex=&quot;0&quot;</h2>
<p>Applying <code>tabindex=&quot;0&quot;</code> to an HTML element will add the content marked up using that element to the page's focus order, even if the content itself is not interactive. The content will then receive focus when navigating the page's content using the <kbd>Tab</kbd> and <kbd>Shift</kbd> + <kbd>Tab</kbd> keys.</p>
<p>To illustrate, consider the following code sample, which shows a snippet of static text between two controls marked up using HTML elements that support keyboard focus by default:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>
    I am a button!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>
    I am static text!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    I am a link!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p>When navigating through the page using the keyboard, the button will receive focus followed by the link, and the static text will be skipped. However, let's modify the markup by adding <code>tabindex=&quot;0&quot;</code> to the <code>&lt;p&gt;</code> element.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>
    I am a button!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span> <span class="token attr-name">tabindex</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    I am static text!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    I am a link!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p>Now all three items will receive focus when navigating through the page using the keyboard.</p>
<p>For reasons that will become apparent, this is not an appropriate use of <code>tabindex=&quot;0&quot;</code>. Before using this attribute, consider when it will be helpful and when it might be a hindrance.</p>
<h2 id="tabindex%3D%220%22-and-the-screen-reader-myth" tabindex="-1"><code>tabindex=&quot;0&quot;</code> and the screen reader myth</h2>
<p>There is a common misunderstanding surrounding the relationship between <code>tabindex=&quot;0&quot;</code> and screen reader accessibility. We occasionally encounter web content where <code>tabindex=&quot;0&quot;</code> is liberally applied to static elements that perform no additional functionality. This assumption is often based on the mistaken belief that since people browsing with a screen reader typically navigate web content using a keyboard, all page content must be made focusable to ensure it is not overlooked or skipped.</p>
<p>However, as discussed in <a href="https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/">the difference between keyboard and screen reader navigation</a> by Léonie Watson, screen readers provide multiple additional commands that allow people to read and navigate page content <em>without</em> developers needing to make this content focusable.</p>
<p>Indeed, adding <code>tabindex=&quot;0&quot;</code> could add confusion, as people using screen readers who cannot see the page may struggle to distinguish between what is and what isn't interactive. Furthermore, people who use the keyboard and <em>don't</em> use a screen reader will be required to perform additional, and unnecessary, keystrokes to navigate through the page, leading to frustration on particularly lengthy pages.</p>
<h2 id="when-not-to-use-tabindex%3D%220%22" tabindex="-1">When not to use <code>tabindex=&quot;0&quot;</code></h2>
<p>Except for a minority of cases, avoid applying <code>tabindex=&quot;0&quot;</code> to static content.</p>
<p>Additionally, don't apply <code>tabindex=&quot;0&quot;</code> to elements that are already keyboard focusable by default, such as the <code>&lt;button&gt;</code> element. Doing so leads to redundant markup that adds extra work in terms of maintainability.</p>
<p>For example, do this:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">…</span><span class="token punctuation">></span></span>
    Play video
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<p>Instead of this:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">tabindex</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>0<span class="token punctuation">"</span></span> <span class="token attr-name">…</span><span class="token punctuation">></span></span>
    Play video
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<h2 id="when-to-use-tabindex%3D%220%22" tabindex="-1">When to use <code>tabindex=&quot;0&quot;</code></h2>
<p>Only apply <code>tabindex=&quot;0&quot;</code> to HTML elements that:</p>
<ul>
<li>Are not keyboard focusable by default; <strong>and</strong></li>
<li>Are provided with an interactive role; <strong>and</strong></li>
<li>Have an action associated with them that requires them to be reachable using the keyboard</li>
</ul>
<p>Custom controls marked up using traditionally static HTML elements represent an appropriate use case. Consider the following example of a custom button:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> 
    <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>button<span class="token punctuation">"</span></span> 
    <span class="token attr-name">tabindex</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    I am a custom button!
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">></span></span></code></pre>
<p>Here, a static HTML element (<code>&lt;span&gt;</code>) is used to mark up the control, and is exposed as such to assistive technologies through the application of <code>role=&quot;button&quot;</code>. However, because it is marked up using a <code>&lt;span&gt;</code> element, it won't be focusable without <code>tabindex=&quot;0&quot;</code>.</p>
<h2 id="exceptions" tabindex="-1">Exceptions</h2>
<p>As usual, there are exceptions to the rule.</p>
<p>In some cases, it may be necessary to apply <code>tabindex=&quot;0&quot;</code> to an element, even if the element itself isn't intended to be interactive, in order to allow people using the keyboard alone to access the associated content.</p>
<h3 id="containers-for-certain-scrollable-content" tabindex="-1">Containers for certain scrollable content</h3>
<p>You need to apply <code>tabindex=&quot;0&quot;</code> to elements used as containers for content where the containing element includes the <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow">CSS <code>overflow</code> property</a>. This is so that the container itself can receive keyboard focus and therefore allow people using the keyboard alone to scroll the content using the arrow keys. This is discussed in more detail in <a href="https://www.a11yproject.com/posts/how-to-use-the-tabindex-attribute/">How to use the <code>tabindex</code> attribute</a> by Eric Bailey.</p>
<p>In addition, you need to provide an appropriate role and <a href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/">accessible name</a> to the container so that people using a screen reader are made aware of what the content represents and why the element has received keyboard focus. Providing an accessible name for the container is also important, otherwise assistive technologies will announce the entire contents of the container when it's focused, instead of just its name. This can be confusing and overwhelming for people.</p>
<p>The following example demonstrates how the <code>role</code> of the container is set to <code>region</code>, while the accessible name is provided by the <code>aria-label</code> attribute:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> 
    <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">overflow</span><span class="token punctuation">:</span> auto<span class="token punctuation">;</span> …</span><span class="token punctuation">"</span></span></span>
    <span class="token attr-name">tabindex</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>0<span class="token punctuation">"</span></span> 
    <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>region<span class="token punctuation">"</span></span> 
    <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Privacy Policy<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    … Contents of a lengthy privacy policy that requires extensive scrolling …
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<h3 id="containers-for-carousels" tabindex="-1">Containers for carousels</h3>
<p>Another reason to use tabindex=&quot;0&quot; on a static element is for carousels. It helps ensure that the carousel's container gets focus. This enables keyboard users to navigate between slides using the left and right arrow keys.</p>
<p>Like the previous example, the container will require an appropriate role and accessible name so that people using a screen reader know what it represents. However, unlike the previous example, there is no HTML element or <a href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/">WAI-ARIA</a> explicitly intended for marking up carousels. To get around this, we recommend using the <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-roledescription"><code>aria-roledescription</code></a> attribute, in addition to <code>role=&quot;region&quot;</code> or <code>role=&quot;group&quot;</code>, to provide a more human-readable and understandable description of the related content.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">tabindex</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>0<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>region<span class="token punctuation">"</span></span> <span class="token attr-name">aria-roledescription</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Carousel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Our latest offers<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
    … Carousel contents …
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>Remember that <code>tabindex=&quot;0&quot;</code> only makes the container focusable; you will still need to add extra scripting to allow people to navigate through slides using the arrow keys.</p>
<h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>Applying <code>tabindex=&quot;0&quot;</code> to an element is a very robust way of ensuring that content rendered using that element is focusable using the keyboard alone, and is almost always necessary when implementing custom interactive elements. In most other cases, however, there is no need to include <code>tabindex=&quot;0&quot;</code>, and indeed applying it can have a negative impact on the user experience, particularly for people who use a screen reader to navigate page content.</p>
<p>In cases where it must be applied, you must provide an appropriate role and an appropriate accessible name so that the reason that the content is focusable is made apparent to people using screen readers, and therefore they will more easily be able to identify how to interact with the element.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">Browsing with a keyboard</a>, Henny Swan</li>
<li><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, Henny Swan</li>
<li><a href="https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/">The difference between keyboard and screen reader navigation</a>, Léonie Watson</li>
<li><a href="https://tink.uk/understanding-screen-reader-interaction-modes/">Understanding screen reader interaction modes</a>, Léonie Watson</li>
<li><a href="https://www.a11yproject.com/posts/how-to-use-the-tabindex-attribute/">How to use the tabindex attribute</a>, Eric Bailey</li>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html">Understanding 2.4.3 Focus Order (Level A)</a>, W3C</li>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html">Understanding 2.1.1 - Keyboard (Level A)</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG Primer</a>, or find out how our <a href="https://tetralogical.com/services/assessments/">Assessments</a> and <a href="https://tetralogical.com/services/usability-testing/">Usability testing</a> services can help you review the accessibility of your products and test them with people with disabilities.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessibility foundations</title>
    <link href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/"/>
    <updated>2024-03-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/03/18/accessibility-foundations/</id>
    <content type="html"><![CDATA[
        <p>Our <strong>foundations</strong> series provides an overview of core accessibility considerations.</p>
<p>They are a good starting point for visual designers, content designers, interaction designers, and developers when designing and building accessible products and services.</p>
<h2 id="people" tabindex="-1">People</h2>
<h3 id="types-of-disability" tabindex="-1"><a href="https://tetralogical.com/blog/2024/11/18/foundations-types-of-disability/">Types of disability</a></h3>
<p>This post offers an overview of various disability types across four groups: seeing, hearing, moving, and thinking, and provides a brief exploration of what disability is, highlighting how permanent, temporary, or situational disabilities can affect us all.</p>
<h3 id="types-of-assistive-technology-and-adaptive-strategies" tabindex="-1"><a href="https://tetralogical.com/blog/2025/07/28/foundations-types-of-assistive-technology-and-adaptive-strategies/">Types of assistive technology and adaptive strategies</a></h3>
<p>This post provides an overview of common assistive technologies (AT) used by people with seeing, hearing, moving, and thinking disabilities. It also explains what adaptive strategies are, and how these approaches work together to support accessibility and inclusive experiences.</p>
<h2 id="animations-and-images" tabindex="-1">Animations and images</h2>
<h3 id="animations-and-flashing-content" tabindex="-1"><a href="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/">Animations and flashing content</a></h3>
<p>Animation and movement can add to the visual appeal of content, but poorly designed animations can cause problems for many people unless they are implemented correctly.</p>
<h3 id="text-descriptions" tabindex="-1"><a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">Text descriptions</a></h3>
<p>Text descriptions are primary content, and when images do not have a text description, anyone who cannot see the image will not know its purpose. This means people may be unable to access content or perform related tasks.</p>
<h2 id="colour-and-style" tabindex="-1">Colour and style</h2>
<h3 id="colour-contrast" tabindex="-1"><a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">Colour contrast</a></h3>
<p>Good contrast is about using colours that provide enough variation between the content and background. This is particularly important for people who have conditions that affect vision or colour perception, as well as people browsing on mobile in different light conditions.</p>
<h3 id="colour-and-meaning" tabindex="-1"><a href="https://tetralogical.com/blog/2022/02/15/colour-meaning/">Colour and meaning</a></h3>
<p>Colour is a valuable tool for communicating meaning. But if you can't see colour, then meaning is lost. Always plan to use colour to convey meaning in combination with another means of identification.</p>
<h3 id="visible-focus-styles" tabindex="-1"><a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">Visible focus styles</a></h3>
<p>Visible focus styles help us to understand which part of a web page we're interacting with. You may have seen visible focus styles appear as an outline around a link or a button for example.</p>
<h2 id="interaction" tabindex="-1">Interaction</h2>
<h3 id="form-validation-and-error-messages" tabindex="-1"><a href="https://tetralogical.com/blog/2024/10/21/foundations-form-validation-and-error-messages/">Form validation and error messages</a></h3>
<p>How to use form validation and error messages to make forms accessible to everyone.</p>
<h3 id="grouping-forms-with-%3Cfieldset%3E-and-%3Clegend%3E" tabindex="-1"><a href="https://tetralogical.com/blog/2025/01/31/foundations-fieldset-and-legend/">Grouping forms with <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code></a></h3>
<p>How to use the <code>&lt;fieldset&gt;</code> and <code>&lt;legend&gt;</code> elements to group and label form elements effectively, creating a more accessible and well-structured experience.</p>
<h3 id="labelling-text-fields-with-input-and-label" tabindex="-1"><a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">Labelling text fields with input and label</a></h3>
<p>We explore how to effectively label text fields using <code>&lt;input&gt;</code> and <code>&lt;label&gt;</code> elements to create form inputs that are both accessible and user-friendly.</p>
<h3 id="native-versus-custom-components" tabindex="-1"><a href="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/">Native versus custom components</a></h3>
<p>Deciding whether to use native or custom components for a website or web application can have implications in terms of development effort, user experience, and accessibility. This post considers the pros and cons of each approach with a focus on accessibility, and provides guidance on how to choose one.</p>
<h3 id="pointer-gestures" tabindex="-1"><a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/">Pointer gestures</a></h3>
<p>A pointer gesture is an action a person performs using their finger, mouse, or an assistive technology like a head pointer or eye gaze system to operate a functional control. Some pointer gestures can be difficult or even impossible for certain people to perform, so an accessible alternative may be required.</p>
<h3 id="session-timeouts" tabindex="-1"><a href="https://tetralogical.com/blog/2022/03/07/session-timeouts/">Session timeouts</a></h3>
<p>Session timeouts are designed to protect privacy and security, but if they’re implemented incorrectly, they can prevent people from completing tasks on a website.</p>
<h3 id="target-sizes" tabindex="-1"><a href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/">Target sizes</a></h3>
<p>A target size is the area that can be activated in order to interact with an element. For people who have dexterity issues, the smaller a target size is, the more difficult it may be to use the website.</p>
<h3 id="keyboard-accessibility" tabindex="-1"><a href="https://tetralogical.com/blog/2025/05/09/foundations-keyboard-accessibility/">Keyboard accessibility</a></h3>
<p>By prioritising semantic HTML and offering keyboard-friendly alternatives for complex interactions, you help create a more inclusive experience for people who use a keyboard.</p>
<h2 id="structure-and-semantics" tabindex="-1">Structure and semantics</h2>
<h3 id="accessible-names-and-descriptions" tabindex="-1"><a href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/">Accessible names and descriptions</a></h3>
<p>An element's name, or accessible name, is how it's identified. An accessible description provides additional information, about the element, that complements the accessible name.</p>
<h3 id="headings" tabindex="-1"><a href="https://tetralogical.com/blog/2022/02/28/headings/">Headings</a></h3>
<p>Well structured content helps everybody understand and navigate documents. When coded properly in the HTML, headings, lists, and landmarks help people who use screen readers (software that reads what’s on screen) both scan and navigate pages.</p>
<h3 id="html-semantics" tabindex="-1"><a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">HTML semantics</a></h3>
<p>HTML semantics provide accessibility information about page structure and an element's role, name, and state, helping to convey the nature and purpose of content on web pages.</p>
<h3 id="introduction-to-wai-aria" tabindex="-1"><a href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/">Introduction to WAI-ARIA</a></h3>
<p>The Web Accessibility Initiative Accessible Rich Internet Applications specification 1.2, or WAI-ARIA or ARIA for short, is a technical specification written by the World Wide Web Consortium (W3C).</p>
<h3 id="labelling-text-fields-with-input-and-label-1" tabindex="-1"><a href="https://tetralogical.com/blog/2024/08/21/labelling-text-fields-with-input-and-label/">Labelling text fields with input and label</a></h3>
<p>We explore how to effectively label text fields using <code>&lt;input&gt;</code> and <code>&lt;label&gt;</code> elements to create form inputs that are both accessible and user-friendly.</p>
<h3 id="landmarks" tabindex="-1"><a href="https://tetralogical.com/blog/2022/03/18/landmarks/">Landmarks</a></h3>
<p>Landmarks, like headings and lists, offer screen reader users a more comparable experience for identifying and navigating between different areas of content.</p>
<h3 id="lists" tabindex="-1"><a href="https://tetralogical.com/blog/2022/04/29/lists/">Lists</a></h3>
<p>A list is generally agreed to be a series of words or phrases that are grouped together for a reason. That reason might be to remember the items we want from the store, to share our top five favourite movies, or to write down the steps needed to complete a task.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Demelza Feltham</title>
    <link href="https://tetralogical.com/blog/2024/03/13/meet-the-team-demelza-feltham/"/>
    <updated>2024-03-13T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/03/13/meet-the-team-demelza-feltham/</id>
    <content type="html"><![CDATA[
        <p>Meet Demelza Feltham, the accessibility aficionado whose infectious enthusiasm pairs perfectly with a touch of Scottish charm.</p>
<p><img src="https://tetralogical.com/blog/2024/03/13/meet-the-team-demelza-feltham/DemelzaFeltham.jpg" alt="Demelza, smiling naturally at the camera, her brown hair flowing onto a jazzy, chequered, fluffy green jumper" class="inline-image" style="max-height:15em" /></p>
<p>Like many of us, Demelza's journey into the world of accessibility wasn’t entirely planned and came about through a happy twist of fate.</p>
<p>Demelza started out as a yoga instructor, running a successful business guiding others through their sun salutations at classes, retreats, and events. It was during her yoga sessions at Skyscanner that she met Heather Hepburn, (now Skyscanner's digital accessibility lead). The pair swiftly became friends and Demelza felt the familiar pull towards making technology more inclusive.</p>
<p>Demelza went on to hone her skills as an Accessibility Analyst at User Vision, where she conducted audits, supported user research, and co-ran empathy labs (a carefully curated space where individuals can immerse themselves in the experiences of others). Nowadays, you can find Demelza championing accessibility as an Accessibility Specialist at TetraLogical.</p>
<p>When she's not immersed in her laptop, you'll find her enjoying the great outdoors with her rescue greyhound, Baba, by her side. Whether she's hitting the gym and lifting heavy things, or proudly entering her “garden era” as a beginner plant-grower, Demelza likes to keep fit and active.</p>
<p>She will enjoy a hard-core Peloton workout but describes herself as a fair-weathered road cyclist who won’t go out unless there’s the possibility of a tan line. Presumably this means she exclusively cycles indoors or on holiday as she lives in one of the coldest cities in the UK.</p>
<p>Originally hailing from the land down under, Demelza now calls Glasgow in Scotland home. You can tell she’s made of tough stuff if she can handle both an Australian heatwave and a Scottish freeze. She's a force to be reckoned with!</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>Everything is learnable. Imposter syndrome and feeling overwhelmed are natural facets of any profound and worthwhile learning experience. Embrace the journey; a career in digital accessibility is inherently a career in continuous learning.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>Just start. Whether you're an organisation wanting to improve your digital accessibility, or you're an individual wanting to move into the world of accessibility as a professional, just start. There will always be a lot to learn (and by default, a lot you don't know), but it's a wonderful community full of supportive individuals, so lean into the learning!</p>
<p>Make the most of the giants that have come before you and find your trusted people and sources. The digital accessibility world has a rich community of legends, make the most of them.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>I love to watch and listen, so naturally I gravitate towards videos and podcasts. A gold mine for really great 'accessible' accessibility knowledge is the annual <a href="https://inclusivedesign24.org/2023/">Inclusive Design 24</a> (ID24) conference, which is full of high-quality talks about a broad spectrum of subjects within the world of accessibility. I often find myself looking to them for one particular subject, and then bookmarking a handful of other talks to return to later. They are a source of knowledge, practical know-how, and inspiration.</p>
<p>I also love the book <a href="https://www.amazon.co.uk/Universal-Design-Web-Applications-Everyone/dp/0596518730">Universal Design for Web Applications</a>, by Wendy Chisholm and Matt May. I dip in and out of it regularly.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, the team, our principles, and our community.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Can generative AI help write accessible code?</title>
    <link href="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/"/>
    <updated>2024-02-12T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/</id>
    <content type="html"><![CDATA[
        <p>Like many inventions before it, <a href="https://en.wikipedia.org/wiki/Generative_artificial_intelligence">Generative AI</a> is changing the way we do things. Like those inventions that went before it, Generative AI is capable of great good and great harm, and like the humans that used those inventions before us, we need to be smart about the way we use Generative AI.</p>
<p>One thing Generative AI is being used for is to assist with writing, or generating, code. There are many reasons why you might use Generative AI to do this; for example to rapidly create a disposable prototype, to jog your memory about a forgotten technique, or to help you produce code that utilises concepts you're not familiar with.</p>
<p>It's the last of those use cases we need to be smartest about, especially when it comes to using Generative AI to assist with producing accessible code. Even as they caution that they can make mistakes and urge you to check the facts, they're presenting you with seemingly authoritative answers to your questions. When the reason you're asking those questions is because you don't know the answers yourself, there is a risk that you won't know what a reliable answer looks like or how to verify it.</p>
<p>To illustrate this we asked three free Generative AI tools some typical questions about accessible code. The tools were <a href="https://bard.google.com/">Bard (now Gemini) from Google</a> and <a href="https://chat.openai.com/">ChatGPT 3.5 from OpenAI</a>, as representatives of tools trained on general data, and <a href="https://userway.org/fixmycode">Fix My Code (beta) from Userway</a> as a tool specifically &quot;trained in digital accessibility&quot;.</p>
<p><strong>Note:</strong> generative AI tools do not give the same answer to the same question every time they're asked, so the responses included in this post are the ones we received the first time we asked.</p>
<h2 id="question-1" tabindex="-1">Question 1</h2>
<p>With production teams regularly aiming to make their products and services conform with the <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG)</a>, developers may turn to generative AI to find out if the code they've written is accessible. We asked Bard, ChatGPT, and Fix My Code:</p>
<blockquote>
<p>Does this meet WCAG 2.2 Level AA?</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>It was reported today that a dog ate my homework.
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>news.html<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Dog ate my homework<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Read more...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span></code></pre>
</blockquote>
<p>In this case the code does not conform to WCAG. It fails Success Criterion (SC) <a href="https://www.w3.org/TR/WCAG22/#label-in-name">2.5.3 Label in Name</a>, which states:</p>
<blockquote>
<p>For user interface components with labels that include text or images of text, the name contains the text that is presented visually.</p>
</blockquote>
<p>In the code example above, the visible link text is &quot;Read more...&quot;. The link's label, or name, is &quot;Dog ate my homework&quot;. In other words, the link's name does not contain its visible text, and so the code fails SC 2.5.3 Label in Name.</p>
<h3 id="bard's-response" tabindex="-1">Bard's response</h3>
<blockquote>
<p>I can't definitively tell you whether your snippet meets WCAG 2.2 Level AA based on the information provided. Determining WCAG compliance requires a thorough evaluation of all aspects of the content and code, including:</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Bard's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Bard's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<ul>
<li>Text alternatives for the image: Is there a way for users who can't see the image to access the information it conveys? This could be done through a &gt;* descriptive alt text attribute or caption.</li>
<li>Color contrast: Does the text have sufficient contrast against the background to be readable for people with visual impairments? Tools like WebAIM's Color Contrast Checker can help you evaluate this.</li>
<li>Keyboard accessibility: Can users navigate the content and link using only the keyboard? This includes ensuring focus indicators are visible and keyboard-operable components function correctly.
Code:</li>
<li>Semantic HTML: Is the HTML structure meaningful and conveys the content's purpose? For example, using heading tags appropriately and ARIA attributes where necessary.</li>
<li>Valid code: Is the HTML and CSS code free of syntax errors that could affect accessibility?
Additionally:</li>
<li>Level of compliance: While the snippet mentions Level AA, WCAG compliance requires meeting all success criteria under that level, not just some.
Therefore, a complete analysis of the content and code, preferably using automated testing tools and manual checking, is required to determine WCAG 2.2 Level AA compliance.</li>
</ul>
<p>Here are some resources that can help you further:</p>
<ul>
<li><a href="https://www.w3.org/WAI/standards-guidelines/wcag/new-in-22/">WCAG 2.2 Guidelines</a></li>
<li><a href="https://www.gov.uk/service-manual/helping-people-to-use-your-service/understanding-wcag">Understanding WCAG 2.2</a></li>
<li><a href="https://webaim.org/standards/wcag/checklist">WebAIM WCAG 2.2 Checklist</a></li>
<li><a href="https://www.w3.org/WAI/ER/tools/">W3C's Accessibility Checker</a></li>
</ul>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/bard-accessible-link.jpg" alt="A partial screenshot of Bard's response to the question Does this meet WCAG 2.2 Level AA?" /></p>
<p>Bard makes it clear it cannot answer the question. It goes on to offer some general but reliable guidance, and then recommends some further resources to help you learn about the topic.</p>
<h3 id="chatgpt's-response" tabindex="-1">ChatGPT's response</h3>
<blockquote>
<p>The provided HTML code snippet does not fully conform to WCAG 2.2 Level AA accessibility standards. While it includes some accessibility features, there are a few issues:</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          ChatGPT's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          ChatGPT's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<ol>
<li>ARIA Label: You have used an <code>aria-label</code> attribute to provide an accessible label for the link. This is a good practice. However, the label &quot;Dog ate my homework&quot; should be more informative. It's better to provide a more descriptive label that explains the purpose or content of the link. For example, you could use something like &quot;Read more about the homework incident&quot; for better clarity.</li>
<li>Text Content: The link &quot;Read more...&quot; does not provide meaningful context or information about the linked content. It's recommended to use descriptive link text that makes sense on its own, without relying solely on the context provided by the surrounding text. This helps users with screen readers or those who navigate using keyboard shortcuts.
Here's an improved version of the code:</li>
</ol>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>It was reported today that a dog ate my homework.
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>news.html<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Read more about the homework incident<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Read more about the homework incident<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span></code></pre>
<p>In this updated code, the link text is more descriptive, and the <code>aria-label</code> attribute is also more informative, making it closer to meeting WCAG 2.2 Level AA standards. However, it's essential to consider other aspects of accessibility, such as contrast ratios, keyboard navigation, and semantic HTML elements, when designing web content to ensure full compliance with accessibility standards.</p>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/chatgpt-accessible-link.jpg" alt="A partial screenshot of ChatGPT's response to the question Does this meet WCAG 2.2 Level AA?" /></p>
<p>ChatGPT answers the question correctly, but for the wrong reasons. It misses the fact the code snippet fails SC 2.5.3 Label in Name and instead focuses on the quality of the label and link text. Had the question specified WCAG Level AAA instead of Level AA, ChatGPT would be correct about the link text because the Level AAA SC <a href="https://www.w3.org/TR/WCAG22/#link-purpose-link-only">2.4.9 Link Purpose (Link Only)</a>  requires that the purpose of a link can be &quot;identified from link text alone&quot;. However, the Level A SC <a href="https://www.w3.org/TR/WCAG22/#link-purpose-in-context">2.4.4 Link Purpose in Context</a> has more latitude, requiring that the purpose of a link &quot;can be determined from the link text alone or from the link text together with its programmatically determined link context&quot;.</p>
<p>Despite the misinformation, the improved code snippet ChatGPT provides is more accessible than the original. It meets SC 2.4.9, as well as SC 2.4.4. Interestingly, it also meets SC 2.5.3, albeit inadvertently. By making the value of the <code>-aria-label</code> attribute and the link text identical, the visible link text is included in the link's name.</p>
<p>Note: by making the visible link text and the value of the <code>aria-label</code> attribute identical it makes the <code>aria-label</code> attribute redundant and should ideally have removed it as a matter of general <a href="https://www.w3.org/TR/using-aria/">ARIA best practice</a>.</p>
<h3 id="fix-my-code's-response" tabindex="-1">Fix My Code's response</h3>
<blockquote>
<p>Yes, the code provided does adhere to the WCAG 2.2 Level AA standards.</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Fix My Code's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Fix My Code's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<p>The anchor tag <code>&lt;a href=&quot;news.html&quot; aria-label=&quot;Dog ate my homework&quot;&gt;Read more...&lt;/a&gt;</code> includes an <code>aria-label</code> attribute which provides a concise description of the link's purpose.
This complies with the WCAG Guideline 2.4.4 (Link Purpose in Context), which states that the purpose of each link should be able to be determined from the link text alone, or from the link text together with its programmatically determined link context.
But a small improvement can be made by making the link more descriptive:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>It was reported today that a dog ate my homework.
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>news.html<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Read more about the dog that ate my homework<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Read more...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p>Here, the 'aria-label' &quot;Read more about the dog ate my homework&quot; provides a more detailed context to users using assistive technologies like screen readers.</p>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/fix-my-code-accessible-link.jpg" alt="A partial screenshot of Fix My Code's response to the question Does this meet WCAG 2.2 Level AA?" /></p>
<p>Despite being trained in digital accessibility, Fix My Code does not answer the question correctly. It rightly states that the code snippet passes SC 2.4.4 Link Purpose in Context, but misses the fact it fails SC 2.5.3 Label in Name. However, as with the response from ChatGPT, the code snippet provided by Fix My Code does, inadvertently, pass SC 2.5.3 Label in Name by including the phrase &quot;Read more&quot; (the visible link text) within the value of the <code>aria-label</code> attribute.</p>
<h2 id="question-2" tabindex="-1">Question 2</h2>
<p>Although there are <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">documented accessible patterns</a> for most common components, they remain notoriously difficult to get right. That of course makes them exactly the kind of thing someone might ask a generative AI tool to help with. We asked Bard, ChatGPT, and Fix My Code:</p>
<blockquote>
<p>Give me all the code I need to create a set of accessible tabs for a website.</p>
</blockquote>
<p>The definitive pattern for a set of accessible tabs is the one found in the W3C ARIA Authoring Practices. It has all the expected semantic information and functionality of a set of tabs, with support for mouse, keyboard (with or without a screen reader),and  touch.</p>
<h3 id="bard's-response-1" tabindex="-1">Bard's response</h3>
<blockquote>
<p>Here's the code you need to create accessible tabs for a website, incorporating HTML, CSS, and JavaScript:</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Bard's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Bard's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<p>HTML:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabs<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-list<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tablist<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab active<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Tab 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Tab 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Tab 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-panels<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-panel active<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1-button<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-panel<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2-button<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-panel<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3-button<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>Use code with caution.</p>
<p>CSS:</p>
<pre class="language-css"><code class="language-css"><span class="token selector">CSS.tabs</span> <span class="token punctuation">{</span>
<span class="token comment">/* Basic styling for the tabs container */</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-list</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for the list of tabs */</span>
<span class="token property">display</span><span class="token punctuation">:</span> flex<span class="token punctuation">;</span>
<span class="token property">list-style</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">margin</span><span class="token punctuation">:</span> 0<span class="token punctuation">;</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 0<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for individual tabs */</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 10px 20px<span class="token punctuation">;</span>
<span class="token property">border</span><span class="token punctuation">:</span> 1px solid #ccc<span class="token punctuation">;</span>
<span class="token property">cursor</span><span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab button</span> <span class="token punctuation">{</span>
<span class="token comment">/* Remove default button styling */</span>
<span class="token property">background</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">border</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 0<span class="token punctuation">;</span>
<span class="token property">cursor</span><span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab.active</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for the active tab */</span>
<span class="token property">background-color</span><span class="token punctuation">:</span> #eee<span class="token punctuation">;</span>
<span class="token property">border-bottom</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-panels</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for the tab content container */</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-panel</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for individual tab content panels */</span>
<span class="token property">display</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 20px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-panel.active</span> <span class="token punctuation">{</span>
<span class="token comment">/* Styling for the visible tab panel */</span>
<span class="token property">display</span><span class="token punctuation">:</span> block<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<p>Use code with caution.</p>
<p>JavaScript:</p>
<pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> tabs <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.tab'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> tabPanels <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.tab-panel'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

tabs<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">tab</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
tab<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token comment">// Deactivate all tabs</span>
tabs<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">tab</span> <span class="token operator">=></span> tab<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">'active'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Hide all tab panels</span>
tabPanels<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">panel</span> <span class="token operator">=></span> panel<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">'active'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Activate the clicked tab</span>
tab<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">'active'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">/</span> Show the corresponding tab panel
<span class="token keyword">const</span> panelId <span class="token operator">=</span> tab<span class="token punctuation">.</span><span class="token function">getAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-controls'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>panelId<span class="token punctuation">)</span><span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">'active'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<p>Use code with caution.</p>
<p>Accessibility features:</p>
<ul>
<li>ARIA attributes: role, aria-selected, aria-controls, aria-labelledby</li>
<li>Keyboard navigation: Tabs can be focused and activated using the Tab key and Space or Enter keys.</li>
<li>Focus management: Focus moves to the corresponding tab panel when a tab is activated.</li>
<li>Visual indicators: Active tabs have distinct visual styles for clarity.
Additional considerations:</li>
<li>Use clear and descriptive tab labels for easy understanding.</li>
<li>Test the tabs with assistive technologies like screen readers to ensure proper functionality.</li>
<li>Consider using a JavaScript framework or library for more advanced tab features and easier management.</li>
</ul>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/bard-accessible-tabs.jpg" alt="A partial screenshot of Bard's response to the question Give me all the code I need to create a set of accessible tabs for a website" /></p>
<p>The code provided by Bard has several flaws. The most notable is that it does not have the expected keyboard support. The expectation is that the Up/Down/Left/Right Arrow keys can be used to cycle through each of the tabs. The focus management mentioned in Bard's response is also not present.</p>
<p>The expected ARIA roles and properties have been included by Bard, but not always correctly. For example:</p>
<ul>
<li>Each tab consists of a <code>&lt;li&gt;</code> with a <code>&lt;button&gt;</code> element inside it. The ARIA properties <code>role=tab</code>, <code>aria-controls</code>, and <code>aria-selected</code>, have been applied to the <code>&lt;li&gt;</code> element but should be applied to the <code>&lt;button&gt;</code> element instead (and <code>role=&quot;none&quot;</code> applied to the <code>&lt;li&gt;</code>)</li>
<li>The value of the <code>aria-selected</code> attribute on each <code>&lt;li&gt;</code> is not updated as a new tab is selected, meaning screen readers always announce that &quot;Tab 1&quot; is selected even when it is not the currently selected Tab</li>
<li>The <code>aria-labelledby</code> attribute on each of the <code>&lt;div&gt;</code> elements with <code>role=&quot;tabpanel&quot;</code> points to a non-existent <code>id</code>, meaning that the tabpanels do not have an accessible name that's announced by screen readers</li>
</ul>
<h3 id="chatgpt's-response-1" tabindex="-1">ChatGPT's response</h3>
<blockquote>
<p>Creating accessible tabs for a website involves HTML, CSS, and JavaScript code. Here's a simple example of how you can create accessible tabs:</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          ChatGPT's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          ChatGPT's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<p>HTML:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>en<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>UTF-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width, initial-scale=1.0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
title>Accessible Tabs<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">></span></span>
link rel="stylesheet" href="styles.css">
/head>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">></span></span>
div class="tabs">
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">data-tab</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">data-tab</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">data-tab</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Tab 1 Content<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>This is the content of Tab 1.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Tab 2 Content<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>This is the content of Tab 2.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Tab 3 Content<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>This is the content of Tab 3.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>script.js<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">></span></span></code></pre>
<p>CSS (styles.css):</p>
<pre class="language-css"><code class="language-css"><span class="token comment">/* Style for tabs and tab content */</span>
<span class="token selector">.tabs</span> <span class="token punctuation">{</span>
<span class="token property">display</span><span class="token punctuation">:</span> flex<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-button</span> <span class="token punctuation">{</span>
<span class="token property">background-color</span><span class="token punctuation">:</span> #f1f1f1<span class="token punctuation">;</span>
<span class="token property">border</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 10px 20px<span class="token punctuation">;</span>
<span class="token property">cursor</span><span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-button:focus</span> <span class="token punctuation">{</span>
<span class="token property">outline</span><span class="token punctuation">:</span> 2px solid #007bff<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token selector">.tab-content</span> <span class="token punctuation">{</span>
<span class="token property">display</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token property">padding</span><span class="token punctuation">:</span> 20px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">/* Show the first tab by default */</span>
<span class="token selector">.tab-content:first-child</span> <span class="token punctuation">{</span>
<span class="token property">display</span><span class="token punctuation">:</span> block<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<p>JavaScript (script.js):</p>
<pre class="language-javascript"><code class="language-javascript"><span class="token comment">//Get all tab buttons and tab content</span>
<span class="token keyword">const</span> tabButtons <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.tab-button'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> tabContents <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.tab-content'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Add click event listeners to tab buttons</span>
tabButtons<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">button</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
button<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
 <span class="token comment">// Hide all tab content</span>
 tabContents<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">content</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
   content<span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">'none'</span><span class="token punctuation">;</span>
 <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

 <span class="token comment">// Show the selected tab content</span>
 <span class="token keyword">const</span> tabId <span class="token operator">=</span> button<span class="token punctuation">.</span><span class="token function">getAttribute</span><span class="token punctuation">(</span><span class="token string">'data-tab'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 <span class="token keyword">const</span> tabContent <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>tabId<span class="token punctuation">)</span><span class="token punctuation">;</span>
 <span class="token keyword">if</span> <span class="token punctuation">(</span>tabContent<span class="token punctuation">)</span> <span class="token punctuation">{</span>
   tabContent<span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">'block'</span><span class="token punctuation">;</span>
 <span class="token punctuation">}</span>

 <span class="token comment">// Set the focus to the selected button for accessibility</span>
 button<span class="token punctuation">.</span><span class="token function">focus</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<p>This code sets up three tabs and their corresponding content. When you click on a tab button, it will display the associated content and hide the others.
It also manages keyboard focus for accessibility. You can customize the styles in the CSS and add more tabs as needed.</p>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/chatgpt-accessible-tabs.jpg" alt="A partial screenshot of ChatGPT's response to the question Give me all the code I need to create a set of accessible tabs for a website" /></p>
<p>The code provided by ChatGPT does not include any ARIA. This means that screen reader users are not informed that it's a set of tabs, even though they're styled to look like them.</p>
<p>For the same reason, screen reader users have no way to tell which is the currently selected tab, other than by navigating through the content to find out. Although sighted people may be able to tell from the visible content which tab is currently selected, the design of the currently selected tab (button&quot; is indistinguishable from the others. This may be problematic for anyone using screen magnification or a small screen device.</p>
<p>The structure and relationship between the tabs may be apparent visually, but there is no programmatic structure or relationships to help anyone who is unable to see the tabs on-screen.</p>
<h3 id="fix-my-code's-response-1" tabindex="-1">Fix My Code's response</h3>
<blockquote>
<p>You can create a set of accessible tabs in compliance with the WCAG guidelines using HTML, CSS, and JavaScript. Here's a production-ready code snippet:</p>
</blockquote>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Fix My Code's full response
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Fix My Code's full response
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<blockquote>
<pre class="language-html"><code class="language-html"><span class="token doctype"><span class="token punctuation">&lt;!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>title</span><span class="token punctuation">></span></span>Accessible Tabs<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>style</span><span class="token punctuation">></span></span><span class="token style"><span class="token language-css">
 <span class="token selector">.tab-content</span> <span class="token punctuation">{</span>
   <span class="token property">display</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
 <span class="token punctuation">}</span>

 <span class="token selector">.tab-button:focus, .tab-button[aria-selected="true"]</span> <span class="token punctuation">{</span>
   <span class="token property">border-color</span><span class="token punctuation">:</span> blue<span class="token punctuation">;</span>
 <span class="token punctuation">}</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>style</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabs<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tablist<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel1<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel2<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
 <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-button<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab<span class="token punctuation">"</span></span> <span class="token attr-name">aria-controls</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel3<span class="token punctuation">"</span></span> <span class="token attr-name">aria-selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Tab 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Content for Tab 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Content for Tab 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>panel3<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab-content<span class="token punctuation">"</span></span> <span class="token attr-name">role</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tabpanel<span class="token punctuation">"</span></span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tab3<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Content for Tab 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">var</span> tabs <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'[role="tab"]'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Assign each tab an unique accessible name and controls</span>
tabs<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">tab<span class="token punctuation">,</span> i</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
 tab<span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-controls'</span><span class="token punctuation">,</span> <span class="token string">'panel'</span> <span class="token operator">+</span> <span class="token punctuation">(</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 tab<span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-labelledby'</span><span class="token punctuation">,</span> <span class="token string">'tab'</span> <span class="token operator">+</span> <span class="token punctuation">(</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Assign tab behavior</span>
tabs<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">tab</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
 tab<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> changeSelectedTab<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Change the selected tab and unselect others</span>
<span class="token keyword">function</span> <span class="token function">changeSelectedTab</span><span class="token punctuation">(</span><span class="token parameter">e</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
 tabs<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">tab</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   tab<span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-selected'</span><span class="token punctuation">,</span> <span class="token string">'false'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 
 <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-selected'</span><span class="token punctuation">,</span> <span class="token string">'true'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

 <span class="token keyword">let</span> controls  <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">getAttribute</span><span class="token punctuation">(</span><span class="token string">'aria-controls'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>controls<span class="token punctuation">)</span><span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">'block'</span><span class="token punctuation">;</span>

 <span class="token keyword">let</span> allTabContent <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.tab-content'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
 allTabContent<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">tab_content</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token keyword">if</span><span class="token punctuation">(</span>tab_content<span class="token punctuation">.</span>id <span class="token operator">!=</span> controls<span class="token punctuation">)</span> <span class="token punctuation">{</span>
     tab_content<span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">'none'</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>
 <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">></span></span></code></pre>
<p>Let's explain how this snippet follows the WCAG Guidelines:</p>
<ol>
<li>The HTML structure of this set of tabs employs ARIA roles such as &quot;tablist&quot;, &quot;tabpanel&quot;, and &quot;tab&quot; to give assistive technologies a better understanding of the content's structure.</li>
<li>The CSS adds a visual focus style to the tab that is currently selected or in focus.</li>
<li>The JavaScript adds functionality to the tab buttons. When a button is clicked, it sets its aria-selected attribute to &quot;true&quot; and all others to &quot;false&quot;. It also hides the content of all tabs and reveals the current tab's content.</li>
<li>The 'aria-controls' and 'aria-labelledby' attributes pair tabs correctly with their content panels, enhancing the screen reader's navigation.
By following these guidelines, you provide an accessible tab control that can be properly understood and manipulated with a keyboard and a screen reader.</li>
</ol>
</blockquote>
<p></p></div>
</div>
</div><p></p>
<p><img src="https://tetralogical.com/blog/2024/02/12/can-generative-ai-help-write-accessible-code/fix-my-code-accessible-tabs.jpg" alt="A partial screenshot of Fix My Code's response to the question Give me all the code I need to create a set of accessible tabs for a website" /></p>
<p>The code provided by Fix My Code uses ARIA roles and properties correctly, but it does not have the expected keyboard support and so is not &quot;in compliance with the W3C guidelines&quot; as stated because it fails SC <a href="https://www.w3.org/TR/WCAG22/#keyboard">2.1.1 Keyboard</a>.</p>
<p>The absence of keyboard support is particularly problematic for Windows screen readers that use <a href="https://tink.uk/understanding-screen-reader-interaction-modes/">&quot;applications mode&quot;</a> to facilitate keyboard interaction for custom components like a set of tabs. When the <kbd>Enter</kbd> or <kbd>Space</kbd> key is used to activate one of the tabs, these screen readers automatically switch into applications mode and expect the custom component to handle all the keyboard interaction. When the keyboard support is not provided, the screen reader user must manually exit applications mode before they're able to interact with anything else.</p>
<h2 id="be-smart-about-generative-ai" tabindex="-1">Be smart about generative AI</h2>
<p>In October 2023, the TetraLogical team asked the question &quot;Can generative AI help me write accessible code?&quot;. The answer was surprisingly simple - yes, if you're smart enough not to trust every answer you receive and you know how to verify its accuracy.</p>
<p>That's a very big &quot;if&quot; however.</p>
<p>Expecting people not to use generative AI tools to help them write accessible code is pointless. People will always use tools to help improve their knowledge and/or productivity - we've been using search engines for precisely this purpose for decades after all.</p>
<p>So how do we get smart about using generative AI tools to help us write accessible code?</p>
<p>You can start by always asking yourself two questions:</p>
<ol>
<li>How transparent is the tool about its limitations?</li>
<li>How can I verify the answer I've received?</li>
</ol>
<p>To answer these guard-rail questions, start by looking for general statements that tell you how reliable the generative AI's responses are.</p>
<p>Bard and ChatGPT both make it clear that they're capable of getting things wrong and that you should check their answers:</p>
<blockquote>
<p>Bard may display inaccurate info, including about people, so double-check its responses.</p>
</blockquote>
<blockquote>
<p>ChatGPT can make mistakes. Consider checking important information.</p>
</blockquote>
<p>Then consider the response itself. Bard's response to the question about WCAG conformance is helpful in this regard. It not only admits it cannot answer the question, it makes no attempt to do so either. What it does do is provide links to resources you can use to verify the credibility of the general guidance it offers instead.</p>
<p>It could be argued that Bard's response to the WCAG question was the least helpful, but it is perhaps the most trustworthy of all the responses received because the information it provides is accurate and verifiable.</p>
<p>Conversely, the response from Fix My Code appears absolutely authoritative, and it does not have a general statement that acknowledges its potential fallibility.</p>
<p>This theme continues with the responses to the question about an accessible set of tabs, but this time Bard and ChatGPT also give authoritative seeming answers, as well as Fix My Code, despite all three responses having at least one major accessibility flaw.</p>
<p>Other than the generic statements about the need to check its responses, none of these generative AI tools gives any hint that their answers may not be correct or provides any recommended resources for checking - though Bard does note that you should &quot;Test the tabs with assistive technologies like screen readers to ensure proper functionality&quot;.</p>
<p>The unavoidable conclusion is that when you ask a generative AI tool for help writing accessible code, is that you should not trust the response you get and should verify it with sources you do trust.</p>
<p>This is not to say that you shouldn't use generative AI tools for help writing accessible code. You just need to be smart about it when you do. Ask yourself the two questions mentioned before and act accordingly. If you have accessibility knowledge, review the code carefully and fix the issues it will likely include. If you don't, assume the response is incorrect and incomplete and verify it using trusted sources.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">inclusive XR: accessible 3D experiences</a> or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Steve Faulkner</title>
    <link href="https://tetralogical.com/blog/2024/02/09/meet-the-team-steve-faulkner/"/>
    <updated>2024-02-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/02/09/meet-the-team-steve-faulkner/</id>
    <content type="html"><![CDATA[
        <p>Meet Steve, a seasoned accessibility specialist but new to the TetraLogical team after slotting into place as the fourth Director last year.</p>
<p><img src="https://tetralogical.com/blog/2024/02/09/meet-the-team-steve-faulkner/SteveFaulkner.jpeg" alt="Steve in a full length photo wearing a t-shirt with &quot;A11y is political&quot; emblazoned on the front. Patrick is taking his picture with skyscrapers dominating the background" class="inline-image inline-image__outlined" style="max-height:15em" /></p>
<p>Steve carries a wealth of over 20 years of expertise specializing in accessibility in all its glory, including screen readers and other assistive technology, <a href="https://www.w3.org/WAI/standards-guidelines/aria/">Accessible Rich Internet Applications (ARIA)</a>, and <a href="https://www.w3.org/TR/2014/REC-html5-20141028/">HTML5</a>.</p>
<p>In his previous role as the Chief Accessibility Officer at TPGi and as a Senior Web Accessibility Consultant at Vision Australia, Steve has left an indelible mark.</p>
<p>Originally hailing from Australia, he's managed to retain that distinctive Aussie twang, even after spending decades in the UK with his family.</p>
<p>You can hear his dulcet tones regularly piping up at conferences, talks and working groups, including the <a href="https://www.w3.org/WAI/GL/">W3C Accessibility Guidelines Working Group</a> and <a href="https://www.w3.org/WAI/ARIA/">ARIA Working Group</a>. Steve has worn the editor's hat for several W3C specifications, such as <a href="https://www.w3.org/TR/2014/REC-html5-20141028/">HTML5</a>, <a href="https://www.w3.org/TR/html-aria/">ARIA in HTML</a>, and <a href="https://www.w3.org/TR/html-aam-1.0/">HTML Accessibility API Mappings 1.0</a>.</p>
<p>But Steve's passions extend beyond the digital landscape. When he's not busy championing web accessibility, you'll find him indulging in his love for photography. The team are greeted by a daily Zoom background featuring ourselves, friends in the industry, throwbacks to wilder days, Steve's family, or... well, just about anything.</p>
<p>And that's not all – Steve runs <a href="https://www.etsy.com/uk/shop/HTMLZ">HTMLZ</a>, an online Etsy shop that describes itself as &quot;a new standard in MarkUp leisure wear&quot;. Steve has explained his motivations behind this in a blog post called <a href="https://html5accessibility.com/stuff/2021/09/22/manifest-accessibility/">Manifest Accessibility</a> where he also regularly writes <a href="https://html5accessibility.com/stuff/">articles on HTML accessibility</a>.</p>
<p>If you are fortunate enough to bump into us at the next TetraLogical all-hands meeting there's a very high chance you will see the full cohort bedecked in &quot;punny&quot; Tshirts, mugs, hats, and stickers.</p>
<p>Whether he's pioneering web accessibility ideas, passionately sharing his thoughts on <a href="https://mastodon.social/@SteveFaulkner">Mastodon</a>, or curating his vinyl treasure trove, Steve brings a light-hearted energy and a wickedly dry sense of humour to everything he does.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>The learning journey never ends, there is always new technology and new ways to interact with technology that invariably does not take into account people with diverse access needs.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>Know your (Web) Standards.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>Up-to-date primary resources are the key: <a href="https://html5accessibility.com/stuff/2020/11/24/know-your-standards/">Know your Standards</a>.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Gez Lemon</title>
    <link href="https://tetralogical.com/blog/2024/01/10/meet-the-team-gez-lemon/"/>
    <updated>2024-01-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2024/01/10/meet-the-team-gez-lemon/</id>
    <content type="html"><![CDATA[
        <p>Meet Gez Lemon. In the colourful landscape of web accessibility, Gez Lemon stands out as not just a seasoned professional but also as one of the greats. Gez has always been at the forefront of the digital accessibility industry and has gone above and beyond in sharing his passion for making the web an inclusive space for everyone.</p>
<p><img src="https://tetralogical.com/blog/2024/01/10/meet-the-team-gez-lemon/GezLemon.jpg" alt="Gez smiling at the camera in a black Animal jumper with white camouflage-style sleeves" class="inline-image" style="max-height:15em" /></p>
<p>Gez kicked off his career journey with a BSc (Hons) in Software Engineering from the University of Surrey in 1997. From there, he delved into the world of web development at The Paciello Group (TPG). At TPG, he started as a Consultant and later evolved into the role of a Principal Accessibility Engineer, showcasing his commitment to making the web a great leveller for all.</p>
<p>However, Gez's reach always extended far beyond a typical 9 to 5. His website, <a href="https://juicystudio.com/">Juicy Studio</a> became one of the first blogs covering web accessibility. When standards changed or new specifications such as <a href="https://developer.mozilla.org/en-US/docs/Glossary/HTML5">HTML5</a> and <a href="https://www.w3.org/WAI/standards-guidelines/aria/">WAI-ARIA</a> came out, his would be the first site to give practical examples and use cases of these, allowing developers and designers a greater understanding of these often theoretical concepts. In its heyday, Juicy Studio became a go-to hub for accessibility info, earning Gez a reputation as a key player in the accessibility community and becoming a cornerstone for many navigating the ever-evolving standards of the digital landscape.</p>
<p>Gez's impact is far-reaching; his articles, talks, and blog posts are not just references but testimonials to the profound influence of his work. If you search online today, there are a staggering number of articles, talks and blog posts which either reference Gez, or directly credit his work, proving the ripple effects from Juicy Studio and his career so far are extensive.</p>
<p>Now serving as a Principal Accessibility Specialist at TetraLogical, Gez has been a driving force in the accessibility realm for decades. He created and contributes to the ongoing development and maintenance work on the <a href="https://github.com/ThePacielloGroup/WAI-ARIA-Usage/blob/master/README.md">WAI-ARIA usage</a> script, is a member of the <a href="https://www.w3.org/WAI/GL/">Accessibility Guidelines Working Group (AGWG)</a> and contributes towards the <a href="https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/">WCAG 3 Working Group</a>.</p>
<p>Originally hailing from Surrey and now calling Newcastle home, Gez is also a keen runner and champion of all things health and fitness.
Having retired Juicy Studio nearly a decade ago after his last blog post, it still stands as a relevant reference point, proving it has stood the test of time.</p>
<p>Beyond codes and standards, Gez Lemon is not just a professional; he mentors, supports, and propels emerging talents in the accessibility industry. His legacy lies not only in his website but in the professionals he has helped, including current TetraLogical team members, and the countless others he has guided into the industry.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>The struggle will be worth it. When I started, there was some hostility and pushback against accessibility. I'm pleased accessibility is now considered an essential aspect for software and the web.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>Include accessibility in the entire development lifecycle. It's much more difficult to address it retrospectively.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p><a href="https://w3c.github.io/using-aria/">Using ARIA</a> from the W3C. Ironically, some of the biggest accessibility issues we encounter come from incorrect use of ARIA, a specification intended to improve accessibility. There would be a lot less accessibility issues if developers read and understand the Using ARIA document.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Keyboard accessibility myths and WCAG</title>
    <link href="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/"/>
    <updated>2023-11-27T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/</id>
    <content type="html"><![CDATA[
        <p>Supporting keyboard-only interaction is one of the most important principles of web accessibility. However, the scope of the <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines (WCAG)</a> in relation to keyboard accessibility is often misunderstood.</p>
<h2 id="keyboard-accessibility-and-wcag" tabindex="-1">Keyboard accessibility and WCAG</h2>
<p>The main Success Criterion (SC) addressing keyboard accessibility within the Web Content Accessibility Guidelines (WCAG) is <a href="https://www.w3.org/TR/WCAG22/#keyboard">Success Criterion 2.1.1 Keyboard (Level A)</a>. This SC is often interpreted to mean that all content must be operable using the keyboard alone, without exception. However, if you consider how the SC is phrased, this is not the case:</p>
<blockquote>
<p>All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement and not just the endpoints.</p>
</blockquote>
<p>There are two statements within the SC that often cause developers to misinterpret the scope of the SC:</p>
<blockquote>
<p>All functionality of the content</p>
</blockquote>
<p>and</p>
<blockquote>
<p>except where the underlying function requires input that depends on the path of the user's movement and not just the endpoints.</p>
</blockquote>
<h2 id="keyboard-accessibility-and-functionality" tabindex="-1">Keyboard accessibility and functionality</h2>
<p>Interacting with a website or application typically involves performing sets of tasks, such as purchasing an item, reading a document, playing a video, liking a post, and so on. People interact with multiple individual controls to perform these tasks, such as buttons, links, form fields, as well as custom widgets such as carousels. Developers will therefore often spend a significant amount of time and effort ensuring that each of these controls is fully operable using the keyboard alone.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/at-keyboard-hands.jpg" alt="A person's hands typing on a MacBook Pro keyboard" />
<figcaption>Using a keyboard to navigate the web</figcaption>
</figure>
<p>However, it's the <em>functionality of the content</em> that's important, not the extent to which individual controls are keyboard accessible. This means that the SC can be met even if individual controls aren't keyboard accessible, <em>as long as</em> there is also a way of achieving the same result using the keyboard alone.</p>
<p>For example, an application form on a website may require a person to provide their date of birth by selecting the date from a date picker. If this date picker can only be operated using the mouse, and there is no other way for a person to enter their date, the SC won't be met. This is because there is no way for anyone using a keyboard alone to provide their date of birth.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/wcag-date-picker.jpg" alt="A date picker labeled 'Date of birth' without any form of manual entry" />
<figcaption>An example of a date picker that can only be operated using the mouse</figcaption>
</figure>
<p>However, if the form also includes a separate, keyboard accessible, method for a person to provide their date of birth, the SC will be met. This is because a date of birth can still be provided even if the date picker itself is not operable. For example, the form could also include a date field that would allow the person to enter their date of birth manually instead.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/wcag-date-picker-with-text-field.jpg" alt="A date picker labeled 'Date of birth' with an extra date field allowing manual entry" />
<figcaption>An example of a date field that supports both direct manual text entry and a separate date picker widget</figcaption>
</figure>
<p>That said, it is good practice to ensure that all controls are keyboard accessible by design, even if it means going above and beyond what is required by the SC, as this means you won't need to provide an accessible equivalent.</p>
<h2 id="keyboard-accessibility-and-paths" tabindex="-1">Keyboard accessibility and paths</h2>
<p>Like many other WCAG success criteria, SC 2.1.1 Keyboard (Level A) allows for certain exceptions. These exceptions relate to tasks that require people to trace a &quot;path&quot; using their input device. In some cases, it may be possible to achieve this using the keyboard alone or by providing an equivalent keyboard accessible method, and therefore the underlying functionality is subject to the requirements of the SC. In other cases, the very nature of the task means that it simply can't be completed using the keyboard alone, and no sensible keyboard accessible alternative exists – or at least no alternative that isn't extremely complex, time-consuming, or generally laborious. Here, the underlying functionality is exempt from the requirements of the SC.</p>
<h3 id="paths" tabindex="-1">Paths</h3>
<p>Distinguishing between those tasks that are subject to the SC and those that aren't can be somewhat tricky. To help make the decision, it is worth defining what a &quot;path&quot; means in this context.</p>
<p>The <em>path</em> refers to the route a person follows using their input device in order to complete an interaction. The path can be core to what the person is trying to do, such as drawing a circle, or it can be a function of how a control is presented or implemented, such as requiring the person to drag an object from one place to another.</p>
<p>The extent to which the functionality must be operable using the keyboard alone depends on whether the interaction involves <em>path-independent input</em> or <em>path-dependent input</em>.</p>
<h4 id="path-independent-input" tabindex="-1">Path-independent input</h4>
<p>Path-independent input refers to interactions where the route that a person traces between two points doesn't matter. For example, a media player might include a volume slider. For example, a person may want to adjust the volume level from 5 (the start point) to 11 (the end point). Here, the way that they move the toggle from the start point to the end point is irrelevant. They could move the toggle directly between the two values, or they could move it back down to 0, up to 12, and then back down to 11.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/wcag-volume-slider.jpg" alt="A vertical volume slider where the toggle is approximately halfway between the loudest and quietest points on the slider. There are plus and minus buttons at the top and bottom of the slider." />
<figcaption>A volume slider that includes Volume Up and Volume Down buttons as keyboard accessible alternatives for changing the volume</figcaption>
</figure>
<p>Typically, interactions requiring path-independent input can be made keyboard accessible, and are therefore subject to the SC. In the above example, the toggle should be made focusable, and a person should be able to move it along the slider using the arrow keys. If that's not possible, a developer could implement focusable buttons either side of the slider that, when activated, reduce and increase the volume respectively. The key aspect is that there is nothing within the task that should prevent it from being completed using the keyboard alone.</p>
<h4 id="path-dependent-input" tabindex="-1">Path-dependent input</h4>
<p>Path-dependent input refers to interactions where the route that a person traces between two points <em>does</em> matter. For example, &quot;steady hand&quot; games require players to move an item along a narrow twisting path from one end to another without deviating away from the path.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/11/27/keyboard-accessibility-myths-wcag/wcag_steady-hand-game.png" alt="A game with a Start point on the left, and an End point on the right. There is a squiggly line between these points, and a toggle on the line that a person must move from the start point to the end point without deviating away from the line." />
<figcaption>A steady-hand game that requires a path-based gesture to operate</figcaption>
</figure>
<p>A second example is free-hand drawing in a graphics editor. Again, there is a start point (a blank slate) and an end point (the complete drawing) but getting to that endpoint is completely dependent on how a person uses their input device to draw a picture.</p>
<p>Interactions like these can typically only be completed using a pointing device – such as a mouse or stylus – rather than a keyboard. While it is theoretically possible to make the task keyboard accessible, such as assigning specific keys to individual directions of movement, the result is likely to be unintuitive and require an inordinate number of key presses, to such an extent that it is unrealistic to expect people to complete the operation in a timely manner.</p>
<p>Therefore, such activities are exempt from the success criterion.</p>
<h3 id="note-on-paths-and-level-aaa-requirements" tabindex="-1">Note on paths and Level AAA requirements</h3>
<p>It is important to note that, while path-dependent interactions are exempt from Success Criterion 2.1.1 Keyboard, which is a Level A success criterion, they are not exempt from Success Criterion 2.1.3 Keyboard (No Exception), which is a Level AAA success criterion. The latter success criterion requires that all interactions must be operable using the keyboard, regardless of input method. However, this does not mean that path-dependent interactions must be made keyboard accessible; as indicated above, such interactions generally can't be completed using the keyboard alone. Rather, it means that such interactions won't conform to this success criterion and therefore won't meet Level AAA.</p>
<h3 id="note-on-paths-and-pointer-gestures" tabindex="-1">Note on paths and pointer gestures</h3>
<p>It is important to note that this blog post is primarily concerned with keyboard interaction only. There are success criteria you should be aware of when supporting interaction using the mouse and other pointing devices, such as <a href="https://www.w3.org/TR/WCAG22/#pointer-gestures">Success Criterion 2.5.1 Pointer Gestures (Level A)</a>, which covers path-dependent input, and <a href="https://www.w3.org/TR/WCAG22/#dragging-movements">Success Criterion 2.5.7 Dragging Movements (Level AA)</a>, which deals with path-independent input. For more details on this subject, refer to our <a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/">Foundations blog post on pointer gestures</a>.</p>
<h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>Supporting keyboard interaction is a key aspect of web accessibility. However, WCAG itself doesn't require that each and every interactive control is keyboard accessible. Rather, WCAG only requires that the functionality associated with a task can be completed using the keyboard alone. In some cases, this may mean providing additional ways that will allow people who cannot use a mouse, touch, or a similar pointing device to complete the task.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">Browsing with a keyboard</a></li>
<li><a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/">Foundations: pointer gestures</a></li>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html">W3C: Understanding 2.1.1 - Keyboard (Level A)</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read our <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Amendment to the Public Sector Accessibility Regulations</title>
    <link href="https://tetralogical.com/blog/2023/11/07/amendment-to-public-sector-accessibility-regulations/"/>
    <updated>2023-11-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/11/07/amendment-to-public-sector-accessibility-regulations/</id>
    <content type="html"><![CDATA[
        <p>The UK <a href="https://tetralogical.com/blog/2019/07/26/public-sector-accessibility-regulations/">Public Sector (Websites and Mobile Apps) Accessibility Regulations (PSAR)</a> came into effect in 2018, following the approval of a 2016 Directive from the European Union (EU). In 2022, an <a href="https://www.legislation.gov.uk/uksi/2022/1097/made">amendment to the PSAR</a> was released to address changes brought about by the UK's departure from the EU in 2020.</p>
<h2 id="uk-government-regulations-replace-eu-legislation" tabindex="-1">UK Government regulations replace EU legislation</h2>
<p>The amendment revokes what is known as &quot;retained direct EU legislation&quot;. This means that references like the following have been removed from the PSAR:</p>
<blockquote>
<p>(a)Commission Implementing Decision (EU) 2018/1523 of 11 October 2018 establishing a model accessibility statement in accordance with Directive (EU) 2016/2102 of the European Parliament and of the Council on the accessibility of the websites and mobile applications of public sector bodies</p>
</blockquote>
<p>In each case, the revoked legislation has been replaced by an equivalent from the UK Government. For example, Regulation 3 (where &quot;model accessibility statement&quot; is defined) now states that it will be published electronically by the Minister for the Cabinet Office.</p>
<h2 id="wcag-replaces-en-301-549" tabindex="-1">WCAG replaces EN 301 549</h2>
<p>The most significant change is to Regulation 9, which used to cite  <a href="https://www.etsi.org/human-factors-accessibility/en-301-549-v3-the-harmonized-european-standard-for-ict-accessibility">EN 301 549</a> as the accessibility standard websites and apps were required to meet. Regulation 9 now references the Web Content Accessibility Guidelines (WCAG) directly.</p>
<p>EN 301 549 is essentially <a href="https://www.w3.org/TR/WCAG21/">WCAG 2.1</a> with a few small tweaks, so this may not seem like much of a change at first. That is until you consider the way Regulation 9 is phrased:</p>
<blockquote>
<p>“9.  A website or mobile application of a public sector body will be presumed to be in conformity with the accessibility requirement to the extent that
the website or mobile application conforms to Level A and AA Success Criteria as set out in the Web Content Accessibility Guidelines recommended by the
World Wide Web Consortium, as amended from time to time</p>
</blockquote>
<p>It's the last phrase that is important. It means the PSAR no longer reference a specific version of WCAG but instead reference the current version of WCAG - which, as of 5 October 2023, is <a href="https://w3.org/tr/wcag22/">WCAG 2.2</a> which introduces several <a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/">new Success Criteria (SC)</a>.</p>
<h2 id="uk-government-monitoring-replaces-eu-monitoring" tabindex="-1">UK Government monitoring replaces EU monitoring</h2>
<p>In the last bit of retained direct EU legislation to be removed from the PSAR, the <a href="https://www.gov.uk/guidance/accessibility-monitoring-how-we-test">Cabinet Office approach to accessibility monitoring</a> replaces the EU &quot;monitoring methodology and the arrangements for reporting&quot; that were referenced in the PSAR before the 2022 amendment.</p>
<p>Amongst other things, the Cabinet Office approach says there will be a transition period of 12 months before the Cabinet Office will begin monitoring public sector websites and apps for conformance with WCAG 2.2. Until October 2024, WCAG 2.1 Level AA remains the standard required by the PSAR.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>In summary the Public Sector (Websites and Apps) Accessibility Regulations no longer reference EU legislation. However, the substance of the PSAR remain largely unchanged for now: the model accessibility template is  the same as its EU predecessor; the accessibility monitoring and reporting methodology is the same; and even the required accessibility standard remains, to all intents and purposes, the same - at least until October 2024.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/04wcag-primer/">WCAG primer</a> or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>What&#39;s new in WCAG 2.2</title>
    <link href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/"/>
    <updated>2023-10-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/</id>
    <content type="html"><![CDATA[
        <p>This post gives a high-level overview of what's new and what has changed in the <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines (WCAG) 2.2</a>, which have been promoted to stable W3C Recommendation today.</p>
<h2 id="changes-from-wcag-2.1" tabindex="-1">Changes from WCAG 2.1</h2>
<p>WCAG updates are intended to be backwards-compatible – by satisfying the requirements of WCAG 2.2, your site also satisfies the requirements of earlier versions of the specification. For this reason, the majority of WCAG 2.2 remains unchanged from WCAG 2.1.</p>
<p>One &quot;breaking&quot; change from WCAG 2.1 is the removal of Success Criterion 4.1.1 Parsing.</p>
<p>This criterion was useful when it was first introduced in WCAG 2.0 back in 2008, but thanks to changes in the HTML standard that specify a consistent way for browsers to error-correct malformed markup, it no longer provides any benefit to people with disabilities. Any other issues related to invalid markup that impact users – in particular, people who use screen readers/assistive technologies – are still covered in more specific Success Criteria, such as 1.3.1 Info and Relationships and 4.1.2 Name, Role, Value.</p>
<p>While 4.1.1 Parsing is still in WCAG 2.1, the latest re-published version of the standard (which should coincide with the release of 2.2) will contain an advisory note for 4.1.1 Parsing, stating that the criterion should always be considered satisfied (for HTML and XML content), effectively deprecating the requirement.</p>
<p>Beyond this change, WCAG 2.2 introduces 9 new Success Criteria:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#2.4.11-focus-not-obscured-(minimum)-(aa)">2.4.11 Focus Not Obscured (Minimum) (AA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#2.4.12-focus-not-obscured-(enhanced)-(aaa)">2.4.12 Focus Not Obscured (Enhanced) (AAA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#2.4.13-focus-appearance-(aaa)">2.4.13 Focus Appearance (AAA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#2.5.7-dragging-movements-(aa)">2.5.7 Dragging Movements (AA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#2.5.8-target-size-(minimum)-(aa)">2.5.8 Target Size (Minimum) (AA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#3.2.6-consistent-help-(a)">3.2.6 Consistent Help (A)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#3.3.7-redundant-entry-(a)">3.3.7 Redundant Entry (A)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#3.3.8-accessible-authentication-(minimum)-(aa)">3.3.8 Accessible Authentication (Minimum) (AA)</a></li>
<li><a href="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/#3.3.9-accessible-authentication-(enhanced)-(aaa)">3.3.9 Accessible Authentication (Enhanced) (AAA)</a></li>
</ul>
<h2 id="new-requirements" tabindex="-1">New requirements</h2>
<h3 id="2.4.11-focus-not-obscured-(minimum)-(aa)" tabindex="-1">2.4.11 Focus Not Obscured (Minimum) (AA)</h3>
<blockquote>
<p>When a user interface component receives keyboard focus, the component is not entirely hidden due to author-created content.</p>
</blockquote>
<p>Sighted people who can't use a mouse need to see what has keyboard focus. Some web pages include content that is designed to &quot;stick&quot; to a specific area of the page, even when the page is scrolled, or otherwise overlap existing content. This includes sticky headers/footers, cookie banners, and floating sidebars and menus. This can lead to keyboard focus disappearing behind these elements, which is problematic.</p>
<h4 id="how-to-meet-the-requirement" tabindex="-1">How to meet the requirement</h4>
<p>Ensure that when an item gets keyboard focus, the focus is <em>at least</em> partially visible. Depending on the type of content, there are different techniques using CSS that can help mitigate problems as discussed in our post <a href="https://tetralogical.com/blog/2023/06/08/focus-in-view/">Sticky content: focus in view</a>. As a best practice, avoid overlapping content altogether.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/focus-obscured.png" alt="Screenshot of the top of a mobile website, with a sticky top header obscuring part of a focused link" />
<figcaption>An example of a sticky header, with content scrolling behind it – focused elements can become partially or fully obscured by the header.</figcaption>
</figure>
<p>For configurable interfaces, where a user can open and then move content, the criterion only applies to the initial position of the content. Similarly, if a user can open additional content and then reveal the focused element without needing to move focus, the criterion is satisfied.</p>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html">Understanding SC 2.4.11: Focus Not Obscured (Minimum) (Level AA)</a>.</p>
<h3 id="2.4.12-focus-not-obscured-(enhanced)-(aaa)" tabindex="-1">2.4.12 Focus Not Obscured (Enhanced) (AAA)</h3>
<blockquote>
<p>When a user interface component receives keyboard focus, no part of the component is hidden by author-created content.</p>
</blockquote>
<p>This success criterion is similar to its AA counterpart, except that the entirety of the focus indicator must be unobscured, and there are no exceptions for configurable interfaces or the user's ability to make focus visible again after opening additional content.</p>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-enhanced.html">Understanding SC 2.4.12: Focus Not Obscured (Enhanced) (Level AAA)</a>.</p>
<h3 id="2.4.13-focus-appearance-(aaa)" tabindex="-1">2.4.13 Focus Appearance (AAA)</h3>
<blockquote>
<p>When the keyboard focus indicator is visible, an area of the focus indicator meets all the following:</p>
<ul>
<li>is at least as large as the area of a 2 CSS pixel thick perimeter of the unfocused component or sub-component, and</li>
<li>has a contrast ratio of at least 3:1 between the same pixels in the focused and unfocused states.</li>
</ul>
<p>Exceptions:</p>
<ul>
<li>The focus indicator is determined by the user agent and cannot be adjusted by the author, or</li>
<li>The focus indicator and the indicator's background color are not modified by the author.</li>
</ul>
</blockquote>
<p>Since WCAG 2.0 we have had success criterion 2.4.7 Focus Visible, which requires a visible indicator for elements that have keyboard focus. However, WCAG never normatively defined what &quot;visible&quot; meant in practice. While 1.4.11 Non-text Contrast in WCAG 2.1 defines the minimum contrast ratio for a focus indicator, it still doesn't cover its minimum dimensions and appearance. This criterion more specifically defines what a visible indicator must look like – both in terms of size/overall area, and what the difference in contrast must be between an element's focused and unfocused state.</p>
<p>Originally, this criterion was going to be at AA, but due to its complexity it was moved to AAA. This means that for sites that only work towards A/AA compliance, there is still no quantifiable measure of what a &quot;visible&quot; focus indicator should look like.</p>
<h4 id="how-to-meet-the-requirement-1" tabindex="-1">How to meet the requirement</h4>
<p>The simplest way to satisfy this requirement is to use an outline around the perimeter of a focused element that is at least 2 CSS pixels thick and has sufficient contrast (already covered by 1.4.11 Non-text Contrast). For other types of focus indicators – for instance, if your site only changes the colour, or adds an underline, partial border, or additional icon when an element receives focus, you will need to work out if this change has sufficient contrast with the non-focused state, and if the overall size/area of change is large enough.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/focus-appearance.png" alt="Two 'Example' buttons - the second button is focused and has a visible outline" />
<figcaption>Using a 2 CSS pixel thick focus indicator around a focused button</figcaption>
</figure>
<p>For more information read our post <a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">Foundations: visible focus styles</a>, as well as <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance.html">Understanding SC 2.4.13: Focus Appearance (Level AAA)</a>.</p>
<h3 id="2.5.7-dragging-movements-(aa)" tabindex="-1">2.5.7 Dragging Movements (AA)</h3>
<blockquote>
<p>All functionality that uses a dragging movement for operation can be achieved by a single pointer without dragging, unless dragging is essential or the functionality is determined by the user agent and not modified by the author.</p>
</blockquote>
<p>Sites that rely on dragging movements – such as drag-and-drop functionality, draggable carousels, maps that rely on dragging for panning, or sliders – can be problematic for users that do use mouse/touch inputs, but lack the necessary dexterity to confidently and reliably perform those movements. In these cases, a site must provide an alternative way for a mouse/touch user to still perform the same actions.</p>
<p>This criterion patches a gap from WCAG 2.1: that version introduced <a href="https://www.w3.org/TR/WCAG21/#pointer-gestures">2.5.1 Pointer Gestures (Level A)</a>, but that criterion was specifically scoped to path-based gestures. The new 2.5.7 Dragging Movements requirement applies more broadly to &quot;freeform&quot; dragging movements which are not necessarily path-based, but can still be problematic for certain users.</p>
<h4 id="how-to-meet-the-requirement-2" tabindex="-1">How to meet the requirement</h4>
<p>Make sure that there is a way for a mouse/touch user to still perform the same action using simple clicks/taps, rather than being forced to perform a dragging movement. For drag-and-drop interfaces, this could be achieved by allowing a user to click/tap on an item to &quot;pick it up&quot;, and a subsequent click/tap to &quot;drop it&quot;. For maps, add explicit directional buttons to pan the map view. For carousels, provide previous/next controls, or &quot;dots&quot; underneath the carousel to jump directly to a particular slide. For sliders, make sure that users can click/tap directly on the slider's &quot;track&quot; to move the slider to that particular position.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/dragging-movements.png" alt="An interactive map, showing a movement cursor for the mouse, as well as a set of directional buttons in the corner" />
<figcaption>A map that allows panning by dragging the mouse, but also includes single-click direction buttons</figcaption>
</figure>
<p>Note that a keyboard alternative (already covered by 2.1.1 Keyboard) is not necessarily sufficient to pass this requirement. Users must be able to perform the action using mouse/touch, and can't be expected to switch to a keyboard instead.</p>
<p>For more information read our post <a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/">Foundations: pointer gestures</a>, as well as <a href="https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html">Understanding SC 2.5.7: Dragging Movements (Level AA)</a>.</p>
<h3 id="2.5.8-target-size-(minimum)-(aa)" tabindex="-1">2.5.8 Target Size (Minimum) (AA)</h3>
<blockquote>
<p>The size of the target for pointer inputs is at least 24 by 24 CSS pixels, except where:</p>
<ul>
<li>Spacing: Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the bounding box of each, the circles do not intersect another target or the circle for another undersized target;</li>
<li>Equivalent: The function can be achieved through a different control on the same page that meets this criterion;</li>
<li>Inline: The target is in a sentence or its size is otherwise constrained by the line-height of non-target text;</li>
<li>User agent control: The size of the target is determined by the user agent and is not modified by the author;</li>
<li>Essential: A particular presentation of the target is essential or is legally required for the information being conveyed.</li>
</ul>
</blockquote>
<p>Activating small targets can be challenging for people who have difficulty with fine motor movement. In particular, when small targets are in close proximity, the wrong target may be activated by mistake. WCAG 2.1 tried to address the problem already with 2.5.5 Target Size (now renamed to 2.5.5 Target Size (Enhanced)) at AAA, setting a minimum target size of 44 by 44 CSS pixels.</p>
<p>On the surface, the new 2.5.8 Target Size (Minimum) criterion also defines a minimum target size of 24 by 24 CSS pixels. However, even if a target falls below this minimum, it can still pass this criterion if it provides sufficient <em>spacing</em>.</p>
<h4 id="how-to-meet-the-requirement-3" tabindex="-1">How to meet the requirement</h4>
<p>The simplest way to satisfy this criterion is to make sure that targets are at least 24 by 24 CSS pixels. Otherwise, at least provide sufficient <em>spacing</em> around each target: for each target, make sure that there at least a circular area with a diameter of 24 CSS pixels, centered on the target, that does not contain any other targets and does not intersect with any other spacing circles of adjacent targets. While the <em>spacing</em> clause in effect allows for targets that can be as small as a single 1 by 1 CSS pixel area, it at least prevents small targets from being placed too close to each other, leading to users accidentally activating the wrong target.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/target-size-minimum.png" alt="A toolbar with a series of buttons. The buttons are 20px by 20px, and have a 4px gap between them. A copy of the same toolbar is shown, with 24 CSS pixel circles drawn on each target for assessment. The circles do not intersect." />
<figcaption>Even when targets are smaller than 24 by 24 CSS pixels, they can pass this criterion provided there is sufficient spacing.</figcaption>
</figure>
<p>There are further exceptions for targets that have an equivalent alternative that <em>does</em> have a sufficient size, inline targets, targets whose appearance is fully controlled by the browser, and for targets that – because of their very nature, such as points on a map – have to be at a particular small size.</p>
<p>For more information read our post <a href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/">Foundations: target sizes</a> and  <a href="https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html">Understanding SC 2.5.8: Target Size (Minimum) (Level AA)</a>.</p>
<h3 id="3.2.6-consistent-help-(a)" tabindex="-1">3.2.6 Consistent Help (A)</h3>
<blockquote>
<p>If a Web page contains any of the following help mechanisms, and those mechanisms are repeated on multiple Web pages within a set of Web pages, they occur in the same order relative to other page content, unless a change is initiated by the user:</p>
<ul>
<li>Human contact details;</li>
<li>Human contact mechanism;</li>
<li>Self-help option;</li>
<li>A fully automated contact mechanism.</li>
</ul>
</blockquote>
<p>People who need help can find it more easily if it's in the same consistent place across all pages.</p>
<p>Note that this criterion does <em>not</em> mandate that sites must provide help mechanisms. Only that <em>if</em> they do, the order is consistent.</p>
<h4 id="how-to-meet-the-requirement-4" tabindex="-1">How to meet the requirement</h4>
<p>If your pages offer a help mechanism, make sure that the relative order of the help mechanism (or the link to reach said mechanism) is always in the same order relative to other page elements.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/consistent-help.png" alt="The top of a website, with a hovered 'Help' link" />
<figcaption>If there is a help mechanism – in this case, a literal &quot;Help&quot; link in the main navigation – make sure it's always in the same relative order compared to other page content.</figcaption>
</figure>
<p>This criterion is explicitly concerned with the focus/source order. Whether or not the <em>visual</em> position of the help mechanism is the same across pages is not important for this criterion, though as a best practice, you should aim for visual/layout consistency as well.</p>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/consistent-help.html">Understanding SC 3.2.6: Consistent Help (Level A)</a>.</p>
<h3 id="3.3.7-redundant-entry-(a)" tabindex="-1">3.3.7 Redundant Entry (A)</h3>
<blockquote>
<p>Information previously entered by or provided to the user that is required to be entered again in the same process is either:</p>
<ul>
<li>auto-populated, or</li>
<li>available for the user to select.</li>
</ul>
<p>Except when:</p>
<ul>
<li>re-entering the information is essential,</li>
<li>the information is required to ensure the security of the content, or</li>
<li>previously entered information is no longer valid.</li>
</ul>
</blockquote>
<p>If, as part of the same process, users are asked to re-enter the same piece of information multiple times, it increases the cognitive burden for a user, as they have to remember what they entered previously. It also increases the chance that they may make a mistake.</p>
<p>This criterion requires that users should generally not be asked to re-enter information they previously provided as part of the same process multiple times.</p>
<h4 id="how-to-meet-the-requirement-5" tabindex="-1">How to meet the requirement</h4>
<p>In general, avoid making users re-enter the same information multiple times as part of a process. If, for whatever reason, it <em>is</em> necessary to ask for the same information more than once, prefill/auto-populate the form fields already, or provide users with a way to select the previously entered information.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/redundant-entry.png" alt="Two sections of a form, side by side: 'Shipping Address' and 'Billing Address'. Both have form fields for an address line, city, country, state, and zip code. The 'Billing Address' section has a highlighted extra checkbox at the start: 'Same as shipping address" />
<figcaption>Checking the &quot;same as shipping address&quot; option avoids having to re-enter the same information again.</figcaption>
</figure>
<p>An example of this is a classic checkout process on an e-commerce site. At the start of the process, the site asks for a shipping address. In the billing part of the same checkout process, it will typically ask for a billing address. As it's common that both the delivery and billing address are the same, instead of having to explicitly fill in the same address again, users can just select a &quot;same as shipping address&quot; option.</p>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/redundant-entry.html">Understanding SC 3.3.7: Redundant Entry (Level A)</a>.</p>
<h3 id="3.3.8-accessible-authentication-(minimum)-(aa)" tabindex="-1">3.3.8 Accessible Authentication (Minimum) (AA)</h3>
<blockquote>
<p>A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:</p>
<ul>
<li>Alternative: Another authentication method that does not rely on a cognitive function test.</li>
<li>Mechanism: A mechanism is available to assist the user in completing the cognitive function test.</li>
<li>Object Recognition: The cognitive function test is to recognize objects.</li>
<li>Personal Content: The cognitive function test is to identify non-text content the user provided to the Web site.</li>
</ul>
</blockquote>
<p>Authentication often relies on a cognitive function test, such as remembering a username and password, manually entering a one-time passcode, or solving a calculation or puzzle. People with cognitive disabilities may find these tasks difficult or impossible to complete.</p>
<h4 id="how-to-meet-the-requirement-6" tabindex="-1">How to meet the requirement</h4>
<p>The simplest way to satisfy the criterion is not to have any cognitive function tests as part of an authentication process.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/cognitive-function-test.png" alt="'Please verify you are a human' form, showing a calculation - 15 multiplied by 9 - and an empty field for the user to enter the result" />
<figcaption>Cognitive function tests include mathematical puzzles and similar types of <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>s.</figcaption>
</figure>
<p>If the authentication process does have a cognitive function test, provide an alternative that does not rely on it - for instance, fingerprint authentication (via platform functionality like Windows Hello), open authorization (OAuth), use of a physical key/dongle, or app-based authentication (where a user opens a separate application and confirms that it is indeed them trying to log in).</p>
<p>Remembering and entering a username and password also falls under the definition of a &quot;cognitive function test&quot;. In these cases, the simplest way to meet the requirement is not to prevent copy/paste functionality on the login form fields, and allowing the use of password managers to autofill the fields, rather than having to manually type them in – this counts as a &quot;mechanism&quot;. The same is true for passcodes (such as TOTP codes): a user must be able to copy/paste these, rather than having to manually transcribe them.</p>
<p>This success criterion includes exemptions for &quot;object recognition&quot; – such as the classic &quot;select all squares that contain a particular type of object&quot; tests – and being able to recognise &quot;personal content&quot; – for instance, images that the user has previously uploaded to a site.</p>
<p>Note that this criterion (and its AAA counterpart) only apply to <em>authentication</em> – when a user logs into a site. They do not cover other situations where cognitive tests (such as CAPTCHAs) are presented to the user.</p>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html">Understanding SC 3.3.8: Accessible Authentication (Minimum) (Level AA)</a>.</p>
<h3 id="3.3.9-accessible-authentication-(enhanced)-(aaa)" tabindex="-1">3.3.9 Accessible Authentication (Enhanced) (AAA)</h3>
<blockquote>
<p>A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:</p>
<ul>
<li>Alternative: Another authentication method that does not rely on a cognitive function test.</li>
<li>Mechanism: A mechanism is available to assist the user in completing the cognitive function test.</li>
</ul>
</blockquote>
<p>This is the matching AAA version of 3.3.8 Accessible Authentication (Minimum). It is the same as its AA version, but without the exception for &quot;object recognition&quot; and &quot;personal content&quot;.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/10/05/whats-new-wcag-2.2/recaptcha.png" alt="'Select all images with taxis' box, showing a grid with nine images, some of which include yellow taxis" />
<figcaption>A classic reCAPTCHA image selection as an example of &quot;object recognition&quot;</figcaption>
</figure>
<p>For more information see <a href="https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-enhanced.html">Understanding SC 3.3.9: Accessible Authentication (Enhanced) (Level AAA)</a>.</p>
<h2 id="wcag-2.2-and-legal-obligations" tabindex="-1">WCAG 2.2 and legal obligations</h2>
<p>While WCAG itself is not a law, it is used as a reference/benchmark for accessibility-related legislation. For instance:</p>
<ul>
<li>In the US, <a href="https://www.section508.gov/manage/laws-and-policies/">Revised Section 508</a> currently still references WCAG 2.0. It is currently unclear when this will be updated to include the changes from WCAG 2.1 and now WCAG 2.2.</li>
<li>In Europe, the <a href="https://www.etsi.org/human-factors-accessibility/en-301-549-v3-the-harmonized-european-standard-for-ict-accessibility">European standard of Accessibility requirements for Information and Communications Technology (ICT) EN 301 549</a> is used as the basis for the European Web Accessibility Directive (WAD). There are further, country-specific local laws, such as the RGAA in France and the BITV in Germany, which build on this. EN 301 549 currently uses WCAG 2.1 as its baseline. Work on adopting WCAG 2.2 has already started, driven by the needs of the European Accessibility Act. It will probably take at least one year, possibly two, until the standard has been updated and referenced in the <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A32021D1339">Official Journal of the European Union</a>. Only after this second part will the updated EN standard have any legal value as a proof of conformance.</li>
<li>In the UK, the <a href="https://www.gov.uk/guidance/accessibility-requirements-for-public-sector-websites-and-apps">Public Sector Bodies (Websites and Mobile Applications) Accessibility Regulation</a> references WCAG as its benchmark. While currently it uses WCAG 2.1, the wording of the regulation references &quot;the Web Content Accessibility Guidelines recommended by the World Wide Web Consortium, <em>as amended from time to time</em>&quot;. After the release of WCAG 2.2, the new criteria will therefore become enforceable under the regulation, though there will likely be a 12 month transition period.</li>
</ul>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>As WCAG 2.2 has been released as a stable W3C Recommendation, now is the time to familiarise yourself with the new success criteria, and to integrate them in your own accessibility and design considerations.</p>
<p>While you may find that you're already compliant with some new criteria already, since they just clarify/enshrine best practices, others – such as 3.3.8 Accessible Authentication (Minimum) – may require more fundamental changes to existing processes and systems.</p>
<p>For our part, all new assessments at TetraLogical are based on WCAG 2.2 as a matter of course. We're doing this because we believe that each new version of WCAG offers a better experience for people with disabilities, irrespective of the version cited in law.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/04wcag-primer/">WCAG primer</a> or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>
<p>With thanks to <a href="https://tetralogical.com/blog/2023/03/14/meet-the-team-graeme-coleman/">Graeme Coleman</a> for his contributions to this post.</p>
<p>Updated: 11 October 2023</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Considerations for TV user interface accessibility</title>
    <link href="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/"/>
    <updated>2023-08-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/</id>
    <content type="html"><![CDATA[
        <p>TVs, set-top boxes and streaming devices are a huge part of all our lives and should be accessible so everyone can watch what they want, when they want, how they want.</p>
<p>We've started exploring challenges people with disabilities may face when interacting with TV apps and considerations for people designing and developing TV app interfaces.</p>
<p>How we experience TV depends on a mix of hardware and software working together to create the user experience. This includes set-top boxes, remote controls, platform accessibility settings, and support for assistive technologies such as screen readers and voice control. All of these will influence the accessibility of your content within a TV app.</p>
<p>If we then factor into this that TV platforms are built using different technologies and engines, designing TV applications can be very challenging. This post draws on best practice guidance from the <a href="https://www.ecfr.gov/cgi-bin/text-idx?SID=ba48a3ca3d06074b71e8ab3d924e1ece&amp;mc=true&amp;node=se47.4.79_1107&amp;rgn=div8">Code of Federal Regulations - § 79.107 User interfaces provided by digital apparatus</a> and other references to help you get started.</p>
<p>We document considerations around TV application accessibility from the perspective of different types of people using them and for people designing the interfaces. We touch on platform limitations and potential challenges TV app developers may experience as well as put forward possible workarounds and design considerations. It's not an exhaustive list and will have gaps we will continue to document as we explore more.</p>
<p><img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-couple-looking-at-app.jpg" alt="Looking from behind at two people sat on a sofa looking at a TV in front of them with an app on screen" /></p>
<h2 id="sources" tabindex="-1">Sources</h2>
<p>We reviewed the following platform accessibility guidelines and general accessibility guidelines to establish what the common challenges and themes might be.</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Name</th>
<th>Organization/program</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://www.ecfr.gov/cgi-bin/text-idx?SID=ba48a3ca3d06074b71e8ab3d924e1ece&amp;mc=true&amp;node=se47.4.79_1107&amp;rgn=div8">Code of Federal Regulations - § 79.107 User interfaces provided by digital apparatus</a></td>
<td>Federal Communications Commission</td>
</tr>
<tr>
<td><a href="https://www.access-board.gov/guidelines-and-standards/communications-and-it/about-the-ict-refresh/final-rule/text-of-the-standards-and-guidelines">Section 508</a></td>
<td><a href="https://www.access-board.gov/">United States Access Board</a></td>
</tr>
<tr>
<td><a href="https://eur-lex.europa.eu/eli/dir/2019/882/oj">Directive (EU) 2019/882 of the European Parliament and of the Council of 17 April 2019 on the accessibility requirements for products and services</a></td>
<td><a href="https://europa.eu/european-union/index_en">European Union</a></td>
</tr>
<tr>
<td><a href="https://www.ofcom.org.uk/__data/assets/pdf_file/0031/19399/code-practice-epg.pdf">Code of practice on electronic programme guides (PDF)</a></td>
<td><a href="https://www.ofcom.org.uk/">Ofcom</a></td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/WCAG21/">Web Content Accessibility Guidelines (WCAG) 2.1</a></td>
<td><a href="https://www.w3.org/">W3C</a></td>
</tr>
<tr>
<td><a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a></td>
<td>N/A</td>
</tr>
<tr>
<td><a href="https://www.apple.com/uk/accessibility/tv/">Apple TV Accessibility</a></td>
<td><a href="https://www.apple.com/">Apple</a></td>
</tr>
<tr>
<td><a href="https://www.amazon.co.uk/gp/help/customer/display.html?nodeId=202105050">Accessibility Features for Fire TV</a></td>
<td><a href="https://www.amazon.co.uk/">Amazon</a></td>
</tr>
</tbody>
</table>
</div><h2 id="1.-screen-reader-support" tabindex="-1">1. Screen reader support</h2>
<p>Screen readers are software that enables people with limited or no vision to listen to on-screen content.</p>
<p>People who rely on a screen reader should be able to navigate around a TV app with a screen reader announcing everything that conveys meaning visually, including text and non-text, for example:</p>
<ul>
<li>Menu options</li>
<li>Programme details</li>
<li>Images</li>
<li>Loading indicators</li>
<li>Warnings, confirmations, and other notification messages</li>
</ul>
<h3 id="considerations" tabindex="-1">Considerations</h3>
<p>Some TV platforms like Panasonic and Samsung have built-in Voice guidance. While other TVs and streaming devices may use the Android operating system, which supports the TalkBack screen reader. Other platforms won't have any support or partial support.</p>
<p>Arguably people who need a screen reader will have a TV or streaming device with a screen reader, but with the latest technology having better support, it becomes a question of affordability. Upgrading either TVs or streaming devices to the latest versions can be expensive and not always possible.</p>
<h3 id="groups-affected" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are blind</li>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="2.-audio-cues" tabindex="-1">2. Audio cues</h2>
<p>Audio cues are a helpful way to reinforce meaning for people who are blind, have low vision, or are unaware of what is happening on screen. For example, a &quot;beep&quot; indicates an incorrect action or that you have reached the end of a screen or list.</p>
<h3 id="considerations-1" tabindex="-1">Considerations</h3>
<p>Avoid using audio cues alone and combine them with visual cues as people who are Deaf or hard of hearing, in a noisy environment, or people who have audio cues switched off won't benefit from them.</p>
<p>A good approach is to use audio cues to <em>reinforce</em> meaning that has already been conveyed, such as a beep combined with an error message.</p>
<h3 id="groups-affected-1" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are deaf</li>
<li>People with a hearing impairment</li>
<li>People in a noisy environment or where they do not wish to disturb others</li>
</ul>
<h2 id="3.-voice-control" tabindex="-1">3. Voice control</h2>
<p>Remote controls can be hard to use for people with mobility and dexterity issues and people who can't see the small icons on buttons. Voice control is a valuable way to bypass having to use remote controls for journeys or searches that will require multiple button presses. Instead it can help people to comfortably find their desired content through, for example, a single button press and their voice.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-alexa-voice-control.png" alt="Fire TV remote control with button at the top that enables voice control" />
<figcaption>Fire TV has a simplified remote and supports voice control</figcaption>
</figure>
<h3 id="considerations-2" tabindex="-1">Considerations</h3>
<p>Not all platforms support voice control, while other platforms have better speech recognition engines than others. As with all these features, support is better in the latest TVs and streaming devices, which brings us back to the issue of affordability. Some people with limited mobility who would benefit from voice control may also have limited speech, so can't access it.</p>
<p>Voice control shouldn't be relied on alone as people with limited or no speech won't be able to use it. Think of voice control as <a href="https://inclusivedesignprinciples.info/#add-value">adding value</a> to an app that supports interaction fully via the remote control.</p>
<h3 id="groups-affected-2" tabindex="-1">Groups affected</h3>
<ul>
<li>People with limited or no speech</li>
<li>People who are blind or have low vision</li>
<li>People with cognitive or learning disabilities</li>
<li>People with limited manipulation, dexterity, reach, and strength</li>
</ul>
<h2 id="5.-customisation" tabindex="-1">5. Customisation</h2>
<p>Customising how you view content on screen helps improve the clarity of visual elements and supports personal preference.</p>
<p>This is helpful for everyone, especially those with low vision, cognition or learning disabilities. For example, people may want to increase text size, zoom into content, change colours, or use high contrast modes.</p>
<h3 id="considerations-3" tabindex="-1">Considerations</h3>
<p>As with screen reader support and voice control, support for customisation depends on the platform. However, there may also be opportunities to support customisation for people within your app. For example, the iPlayer TV app has a feature where you can choose different font sizes for subtitles.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-subtitles.png" alt="Screenshot of the BBC iPlayer app showing the open Subtitles and Settings menu with font size choices and some sample subtitle text" />
<figcaption>iPlayer supports choice for five different font sizes on TV</figcaption>
</figure>
<h3 id="groups-affected-3" tabindex="-1">Groups affected</h3>
<ul>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="6.-images" tabindex="-1">6. Images</h2>
<p>Images are vital in TV and streaming device apps as they help people recognise shows. For example, apps will use the thumbnail image of shows for people to navigate and select.</p>
<p>While this works for some, not everyone can recognise the images and some thumbnail designs might be too difficult for people with challenges with recall and memory.</p>
<h3 id="considerations-4" tabindex="-1">Considerations</h3>
<p>Consider providing the image with the programme's name adjacent to it so that people can navigate by the visual or the text.</p>
<p>If the text is presented on an image, ensure it is still readable with large enough fonts and good contrast. Consider obscuring the underlying content when the image has focus so the text is more prominent.</p>
<h3 id="groups-affected-4" tabindex="-1">Groups affected</h3>
<ul>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="7.-use-of-colour" tabindex="-1">7. Use of colour</h2>
<p>Colour is a valuable way of conveying meaning and reinforcing understanding. For example, it can be used to colour code different programme categories (drama, comedy or lifestyle programmes) or channels such as BBC One, Two, and Three on BBC iPlayer.</p>
<p>We can't all recognise colour, so meaning should also be conveyed in other ways.</p>
<h3 id="considerations-5" tabindex="-1">Considerations</h3>
<p>Consider using colour in combination with text and other visual cues to indicate an action, require a response, or identify an element. For example, use a border or underline for selected elements such as menu items.</p>
<p>Remember that good contrast is needed when conveying meaning so people can perceive the change. Read <a href="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/#findings8">colour contrast</a> below for more.</p>
<h3 id="groups-affected-5" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are blind</li>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="findings8">8. Colour contrast</h2>
<p>People need good contrast in order to read the content. This applies to text and non-text, such as icons and other non-decorative images and their background.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-android-interface.jpg" alt="Main navigation showing Home as white and underlined on a black background and grey for Search, Discover, and Apps" />
<figcaption>The menu on this Android interface uses a mix of good contrast, white on black, and poor contrast, grey on black</figcaption>
</figure>
<h3 id="considerations-6" tabindex="-1">Considerations</h3>
<p>Defining good contrast on TV is not easy. The WCAG requirement of 4.5:1 for small text and 3:1 for large text and non-text can't be applied because TV is a vastly different environment to viewing web content on a desktop or mobile phone. TV is designed for viewing at a distance, so colours are saturated and more luminescent. As with contrast on mobile, the environment and lighting may also change depending on the room a person is in and the time of day. Different displays and settings may also affect contrast.</p>
<h3 id="group-affected" tabindex="-1">Group affected</h3>
<ul>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="9.-flashing-and-movement" tabindex="-1">9. Flashing and movement</h2>
<p>Flashing elements and movement can be a distraction, making content uncomfortable and difficult to read. For some people, it can trigger seizures, headaches, or nausea.</p>
<h3 id="considerations-7" tabindex="-1">Considerations</h3>
<p>Minimise movement where possible. For example, if an error notification appears to indicate that there has been a loss of internet access, you could use a micro-animation to draw people's attention to it, but it should not keep flashing.</p>
<h3 id="groups-affected-6" tabindex="-1">Groups affected</h3>
<ul>
<li>People with vertigo</li>
<li>People with epilepsy</li>
<li>People with a vestibular disorder</li>
<li>People with other photosensitive disorders</li>
</ul>
<h2 id="10.-focus-indication" tabindex="-1">10. Focus indication</h2>
<p>To some extent, everyone is a keyboard user when interacting with TV apps, as most of us use remote control to move focus around the screen.</p>
<p>People should be able to visually track where the focus is on the screen and identify selected menu items, form inputs, buttons and controls.</p>
<h3 id="considerations-8" tabindex="-1">Considerations</h3>
<p>Design borders or underlines around the focused element. If the element already has a border, avoid relying on a colour change alone and provide good contrast. For example, if the element is placed against a black or otherwise dark background, the focus indicator could be yellow (or equivalent) to provide good contrast. If the element is placed against a white or otherwise light background, the focus indicator could be dark blue (or equivalent).</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-play-station-vue-selected-programme.png" alt="A selected programme with a subtle blue border adjacent to a black interior and black exterior background" />
<figcaption>The blue focus outline could be lost around the selected programme (The Tonight Show) but is complemented by showing the selected item as a large rectangle next to the rest of the carousel items, which are squares</figcaption>
</figure>
<h3 id="groups-affected-7" tabindex="-1">Groups affected</h3>
<ul>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="11.-keyboard-support" tabindex="-1">11. Keyboard support</h2>
<p>Using a remote control may not be possible for everyone. Remotes can be hard to hold and lift for people with limited dexterity, for example. Many platforms support navigation using an external Bluetooth keyboard, such as Apple TV, Fire TV, and Android TV, which are more comfortable for some people to use.</p>
<h3 id="considerations-9" tabindex="-1">Considerations</h3>
<p>As with screen readers and other accessibility settings, support for external keyboards will vary. The question of affordability and having the latest TV or streaming device that supports Bluetooth is also a factor.</p>
<p>As a general good practice, design interfaces that minimise the number of steps needed to complete tasks and therefore reduce the key presses needed to get to desired content. For example, consider adding a filter on a search results screen so people can remove unwanted content and avoid unnecessary presses.</p>
<p>Keyboard navigation should also be logical and sequential. Remote controls do better at spatial navigation using the up / down, left / right arrow buttons, and other shortcut buttons such as Play, Pause, Back, Menu, Close etc. than a keyboard where these options are not always available.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-remote.jpg" alt="Person holding a remote control with a 'menu' button" />
<figcaption>Remote controls come in different shapes and sizes depending on the manufacturer, some with more buttons than others or organised in different ways like this remote control which has arrow buttons arranged in a circle</figcaption>
</figure>
<h3 id="group-affected-1" tabindex="-1">Group affected</h3>
<ul>
<li>People with limited manipulation, dexterity, reach, and strength</li>
<li>People who are blind or have low vision and use a screen reader</li>
</ul>
<h2 id="13.-discoverability-of-alternative-formats" tabindex="-1">13. Discoverability of alternative formats</h2>
<p>People need obvious and easy ways to get to alternative formats such as captions, audio descriptions (AD), and signed versions of content (where they are supported).</p>
<h3 id="considerations-10" tabindex="-1">Considerations</h3>
<p>Many remote controls have buttons to switch AD and captions on and off. However, this shouldn't be relied upon as not everyone will have a remote with that capability. Additionally, some people may not know their remote <em>has</em> that capability or be able to see the buttons to use them.</p>
<p>Consider providing multiple ways for people to find alternative formats within the UI:</p>
<ul>
<li>Include alternative formats in the category menu, for example Audio described, Comedy, Drama, Documentaries, and so on</li>
<li>Indicate what programmes have alternative versions in lists of programmes, for example a search results screen or screen listing dramas</li>
<li>Include filters on listing pages so people can search for the content they want and then filter the results to surface alternative formats</li>
</ul>
<p>Another consideration is some people may always want alternative formats, while others may want them occasionally. For example, someone who is Deaf may always want captions switched on and will do so via their settings or remote. Someone who occasionally uses captions will want access to captions within the player controls.</p>
<h3 id="groups-affected-8" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are deaf or have a hearing impairment who rely on closed captions</li>
<li>People who are blind or low vision who rely on audio description</li>
<li>People with cognition or learning disabilities</li>
<li>People browsing in a second language</li>
<li>People in a noisy environment or where they do not wish to disturb others</li>
</ul>
<h2 id="14.-consistency" tabindex="-1">14. Consistency</h2>
<p>Consistent design helps people familiarise themselves with an app and how to use it. This could be the consistency of layouts and positioning of functionally over repeated pages and consistent styles for buttons and controls.</p>
<h3 id="considerations-11" tabindex="-1">Considerations</h3>
<p><a href="https://inclusivedesignprinciples.info/#be-consistent">Consistency</a> can be thought about in three ways.</p>
<p>Firstly, <strong>consistency with general design patterns</strong> from TV or media player landscapes. For example, using familiar icons for player controls: play, pause, volume, rewind, forward wind etc.</p>
<p>Secondly, <strong>consistency with platform design patterns</strong>. By using familiar patterns, people will better understand how to navigate the UI. For example, Apple's <a href="https://developer.apple.com/tvos/planning/">Planning your tvOS</a> states:</p>
<blockquote>
<p>Assemble your UI from standard views: Build your UI from buttons, text labels, and other standard views and controls in tvOS when your content doesn't change significantly between releases. Customise the appearance of controls, or create entirely new views to present your content in unique ways. Your UI remains local to Apple TV, and you fill it with data you obtain locally or from the network.</p>
</blockquote>
<p>People are already familiar with using standard views and controls, which helps enormously. You can then customise the controls for a unique experience.</p>
<p>Thirdly, <strong>consistency with design patterns within your app</strong>. This means using consistent language and labels for controls, positioning repeated controls in the same across screens etc. Some thought could also be given to repeating design patterns from experiences on other platforms, such as mobile and the web. For example, like many TV apps, Netflix has an Audio and Subtitles menu that can be accessed via the player controls within the TV app, mobile apps, and on the web. Each has the same functionality, headings, look and feel.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/08/09/tv-accessibility-considerations/tv-netflix-subs-menu-cross-platform.jpg" alt="Three screenshots showing the same design for the Netflix  Audio &amp; Subtitles menu on TV, web and iOS" />
<figcaption>The Netflix Audio and Subtitles menu for Netflix has a consistent design and is located in the same place across TV, web, and mobile</figcaption>
</figure>
<h3 id="groups-affected-9" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are blind</li>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="15.-provide-enough-time" tabindex="-1">15. Provide enough time</h2>
<p>We all need variable times to read content or complete actions. If content or tasks are time-based, ensure people are given adequate time to do what they need.</p>
<h3 id="considerations-12" tabindex="-1">Considerations</h3>
<p>For example, if a programme summary appears on focus, give people sufficient time to read it before it disappears, or better yet, make sure it does not automatically disappear after a set amount of time. Give people <a href="https://inclusivedesignprinciples.info/#give-control">control</a> over content by providing a close button.</p>
<h3 id="groups-affected-10" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are blind</li>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="16.-provide-accessible-support-services" tabindex="-1">16. Provide accessible support services</h2>
<p>People need easy an obvious ways to find help and support.</p>
<h3 id="considerations-13" tabindex="-1">Considerations</h3>
<p>Provide support services at no extra cost and accommodate various communication needs for people with disabilities. Possible support services include, but are not limited to:</p>
<ul>
<li>Links to Help screens</li>
<li>Help desks</li>
<li>Call centres</li>
<li>Relay services</li>
<li>Technical support</li>
</ul>
<p>Depending on the nature of the issue, some help or support features might be mapped to the TV platform. Minimally a link to a help page should be provided.</p>
<h3 id="groups-affected-11" tabindex="-1">Groups affected</h3>
<ul>
<li>People who are blind</li>
<li>People with low vision</li>
<li>People with cognition or learning disabilities</li>
</ul>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li>The user experience of TV apps is tightly integrated with the hardware and software used to access it</li>
<li>All TV and streaming device platforms have different capabilities and accessibility support services, so ensure the core experience that is within your control is as accessible as possible within your TV app</li>
<li>WCAG has not been written with TV apps in mind, so it does not have a one-to-one mapping</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about how our <a href="https://tetralogical.com/services/design-reviews/">design review</a> and <a href="https://tetralogical.com/services/assessments/">assessments</a> services can help you create more inclusive user experiences for people with disabilities watching TV.</p>
<p>With thanks to <a href="https://tetralogical.com/blog/2023/03/14/meet-the-team-graeme-coleman/">Graeme Coleman</a> and <a href="https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/">Henny Swan</a> for their contributions to this post.</p>
<p>Updated 14 August 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Alistair Duggin</title>
    <link href="https://tetralogical.com/blog/2023/07/05/meet-the-team-alistair-duggin/"/>
    <updated>2023-07-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/07/05/meet-the-team-alistair-duggin/</id>
    <content type="html"><![CDATA[
        <p>Meet Alistair Duggin, <b>TetraLogical</b>'s accessibility champion with a passion for wildlife, fitness and all things outdoorsy.</p>
<p><img src="https://tetralogical.com/blog/2023/07/05/meet-the-team-alistair-duggin/AlistairDuggin.jpg" alt="A smiley Alistair smiling straight at the camera surrounded by leafy green bushes in the background" class="inline-image" style="max-height:15em" /></p>
<p>To begin at the start, Alistair embarked on his academic journey at Nottingham University, where he studied Zoology. With a keen interest in ecology, conservation, and wildlife photography, he set out to explore the wonders of the natural world. During a three-month expedition in the Philippines, he found himself scuba diving, surveying coral reefs, and even had the unforgettable experience of swimming alongside a whale shark.</p>
<p>After his overseas adventures, Alistair decided to broaden his horizons even further and combine his love for natural history with digital multimedia. He pursued a Master's degree in Interactive Multimedia at Middlesex University.</p>
<p>Alistair's professional journey kicked off at the BBC, where he started as a web assistant. He worked his way up to become a frontend developer, playing a key role in building the <a href="https://www.bbcearth.com/nature">BBC Nature website</a>, which he had an obvious interest in!</p>
<p>It was at the BBC that Alistair became deeply passionate about making digital experiences inclusive for all. He spearheaded the creation of the BBC's first website that used CSS for layout and contributed to BBC Standards and Guidelines. His expertise in accessibility caught the attention of the BBC London Olympics 2012 website team, where he joined as a Principal Developer and became an Accessibility Champion. Alongside <b>TetraLogical</b>'s <a href="https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/">Henny</a> and <a href="https://tetralogical.com/blog/2023/06/01/meet-the-team-ian-pouncey/">Ian</a>, Alistair's approach to championing accessibility inspired the birth of the <a href="https://www.bbc.co.uk/accessibility/forproducts/champions/">BBC's Accessibility Champions Network</a>.</p>
<p>Ever the trailblazer, Alistair continued his mission to make digital spaces more accessible. He joined <a href="https://www.bbc.co.uk/weather">BBC Weather</a>, where he played a vital role in developing the first accessible native app at the BBC. He then joined the Money Advice Service, leading the rebuild of their website, creating one of the first accessible and responsive UI component libraries.</p>
<p>Soon after, Alistair found himself at <a href="https://www.gov.uk/government/organisations/hm-treasury">HM Treasury</a>, contributing to the delivery of the government PensionWise digital service. But it was his time at the <a href="https://www.gov.uk/government/organisations/government-digital-service">Government Digital Service (GDS)</a> that truly solidified his position as a leader in the accessibility world. As the Head of Accessibility, Alistair spent three and a half transformative years at GDS. He raised accessibility awareness across government, set accessibility requirements for the government service standard, and played a pivotal role in embedding accessibility into the <a href="https://design-system.service.gov.uk/">GOV.UK Design System</a>. Under his guidance, the <a href="https://www.gov.uk/service-manual/communities/accessibility-community">Government Accessibility Community</a> flourished, growing to over a thousand passionate individuals.</p>
<p>Always pushing the boundaries, Alistair spearheaded the creation of the UK's first-ever assistive technology device lab, also known as the <a href="https://gds.blog.gov.uk/2018/06/20/creating-the-uk-governments-accessibility-empathy-lab/">Accessibility Empathy Lab</a>. This groundbreaking initiative was paramount in allowing its visitors to gain a deeper understanding of the barriers people with disabilities face online. Alistair also lent his expertise to support the implementation of the Public Sector Bodies Accessibility Regulations 2018, making a tangible difference in government policy.</p>
<p>Beyond his professional achievements, Alistair is a devoted family man. He finds joy in spending time with his son Ethan and wife, and he's recently reignited his love for music by playing the guitar. Alistair's adventurous spirit also shines through with his passion for long-distance cycling, camping, and enjoying the finer things in life like craft beer, music, movies, and comedy. He has completed several Iron Man challenges, known as one of the hardest triathlons a non-athlete can compete in.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>Accessibility isn't just about meeting an accessibility standard or a set of guidelines, and it's not just the responsibility of a developer to make a design compatible with assistive technologies. How a product is designed is key to making it accessible. There are four ways to make something accessible - and they all need to be considered rather than picking just one.</p>
<ol>
<li>
<p>You need to have accessible defaults - by that, I mean design decisions need to reduce the risk that some people will struggle to use it. For example, deciding to use larger text, good colour contrast, consistent layouts, and simple interactions will always lead to a more accessible product than deciding to use small text, low colour contrast, inconsistent layouts and complex interactions.</p>
</li>
<li>
<p>You need to provide alternative ways to achieve tasks and access content if providing a single way will exclude some people. For example, don't just provide a slider or date picker, provide a text input to enter the same data; don't just provide an interactive map, provide a text and form-based way to get the same information; don't require someone to use touch to complete a task, ensure there is a way that will also work with a keyboard or voice control. Provide appropriate text descriptions for images, captions and/or transcripts for audio, and audio descriptions for video.</p>
</li>
<li>
<p>You need to allow the customisations that some users will need (and are often built into browsers and operating systems). For example, allow users to make text larger, override colours and spacing and turn off animations and captions.</p>
</li>
<li>
<p>You must ensure that your build is compatible with different input devices and assistive technologies. Follow good practice for code so that controls work with a keyboard and voice control and essential information such as a control's role, name, value or state is available to screen readers.</p>
</li>
</ol>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>Accessibility is a team effort - everyone on a team, from product owners, user researchers, designers, content creators, developers and testers, has a role to play.  It's really important to help everyone know their responsibility and the barriers they can accidentally introduce. If you can get everyone doing their bit, at the right time, then accessibility becomes so much easier to achieve, and you end up creating much better products.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>A book that I love and thoroughly recommend is <a href="https://rosenfeldmedia.com/books/a-web-for-everyone/">A Web For Everyone: Designing Accessible User Experiences</a>, By Sarah Horton &amp; Whitney Quesenbery. It explains accessibility through the lens of people with a range of access needs, shows the importance of design in achieving accessibility and how WCAG is a tool to help you achieve accessibility rather than being the end goal.</p>
<p>The WebAIM website is a brilliant resource that covers a breadth of material and is great for understanding all the fundamentals.</p>
<p><a href="https://ebay.gitbook.io/mindpatterns/">eBay MIND Patterns</a> is a brilliant resource for understanding how to make many of the components found on the web accessible. They have four main groups of component-related patterns: Messaging, Input, Navigation and Disclosure. They provide comprehensive documentation, which includes best practices, interaction design and developer guidance and a site containing <a href="https://opensource.ebay.com/mindpatterns/index.html">working examples</a></p>
<h2 id="more-from-alistair" tabindex="-1">More from Alistair</h2>
<h3 id="blog-posts" tabindex="-1">Blog Posts</h3>
<ul>
<li><a href="https://accessibility.blog.gov.uk/2016/05/16/what-we-mean-when-we-talk-about-accessibility-2/">What we mean when we talk about accessibility</a></li>
<li><a href="https://accessibility.blog.gov.uk/2016/05/16/consider-the-range-of-people-that-will-use-your-product-or-service/">Consider the range of people that will use your product or service</a></li>
<li><a href="https://gds.blog.gov.uk/2018/06/20/creating-the-uk-governments-accessibility-empathy-lab/">Creating the UK government’s accessibility empathy lab</a></li>
<li><a href="https://gds.blog.gov.uk/2018/09/13/accessibility-advice-when-creating-a-uk-government-consultation/">Accessibility advice when creating a UK government consultation</a></li>
<li><a href="https://accessibility.blog.gov.uk/2018/03/13/advice-for-making-events-and-presentations-accessible/">Advice for making events and presentations accessible</a></li>
</ul>
<h3 id="talks" tabindex="-1">Talks</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=myczHDuBHuY">How making services accessible benefits all users</a> Service Experience Camp</li>
<li><a href="https://www.youtube.com/watch?v=4QsYk8XOUlw">A four-part accessible design strategy</a> Accessibility London</li>
<li><a href="https://www.frontendne.co.uk/talks/accessibility-for-developers-building-a-frontend-that-everyone-can-use/">Accessibility for developers: Building a frontend everyone can use</a> Frontend NE</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Sticky content: focus in view</title>
    <link href="https://tetralogical.com/blog/2023/06/08/focus-in-view/"/>
    <updated>2023-06-08T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/06/08/focus-in-view/</id>
    <content type="html"><![CDATA[
        <p>Sticky content helps prioritise important content so it's always visible, but it can create issues for sighted people who use a keyboard, or a keyboard-like device, as focused controls become hidden behind the sticky content.</p>
<p>This post discusses how you can keep controls behind sticky content visible and usable when they receive focus.</p>
<p>A small amount of CSS is all it takes to make it possible for people to see the content they are interacting with and help you meet the existing <a href="https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html">2.4.7 Focus Visible (AA)</a>, and the proposed <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html">2.4.11 Focus Not Obscured (Minimum)</a> WCAG success criteria.</p>
<p>If you're not familiar with focus styles, we cover what this means and how you can create visible focus styles in our blog post: <a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">Foundations: visible focus styles</a>.</p>
<h2 id="the-problem-with-sticky-content" tabindex="-1">The problem with sticky content</h2>
<p>Sticky content remains visible over other content on the page, ensuring the sticky content is always available. It's an effective way of allowing you to visually find important information you may need, at any time. For example, many websites use sticky headers to keep controls visible on long pages to save you from scrolling to the top of the page.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/06/08/focus-in-view/google-sticky-header-obscures-content.png" alt="Screenshot demonstrates how Google uses a sticky header to keep the search bar visible on screen, but this obscures the search results content beneath it" />
<figcaption>Google's sticky header obscuring the TetraLogical link</figcaption>
</figure>
<p>However, sticky content can obscure content beneath it, and if you use a keyboard to navigate, there may be controls that receive focus, but you can't see.</p>
<p>In this case, the browser is doing everything as expected: the sticky content remains visible and the control receives focus. However, the issue is that the focus is not visible to us.</p>
<figure>
<video controls="">
<source src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-header-and-banner-focus-obscured.mp4" type="video/mp4" />
<track default="" label="English" kind="captions" srclang="en" src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-header-and-banner-focus-obscured.vtt" />
</video>
<figcaption>Example of a sticky header and banner which obscure links - as focus cycles through page links, elements behind/underneath the sticky elements receive focus.</figcaption>
</figure>
<p>This current behaviour fails <a href="https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html">2.4.7 Focus Visible (AA)</a> and <a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html">2.4.11 Focus Not Obscured (Minimum)</a> because the focus indicator is not visible, nor is the control that receives focus.</p>
<h2 id="resolving-the-issue-with-scroll-margin-%2F-scroll-padding" tabindex="-1">Resolving the issue with <code>scroll-margin</code> / <code>scroll-padding</code></h2>
<p>We can use the relatively recent <code>scroll-padding</code> and <code>scroll-margin</code> CSS properties to resolve this issue. These control the padding and margin that are applied to scrollable areas, particularly when content scrolls as a result of keyboard focus being moved. Note that <code>scroll-margin</code> currently has some bugs / browser incompatibilities (particularly in Safari), so we recommend using <code>scroll-padding</code> at the time of writing.</p>
<p>Use the <code>scroll-padding</code> property, setting its value to the height of the &quot;sticky&quot; element. If you're unsure about the element's height, you can use your browser's Developer Tools.</p>
<p><img src="https://tetralogical.com/blog/2023/06/08/focus-in-view/dev-tools-dimensions-of-sticky-element.png" alt="Screenshot that shows the dimensions of the header when hovered over with DevTools open, as well as in the computed section of the elements panel." /></p>
<p>The approach works best if you use <code>rem</code> or <code>em</code> units which will scale alongside any zoom or text sizing applied. In the following example, the container has a height of roughly <code>6rem</code>. Based on this, the CSS you'll need to add is:</p>
<pre class="language-css"><code class="language-css"><span class="token property">scroll-padding-top</span><span class="token punctuation">:</span> 6rem<span class="token punctuation">;</span></code></pre>
<p>To ensure this is applied, you must add the styling to a scroll container. Chromium-based browsers allow this to be applied to the elements themselves, but Safari requires it to be applied to the scroll containers. In the following example, we've chosen to apply it to anything in the HTML or body elements (<code>&lt;html&gt;</code>, <code>&lt;body&gt;</code>).</p>
<pre class="language-css"><code class="language-css"><span class="token selector">html, body</span> <span class="token punctuation">{</span>
  <span class="token property">scroll-padding-top</span><span class="token punctuation">:</span> 6rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<p>By adding this CSS, when elements receive focus, the page will scroll them into view as normal but will also take into account the scroll padding, making sure that they don't land behind the sticky content.</p>
<figure>
<video controls="">
<source src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-header-and-banner-focus-visible.mp4" type="video/mp4" />
<track default="" label="English" kind="captions" srclang="en" src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-header-and-banner-focus-visible.vtt" />
</video>
<figcaption>Example of a sticky header and banner which do not obscure focused links in the page - with the scroll-padding applied, interactive elements receive focus and &quot;move out&quot; from under the sticky content to become visible.</figcaption>
</figure>
<h2 id="similar-use-cases" tabindex="-1">Similar use cases</h2>
<p>You can add scroll padding for similar use cases, such as a cookie banner that may be visible.</p>
<p>In the demonstration below, a cookie banner remains visible at the bottom of the screen until it is dismissed. As with the sticky header, we don't want the content to receive focus behind this control. You can resolve this by adding scroll padding. However, as this content can be dismissed, we may not always want a large amount of scroll padding to be applied if it's not visible. In this case, we can use the <code>has()</code> selector to only apply the <code>scroll-padding-bottom</code> when the banner is visible.</p>
<pre class="language-css"><code class="language-css"><span class="token selector">:is(html, body):has(aside)</span> <span class="token punctuation">{</span>
  <span class="token property">scroll-padding-bottom</span><span class="token punctuation">:</span> 6rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<figure>
<video controls="">
<source src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-banner-gets-dismissed.mp4" type="video/mp4" />
<track default="" label="English" kind="captions" srclang="en" src="https://tetralogical.com/blog/2023/06/08/focus-in-view/sticky-banner-gets-dismissed.vtt" />
</video>
<figcaption>Example of a cookie banner - interactive elements that receive focus are visually scrolled above the cookie banner. When the banner is dismissed, the padding is removed from the bottom of the page.</figcaption>
</figure>
<h2 id="shortcomings" tabindex="-1">Shortcomings</h2>
<p>One of the limitations of the <code>scroll-margin</code> / <code>scroll-padding</code> approach is that you will need to know the exact height of the sticky content. This may not always be known ahead of time, particularly if the dimensions of the sticky content container can change based on the actual height of its content. In those cases, you may have to resort to additional JavaScript to dynamically change the value of the <code>scroll-margin</code> or <code>scroll-padding</code>.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li><code>scroll-margin</code> and <code>scroll-padding</code> can be used to allow controls behind sticky content to become visible when they receive focus</li>
<li>Paired with the right CSS selectors, the behaviour can be made specific to the sticky content visible on the screen</li>
</ul>
<h2 id="related-wcag-2.1-success-criteria" tabindex="-1">Related WCAG 2.1 Success Criteria</h2>
<ul>
<li>2.4.7 Focus Visible (Level AA)</li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://codepen.io/JoeLamyman/full/qBJqeGa/acd48746ae07a60b33d0c1e6aa85e46e">Focus visible demo</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding"><code>scroll-padding</code></a>, MDN</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more about <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design systems</a> or how our <a href="https://tetralogical.com/services/design-system-assessments/">design system assessments</a> gives you the information you need to build accessibility into your products early from the start.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>The only accessibility specialist in the room</title>
    <link href="https://tetralogical.com/blog/2023/06/05/the-only-accessibility-specialist-in-the-room/"/>
    <updated>2023-06-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/06/05/the-only-accessibility-specialist-in-the-room/</id>
    <content type="html"><![CDATA[
        <p>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.</p>
<p>I've been thinking a lot recently about the challenges you face and some of the ways you can approach these, which I thought I'd throw into a post.</p>
<p><img src="https://tetralogical.com/blog/2023/06/05/the-only-accessibility-specialist-in-the-room/open-and-closed-doors.png" alt="One open door in a row of closed doors" /></p>
<h2 id="responsibility" tabindex="-1">Responsibility</h2>
<p>Firstly, you're not the sole person responsible for accessibility.</p>
<p>Now read that again.</p>
<p>It's everyone's responsibility, from product owners and managers to designers, UX'ers, content editors, developers, and QA. The list is as long as there are roles in your company or team. This also includes company owners, directors, CEOs, and managing directors who have a moral and legal responsibility to make products accessible.</p>
<p>If you are the only person with accessibility in your job title or responsibility for accessibility, we sometimes forget this and think we must do everything. Equally, your team and others expect you to have an in-depth knowledge of everything from design, code, QA, strategy, and legal.</p>
<p>Establishing that you are the person who can support teams and not the person to do all the work and decision-making is key. Defining clear boundaries and understanding where your role and expertise start and stop is essential.</p>
<p>Which leads me to relationship building.</p>
<h2 id="relationships" tabindex="-1">Relationships</h2>
<p>Your role is as much about relationships as it is about accessibility.</p>
<p>Look for the decision-makers and managers who can make things happen and get their buy-in. They are the people who manage the teams and can get accessibility written into product requirements and team objectives. They hold the budgets, and have the first and last say; they have the authority.</p>
<p>Equally, look for the designers, developers, editors, and testers who want to get into accessibility. They are powerful advocates and can help you by matching their subject matter expertise to your accessibility knowledge.
Using your time to support and empower people is a great way to amplify your reach and create a network of accessibility advocates and practitioners.</p>
<p>On that note, scale.</p>
<h2 id="scale" tabindex="-1">Scale</h2>
<p>As an individual, look for ways to scale and amplify what you do.</p>
<p>Often we're pulled into the detail of reviewing a design for accessibility, training, testing, triaging accessibility issues, or responding to complaints. All the above are essential but not <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable</a> if you follow a model of doing all the work. Investing time in showing others how to do the work has a more significant impact and creates accessibility practitioners.</p>
<p>So instead of doing all the work, invest time documenting a process that can be demonstrated and socialised within teams. This could be a process for <a href="https://tetralogical.com/services/design-reviews/">reviewing designs</a> for accessibility, testing, triaging accessibility issues, or <a href="https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/">writing user stories for accessibility</a>.</p>
<p>Think about what questions you're asked most, then document your answers in shared spaces: Confluence, a Wiki, onboarding materials, <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">design system documentation</a>…wherever your organisation pools knowledge.</p>
<p>In my early days at BBC, we were an accessibility team of two. Having been embedded in two products, we flipped our working model so that I no longer supported products and instead worked on establishing an accessibility framework, guidelines, and training that everyone could access and use across the organisation.</p>
<p>Which leads me to managing expectations.</p>
<h2 id="expectation" tabindex="-1">Expectation</h2>
<p>Accessibility is as broad as it is deep.</p>
<p>You can't be the specialist in everything to the extent that people need you to be. You will have your area of expertise and should play to your strengths. It's fine not to know the answer, and there are plenty of ways around that. Build up a list of trusted resources and contacts. Tell people you will need to go and research it and come back with some options for them to consider. Your job is to help teams understand what their options are so they can make informed decisions about the accessibility of their products.
If specialist knowledge is needed, get a consultant or additional support. If you need a budget, invest some time in <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">writing a business case for accessibility</a>. If you don't ask, you don't get.</p>
<p>Again, as the sole accessibility specialist in organisations, I found it more efficient to commission an accessibility assessment, research, or usability testing than to do it myself. I'd invest time curating findings from the assessments, research, and usability testing back into our accessibility documentation and processes so everyone benefited, not just the product being tested.</p>
<p>None of this is easy without support.</p>
<h2 id="support" tabindex="-1">Support</h2>
<p>As well as building your relationships internally, build a support network externally. Step one is to plug into all the right places. There is so much out there now that you can pick and choose; if you're unsure where to start, you can't go wrong with the following:</p>
<ul>
<li><a href="https://app.slack.com/client/T042TSFEC/C042TSFGN">A11y Slack</a>, a Slack channel dedicated to multiple topics around accessibility</li>
<li><a href="https://www.linkedin.com/groups/12499821/">Champions of Accessibility Network</a> (CAN) on LinkedIn, a group of people who have experience in setting up and managing accessibility champion networks who hold monthly online meetups</li>
<li><a href="https://webaim.org/discussion/">WebAIM discussion list</a>, a long-standing discussion group with lots of knowledgeable people curated by the brilliant team at WebAIM</li>
</ul>
<p>Getting a mentor is a great way to get direct support and a safe place to ask questions and get guidance. If you don't know people to ask directly, some groups match mentors with mentees. I'm currently a mentor with <a href="https://accessiblecommunity.org/">Accessible Community</a>, and together with my mentee, we focus on what she needs in the &quot;now&quot; and act as a sounding board for ideas and provide feedback.</p>
<h2 id="in-summary" tabindex="-1">In summary</h2>
<ul>
<li>Accessibility is everyone's <strong>responsibility</strong> all the time, not just your responsibility all the time</li>
<li>Build <strong>relationships</strong> with decision-makers with authority to embed accessibility and practitioners ready to build up their skills</li>
<li>Look for ways to <strong>scale</strong> what you do through demonstration and documentation</li>
<li>Manage <strong>expectations</strong> and be clear about what you can do</li>
<li>Build a <strong>support</strong> network through community groups and mentor programmes</li>
</ul>
<p>Your role is as much about diplomacy, communication, and empathy for the challenges teams face as it is about accessibility knowledge. You also need to look after your headspace and be realistic about what you can do. You don't need to do everything; all you need to do is open the door and bring others with you.</p>
<p>This article was first <a href="https://www.linkedin.com/pulse/only-accessibility-specialist-room-henny-swan%3FtrackingId=PXGW7CWbQmy9z10Th4%252BDsQ%253D%253D/?trackingId=PXGW7CWbQmy9z10Th4%2BDsQ%3D%3D">posted on LinkedIn</a>.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read about the <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">business case for accessibility</a> or how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Ian Pouncey</title>
    <link href="https://tetralogical.com/blog/2023/06/01/meet-the-team-ian-pouncey/"/>
    <updated>2023-06-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/06/01/meet-the-team-ian-pouncey/</id>
    <content type="html"><![CDATA[
        <p>Meet Ian Pouncey, a Director since day one of TetraLogical and our resident fitness, health, and weightlifting expert.</p>
<p><img src="https://tetralogical.com/blog/2023/06/01/meet-the-team-ian-pouncey/ian-pouncey.jpg" alt="Ian eating a gelato in Rome, looking very content smiling at the camera" class="inline-image" style="max-height:15em" /></p>
<p>Ian hails from the Wirral, a charming peninsula nestled near the cities of Liverpool and Chester in North West England. In 2007, he decided to take his web development skills on a grand adventure and relocated to London. There, he joined the dynamic team at Yahoo! where he worked his magic on the iconic Yahoo! homepage.</p>
<p>When Ian isn't immersed in the world of web development, you'll find him headbanging to his favourite heavy metal music. He is particularly enamoured with the legendary band Iron Maiden, because (apparently) they are the absolute best in the world and Ian will not hear otherwise. He also makes sure his long dark hair stays on brand in a particular viking meets modern metal fan way.</p>
<p>As a Star Wars aficionado, Ian has a passion for all things sci-fi and fantasy. Whether it's spaceships battling in galaxies far, far away or mythical creatures roaming enchanted lands in the pages of a novel, Ian is right in the midst of it all.</p>
<p>Ever since he was a teenager, Ian has been embarking on epic quests and battling fearsome dragons as a devoted player of role-playing games like Dungeons &amp; Dragons, and continues this tradition to this day.</p>
<p>Ian's journey into the world of web development began way back in 1995, when the internet was still finding its feet. He started writing HTML code in 1996, and by 2000, he had established himself as a professional web developer. Along the way, he worked with various companies, from small web agencies to big players like Yahoo!, the BBC, and TPG (now TPGi). Ian's repertoire expanded as he transitioned from using Dreamweaver to becoming a master of hand-coding HTML, CSS, and JavaScript, all while embracing web standards and accessibility as part of his day-to-day work.</p>
<p>Ian has even penned a book titled <a href="https://www.amazon.co.uk/Beginning-CSS-Cascading-Sheets-Programmer/dp/0470891521">Beginning CSS: Cascading Style Sheets for Web Design, 3rd Edition</a>. Other books are of course available, but as we're highly biased we're going to say this is the best one.</p>
<p>With a wealth of experience under his belt, Ian has actively contributed to the web development community. Since 2008, he has been involved in various W3C working groups, sharing his knowledge and expertise to shape the future of the web.</p>
<p>Today, Ian proudly serves as a Director at TetraLogical and has been involved since the very beginning. With over two decades of experience, he is a true veteran in the world of web development, ensuring that the digital landscape is accessible and inclusive for all.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>I wish I'd known more about how people, particularly those with disabilities, use the web. As with many web developers, I learnt from books, blogs, and conference talks rather than formal training in HCI or a related subject, so I didn't have much exposure to how people <em>really</em> use the web. I muddled along and, in hindsight, did a decent job, but I could have done better. It's an ongoing learning experience, and there is still more for me to know.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>Can I only have one?</p>
<ul>
<li>Look for accessibility improvements you can make every time you update a design or a piece of code</li>
<li>Designers: communicate the intent behind your choices in your designs; annotate them with structure, semantics, and interactions</li>
<li>Developers: work with designers to help with the technical aspects of structure, semantics, and interactions</li>
</ul>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>Not specifically for accessibility, but I use <a href="https://developer.mozilla.org/">MDN</a> a lot. It's a great resource for web developers, and it has a lot of information about accessibility.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Dean Holden</title>
    <link href="https://tetralogical.com/blog/2023/05/03/meet-the-team-dean-holden/"/>
    <updated>2023-05-03T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/05/03/meet-the-team-dean-holden/</id>
    <content type="html"><![CDATA[
        <p>Meet Dean Holden, a music-loving, vinyl-collecting family man who has also made significant contributions to web accessibility in his decades of experience in the corporate world.</p>
<p><img src="https://tetralogical.com/blog/2023/05/03/meet-the-team-dean-holden/dean-holden.jpg" alt="Dean, smiling in a close-up at the camera with a leafy green background behind him" class="inline-image" style="max-height:15em" /></p>
<p>Born in Rochdale, North Manchester, music has probably been the most significant focus of his life. He started teaching himself the keyboard when he was around six, and most of his memories from senior school are around music. He played the piano for all school assemblies, choirs, swing bands, and show rehearsals and was let loose on the Parish Church organ for special school events.</p>
<p>He then went on to read music at Bangor University in the mid-late 90s, although if truth be told, he did little reading and much of his degree was spent in the recording studio (and the pub). After that, he spent a couple of years helping to run a purpose-built recording studio for GCSE and A-level music specialists at Wells Cathedral School in Somerset.</p>
<p>At Wells, he met his wife Sophie, a professional flautist and woodwind teacher, and they have been happily married for over two decades with two kids. Dean is a family man at heart and loves spending time with them. He has also grown a large collection of vinyl records since he was about ten years old, to the point where he has several thousand, which he is still slowly making his way through as background music to work.</p>
<p>Dean's other passion is Rochdale football club, who he has been following for over 35 years. When he lived with his parents in the early 90s, he and his dad rarely missed a match home or away. He still tries to see them play when he can now, but it's far less than it used to be.</p>
<p>Around the turn of the century (just to sound old), Dean joined Nationwide Building Society and worked there for over 20 years, the vast majority of which he spent working on the company website as a web developer. While there, he also built a successful site called Live Sport on TV in his spare time, which was getting to be almost a full-time job of its own, so he sold the site and moved his focus to accessibility!</p>
<p>At Nationwide, he became an accessibility specialist within the organisation and helped set up the foundations of a dedicated <a href="https://www.nationwide.co.uk/help/accessibility/online-accessibility/">accessibility team</a> with <a href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/">Léonie Watson</a>. Together, the Nationwide accessibility team began work to embed accessibility through the company's end-to-end processes, creating role-specific guidance on accessibility responsibilities and delivering face-to-face team training sessions. More recently, Dean has worked as a Senior Accessibility Engineer at TPGi, leading a team in providing accessibility audits for clients.</p>
<p>Dean has gone from musical prodigy to now becoming a Senior Accessibility Specialist at TetraLogical, having joined our team in December last year.</p>
<h2 id="what%E2%80%99s-the-one-thing-you-wish-you%E2%80%99d-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What’s the one thing you wish you’d known when you started learning about accessibility?</h2>
<p>As a self-taught front-end developer, I wish I had been given context and understanding of my audience and their needs. I remember looking up accessible names and how to use screen reader software in order to fix bugs that were just along the lines of ‘cannot use with a screen reader’. In my mind I was just looking for a quick technical fix. But looking back I know that what I really needed was an understanding of how different people would use what I was building in different ways and with different needs.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-tip%3F" tabindex="-1">What’s your top accessibility tip?</h2>
<p>I try and think of myself using what I’m creating or assessing in different situations that cover off a multitude of potential issues.
So for example:</p>
<ul>
<li>Can I do everything with a keyboard?</li>
<li>Could I use it in glaring sunshine outside (thinking about colour contrast, zoom, reflow for smaller screens, use of colour, etc)?</li>
<li>If I couldn’t see it for whatever reason, could I understand the content, context and layout without the visual clues (thinking about semantic HTML structure, text alternatives, notification of dynamic updates, etc)?</li>
<li>If I had to use my voice to interact, is it obvious how things are programmatically named so that I can refer to them (thinking about accessible names of buttons, for example, so that I can say “click ‘go to previous step’ button)?</li>
</ul>
<p>I just find imagining myself in various situations helps me understand what’s needed.</p>
<h2 id="what%E2%80%99s-your-top-accessibility-resource%3F" tabindex="-1">What’s your top accessibility resource?</h2>
<p>Probably the <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">ARIA Authoring Practices Guide (APG)</a>. I refer to it often, just because it’s easy over time to lose track of the basics. Other than that, probably reading blogs of many other accessible professionals out there such as Adrian Roselli from whom I’ve learnt a massive amount from.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meeting WCAG Level AAA</title>
    <link href="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/"/>
    <updated>2023-04-21T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/</id>
    <content type="html"><![CDATA[
        <p>In this post, we cover updates we've made to our own site in order to better satisfy the requirements of the Web Content accessibility Guidelines (WCAG) 2.1 Level AAA.</p>
<p>Building on a WCAG 2.1 AAA assessment carried out by independent auditor <a href="https://www.linkedin.com/in/stommepoes/">Mallory van Achterberg</a> in 2019, which included a few issues that had since been resolved, we identified the following shortcomings to fix:</p>
<ul>
<li>Some of our controls did not meet the <a href="https://www.w3.org/TR/WCAG21/#target-size">2.5.5 Target Size</a> requirements</li>
<li>The site used colour combinations that pass <a href="https://www.w3.org/TR/WCAG21/#contrast-minimum">1.4.3 Contrast (Minimum)</a> at AA, but not the stricter <a href="https://www.w3.org/TR/WCAG21/#contrast-enhanced">1.4.6 Contrast (Enhanced)</a> at AAA</li>
</ul>
<p>Since the original assessment, we also produced a number of videos that are included in various blog posts. This brought a further consideration under AAA:</p>
<ul>
<li>When first published, our videos did not include any sign language interpretation, falling short of the requirements for <a href="https://www.w3.org/TR/WCAG21/#sign-language-prerecorded">1.2.6 Sign Language (Prerecorded)</a></li>
</ul>
<h2 id="meeting-target-size-(minimum)" tabindex="-1">Meeting Target Size (Minimum)</h2>
<p>Originally, our site featured a few controls/links that did not satisfy the minimum target size requirements of 44×44 CSS pixels.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/target-size-before-large-screen.png" alt="The social media icon links in the footer – one icon is highlighted, and the developer tools popup shows that the link has a dimension of 25.42×24 pixels" />
<figcaption>The social media icon links in the footer</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/target-size-before-small-screen.png" alt="The social media icon links in the footer in small-screen/mobile view – one icon is highlighted, and the developer tools popup shows that the link has a dimension of 24.31×24 pixels" />
<figcaption>The social media icon links in the footer on a small-screen/mobile device</figcaption>
</figure>
<p>To satisfy the requirements of the success criterion, we made these elements larger. In our case, this was straightforward, as it had minimal impact on our relatively simple layout. All it took were minor CSS changes to set an appropriate minimum width and height.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/target-size-after-large-screen.png" alt="The social media icon links in the footer – one icon is highlighted, and the developer tools popup shows that the link has a dimension of 44×44 pixels" />
<figcaption>The social media icon links in the footer, now with increased size and padding</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/target-size-after-small-screen.png" alt="The social media icon links in the footer in small-screen/mobile view – one icon is highlighted, and the developer tools popup shows that the link has a dimension of 44×44 pixels" />
<figcaption>The social media icon links in the footer on a small-screen/mobile device, now with increased size and padding</figcaption>
</figure>
<p>Note that the Target Size criterion exempts targets that are in a sentence or block of text, meaning that the majority of links in the main content of our pages are exempt.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/target-size-inline-exempt.png" alt="Three bullet points, each containing links. One of the links is highlighted, showing that the link's height is 24.67 pixels" />
<figcaption>A section of our bullet list of services, where each bullet point contains links</figcaption>
</figure>
<h2 id="increased-text-color-contrast" tabindex="-1">Increased text color contrast</h2>
<p>It can often be a challenge to find a suitable colour combination that passes the basic AA colour contrast threshold of <code>4.5:1</code> while working within the confines of a corporate identity colour palette.</p>
<p>The following table shows the breakdown of TetraLogical's corporate colours, and their colour contrast ratio against the off-white background we use for our site.</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Preview</th>
<th>Name</th>
<th>Hexadecimal</th>
<th>Contrast on off-white (<code>#F6F5F4</code>)</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-primary.png" alt="Colour sample for dark purple" /></td>
<td>Primary (dark purple)</td>
<td><code>#420065</code></td>
<td>13.6:1</td>
</tr>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-inclusive.png" alt="Colour sample for light purple" /></td>
<td>Inclusive (light purple)</td>
<td><code>#A900C0</code></td>
<td><code>5.6:1</code></td>
</tr>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-sustainable.png" alt="Colour sample for red" /></td>
<td>Sustainable (red)</td>
<td><code>#FF1958</code></td>
<td><code>3.5:1</code></td>
</tr>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-ethical.png" alt="Colour sample for pink" /></td>
<td>Ethical (pink)</td>
<td><code>#E100A0</code></td>
<td><code>4.1:1</code></td>
</tr>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-original.png" alt="Colour sample for orange" /></td>
<td>Original (orange)</td>
<td><code>#F56F00</code></td>
<td><code>2.7:1</code></td>
</tr>
<tr>
<td><img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/palette-bright.png" alt="Colour sample for light orange" /></td>
<td>Bright (yellow)</td>
<td><code>#FFC000</code></td>
<td><code>1.5:1</code></td>
</tr>
</tbody>
</table>
</div><p>Most of our colours are designed to be used against a white/light background and, where necessary, only at large sizes (to satisfy either the <code>4.5:1</code> threshold for regular text, or the <code>3:1</code> threshold for large text).</p>
<p>In practice, the lighter colours are used for incidental and decorative purposes, and we only use the two colours with the strongest contrast (dark and light purple) for content. However, once we move to AAA, the only viable colour that meets/exceeds the <code>7:1</code> contrast threshold is the primary/dark purple one.</p>
<p>If we kept to the corporate identity palette, we would have to remove vibrant/dynamic colours for links and call-to-action buttons, making an almost monochromatic version (as far as text content is concerned) of our site. This makes the site work well for people requiring high contrast, but is less aesthetically pleasing and potentially more tiring and difficult to parse visually for others.</p>
<p>To try and square the circle for this issue, we took a pragmatic approach with our site's styling.</p>
<p>The current draft for <a href="https://www.w3.org/TR/mediaqueries-5/">CSS Media Queries Level 5</a> introduces a variety of new media query features, including a query for <a href="https://www.w3.org/TR/mediaqueries-5/#prefers-contrast"><code>prefers-contrast</code></a>. This allows developers to define specific styles based on a person's contrast preference.</p>
<p>We used a <code>@media (prefers-contrast: more) { … }</code> block to redefine specific colour combinations that failed the stricter AAA threshold, such as the colour of links, call-to-action buttons, pagination controls, icon-based social media links, and the various controls in our 3rd party blog comment system.</p>
<p>Here are a few examples showing our site's default styles and how things look when the <code>prefers-contrast: more</code> media query evaluates to true:</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/contrast-links-ctas-footer.png" alt="Side-by-side comparison of a section of the tetralogical homepage in regular and high contrast mode. In regular mode, links use a light purple colour. In high contrast mode, they use a much darker shade of purple" />
<figcaption>Comparison of the regular and high contrast text links, button-like call to action links, and social media icon links</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/contrast-pagination-before-after.png" alt="Side-by-side comparison of blog pagination links in regular and high contrast mode. In regular mode, the links use white text on a light purple square, and the current page's link uses white text on dark purple. In high contrast mode, the links use white text on dark purple, and the link for the current page uses dark purple text on a white square with a dark purple border" />
<figcaption>Comparison of the regular and high contrast blog pagination links</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/contrast-commento.png" alt="Side-by-side comparison of the blog comment form in regular and high contrast mode. In regular mode, the buttons use white text on a light purple background. The table providing basic markdown explanations uses the same whit text on light purple for the column headers, and its code samples use medium gray text on a light gray background with a slightly darker gray border. In high contrast mode, the buttons use the dark purple background. The table uses dark purple as a background for the column headers, and the code samples use a lighter background, but make the text and border much darker" />
<figcaption>Comparison of the regular and high contrast blog comment form, including the markdown help table</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/contrast-commento-login.png" alt="Side-by-side comparison of the blog login modal dialog in regular and high contrast mode. In regular mode, the buttons for Google, Twitter, and Gitlab use white text on bright, highly saturated colour backgrounds. In high contrast mode, the button backgrounds have been darkened to increase the contrast against the white text" />
<figcaption>Comparison of the regular and high contrast blog login modal dialog</figcaption>
</figure>
<p>While this media query is well supported in modern <em>browsers</em> (see the <a href="https://caniuse.com/mdn-css_at-rules_media_prefers-contrast">&quot;Can I use…&quot; breakdown for <code>prefers-contrast</code></a>), not all <em>operating systems</em> currently provide an easily-accessible way to set this contrast preference in the first place.</p>
<p>At the time of writing, macOS and iOS have the best implementation for setting this preference at the operating system level. On macOS, the option to &quot;Increase contrast&quot; is found in &quot;Settings &gt; Accessibility &gt; Display&quot;, while on iOS it's under &quot;Settings &gt; Accessibility &gt; Display &amp; Text Size&quot;.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/settings-macos.png" alt="The settings app on macOS, showing the 'Accessibility &gt; Display' section, with the 'Increase contrast' toggle highlighted. The screenshot shows the effect with the toggle off and on" />
<figcaption>The &quot;Increase contrast&quot; toggle in macOS' settings</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/settings-ios.png" alt="The settings app on iOS, showing the 'Accessibility &gt; Display &amp; Text Size' screen, with the 'Increase contrast' toggle highlighted. The screenshot shows the effect with the toggle off and on" />
<figcaption>The &quot;Increase Contrast&quot; toggle in iOS' settings</figcaption>
</figure>
<p>Depending on which particular flavour/distro of Linux you use, a similar OS-level setting is available. For instance, in <a href="https://ubuntu.com/">Ubuntu</a>, you can find a &quot;High Contrast&quot; option in the settings app under &quot;Accessibility &gt; Seeing&quot;. At the time of writing, this setting seems to be only supported correctly by Firefox, but there are open bug tickets against other major browsers.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/settings-ubuntu.png" alt="The settings app on Ubuntu, showing the 'Accessibility &gt; Seeing' section, with the 'High Contrast' toggle highlighted. The screenshot shows the effect with the toggle off and on" />
<figcaption>The &quot;High Contrast&quot; toggle in Ubuntu</figcaption>
</figure>
<p>There is no separate OS-level option on Windows to set a preference for higher contrast. Instead, Windows 11 settings offer &quot;Contrast themes&quot; in the &quot;Accessibility&quot; section. A subtly renamed take on Windows' classic &quot;High Contrast Mode&quot;, this allows people to choose from a series of predefined colour schemes with more distinct colours.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/settings-win.png" alt="The settings app on Windows, showing the 'Accessibility &gt; Contrast themes' screen. The screenshot shows the effect of selecting and applying one of the themes, 'Desert'" />
<figcaption>&quot;Contrast themes&quot; in Windows 11's accessibility settings</figcaption>
</figure>
<p>Applying a contrast theme <em>does</em> result in the <code>prefers-contrast: more</code> media query evaluating to true (which can be verified with a simple test such as this <a href="https://codepen.io/patrickhlauke/pen/NWyajBN">Media Queries Level 5 user preference test</a>). However, just as with the &quot;Windows High Contrast Mode&quot; (WHCM) of old, this setting also forces most foreground and background colours to be replaced with the theme colours, so our high contrast tweaks are not actually displayed, nor necessary.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/contrast-themes-tetralogical.png" alt="Screenshot showing the 'hello@tetralogical.com' call to action link displayed with turquoise text and a matching border on an off-white background, and the social media icons in the footer using the same turquoise colour" />
<figcaption>The &quot;Contact us&quot; section and footer of the TetraLogical homepage, with the contrast themes' colours applied</figcaption>
</figure>
<p>Authors do have a small amount of control over which are used when in high contrast/contrast theme mode using the <a href="https://w3c.github.io/csswg-drafts/mediaqueries-5/#forced-colors"><code>force-colors: active</code></a> media query. We'll cover this in a separate blog post.</p>
<p>Lastly, Android currently lacks any support for setting high contrast. While there is a &quot;High contrast text&quot; toggle in &quot;Settings &gt; Display &gt; Display size and text&quot; in the default Android OS and an equivalent &quot;High contrast fonts&quot; toggle in &quot;Settings &gt; Accessibility &gt; Visibility Enhancements&quot; on the popular Samsung-flavoured version of Android OS, these settings only affect the operating system itself. Regardless of this OS-level setting, <em>browsers</em> on Android always report <code>prefers-contrast: no-preference</code>, and the custom <code>prefers-contrast: more</code> styles are not applied.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/settings-android.png" alt="The settings app on default Android OS, showing the 'Display &gt; Display size and text' screen, with the 'High contrast text' toggle highlighted. The screenshot shows the effect with the toggle off and on" />
<figcaption>The &quot;High contrast text&quot; toggle in Android's &quot;Display size and text&quot; settings</figcaption>
</figure>
<p>While the current approach of having the AAA-conforming contrast ratio on-demand only, dependent on the <code>prefers-contrast: more</code> media query feature, only has partial support, it does strike a pragmatic balance between the needs of people that require very strong contrast, and those who find lower contrast and a more varied use of colour to distinguish page elements (e.g. static text from links), easier to read and understand. Support for this feature will improve as operating systems and browsers implement and/or surface this user preference.</p>
<h2 id="sign-language-versions-of-our-videos" tabindex="-1">Sign language versions of our videos</h2>
<p>The most recent change to our site centred on the various videos we use in blog posts and as learning resources. Per <a href="https://www.w3.org/TR/WCAG21/#sign-language-prerecorded">1.2.6 Sign Language (Prerecorded)</a>, we provided versions of our videos which include sign language interpretation.</p>
<p>As we don't have the necessary resources in-house, we used a dedicated company specialising in sign language content creation to create signed versions of our videos. We also included links to the signed versions wherever we had previously embedded the non-signed versions.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/bsl-signer-tetralogical-video.jpg" alt="Still from the 'Browsing with a desktop screen reader' video, showing the video title and TetraLogical logo, with a superimposed sign language interpreter on the bottom right of the video" />
<figcaption>One of TetraLogical's &quot;Browsing with…&quot; videos with a sign language interpreter</figcaption>
</figure>
<p>For more information on this, see our recent blog post <a href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/">Adding sign language to videos</a>.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>This post gave an insight into how we updated our site to meet WCAG 2.1 Level AAA requirements for:</p>
<ul>
<li>Target size</li>
<li>Colour contrast requirements</li>
<li>Sign language support for video</li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">Understanding WCAG 2.1 Level AAA</a></li>
<li><a href="https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/">Testing WCAG 2.1 Level AAA</a></li>
<li><a href="https://tetralogical.com/blog/2022/05/20/triaging-wcag-level-aaa/">Triaging WCAG 2.1 Level AAA</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/04wcag-primer/">WCAG primer</a> or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: accessible names and descriptions</title>
    <link href="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/"/>
    <updated>2023-04-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/</id>
    <content type="html"><![CDATA[
        <p>An element's name, or accessible name, is how it's identified. An accessible description provides additional information, about the element, that complements the accessible name.</p>
<p>In this post we explore assigning accessible names and descriptions using HTML and WAI-ARIA.</p>
<h2 id="why-are-accessible-names-important%3F" tabindex="-1">Why are accessible names important?</h2>
<p>An accessible name is the information used by Assistive Technologies (AT) to identify an element such as an image, link, button, or form input. AT is software or hardware used by people with disabilities to help them do a number of things including navigating web content.</p>
<p>For example, people <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> rely on accessible names so they can understand content. Using a button as an example, if it has an accessible name of <em>Search</em> the screen reader will announce <em>Search</em> when it encounters it.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/search-button-voiceover-output-visible.jpg" alt="A visible search button with the Voiceover speech output b" style="max-height:25rem;" />
<figcaption>When the Voiceover screen reader encounters a button with an accessible name of search, &quot;Search&quot; is announced as shown in the speech dialog box.</figcaption>
</figure>
<p>People <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech</a> input rely on accessible names, so they can interact with content using speech commands. Using the button example again, a person navigating using speech can say <em>click Search</em> to activate the search button.</p>
<h2 id="html" tabindex="-1">HTML</h2>
<p>Using <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">HTML semantics</a>, an accessible name can be created in a number of ways.</p>
<p>For links, the <code>&lt;a&gt;</code> element's content gives the link its accessible name of <em>About us</em>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>index.html<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>About us<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p>For images, an <code>alt</code> attribute gives an image an accessible name of <em>TetraLogical Logo</em>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tetralogical_logo.png<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TetraLogical logo<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></pre>
<p>For form inputs, a <code>&lt;label&gt;</code> gives an input an accessible name of <em>Terms and conditions</em> when its <code>for</code> attribute has the same value as the <code>id</code> attribute on an <code>&lt;input&gt;</code>.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>terms<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>terms<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Terms and conditions<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span></code></pre>
<p>For buttons, the <code>&lt;button&gt;</code> element's content gives a button an accessible name of <em>Search</em>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Search<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<h2 id="wai-aria" tabindex="-1">WAI-ARIA</h2>
<p>WAI-ARIA (Web Accessibility Initiative Accessible Rich Internet Applications) complements HTML semantics by providing a set of attributes that allow you to enhance the native roles of HTML elements to build more accessible user experiences. You can read more about this in <a href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/">introduction to WAI-ARIA</a>.</p>
<p>WAI-ARIA has two attributes that can provide, or alter, accessible names for elements: <code>aria-label</code> and <code>aria-labelledby</code>. Each have a slightly different use, but the thing to remember is that they will both override the native HTML accessible name.</p>
<h2 id="name" tabindex="-1">Name</h2>
<p>The <code>aria-label</code> attribute takes a piece of text as its value. This text becomes the element's label or accessible name. In the following example, the screen reader will announce <em>Search button</em>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>search<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Search<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<p>The <code>aria-labelledby</code> attribute uses text that exists elsewhere in the document as a label. It takes the value of the <code>id</code> attribute on the element it points to, so it becomes the label or accessible name for the element with <code>aria-labelledby</code> applied to it. In the following example, the screen reader will also announce <em>Search button</em>:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>searchLabel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Search<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>search<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Enter search term
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>search<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>search<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">aria-labelledby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>searchLabel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<h2 id="description" tabindex="-1">Description</h2>
<p>The <code>aria-describedby</code> attribute gives an element an accessible description. It also points to text elsewhere in the document taking its value from the <code>id</code> attribute on the element it points to. In the following example and demo, a screen reader will announce the accessible name <em>Password</em>, and the accessible description <em>Must be at least 20 characters and contain upper and lowercase letters, numbers and other characters</em>.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>passwordLabel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Password<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>passwordLabel<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span> <span class="token attr-name">aria-describedby</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>passwordDescription<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>passwordDescription<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Must be at least 20 characters and contain upper and lowercase letters, numbers and other characters<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span></code></pre>
<video controls="">
  <source src="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/aria-describedby-screen-reader-demo.mp4" type="video/mp4" />
  <track default="" label="English" kind="captions" srclang="en" src="https://tetralogical.com/blog/2023/04/05/accessible-names-and-descriptions/aria-describedby-screen-reader-demo.vtt" />
</video>
<h2 id="tips" tabindex="-1">Tips</h2>
<ul>
<li>Always use semantic HTML over WAI-ARIA when it is available</li>
<li>Do not change native semantics, unless you really have to</li>
<li>Use the <a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide (APG)</a> as a reference for how to apply role, name, description, state and keyboard behaviour for accessible custom components</li>
</ul>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li>An accessible name is the information used by Assistive Technologies to identify an element such as an image, link, button or form input</li>
<li>Interactive elements can be assigned an accessible name using HTML or WAI-ARIA <code>aria-label</code> or <code>aria-labelledby</code></li>
<li>Elements can be given an additional description using <code>aria-describedby</code></li>
<li>Interactive elements must have an accessible name, an accessible description is optional</li>
<li><code>aria-label</code> and <code>aria-labelledby</code> will override the native HTML accessible name</li>
</ul>
<h2 id="related-wcag-2.1-success-criteria" tabindex="-1">Related WCAG 2.1 Success Criteria</h2>
<ul>
<li>Success Criterion 4.1.2 Name, Role, Value (Level A)</li>
</ul>
<h1 id="more-information" tabindex="-1">More information</h1>
<ul>
<li><a href="https://w3c.github.io/aria-practices/">Accessible Rich Internet Applications 1.2</a>, W3C</li>
<li><a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide (APG)</a>, W3C</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques">Using ARIA: Roles, states, and properties</a>, MDN</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive XR: accessible augmented reality experiences</title>
    <link href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/"/>
    <updated>2023-03-23T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/</id>
    <content type="html"><![CDATA[
        <p>In our second post about creating accessible experiences within Extended Reality (XR), we highlight some key considerations for designing accessible augmented reality (AR) experiences with our AR <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a>.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>.</p>
<h2 id="what-is-ar%3F" tabindex="-1">What is AR?</h2>
<p>Augmented reality blends digital content with the real-world. People tend to use it on their mobile devices, by scanning their environment. The mobile device will then add interactive content on top of the camera feed. The combined result is then presented on the device's screen. By merging the real and the digital, AR can provide people with contextual information, as well as interesting and engaging experiences.</p>
<p>A common example of an AR experience is digital face filters, where effects are digitally applied to a person's face. When viewed on the device's screen, the face appears to have different effects applied to it.</p>
<p>Another example is viewing the scale of animals in a physical space. When searching for an animal on Google using an Android device, you can view the animal with AR and see the size of the animal in relation to your surroundings.</p>
<p>IKEA Place offers similar functionality, allowing you to place furniture in your room with AR. You can use this to understand the size and positioning of furniture, without having to move and manipulate physical furniture.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/ikea-place-ar.jpg" alt="A person's arm holding out their mobile device, pointing at an empty corner of their room. On their device the camera feed is displaying the room, with a 3D model of an armchair visible in the empty space." />
<figcaption>The IKEA Place app, displaying a 3D model of a chair in the room</figcaption>
</figure>
<p>There's also the use of AR in Google Maps to overlay directions and help with way finding in the physical world. During the Covid-19 pandemic, the NHS used the HoloLens headset. This headset makes use of AR by providing important information overlaid on top of the physical world. This provided staff with all the information needed to treat patients.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/google-maps-ar-live-view.png" alt="A device with the camera feed displaying the street in front of the device, with a 3D model of arrows pointing to the right, indicating the direction to go." style="max-height:25rem;" />
<figcaption>Google Maps' Live View, with arrows pointing in the right direction, visible on top of the camera feed</figcaption>
</figure>
<h2 id="technical-information-about-ar" tabindex="-1">Technical information about AR</h2>
<p>For developing AR experiences, the <a href="https://immersive-web.github.io/webxr/">WebXR Device API</a> provides a standardised way to create AR experiences. The API allows for creating an AR or virtual reality (VR) session and getting information from devices. The <a href="https://immersive-web.github.io/webxr-samples/">WebXR samples</a> page provides examples of the functionality possible with the WebXR API.</p>
<p>At the time of writing, the WebXR Device API document is a candidate recommendation, so may be subject to change. It's also worth highlighting that support for the WebXR Device API is around 73% - most of which is from usage by Chrome for Android. Usage on iOS devices is not supported, but that may change in the future with Apple adding partial WebXR support in beta releases of iOS 16.</p>
<p>Please note that the API only manages the session and information about the device. To render any graphics, you can use WebGL or a framework, such as <a href="https://threejs.org/">three.js</a> used in our <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a> prototype. Frameworks can make rendering graphics simpler than having to write WebGL yourself.</p>
<h2 id="accessible-ar-experiences" tabindex="-1">Accessible AR experiences</h2>
<p>AR experiences tend to rely on people being able to see content on-screen and manipulate their devices to scan their environment. These interactions may not be possible for everyone.</p>
<p>The BBC's <a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a> research documents barriers encountered by people with disabilities, using VR environments. These barriers may exclude people due to the design of the AR experience.</p>
<p>How can we use the information about barriers to create inclusive, accessible AR experiences?</p>
<p>The Inclusive Design Principles (IDP) include key considerations for creating inclusive and accessible experiences. To resolve the barriers encountered by people in AR experiences, we will focus on three principles:</p>
<ul>
<li><strong><a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">Provide a comparable experience</a></strong>: Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.</li>
<li><strong><a href="https://inclusivedesignprinciples.info/#give-control">Give control</a></strong>: Ensure people are in control. People should be able to access and interact with content in their preferred way.</li>
<li><strong><a href="https://inclusivedesignprinciples.info/#offer-choice">Offer choice</a></strong>: Consider providing different ways for people to complete tasks, especially those that are complex or non standard.</li>
</ul>
<p>In summary, people must be able to interact with the experience in their preferred way and there must be accessible alternatives to access the same information.</p>
<p>As described in the previous post in this series, <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR: accessible 3D experiences</a>, using an accessible 3D model viewer alongside an AR experience is a great way to provide an alternative for people who cannot or do not want to use AR:</p>
<blockquote>
<p>Fundamentally, being able to view 3D models also provides people with control. Due to environment, hardware, situation, or preferences, people may not be able to view an object using augmented or virtual reality methods.</p>
</blockquote>
<p>Providing alternative ways of interacting can allow more people to access AR experiences. In our AR prototype, the primary method of interaction allows the people to place the virtual model anywhere they like. By not restricting the placement method, people who cannot move their devices are still able to use the demo. If the person using the functionality would like to, they can control and change the placement method to find surfaces to place the model on.</p>
<p>When designing AR experiences, the primary experience must be accessible to all.</p>
<p>Using the <a href="https://www.bbc.co.uk/accessibility/forproducts/xr/barriers">Barriers Browser</a> research and the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a>, the following considerations have been made in our prototype:</p>
<ul>
<li>Allowing for different controls to address motor barriers</li>
<li>Designing a clear user interface (UI) to make interactions and possible actions clear for addressing cognitive barriers</li>
<li>Using different models, curated viewpoints and status messages for addressing visual barriers</li>
</ul>
<h2 id="allow-for-different-controls" tabindex="-1">Allow for different controls</h2>
<p>As described earlier, people may be interacting with AR experiences in a number of different ways and they must not be prevented from interacting due to their interaction method. Instead, people should be given control to interact with the experiences in a way that works for them.</p>
<p>AR experiences on smart phone devices tend to rely heavily on touch controls to manipulate virtual models. This may not allow people who use a switch device or bluetooth keyboard to use the functionality. AR experiences must support these methods and not presume that everyone is using the same devices or controllers.</p>
<p>AR experiences must include controls that can be used by people <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browsing with assistive technologies</a>. With DOM Overlays, you can use <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">semantic HTML</a> elements to create an interface that everyone can use. HTML elements such as a <code>&lt;button&gt;</code> are usable with keyboards and switches by default and can be used in AR experiences. Use these controls as they can be operated by with a number of different devices and interaction methods and do not rely on people being able to interact in a specific way such as by dragging and dropping. You can read more about drag and drop accessibility in <a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/">pointer-gestures</a>.</p>
<p>Additionally, there may be a temptation to recreate physical experiences in AR. An example of this would be having to physically walk around a virtual cube to view all of its different panels. An interaction like this may not be possible for people who cannot move their device or cannot easily move. Instead, it's important to remember that virtual objects do not have physical limitations. Using scripting, virtual objects can easily be moved around, as evidenced with the IKEA Place furniture example. Providing controls for viewing different viewpoints, without having to move around the object, makes the experience usable for more people.</p>
<h2 id="design-a-clear-user-interface" tabindex="-1">Design a clear user interface</h2>
<p>In creating controls, the UI can make it clear as to what is possible, what is interactive, and what the available actions are.</p>
<p>In our prototype, the UI updates to provide people with available actions. When a model has not been placed, the UI options are only:</p>
<ul>
<li>Place model</li>
<li>Change placement method</li>
<li>Exit AR</li>
</ul>
<p>These UI controls provide the available actions to people using the demo. They are only provided with controls and information that are relevant at that point in the experience.</p>
<p>Once the model has been placed, the UI updates to provide people with controls that can animate the model or change the viewpoints offered. Updating the UI ensures that the actions offered are relevant.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/tl-cube-ar-prototype.jpeg" alt="A device with the camera feed displaying a desk in front of a wall, with a 3D model of the TetraLogical principles cube visible. At the start of the screen are controls labelled: 'Play animation' and 'Exit AR', followed by a status message that announces that the model has been placed, with viewpoint controls present at the end of the screen." style="max-height:25rem;" />
<figcaption>TetraLogical AR principles cube experience, with relevant UI options displayed</figcaption>
</figure>
<p>The presence of the UI helps with comprehension, as well as helping to manage a person's expectations. People should be able to understand the outcome of the interaction before even selecting the control.</p>
<p>Finally, allow people to exit the experience at any time. Do not constrain people's usage based on planned user journeys. If somebody finds the experience to be unsafe to them, or they find the experience to cause anxiety for them, for their own safety they must be able to leave whenever they want to. In our prototype, the &quot;Exit AR&quot; control is always available and can be used at any time.</p>
<h2 id="provide-alternatives-and-communicate-clearly" tabindex="-1">Provide alternatives and communicate clearly</h2>
<p><a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">Colour contrast</a> is an important consideration when overlaying virtual models on the physical space. We cannot predict the environment in which somebody may be using AR. If they are in a dark room with low light levels, there may be enough contrast to easily see the prototype's white TetraLogical cube. However, if they are in a well-lit white room, it may be difficult to see the white cube. To make this easier, in the prototype we have provided an option for a black outline to be added to the model which will provide enough contrast between the model and any light backgrounds.</p>
<p>Earlier we discussed ensuring people can use the controls that they want to use the AR experience. As part of this, people <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> must be included. While not covered in the BBC's Barriers Browser research, you must <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">provide a comparable experience</a> for those using a screen reader.</p>
<p>Our demo offers viewpoints so that people can understand the information present in the model. The status messages used in the prototype use ARIA live regions to provide a confirmation of the users actions. When placing a model, the status message provides feedback. The message will confirm that a model has been placed, in case the person using the demo is unable to see this.</p>
<p>The status messages also remain visible until dismissed. This approach allows people to access the information for as long as they need to, rather than hiding it after a short period of time. This is important as people may not be familiar with AR experiences. When interactions take a while, such as scanning surfaces to place a model on, the status message provides feedback.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>AR allows people to view virtual models in physical spaces but must be designed and created in ways that give control, offer choice and provide a comparable experience.</p>
<p>By allowing for interaction with different devices, offering clear controls and by allowing people to use the experience in a way that meets their needs, we can create inclusive and accessible AR experiences.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://codelabs.developers.google.com/ar-with-webxr#0">Build an augmented reality (AR) app using the WebXR Device API</a>, Google Codelabs</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API/Fundamentals">Fundamentals of WebXR</a>, MDN</li>
<li><a href="https://www.w3.org/WAI/APA/wiki/WebXR_Standards_and_Accessibility_Architecture_Issues">WebXR Standards and Accessibility Architecture Issues</a>, W3C</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>If you're currently designing an XR product, our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service will provide you with our accessibility expertise and guidance to build an accessible experience. If you already have an XR product, our <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: pointer gestures</title>
    <link href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/"/>
    <updated>2023-03-17T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/</id>
    <content type="html"><![CDATA[
        <p>A pointer gesture is an action a person performs using their finger, mouse, or an assistive technology like a head pointer or eye gaze system to operate a functional control. Some pointer gestures can be difficult or even impossible for certain people to perform, so an accessible alternative may be required.</p>
<p>This post introduces the different forms of pointer gestures and covers how and when to provide alternatives for people who can't perform them.</p>
<h2 id="pointer-gestures-and-accessibility" tabindex="-1">Pointer gestures and accessibility</h2>
<p>Many of today's user interfaces require us to perform gestures beyond pointing and clicking. Changing the audio volume in a media player may involve moving a toggle up and down a slider, while arranging tasks in a to-do app may involve dragging items from one area of the page to another.</p>
<p>The popularity of touchscreen devices has also meant that many of us have had to learn new gestures using our fingers to perform actions that were otherwise impossible to perform using the keyboard or mouse alone.</p>
<p>Some people may find these gestures challenging to do accurately or cannot perform the gesture at all. For example:</p>
<ul>
<li>People with limited dexterity or hand tremors may find it difficult to swipe, drag, or pinch, particularly if successful completion of the gesture depends on fine motor movements</li>
<li>People who use a head wand may only be able to perform comparatively simple gestures, and even then may encounter fatigue if a task requires multiple gestures</li>
<li>People with cognitive or learning disabilities may theoretically be able to perform the required gesture, but may not understand <em>how</em> to perform it</li>
</ul>
<h2 id="understanding-pointer-gestures" tabindex="-1">Understanding pointer gestures</h2>
<p>The four main types of pointer gestures are as follows:</p>
<ul>
<li>Single pointer gestures</li>
<li>Multi-point gestures</li>
<li>Path-based gestures</li>
<li>Dragging movements</li>
</ul>
<p>Note that, from a conformance perspective, the Web Content Accessibility Guidelines explicitly distinguish between dragging movements and other forms of pointer gestures. Multi-point and path-based gestures are covered by <a href="https://www.w3.org/TR/WCAG21/#pointer-gestures">2.5.1 Pointer Gestures (Level A)</a>, introduced in WCAG 2.1, while dragging movements are covered separately by <a href="https://www.w3.org/TR/WCAG22/#dragging-movements">2.5.7 Dragging Movements (Level AA)</a>, introduced in WCAG 2.2.</p>
<h3 id="single-pointer-gestures" tabindex="-1">Single pointer gestures</h3>
<p>Single pointer gestures only involve a mouse or a single finger/stylus on a touch screen, and are arguably the easiest to perform. Typical examples of single pointer gestures include:</p>
<ul>
<li><strong>Clicking</strong>: including double-clicking</li>
<li><strong>Tapping</strong>: including double-tapping</li>
<li><strong>Pressing</strong>: including press and hold</li>
<li><strong>Swiping</strong>: if the angle of the swipe is irrelevant for operating the control (discussed in more detail in <a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/#pathBasedNote">the note on path-based gestures</a> below)</li>
</ul>
<p>Buttons, links, and checkboxes normally only require single pointer gestures.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_save-button_2023-03-08.png" alt="A finger pointing to a Save button" />
<figcaption>A Save button that only requires a single pointer gesture to operate</figcaption>
</figure>
<h3 id="multi-point-gestures" tabindex="-1">Multi-point gestures</h3>
<p>Multi-point gestures are those that involve more than one pointer being used simultaneously. Such gestures are commonplace in touchscreen environments. Typical examples of multi-point gestures include:</p>
<ul>
<li><strong>Pinching/spreading two fingers</strong>: including pinch-to-zoom within a map application</li>
<li><strong>Two-finger rotation</strong>: including two-finger rotating to operate a dial control</li>
<li><strong>Tapping using more than one finger</strong>: including the selection of multiple items in a list</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_pinch-to-zoom-example_2023-03-13.png" alt="A person using pinch-to-zoom to zoom into/out of a map within the Google Maps app on iOS" />
<figcaption>Google Map's pinch-to-zoom feature that requires two fingers to operate</figcaption>
</figure>
<h3 id="path-based-gestures" tabindex="-1">Path-based gestures</h3>
<p>Path-based gestures involve an initial &quot;down&quot; press of the pointer, followed by a movement of the pointer along a specific path.</p>
<p>For example, tracing, drawing a shape, and steady-hand games where a person must move their pointer down a narrow twisting path from one end to the other all involve path-based gestures.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_steady-hand-game_2023-03-08.png" alt="A game with a Start point on the left, and an End point on the right. There is a squiggly line between these points, and a toggle on the line that a person must move from the start point to the end point without deviating away from the line." />
<figcaption>A steady-hand game that requires a path-based gesture to operate</figcaption>
</figure>
<p>Depending on other factors, gestures like sliding and swiping can also be path-based. This subject is covered in more detail in <a href="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/#pathBasedNote">the note on path-based gestures</a> below.</p>
<h3 id="dragging-movements" tabindex="-1">Dragging movements</h3>
<p>Dragging involves grabbing, picking up, or otherwise selecting an item and moving it elsewhere.</p>
<p>The main difference between dragging movements and path-based gestures is that, when performing a dragging movement, only the start and end points matter, not the actual path that a person takes to move the item between those points.</p>
<p>For example, when dragging an item from the top of the screen to the bottom, the path that a person takes to move between these points is irrelevant.</p>
<p>Typical examples of dragging movements include:</p>
<ul>
<li>Dragging cards between target areas of a Kanban board</li>
<li>Sorting a list of items</li>
<li>Dragging an item of furniture around a room</li>
<li>A volume slider</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_drag-and-drop_2023-03-08.png" alt="An example showing two boards that contain a number of tasks in each. The first board is labeled Today's tasks, and includes three tasks (Prepare presentation, Email John, and Finish report). The second board is labeled Tomorrow's tasks, and includes one task (Email Jane). There is a task labeled Book flights that is being moved from the first board to the second board." />
<figcaption>A Kanban board that requires dragging movements to operate</figcaption>
</figure>
<h2 id="creating-accessible-alternatives" tabindex="-1">Creating accessible alternatives</h2>
<p>To support people with disabilities who may find it difficult or impossible to perform certain gestures, the related WCAG success criteria state that all functionality that uses a multi-point gesture, a path-based gesture, or a dragging movement for operation must also be operable using a <strong>single pointer gesture</strong> that is <em>not</em> path-based.</p>
<p>Exceptions include:</p>
<ul>
<li><strong>The gesture is essential</strong>: for example, steady-hand games rely on people being able to use gestures involving fine motor movements, otherwise the game is effectively redundant</li>
<li><strong>The functionality is determined by the user agent and not modified by the author</strong>: for example, the functionality provided by a device's built-in screen reader</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_voiceover-rotor_2023-03-08.png" alt="Two fingers performing a pinch-to-zoom gesture on the VoiceOver rotor." />
<figcaption>VoiceOver's rotor feature requires a two-finger &quot;dialling&quot; gesture but, because it is functionality associated with the device's built-in screen reader, it's exempt from the related success criterion</figcaption>
</figure>
<p>In practice, this usually involves adding separate controls to your designs that perform the same functionality but only require a single pointer gesture like a single tap or click.</p>
<h3 id="a-note-on-path-based-gestures" tabindex="-1"><a name="pathBasedNote"></a> A note on path-based gestures</h3>
<p>As mentioned above, a single pointer-based alternative that is not path-based must be provided for all functionality requiring a path-based gesture.</p>
<p>However, in some cases, interpreting whether a gesture is path-based, and therefore whether or not such an alternative is required, can be a confusing process. This is typical in cases where there is no explicit or apparent path for a person to follow when performing the gesture.</p>
<p>The answer comes down to how a person must perform the gesture for the related action to trigger; in other words, the <em>accuracy</em> of the gesture. In short:</p>
<ul>
<li>If the angle or direction of the gesture has no impact on success, the gesture <strong>is not</strong> a path-based gesture, and an alternative <strong>is not</strong> required</li>
<li>If the angle or direction of the gesture <strong>does</strong> have an impact on success, the gesture <strong>is</strong> path-based, and therefore a single pointer-based, non-path-based, alternative <strong>is</strong> required</li>
</ul>
<p>This is best explained through an example.</p>
<p>The following screenshot shows a typical carousel. A person moves slides into view by swiping left or right on the screen. The angle or direction of the swipe gesture has no impact on whether the carousel moves. Even if the gesture is performed at a slight angle, the carousel will still operate in the same way as if the person had swiped straight across the screen. Therefore, a single pointer-based, non-path-based alternative is <strong>not</strong> required to meet <a href="https://www.w3.org/TR/WCAG21/#pointer-gestures">2.5.1 Pointer Gestures (Level A)</a>.</p>
<p>Note, however, the lack of an alternative <em>may</em> cause the carousel to fail <a href="https://www.w3.org/TR/WCAG22/#dragging-movements">2.5.7 Dragging Movements (Level AA)</a> if the carousel also relies on dragging movements to operate.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_swipe-any-direction_2023-03-09.png" alt="A screenshot of an example carousel containing three slides, only one of which is fully visible. There is a finger icon below the carousel, and various arrows showing the direction of the swiping action. Ticks next to each arrow indicate that the carousel will move when the swiping gesture is performed in that direction." />
<figcaption>A single pointer, non-path-based, alternative is not required if a person does not need to follow a specific path for a swipe to work successfully</figcaption>
</figure>
<p>The following screenshot shows the same carousel. This time, however, the angle of the swipe gesture must be perfectly straight from left-to-right or right-to-left. If there is deviation, for example a person swipes at a slight angle, the carousel does not move as expected. Therefore, in this case, a single pointer-based, non-path-based, alternative <strong>is</strong> required.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_swipe-one-direction_2023-03-09.png" alt="A screenshot the same carousel, finger icon, and arrows showing the direction of the swiping action. This time, there are ticks next to the arrows pointing directly left and directly left to show that the carousel will move when related swiping gestures are performed, but there are cross icons next to those arrows that demonstrate swipes performed at different angles." />
<figcaption>A single pointer, non-path-based, alternative is required if a person needs to follow a specific path for a swipe to work successfully</figcaption>
</figure>
<p>That said, it is good practice to provide single-pointer, non-path-based alternatives in <strong>all</strong> cases, even if the gesture's angle, direction, or accuracy has no impact on the success of the gesture. Doing so benefits everyone, particularly people who may find gestures difficult to perform, even when the gestures are not path-based. Additionally, remember that alternatives are required if operating the component requires some form of dragging movement.</p>
<h2 id="examples-of-accessible-alternatives" tabindex="-1">Examples of accessible alternatives</h2>
<p>The following examples demonstrate how single pointer, non-path-based, non-dragging alternatives can be provided for controls that rely on multi-point gestures, path-based gestures, and dragging movements to operate.</p>
<h3 id="map-application" tabindex="-1">Map application</h3>
<p>The following screenshot shows the basic design for a touchscreen-based map application. A person can touch the screen and drag their finger around to pan the map, and they can use a two-fingered pinch-to-zoom gesture to zoom in and out of the map.</p>
<p>Equivalent and appropriately labeled buttons are provided for people who cannot perform these gestures.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_map-image_2023-03-08.png" alt="An example map app that includes four buttons labeled with arrows representing north, south, east, and west, and two buttons labeled Zoom In and Zoom Out." />
<figcaption>A map that includes separate buttons for navigation and zooming</figcaption>
</figure>
<h3 id="volume-slider" tabindex="-1">Volume slider</h3>
<p>A volume slider allows a person to touch or click on the toggle within the slider and then drag the toggle by moving their finger or mouse up or down.</p>
<p>For people unable to perform these actions, there are equivalent buttons above and below the slider that allow the toggle to be moved using a single pointer gesture without any path-based or dragging movements.</p>
<p>Additionally, tapping or clicking on any point in the slider should move the toggle to that point and change the volume accordingly.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_volume-slider_2023-03-08.png" alt="Two instances of a vertical volume slider where the toggle is approximately halfway between the loudest and quietest points on the slider. There are plus and minus buttons at the top and bottom of the slider. In the first instance, there is a finger icon pointing to the minus button and an arrow showing where the toggle will move when this button is pressed. In the second instance, the finger points to a specific place on the slider, and an arrow shows where the toggle will move when the user activates this point on the slider." />
<figcaption>A volume control that includes Volume Up and Volume Down buttons as alternatives for changing the volume, as well as functionality that allows people to click or tap on a specific point on the slider to set the required volume.</figcaption>
</figure>
<h3 id="carousel" tabindex="-1">Carousel</h3>
<p>A carousel includes Previous and Next buttons that allow people to navigate between slides without swiping, even if the swiping gesture isn't path-based, or dragging movements.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_carousel-example_2023-03-09.png" alt="A carousel with one slide fully visible and two slides on either side of it that are only half visible. There is a Previous button on the left-hand side of the carousel, and a Next button on the right-hand side of the carousel." />
<figcaption>A carousel containing Previous and Next buttons as an alternative to dragging / swiping</figcaption>
</figure>
<h3 id="drag-and-drop-based-kanban-board" tabindex="-1">Drag-and-drop-based Kanban board</h3>
<p>A Kanban board containing individual &quot;Move&quot; buttons that - when activated - open a dialog box of potential drop points. This allows people to complete the associated task using a control requiring only a single pointer gesture rather than a dragging movement.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_drag-and-drop-example_2023-03-09.png" alt="A Today's Tasks board that includes two draggable items (Prepare Presentation and Book Flights). There are Move buttons next to each of these items. Activating one of the buttons brings up a Move This Task To dialog box that includes radio button options for tomorrow, next week, and next month, as well as Close and Confirm buttons." />
<figcaption>A Kanban board containing &quot;Move&quot; buttons as an alternative to drag-and-drop</figcaption>
</figure>
<h3 id="path-based-product-selection" tabindex="-1">Path-based product selection</h3>
<p>An application requires people to draw a circle around the item that they wish to select. Buttons labeled &quot;Add&quot; that only require a single pointer gesture to activate are positioned next to each option for people who are unable to perform this gesture.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/17/foundations-pointer-gestures/pointer-gestures_path-based-example_2023-03-09.png" alt="A screen that begins with an instruction to draw a circle around the item that a person wishes to select, or press the related add button. There are three products on the page (water, milk, and bread) followed by an Add button." />
<figcaption>The inclusion of equivalent Add buttons for a task that relies on a path-based gesture (drawing a circle)</figcaption>
</figure>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>When implementing interactive content, using interface controls that can be operated using a single pointer gesture and don't require any dragging - be it freeform or following a specific path - is the easiest and most accessible solution. Most components that people are familiar with, such as buttons, links, and form controls like checkboxes and radio buttons, all support single pointer gestures for operation.</p>
<p>If you must use controls that can only be operated using multi-point gestures, path-based gestures, or dragging movements, include additional controls within your designs that allow people to complete the related tasks using a single pointer, non-path-based, gesture that does <em>not</em> require any dragging.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://knowbility.org/blog/2018/WCAG21-251PointerGestures">Knowbility: Exploring WCAG 2.1 - 2.5.1 Pointer Gestures</a></li>
<li><a href="https://design.homeoffice.gov.uk/accessibility/gestures-and-motion">Home Office Design System: Gestures and motion</a></li>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/pointer-gestures.html">W3C: Understanding 2.5.1 - Pointer Gestures (Level A)</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements">W3C: Understanding 2.5.7 - Dragging Movements (Level AA)</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Graeme Coleman</title>
    <link href="https://tetralogical.com/blog/2023/03/14/meet-the-team-graeme-coleman/"/>
    <updated>2023-03-14T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/03/14/meet-the-team-graeme-coleman/</id>
    <content type="html"><![CDATA[
        <p>Meet Graeme Coleman. Single-handedly propping up the Scottish arm of TetraLogical, Graeme has been tirelessly working towards better accessibility with us since the very beginning.</p>
<p><img src="https://tetralogical.com/blog/2023/03/14/meet-the-team-graeme-coleman/graeme-coleman.jpg" alt="Graeme sat smiling at the camera with the leafy green background of the Thai jungle behind him" class="inline-image" style="max-height:15em" /></p>
<p>Graeme's journey to digital accessibility has been an unusual one. As a youngster, he was hugely into new technologies but felt that enthusiasm wane and ended up studying for a degree in accountancy. Several years of bookkeeping and accounting later, Graeme saw the light, and his interest in computing was reignited.</p>
<p>He returned to university to do a Masters degree in Applied Computing at the University of Dundee and remained in the department as a PhD student/research assistant. More details of his qualifications can be found on his website, <a href="https://www.graemecoleman.co.uk/about/">Graeme Coleman</a>.</p>
<p>It was during this time that web accessibility was gaining momentum, the <a href="https://www.w3.org/TR/WAI-WEBCONTENT/">Web Content Accessibility Guidelines (WCAG) 1.0</a> had just been released, and Graeme found he was levitating towards the field. He began working as an accessibility consultant for the Digital Media Access Group (DMAG) who were based at the University of Dundee. Now, after a solid 20 years in the field, Graeme reckons it’s probably the career for him.</p>
<p>Graeme’s main interest at TetraLogical relates to native mobile app accessibility and, in particular, some of the nuances that need to be considered when assessing native mobile apps – as opposed to websites and web applications – against WCAG. For example, in <a href="https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/">Android accessibility: roles and Talkback</a>, Graeme shows how element roles within native Android apps aren’t always announced.</p>
<p>Graeme has also acted as project lead in working with a number of large clients during the early stages of a product’s development to ensure that the product not only conforms to WCAG, but also provides a positive user experience for everyone who uses it.</p>
<p>Affectionately known as the King of <a href="https://www.section508.gov/sell/vpat/">VPATs</a> (Voluntary Product Accessibility Template) in the team, Graeme has unparalleled knowledge and experience on Accessibility Conformance Reports (ACRs) in his role as Principal Accessibility Specialist. In his post <a href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/">introduction to Accessibility Conformance Reports</a> (ACRs) Graeme explains when ACRs are needed and how they are created.</p>
<p>He works across assessments, consultancy, larger embedded accessibility projects, training, and service development.</p>
<p>In all honesty, we’re yet to find something Graeme <em>can’t</em> do.</p>
<p>Although the rest of the team think he’s rather talented, Graeme is insistent that he is an (extremely) amateur musician; the emphasis here being his own.</p>
<p>He’s an avid synth collector, owning several professional synthesizers and keyboards from the 1980s and 1990s, so you’ll occasionally find him in out-of-the-way second hand shops and outbidding you on eBay. He also runs his own <a href="https://www.youtube.com/@bogginmashups">YouTube channel</a> featuring remixes of contemporary songs in a 1980s style. Particular notoriety has come to Graeme through his politician resignation series, started by this <a href="https://twitter.com/graemecoleman/status/752776343654395904">viral tweet of David Cameron leaving office</a>.</p>
<p>Graeme is also a keen language learner who speaks rudimentary Danish and (extremely) rudimentary Italian. He has travelled eastern and Central Europe extensively and keeps records of his adventures on his <a href="https://www.flickr.com/photos/graemecoleman/albums">Flickr account</a>, which is beautifully organised in typical Graeme style.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>Not to be overwhelmed with standards documentation. When I was first introduced to the field, and even for a year or so afterwards, I would try to sit down and read all the WCAG 1.0 (followed by WCAG 2.0 and WCAG 2.1) standard document, as well as other specification documents such as WAI-ARIA, and just feel like there was too much to learn.</p>
<p>At some stages, I felt like giving up. What I subsequently discovered is that, while they are of course important, these documents are essentially references that one should dip in and out of, rather than something one needs to keep in one's head at all times.</p>
<p>For a developer new to accessibility, or for someone who is interested in the relationship between technology and accessibility, there are lots of high level resources online that you should read through first - and lots of people within the community who are approachable and eager to help out when they can!</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>As I mostly communicate with development teams, I would definitely recommend that you test, test, and test again during development, not at the end! This is particularly important when creating complex custom widgets. Is it keyboard accessible? Is it labelled correctly? Does it have the correct role? Can it be operated when a screen reader is running (including on touchscreen devices)?</p>
<p>Doing all of this step-by-step as you build the widget will save a lot of heartache at the end, trust me!</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>Oh, there are so many! <a href="https://webaim.org/">WebAIM</a> is a great one-shop stop for high level articles on accessibility, particularly if you are new to the field.</p>
<p>The <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility">MDN Web Docs accessibility documentation</a> includes numerous resources on how to actually make web content accessible from a technical perspective, while blog posts from folks such as <a href="https://adrianroselli.com/posts">Adrian Roselli</a> and <a href="https://www.scottohara.me/writing/">Scott O'Hara</a> are great for keeping up to date with the latest techniques and for explaining unforeseen or unusual problems that often aren't documented in the official documentation.</p>
<h2 id="more-from-graeme" tabindex="-1">More from Graeme</h2>
<ul>
<li><a href="https://www.graemecoleman.co.uk/about/">GraemeColeman.co.uk</a>, is Graeme's personal website</li>
<li>Graeme's <a href="https://www.flickr.com/photos/graemecoleman/albums">Flickr account</a></li>
<li>Graeme's <a href="https://www.youtube.com/@bogginmashups">YouTube channel</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Adding sign language to videos</title>
    <link href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/"/>
    <updated>2023-03-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/</id>
    <content type="html"><![CDATA[
        <p>As part of our ongoing effort to meet the Web Content accessibility Guidelines (WCAG) 2.1 and 2.2 Level AAA, we've created British Sign Language (BSL) versions of our video and created BSL playlists in our TetraLogical YouTube channel.</p>
<p>In this post we explore our process for adding BSL to videos and share some tips.</p>
<h1 id="introduction" tabindex="-1">Introduction</h1>
<p>Sign language is a visual form of communication for people who are Deaf or hard of hearing. It uses hand, arm, body movements, and facial expressions to convey meaning and is often the native language for many people who are born Deaf or have been deaf since before they could speak.</p>
<p>There are different versions of sign language across different countries and regions, examples include, but are not limited to:</p>
<ul>
<li>British Sign Language (BSL)</li>
<li>American Sign Language (ASL)</li>
<li>Black American Sign Language (BASL)</li>
<li>Auslan (Australian Sign Language)</li>
<li>Chinese Sign Language (CSL or ZGS)</li>
</ul>
<p>Along with captions and transcripts, sign language is a format that can be included with videos to make them more accessible.</p>
<p>Sign language can be easier to understand than written language, and it offers a richer experience than captions for some people because facial expressions are better at expressing emotions.</p>
<p>When watching videos, people may use a combination of sign language, lip-reading, and captions. What people use will depend on their preferences and <a href="https://inclusivedesignprinciples.info/#consider-situation">situation</a>.</p>
<p>The following <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a> video includes the original video and a BSL version, both of which have captions. A transcript is also provided so people can consume the video according to their preferences.</p>
<div class="tabs" id="tabs_1773627714449319">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/#tabs_1773627714449319_0">Video</a></li><li><a href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/#tabs_1773627714449319_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714449319_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/yGOP2fOp7TA" title="Browsing with speech recognition" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714449319_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/iEiSez9F79o" title="Browsing with speech recognition (British Sign Language Version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with speech recognition</p>
<p>Speech recognition software listens to human speech, transcribes it into text, and executes spoken commands that operate your computer or device.</p>
<p>As well as dictating text, filling out forms, and opening and closing applications, you can browse the web and completely control websites with voice commands.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below]</p>
<p>Core navigation verbally mirrors how you navigate with a keyboard. For example, rather than using keys on a keyboard, you say &quot;Tab&quot; to move focus to the next item, &quot;Shift Tab&quot; to move to the previous item, and &quot;Press Enter&quot; to activate a control.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears. As the user interacts with the page, the visible focus indicator moves too]</p>
<p>[User voice] tab, tab, tab four times, press shift tab, press, shift tab, press enter.</p>
<p>[On the final command, the &quot;Services&quot; page opens. The page then fades back to the homepage]</p>
<p>To activate a link or button, you can say &quot;Click&quot; together with the text used in the link or button. For example, &quot;Click Services&quot; to activate a link labeled &quot;Services&quot;.</p>
<p>[User voice] click services</p>
<p>[The &quot;Services&quot; pages opens as before]</p>
<p>If you just say &quot;Click link&quot;, the software will highlight and number all links in the current page. You then select the link you want by saying the number.</p>
<p>[User voice] click link</p>
<p>[A series of six green numbers appear dotted throughout the page. These are attached to each separate link, such as the logo and each individual menu option]</p>
<p>[User voice] choose 3</p>
<p>[The visible focus moves to the &quot;Services&quot; menu option, which has the number three above it. This then opens the &quot;Services&quot; page</p>
<p>The homepage appears again, this time with gridlines across the entirety of the page, marking out six distinct areas]</p>
<p>In situations where a control lacks a visible text label, or where the visible text doesn't match the actual accessible name of the control in the underlying markup, people using speech recognition can use alternative approaches such as MouseGrid, which overlays a grid on the page.</p>
<p>[The user moves the mouse cursor which changes the size and location of the grid. As the user hones in on the menu options, the grid keeps resizing to display as a smaller, more precise area]</p>
<p>Each box has a number. By saying a number in a box, the grid focuses on that part of the page.</p>
<p>This is repeated until the button or link you want is focused.</p>
<p>[The bottom of the TetraLogical homepage is displayed in front of a bright pink background]</p>
<p>In this recording, we're using MouseGrid to set focus to a graphical control that lacks visible text.</p>
<p>[User voice] MouseGrid</p>
<p>[Lines appear across the screen marking out nine areas of equal size on screen. Each one is numbered]</p>
<p>[User voice] seven</p>
<p>[A new grid appears in the area that was previously marked as seven. This is much smaller and now focuses on the bottom right of the screen.]</p>
<p>[User voice] six</p>
<p>[Again, a new grid appears in the area that was previously marked as six]</p>
<p>[User voice] six</p>
<p>[A very small grid is now displayed. The majority of the grid is over a button with an &quot;email&quot; icon displayed]</p>
<p>[User voice] click</p>
<p>These are some of the high level details about speech recognition, and common strategies that people browsing with speech recognition use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="creating-sign-language-video" tabindex="-1">Creating sign language video</h2>
<p>Along with audio description, captions, and text transcripts, sign language should be at the heart of an <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">inclusive approach to video production</a>. Unless you have the resources in-house, it is generally best to outsource this to a company that specialises in sign language content creation.</p>
<p>To provide the best possible experience, consider the  presentation, synchronisation, accuracy, and positioning of the signer. Whether you are creating signed versions yourself, or outsourcing it, here are some tips for each.</p>
<h3 id="presentation" tabindex="-1">Presentation</h3>
<p>The background and the signer’s clothing should be solid colours that contrast with their skin tone. There should be good lighting, so it is easy to see the signer's hands and face.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/wcag-signer-bottom-right-purple-background.png" alt="A TetraLogical video showing the video with a purple wrapper and the signer dressed in black" />
<figcaption>A sign language interpreter wearing black against a purple background means both the video and signer are visible.</figcaption>
</figure>
<h3 id="synchronisation" tabindex="-1">Synchronisation</h3>
<p>The person who is signing should follow the same pace as the speech and sound. This helps people who are both lip-reading and watching the sign language interpreter.</p>
<p>Synchronisation also applies to off-screen speakers.</p>
<h3 id="accuracy" tabindex="-1">Accuracy</h3>
<p>Sign language should provide a <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">comparable experience</a> for people and reflect the spoken text as closely as possible, for example:</p>
<ul>
<li>Use verbatim text rather than edited text; the viewer should have as much access to the soundtrack as possible</li>
<li>Use the same style as the speaker; for example, if the speaker is using slang, so should the signer</li>
</ul>
<h3 id="positioning" tabindex="-1">Positioning</h3>
<p>A sign language interpreter should be positioned so you can clearly see the video contents as well as the signer, for example on the bottom right of the screen. The signer should be large enough to see from the waist upwards.</p>
<p>If there is text or a news ticker in the same space as the signer, the signer can be moved up, so the text is not obscured.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/wcag-bsl-signer-tetralogical-video.png" alt="A TetraLogical video showing a sign language interpreter on the bottom right on the screen" />
<figcaption>A sign language interpreter, or signer, on a TetraLogical video.</figcaption>
</figure>
<h3 id="linking-to-sign-language-versions" tabindex="-1">Linking to sign language versions</h3>
<p>Make sure sign language versions of video are easy to find, for example provide links to sign language versions via:</p>
<ul>
<li>Category menus and pages</li>
<li>Listings pages such as search results</li>
<li>The page where the video is embedded</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/wcag-sign-language-link-category-iplayer.png" alt="The open iPlayer category menu with the signed category highlighted. Other categories include film, drama and soaps, entertainment, audio described etc." />
<figcaption>BBC iPlayer includes a &quot;Signed&quot; category in the menu, which contains all videos with sign language.</figcaption>
</figure>
<h2 id="testing-sign-language" tabindex="-1">Testing sign language</h2>
<p>When testing videos for sign language check:</p>
<ul>
<li>Sign language is accurate, for example it matches the audio track</li>
<li>Sign language is synchronised with the audio track</li>
</ul>
<p>Ideally check this with people who use sign language every day, as they can comment on the quality and delivery of the sign language.</p>
<h2 id="meeting-the-web-content-accessibility-guidelines" tabindex="-1">Meeting the Web Content Accessibility Guidelines</h2>
<p>Support for sign language in the Web Content Accessibility Guidelines for both WCAG 2.1 and WCAG 2.2 is <a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">Level AAA</a> and required for pre-recorded video:</p>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/sign-language-prerecorded.html">WCAG 2.1, 1.2.6 Sign Language (Prerecorded)</a> Level AAA</li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/sign-language-prerecorded.html">WCAG 2.2, 1.2.6 Sign Language (Prerecorded)</a> Level AAA</li>
</ul>
<h2 id="meeting-the-inclusive-design-principles" tabindex="-1">Meeting the Inclusive Design Principles</h2>
<p>Using the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> as a framework, we can create more usable video for people who use sign language with the following four principles.</p>
<h3 id="provide-a-comparable-experience" tabindex="-1">Provide a comparable experience</h3>
<blockquote>
<p>Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.</p>
</blockquote>
<p>By adding accurate, synchronised sign language, you provide a richer experience that conveys sentiment and emotion better than captions or a transcript.</p>
<h3 id="consider-situation" tabindex="-1">Consider situation</h3>
<blockquote>
<p>People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.</p>
</blockquote>
<p>By adding a sign language version, you include people who prefer visual language to reading captions or transcripts, or have problems reading due to low literacy or low vision.</p>
<h3 id="offer-choice" tabindex="-1">Offer choice</h3>
<blockquote>
<p>Consider providing different ways for people to complete tasks, especially those that are complex or non standard.</p>
</blockquote>
<p>By adding a sign language version, you give people a choice between captions, text, and sign language.</p>
<h3 id="add-value" tabindex="-1">Add value</h3>
<blockquote>
<p>Consider the value of features and how they improve the experience for different users.</p>
</blockquote>
<p>By adding a sign language version, you greatly enhance the accessible user experience for many people who are Deaf or hard of hearing whose first language is sign language.</p>
<h2 id="bsl-videos" tabindex="-1">BSL videos</h2>
<p>Our BSL videos are linked from the TetraLogical website and available YouTube channel:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">Browsing with assistive technology videos</a></li>
<li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/">Quick accessibility tests videos</a></li>
<li><a href="https://www.youtube.com/tetralogical">TetraLogical YouTube channel</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>For more information about accessible multimedia, read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a>or browse our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: introduction to WAI-ARIA</title>
    <link href="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/"/>
    <updated>2023-02-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/</id>
    <content type="html"><![CDATA[
        <p>The Web Accessibility Initiative Accessible Rich Internet Applications specification 1.2, or WAI-ARIA or ARIA for short, is a technical specification written by the World Wide Web Consortium (W3C).</p>
<p>In this post we explore what WAI-ARIA is, and how it can enhance the user experience for people using screen readers.</p>
<h2 id="what-is-aria" tabindex="-1">What is ARIA</h2>
<p>Developers use <a href="https://www.w3.org/TR/wai-aria-1.2/">WAI-ARIA 1.2</a> to define roles, states, properties, and values for interactive elements to make content more accessible to people with disabilities <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a screen reader</a>. A screen reader is a software application that announces what is on the screen to people who cannot see or understand visual content.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/wai-aria-spec-homepage.png" alt="The WAI ARIA homepage" />
<figcaption>Accessible Rich Internet Applications 1.2, specification outlining roles, states, properties, and values.</figcaption>
</figure>
<h2 id="why-aria-is-needed" tabindex="-1">Why ARIA is needed</h2>
<p>ARIA complements <a href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/">HTML semantics</a> by providing a set of attributes that allow you to enhance the native roles of HTML elements to build more accessible user experiences. A native role is a default role in HTML, also known as the implicit role.</p>
<p>HTML interface controls are generally accessible to screen readers; this includes buttons, links, checkboxes and so on. For example, a screen reader can detect an HTML button and announce “button”.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/02/10/foundations-wai-aria/html-button-accessibility-inspector.png" alt="A submit button with the open Accessibility Inspector in Chrome" />
<figcaption>An HTML button with the Chrome Accessibility Inspector open displaying its accessibility properties including the HTML role</figcaption>
</figure>
<p>Many static HTML elements can be enhanced using JavaScript to include dynamic interactions which give the user the ability to, for example, select, drag, drop, open, and close content. These behaviours are not native to HTML, so screen readers cannot detect these changes.</p>
<p>For example, a screen reader can detect an HTML button but not understand whether it is expanded or collapsed for a menu.</p>
<p>ARIA attributes provide additional semantics for HTML elements so that a screen reader can detect these enhancements including an element’s role, name and current state:</p>
<ul>
<li>An element's <strong>role</strong> describes its purpose, for example “button”</li>
<li>An elements <strong>name</strong> identifies an element, for example “Settings”</li>
<li>An element’s <strong>state</strong> is its current condition, for example “Expanded”</li>
</ul>
<h2 id="support-for-aria" tabindex="-1">Support for ARIA</h2>
<p>ARIA is supported by all commonly used browsers and screen readers:</p>
<ul>
<li>Browsers: Firefox, Chrome, Safari, Edge</li>
<li>Assistive technologies: JAWS, NVDA, Narrator, Orca, VoiceOver and the screen reader built into ZoomText</li>
</ul>
<p>Support may vary, but it is always improving. You can check support at <a href="https://a11ysupport.io/">A11y support</a>.</p>
<h2 id="when-to-use-aria" tabindex="-1">When to use ARIA</h2>
<p>Always use native HTML elements or attributes rather than ARIA where they are available. This is because screen readers already recognise them, and interactive HTML elements are generally keyboard accessible by default. Some people may also still have older browsers and screen readers that don’t fully support ARIA.</p>
<h2 id="tips" tabindex="-1">Tips</h2>
<ul>
<li>Always use semantic HTML over ARIA when it is available</li>
<li>Do not change native HTML semantics unless you really have to</li>
<li>Use WAI-ARIA Authoring Practices 1.1 as a reference for how to apply role, name, description, state and keyboard behaviour for accessible custom components</li>
</ul>
<h2 id="summary" tabindex="-1">Summary</h2>
<ul>
<li>ARIA is a technical specification written by the World Wide Web Consortium (W3C)</li>
<li>ARIA is used by developers to build interactive website content that is accessible to people with disabilities who use screen readers</li>
<li>ARIA is supported by the most commonly used browsers and screen readers</li>
<li>ARIA complements HTML by providing a set of attributes that allow you to enhance the native roles of HTML elements to build more accessible user experiences</li>
<li>ARIA requires JavaScript to provide keyboard functionality to make elements focusable and define event handlers</li>
</ul>
<h2 id="related-wcag-2.1-success-criteria" tabindex="-1">Related WCAG 2.1 Success Criteria</h2>
<ul>
<li>Success Criterion 4.1.2 Name, Role, Value (Level A)</li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://w3c.github.io/aria-practices/">Accessible Rich Internet Applications 1.2</a>, W3C</li>
<li><a href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide (APG)</a>, W3C</li>
<li><a href="https://www.w3.org/TR/using-aria/">Using ARIA</a>, W3C</li>
<li><a href="https://stevefaulkner.github.io/Articles/Testing%20WAI-ARIA%20Role%20Support.html">Testing WAI-ARIA Role Support</a>, Steve Faulkner</li>
<li><a href="https://patrickhlauke.github.io/aria/presentation/">An introduction to Accessible Rich Internet Applications</a>, Patrick H Lauke</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Joe Lamyman</title>
    <link href="https://tetralogical.com/blog/2023/01/26/meet-joe-lamyman/"/>
    <updated>2023-01-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/01/26/meet-joe-lamyman/</id>
    <content type="html"><![CDATA[
        <p>Meet Joe Lamyman, an accessibility specialist at TetraLogical and lover of all things interactive media.</p>
<p><img src="https://tetralogical.com/blog/2023/01/26/meet-joe-lamyman/joe-lamyman.jpg" alt="Joe Lamyman, who happens to be so tall he should be in a basketball team, smiling face on to camera in one of York's greener spots" class="inline-image" style="max-height:15em" /></p>
<p>Joe's introduction to accessibility began during his time studying Interactive Media at university, building websites, Virtual Reality (VR) games and writing about digital cultures.</p>
<p>While designing and programming web applications for universities in the UK and Australia, Joe became interested in the idea of personalising user interfaces and returned to university to research a self-led MSc project around personalisation and e-commerce. Here he produced the eloquently named: <a href="https://bog-roll-business-builder.netlify.app/">Bog Roll Business Builder</a> site, used to research people's preferences when customising the design of sites.</p>
<p>Working in Defra's accessibility team, Joe helped to ensure that public sector bodies were delivering accessible services, by working alongside service delivery teams, the user-centered design community and procurement teams.</p>
<p>Joe enjoys building small, accessible websites with HTML and CSS. Projects include <a href="https://lamygram.app/">Lamygram</a> a site for his photos and <a href="https://the-house-plants-of-number-9.netlify.app/">The House Plants of Number 9</a>, built in an attempt to stop accidentally killing his house plants.</p>
<p>Joe's latest endeavour has been building an inclusive <a href="https://tetralogical.com/about/principles-cube/">Extended Reality (XR) cube</a>, displaying the TetraLogical principles. He has been exploring accessible 3D experiences and delving into different design ideas, potential uses, and methods to make these as inclusive as possible. He explores this in more depth in his latest <a href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/">Inclusive XR blog post</a>.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/26/meet-joe-lamyman/tetralogical-principles-cube-3d-model-viewpoint-selected.png" alt="A 3D model of a cube featuring the TetraLogical principles, with controls to play an animation, zoom in and out, and to navigate to different viewpoints. The Chrome DevTools highlights that the zoom in button has an accessible name of: 'Zoom in' and a role of button." />
<figcaption>A selected viewpoint on the TetraLogical principles cube model, in the 3D viewer</figcaption>
</figure>
<p>Outside of work, you'll find Joe playing video games, board games, and Dungeons and Dragons with friends. You'll also find him in some of York's greener spots like the Museum Gardens, reading and listening to music.</p>
<p>Most of Joe's free time is currently spent raising his tiny puppy &quot;Betsy&quot; who makes regular appearances on the TetraLogical social call, and we're hoping will one day formally join the company.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>Before starting and even now, I wish that I knew more about the needs of individuals. With legislation, I think that sometimes we focus on meeting the success criteria in the Web Content Accessibility Guidelines (WCAG) as if it's the end goal, when really, meeting that criteria is the minimum that we should be doing. Learning more about the needs of individuals and the situations in which people are using our services can help us to build things that are as accessible to as many people as possible.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>I think that one of the best ways to learn about accessibility is to engage in different communities online. Services such as Slack and Twitter are great for understanding best practice, current issues and people's thoughts and opinions when it comes to accessibility.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p><a href="https://www.a11yproject.com/">The A11Y Project</a> is a really great resource, providing background around different parts of digital accessibility, detailing quick tips that can be used to make small, sustainable changes and much more. The site itself also links out to many more great resources, communities and meet-ups.</p>
<h2 id="more-from-joe" tabindex="-1">More from Joe</h2>
<ul>
<li><a href="https://joelamyman.co.uk/blog/digital-accessibility-for-the-individual/">Digital Accessibility for the Individual</a></li>
<li><a href="https://www.youtube.com/watch?v=jq7mFctwVcA&amp;t=1177s">Personalizing User Interfaces for Accessibility with Joe Lamyman | Some Antics</a></li>
<li><a href="https://joelamyman.co.uk/">Joe Lamyman's personal website</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive XR: accessible 3D experiences</title>
    <link href="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/"/>
    <updated>2023-01-20T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/</id>
    <content type="html"><![CDATA[
        <p>In this series, Inclusive Extended Reality (XR), we will be delving into ways to design accessible experiences when interacting with 3D objects, augmented reality, and virtual reality.</p>
<p>In our first post about creating accessible experiences within Extended Reality (XR), we highlight some key considerations for designing 3D model viewers by introducing our 3D <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a>.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2023/03/23/inclusive-xr-accessible-augmented-reality-experiences/">Inclusive XR: accessible augmented reality experiences</a>.</p>
<h2 id="what-is-xr%3F" tabindex="-1">What is XR?</h2>
<p>XR is the acronym used for Extended Reality - a term that covers the blending of digital spaces and objects with physical spaces. This term encompasses augmented reality (AR) and virtual reality (VR).</p>
<p>AR works by adding digital images or objects to images of physical spaces. A popular example would be Snapchat's or Instagram's face filters, where effects are digitally applied to people's faces so that different affects can be achieved when using the device.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/tetralogical-principles_cube_ar_experience.jpg" alt="A cube with the TetraLogical logo on the front, augmented on top of a laptop screen" />
<figcaption>An example of Augmented Reality: a digital model displayed on top of a laptop screen</figcaption>
</figure>
<p>VR works by creating virtual 3D spaces that people can interact with by using hardware such as headsets and controllers, so that you can view the space and interact with the virtual environment.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/mozilla-hubs_vr-experience.png" alt="A 3D virtual reality environment of a gallery placed on a beach, viewed in Mozilla Hubs" />
<figcaption>An example of Virtual Reality: a virtual environment created using Mozilla Hubs</figcaption>
</figure>
<p>3D model viewers share a lot of similarities with VR experiences. They both exist in virtual 3D spaces where a user can manipulate a virtual camera. However, 3D model viewers do not require specific hardware and can be viewed on any device that supports a modern web browser.</p>
<p>Due to their availability, 3D model viewers make a great entry point in to XR. 3D models are included in all types of XR experiences and understanding how to present models, describe them and navigate around them is important for delivering an accessible XR experience in any medium.</p>
<h2 id="accessible-3d-experiences" tabindex="-1">Accessible 3D experiences</h2>
<p>You may have already interacted with XR by viewing 3D models of physical objects online. Museums upload models of physical objects to allow you to view them in ways that would not be possible physically, due to the condition or size of these artefacts.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/discovery-space-shuttle_3d-model-viewer.png" alt="The Smithsonian's 3D model of the Discovery space shuttle" />
<figcaption>A 3D model of the Discovery space shuttle</figcaption>
</figure>
<p>Fundamentally, being able to view 3D models also provides people with control. Due to environment, hardware, situation, or preferences, people may not be able to view an object using augmented or virtual reality methods.</p>
<p>For example, people may need to have their device permanently mounted and as such, cannot move their device to view different aspects of a model within AR or VR. People with anxiety may not want to place themselves in AR or VR environments that they feel to be unsafe. The BBC's <a href="https://www.bbc.co.uk/accessibility/forproducts/xr/">XR Barriers Research</a> covers a lot more of the common barriers encountered by people using XR experiences.</p>
<p>Providing the object in a 3D model viewer is an inclusive fallback. It ensures that people are given <a href="https://inclusivedesignprinciples.info/#give-control">control</a> to choose the experience that works for them, and they have a <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">comparable experience</a> that delivers the same information as available in an AR or VR experience.</p>
<h2 id="designing-accessible-3d-objects" tabindex="-1">Designing accessible 3D objects</h2>
<p>As with any design or development project, it is key that you begin by understanding the needs of your audience. Conduct <a href="https://tetralogical.com/services/agile-usability-testing/">usability testing</a> with disabled participants to better understand how and where your audience will use the functionality that you are developing, as well as to understand the needs of individuals.</p>
<p>Once you have a clear understanding of the needs of your audience, <a href="https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/">write user stories for accessibility</a> to document how the functionality must work for an end-user and the benefits of the product working in such a way.</p>
<p>To help with designing accessible 3D experiences, there are some considerations that you should bear in mind, these are:</p>
<ul>
<li>Allow for interaction with a keyboard</li>
<li>Make usable with screen reader software</li>
<li>Avoid distracting people</li>
</ul>
<p>We've included these considerations in designing our <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a>, which can be viewed alongside this blog post.</p>
<h3 id="allow-for-interaction-with-a-keyboard" tabindex="-1">Allow for interaction with a keyboard</h3>
<p>People may interact with the model using only a keyboard, or they may use another input device such as voice input, a pointing device, or a switch when <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, so do not rely on only mouse and touch interactions. It must be possible for a keyboard-only user to focus on the 3D model viewer and manipulate it.</p>
<p>Keyboard shortcuts, such as using the arrow keys to rotate the model, are useful and allow people to control the functionality with only their keyboard. It may be tempting to add in lots of different keyboard shortcuts, but ensure that you follow <a href="https://www.w3.org/WAI/WCAG21/Understanding/character-key-shortcuts.html">2.1.4: Character Key Shortcuts</a>. Try to avoid using single letter shortcuts, as they may interfere with other shortcuts that people use to operate assistive technologies. If you do need to use single letter shortcuts, provide a way for people to turn off or remap them, or make sure that they only activate when the model viewer has focus. In summary, keyboard shortcuts are useful, but avoid using single letter shortcuts.</p>
<p>For controls that are frequently used, such as navigational buttons or controls for zooming in and out, make sure that they are available to everyone. Anyone may want to view a specific viewpoint on the model, so prioritise important controls and make sure that they are easily discoverable within the UI. Where keyboard shortcuts do exist and differ from the arrow keys, &quot;Space&quot;, and &quot;Enter&quot; keys that people may use frequently, ensure that there's an easy way to find the list of shortcuts and how to operate them.</p>
<p>Make sure that all controls are elements within the DOM (Document Object Model) that can be accessed with a keyboard. Ensure that all controls have an accessible name (particularly if you plan on using icons to label the buttons), so that the design conforms with <a href="https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html">4.1.2: Name, Role, Value</a>.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/tetralogical-principles-cube_3d-model-keyboard-controls.png" alt="A 3D model of a cube featuring the TetraLogical principles, with controls to play an animation, zoom in and out, and to navigate to different viewpoints. The Chrome DevTools highlights that the zoom in button has an accessible name of: 'Zoom in' and a role of button." />
<figcaption>Chrome DevTools displaying the accessible name of the controls</figcaption>
</figure>
<h3 id="usable-with-screen-reader-software" tabindex="-1">Usable with screen reader software</h3>
<p>When developing controls alongside a 3D model viewer, ensure that the elements have the appropriate roles and attributes, so that they can be understood by people <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with screen reader software</a>.</p>
<p>It's also important that you provide a <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text description</a> for the 3D models that are displayed. Depending on what it is that you are displaying and the context of use, introducing the content with an explanation describing the object, may help to provide a comparable experience.</p>
<p>In our <a href="https://tetralogical.com/about/principles-cube/">TetraLogical principles cube</a> example, we introduce the model with the following text description.</p>
<blockquote>
<p>Following this is a 3D model of the TetraLogical cube. The cube features 6 flat faces. On the top of the cube is the TetraLogical logo, on the bottom are the 4 principles: Original, Inclusive, Sustainable, and Ethical. The 4 panels around the sides of the cube each contain a single principle.</p>
</blockquote>
<p>In some contexts it may be appropriate to <a href="https://inclusivedesignprinciples.info/">offer choice</a> and provide different ways to view the 3D content. Typically, we would expect people to manipulate the object themselves, but if people cannot see the object, you can curate different viewpoints along with a text description as to the information visually available. Using buttons, you can manipulate the object to the appropriate position for people to view these points of interest and provide the text description alongside the view.</p>
<p>For example, imagine viewing a 3D model of a spacesuit with a lot of information and detail present in the model. One aspect that we may want to draw attention to is the helmet. With a control labelled: &quot;Inspect helmet&quot;, we can move the virtual camera to focus on the helmet and provide a text alternative to this specific viewpoint:</p>
<blockquote>
<p>A golden coloured, reflective visor reflects the barren moonscape, with space and the Earth visible in the background. A frame outlines the visor, with the rest of the helmet covered in the white cloth material - matching the rest of the spacesuit.</p>
</blockquote>
<p>Depending on the use case, there may be multiple points of interest that are relevant to point out and describe in order to provide a comparable experience for all.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/20/inclusive-xr-accessible-3d-experiences/tetralogical-principles-cube_3d-model-viewpoint-selected.png" alt="A 3D model of a cube featuring the TetraLogical principles, with the 'Ethical' viewpoint selected and displaying the relevant part of the model and an accompanying text description." />
<figcaption>A selected viewpoint on the TetraLogical principles cube model</figcaption>
</figure>
<h3 id="avoid-distracting-people" tabindex="-1">Avoid distracting people</h3>
<p>Instead of starting with animations playing, which may distract people from the content surrounding the 3D model, make this an opt-in interaction, where people have to specifically activate the animation for it to play. People must also be able to pause and stop the animation if they want to.</p>
<p>Additionally, when moving the camera around the virtual object, ensure there are no sudden or long animations that play. Such animations may be problematic for people with vestibular disorders, who can become unwell if subjected to motion on screen.</p>
<p>In order to understand the needs of people using your model viewer, conduct <a href="https://tetralogical.com/services/usability-testing/">usability testing</a> with people with disabilities. This will allow you to check that the experience is usable and not distracting for a wide variety of people. It will also provide you with specific areas for improvement within the context of use that your 3D model is designed for as well as highlighting what works well so far.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>3D model viewers are an important fallback for AR and VR experiences and can be used to provide information in an engaging and interactive manner.</p>
<p>When creating such experiences, ensure that you allow for different methods of controlling the experience, that you provide a comparable experience for everyone and do not accidentally exclude anyone.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://modelviewer.dev/">Model Viewer</a>, Google</li>
<li><a href="https://www.levelaccess.com/accessibility-within-ar-vr-jonathan-avila-on-the-at-banter-podcast/">Accessibility within AR/VR: Jonathan Avila on the AT Banter podcast</a>, Level Access</li>
<li><a href="https://www.w3.org/WAI/APA/task-forces/research-questions/wiki/Augmented_Reality_and_Accessibility">Augmented Reality and Accessibility</a>, W3C</li>
<li><a href="https://scottvinkle.com/blogs/work/3d-model-accessibility">3D Model Accessibility</a>, Scott Vinkle</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about how our <a href="https://tetralogical.com/services/design-reviews/">design review</a> service provides feedback on early concepts and designs and <a href="https://tetralogical.com/services/assessments/">assessments</a> help you to understand whether your product meets accessibility standards.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: visible focus styles</title>
    <link href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/"/>
    <updated>2023-01-13T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/</id>
    <content type="html"><![CDATA[
        <p>Visible focus styles help us to understand which part of a web page we're interacting with. You may have seen visible focus styles appear as an outline around a link or a button for example.</p>
<p>For people who only use a keyboard to navigate the web, visible focus styles may be one of the few ways to understand where they are in a page and what it is that they are interacting with.</p>
<h2 id="understanding-visible-focus-styles" tabindex="-1">Understanding visible focus styles</h2>
<p>When <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, you navigate between the focusable elements on the page using the <code>Tab</code> key. By default, web browsers (such as Chrome, Firefox, and Safari) will highlight focused elements.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/link-with-default-focus-indicator.png" alt="Text containing a link with a blue underline and a blue focus outline indicator around it." />
<figcaption>Default focus style in Chrome</figcaption>
</figure>
<p>You must make sure that focus styles are always included in your websites, as without them, a person using only a keyboard may not be able to understand where they are in a web page and may not be able to use the site. As browsers will automatically provide focus styles with sufficient contrast, you can use these, as long as they aren't suppressed. Alternatively, you may wish to use focus styles that better suit the rest of your website or application's identity, but this still needs to be clearly visible and have sufficient contrast.</p>
<p>Focus styles aren't just limited to links and buttons. Any control that receives focus and can be used with a keyboard must have a visible focus style. This includes custom components that your site may use.</p>
<h2 id="check-focus-styles-haven't-been-suppressed" tabindex="-1">Check focus styles haven't been suppressed</h2>
<p>As mentioned earlier, web browsers will provide visible focus styles for interactive elements by default. A good place to start is by checking that focus styles have not been suppressed.</p>
<p>Any CSS that uses the <code>:focus</code> selector will make changes to the visible focus styles. Make sure that styles have not been suppressed without providing an alternative. The following code is an example of CSS code that will suppress focus styles:</p>
<pre class="language-css"><code class="language-css"><span class="token selector">a:focus</span> <span class="token punctuation">{</span>
  <span class="token property">outline</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<p>If focus styles have been suppressed, they must be replaced with an alternative that will still allow people to understand where they are in the page.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/tl-homepage-link-focus-outline.png" alt="The TetraLogical home page with a custom outline around the Blog link and a filled-in circle following it, to make it clear which element has focus." />
<figcaption>A custom focus style on the TetraLogical website</figcaption>
</figure>
<h2 id="designing-usable-focus-styles" tabindex="-1">Designing usable focus styles</h2>
<p>When designing visible focus styles, ensure they are consistently designed and accounted for on all interactive elements, so that wherever people are on your website, they can always clearly identify which element has focus.</p>
<p>If you have an <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design system</a>, you should document the focus styles. This will ensure that even when different parts of the website are managed by separate teams, the focus styles will be consistent.</p>
<p>It may be that a dark purple outline works for all elements across your website, or you may find that certain elements need slightly different styling to make the focus state more obvious. Styles should be consistent, but this doesn't mean that they have to be exactly the same. Depending on the context of use, changing the colour, to achieve greater contrast, or size of the focus style may improve the usability of the system.</p>
<p>The <a href="https://design-system.service.gov.uk/get-started/focus-states/">GOV.UK design system's focus state styles</a> make focussed links have a yellow background and a black underline, while focussed text fields have a yellow outline and a thick black border. While these styles are not identical, they are consistent and easy to identify. This aligns with the <a href="https://inclusivedesignprinciples.info/#be-consistent">Inclusive Design Principles' &quot;Be consistent&quot; principle</a>, allowing people to build familiarity and understanding in the way that your website works.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/gov-uk-link-and-text-input-focus-styles.png" alt="A link on a white background with a yellow background and thick black underline alongside a text input with a thick black border and yellow outline focus styles" />
<figcaption>GOV.UK link and text input focus styles</figcaption>
</figure>
<p>Providing <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">good contrast</a> between custom focus styles and any adjacent background colours is important, as people need to be able to easily see focus indicators.</p>
<p>If your website uses lots of different colours, having a single colour for your visible focus state may not work; people may not always be able to see it. To resolve this, using two different coloured outlines can help to provide contrast.</p>
<p>Chrome, Edge, and Firefox all use default focus indicator that has an outer white outline and an inner blue outline. These different colours can provide contrast when the controls appear on different colour backgrounds.</p>
<figure>
<img src="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/double-focus-outline-on-light-and-dark.png" alt="A link on a white background with the inner blue focus indicator clearly visible followed by a link on a black background with the outer white focus indicator clearly visible" />
<figcaption>The double focus outline means the same focus state is visible on dark and light backgrounds</figcaption>
</figure>
<p>This technique of using two outlines works particularly well if the controls are placed on top of images with lots of different colours in them, or on top of dynamic content such as videos, where you cannot guarantee what the background colour will be. A great starting point that ensures contrast would be to have both a white and a black outline. If there is darker coloured content in the background, the white outline will provide sufficient contrast. If there is lighter coloured content in the background, the black outline will provide sufficient contrast.</p>
<p><img src="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/double-outline-focus-indicator-video-example.jpg" alt="A TetraLogical video of Léonie, with a button overlaid demonstrating a visible focus indicator with both a white and a black outline." /></p>
<p>One way that this can be achieved is by applying a <code>box-shadow</code> attribute and applying two different coloured shadows to create the double border. The following code sample adds a white inner border and a black outer border.</p>
<pre class="language-css"><code class="language-css"><span class="token selector">*:focus</span> <span class="token punctuation">{</span>
  <span class="token property">outline</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
  <span class="token property">box-shadow</span><span class="token punctuation">:</span> 0 0 0 0.2em #fff<span class="token punctuation">,</span> 0 0 0 0.4em #000<span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<p>Because this approach uses the <code>box-shadow</code> property, people who use Windows' high contrast, or other forced colour modes, will not be able to see the focus styles. This is because forced colours reset the <code>box-shadow</code> property, so the styles will be lost.</p>
<p>To resolve this, you can use a media query that will add in an outline for people using forced colour modes, ensuring that it works for as many people as possible.</p>
<pre class="language-css"><code class="language-css"><span class="token selector">*:focus</span> <span class="token punctuation">{</span>
  <span class="token property">outline</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
  <span class="token property">box-shadow</span><span class="token punctuation">:</span> 0 0 0 0.2em #fff<span class="token punctuation">,</span> 0 0 0 0.4em #000<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token atrule"><span class="token rule">@media</span> <span class="token punctuation">(</span><span class="token property">forced-colors</span><span class="token punctuation">:</span> active<span class="token punctuation">)</span></span> <span class="token punctuation">{</span>
  <span class="token selector">*:focus</span> <span class="token punctuation">{</span>
    <span class="token property">outline</span><span class="token punctuation">:</span> 0.2em solid<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span></code></pre>
<h2 id="creating-focus-styles-just-for-keyboard-interactions" tabindex="-1">Creating focus styles just for keyboard interactions</h2>
<p>Using the <code>:focus</code> selector, the focus styles will be applied regardless of how people are interacting with content. If you use a mouse and click a button that has been styled using <code>:focus</code>, you'll see the styles take effect. This may be confusing for some people and may cause developers to suppress focus, as they don't see the need for focus styles when a user has already targeted the element either with a mouse or touch device.</p>
<p>The <code>:focus-visible</code> selector allows the browser to take into account a handful of different factors to decide whether to show focus, such as:</p>
<ul>
<li>whether visible focus styles have been explicitly requested</li>
<li>whether a keyboard or non-touch device is being used</li>
<li>whether scripting has been used to focus on other elements</li>
</ul>
<p>This means that when using the <code>:focus-visible</code> selector, a user using a mouse or touch device would not see the focus styles when selecting a button, as the browser has determined that it may not be helpful. This approach can be used to provide visible focus styles, when most helpful to the user, without distracting them when they are already selecting an element.</p>
<p>The following code sample uses the same double border approach discussed earlier, with the <code>:focus-visible</code> selector.</p>
<pre class="language-css"><code class="language-css"><span class="token selector">*:focus-visible</span> <span class="token punctuation">{</span>
  <span class="token property">outline</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
  <span class="token property">box-shadow</span><span class="token punctuation">:</span> 0 0 0 0.2em #fff<span class="token punctuation">,</span> 0 0 0 0.4em #000<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token atrule"><span class="token rule">@media</span> <span class="token punctuation">(</span><span class="token property">forced-colors</span><span class="token punctuation">:</span> active<span class="token punctuation">)</span></span> <span class="token punctuation">{</span>
  <span class="token selector">*:focus-visible</span> <span class="token punctuation">{</span>
    <span class="token property">outline</span><span class="token punctuation">:</span> 0.2em solid<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span></code></pre>
<p>The only exception to this is that for any elements that support keyboard input, such as a text field using the <code>&lt;input&gt;</code> element, focus will be shown regardless.</p>
<h2 id="tips-for-visible-focus-styles" tabindex="-1">Tips for visible focus styles</h2>
<ul>
<li>View the content in different conditions to make sure that the focus state is still easily visible</li>
<li>Keep the design of visible focus styles consistent across all interactive components</li>
<li>If your site contains different coloured backgrounds or dynamic content, use a double outline for the visible focus styles to ensure there is always sufficient contrast</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html">WCAG 2.1 Success Criterion 1.4.11: Non-text Contrast</a></li>
<li><a href="https://www.w3.org/WAI/WCAG22/Understanding/focus-visible.html">WCAG 2.1 Success Criterion 2.4.7: Focus Visible</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://adrianroselli.com/2021/02/whcm-and-system-colors.html">Adrian Roselli: WHCM and System Colors</a></li>
<li><a href="https://www.sarasoueidan.com/blog/focus-indicators/">Sara Soueidan: A guide to designing accessible, WCAG-compliant focus indicators</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: target sizes</title>
    <link href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/"/>
    <updated>2022-12-20T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/12/20/foundations-target-size/</id>
    <content type="html"><![CDATA[
        <p>A target size is the area that can be activated in order to interact with an element. For people who have dexterity issues, the smaller a target size is, the more difficult it may be to use the website.</p>
<p>This post explores how to create usable, consistent, and well-spaced target sizes.</p>
<p>A person's ability to click or tap smaller controls may also be affected if they have a disability or a combination of disabilities that affect their dexterity and motor movements, or if they are moving while using a website, be it while walking or using transport.</p>
<p>There are many ways that people may interact with a device in order to operate it.</p>
<p>Beyond using a mouse, people may use alternative pointing devices such as a large trackball mouse, joystick, and eye or <a href="https://thoughtbot.com/blog/an-introduction-to-macos-head-pointer">head pointer software</a> that uses a camera to detect specific movements. These alternative devices all benefit people with different disabilities like arthritis, cerebral palsy, and tremors, for which the design of a typical mouse may be difficult to use.</p>
<p>It's also not only smartphones with touch screens that people may interact with by touch. Tablet devices, laptops, and monitors can all offer touch interactions, or the use of a stylus which works similarly.</p>
<p><img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/finger-selecting-link-on-screen.png" alt="A hand overlaid on top of a list of links, with the fingertip tapping a link which has an outline showing the target area" /></p>
<p>It's not possible to determine or predict exactly how a person may interact with the designs that we create. The way that a person uses a design may change throughout their usage. Recent additions to the web mean that we can try to detect how people may be interacting with their devices. However, <a href="https://css-tricks.com/interaction-media-features-and-their-potential-for-incorrect-assumptions/">assumptions about interaction methods can be problematic</a>, as they may not be accurate and changes to the sites design made on incorrect assumptions can lead to a worse user experience.</p>
<p>The best solution is to create large and well-spaced target sizes so that people can easily click or tap the control they want and have a better experience regardless of how they use their devices.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/photo-steve-6.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing facing into the camera while he holds his book or poetry and photos open in front of him" />
<figcaption>Steve would like to see better use of colour contrast and bigger font sizes in menus.</figcaption>
</figure>
<h2 id="creating-usable-target-sizes" tabindex="-1">Creating usable target sizes</h2>
<p>In the Web Content Accessibility Guidelines 2.1, the only requirement for target sizes and spacing is <a href="https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#dfn-pointer-input">2.5.5: Target Size</a>, which is for AAA compliance. The guideline requires that a target size is no smaller than 44 pixels by 44 pixels. This success criterion applies to all pointer inputs, such as mouse, stylus, and touch.</p>
<p>Both Apple's design guidelines and Google's material design guidelines have similar recommendations. <a href="https://developer.apple.com/design/human-interface-guidelines/foundations/layout/">Apple's layout guidance</a> recommends that components &quot;maintain a minimum tappable area of 44×44 points for all controls&quot;. <a href="https://m3.material.io/components/icon-buttons/accessibility">Material design</a> recommends that target sizes are at least 48dp by 48dp. The icon for the control does not have to be the full size, but can use padding to increase the visual space, all of which can be clicked or tapped.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/material-design-touch-target-example.png" alt="A series of controls where the icons are different sizes, such as 24dp and 40dp, but use padding around the icon to increase the target size to 48dp." />
<figcaption>An example from the Material guidelines showing different sized icons all with a consistent 48dp by 48dp sized target area.</figcaption>
</figure>
<p>The WCAG guideline for a target size of 44 pixels by 44 pixels is the minimum required and depending on context of use, people may require larger target sizes. An example of this in practice can be found in <a href="https://developers.google.com/cars/design">Google's Design for Driving guidance</a>, used for designing interfaces in cars. The <a href="https://developers.google.com/cars/design/automotive-os/design-system/sizing">Design for Driving sizing</a> recommends a much larger minimum touch target size of 76dp by 76dp. The larger size is used &quot;to be glanceable and easily selected by a driver while the car is in motion&quot;. The target area size has been made larger to better meet the needs of people using the controls by considering their situation and environment.</p>
<p>At the moment, it's not possible to create content that is sized using physical measurements like millimetres (mm). This is because different devices are sized differently and have different pixel densities and display resolutions. Physical measurements such as <code>mm</code> used in CSS are not guaranteed to be displayed accurately, as they are still anchored and defined in terms of CSS pixels. Because of this, you will notice that different platforms use different measurements for target sizes:</p>
<ul>
<li>W3C provides guidance in terms of density-independent CSS pixels (px)</li>
<li>Apple provides sizes in points (pt)</li>
<li>Google in density-independent pixels (dp)</li>
</ul>
<p>Follow the guidance for minimum recommended sizes and test them with people using your software and services, including people with disabilities, to ensure that they work for your target audiences and their varying needs.</p>
<h2 id="spacing-between-controls" tabindex="-1">Spacing between controls</h2>
<p>As described earlier, often padding can be added around icons to make the target area bigger and easier to operate.</p>
<p>Spacing between controls can also affect how easy it is to click or tap the right control. Too little spacing means that people may accidentally activate a control that they did not mean to. In some cases, this may not be a problem, but in other cases accidental activation of controls can be problematic and lead to anxiety for people using the site.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/small-controls-open-and-delete.png" alt="A screenshot of a system where open and delete controls for a website are presented side-by-side, with very little space between them." />
<figcaption>A delete button placed close to an open button, with very little space between the controls</figcaption>
</figure>
<p>The BBC's <a href="https://www.bbc.co.uk/gel/features/how-to-design-for-touch">How to design for touch</a> article builds on this and recognises that some controls may not meet their 44px by 44px tap target area size. If this is the case, spacing or &quot;exclusion zones&quot;, can be added around a control to keep the space clear and make it easier to click or tap the right control.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/bbc-tap-target-exclusion-zones.png" alt="Two examples of positioning controls. In the first example, controls have space between them, successfully separating their tap target areas. In the second example, the controls have no space between them and their tap target areas overlap." />
<figcaption>An example from the BBC GEL guidelines demonstrating how exclusion zones can separate target areas.</figcaption>
</figure>
<p>When changing spacing, if controls are related, make sure that this visual relationship is not affected by implementing too much spacing. <a href="https://carbondesignsystem.com/elements/spacing/overview/">The Spacing article from the IBM Carbon Design System</a> describes relationships and spacing as being closely related:</p>
<blockquote>
<p>Elements in a design that are near each other are seen as being meaningfully related. As more space is added between elements, their perceived relationship weakens.</p>
</blockquote>
<h2 id="consistent-targets-and-spacing-size" tabindex="-1">Consistent targets and spacing size</h2>
<p>Once agreed on, spacing and target sizes can then be introduced into <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design systems</a> to ensure that all components are consistent. Similar to the way you would document focus states in a visual style guide, minimum target area sizes can also be documented and the spacing between components can be displayed to make it clear for developers how to implement patterns.</p>
<p>The <a href="https://inclusivedesignprinciples.info/#be-consistent">&quot;be consistent&quot; Inclusive Design Principle</a> describes how consistency can improve people's experience with your websites. Consistent patterns and components make it easier for people to understand how to interact with the site and to activate the controls that they want to. Consistency across all components and pages ensures that people do not have to relearn how to use your website.</p>
<p>If your target sizes are both consistent internally (across your website) and they match other guidance (like WCAG), people will be able to comfortably interact with the website and feel confident in doing so.</p>
<h2 id="check-target-sizes" tabindex="-1">Check target sizes</h2>
<p>You can check the target sizes during the design stage and during implementation.</p>
<p>When designing prototypes, tools such as Figma will display the dimensions of elements. Select the control to view its size. Ensure that you factor in any spacing between controls. Using Figma, on Mac press the <code>Option</code> key or on Windows press the <code>Alt</code> key, and then hover over another element to view the spacing between elements.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/figma-elements-spacing.png" alt="A button design with dimensions of 120 pixels by 37 pixels displayed below the button, with a spacing of 16 pixels to the adjacent button." />
<figcaption>A button's dimensions and the spacing between buttons, displayed in Figma.</figcaption>
</figure>
<p>When implemented, you can check target sizes using your browser's development tools. Using Chrome as an example, either right click and select &quot;Inspect&quot;, or in the settings menu, select &quot;More Tools&quot; and then &quot;Development Tools&quot;. With the development tools panel open, you can navigate through the list of HTML elements, or select an element with the mouse. With an element selected, you'll be able to view the size of the control. Again, make sure to take into account any spacing between controls.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/chrome-elements-spacing.png" alt="The TetraLogical site, with the Blog control highlighted, displaying that the element is an &lt;a&gt; element, sized 136.44 pixels wide, by 41.09 pixels tall." />
<figcaption>A button's dimensions, displayed in Chrome using the development tools.</figcaption>
</figure>
<h2 id="tips-for-target-size" tabindex="-1">Tips for target size</h2>
<ul>
<li>Make sure that controls are appropriately sized and spaced</li>
<li>Test the size of controls with your audience, including people with disabilities</li>
<li>Implement spacing and target sizes consistently</li>
</ul>
<h2 id="proposed-success-criterion" tabindex="-1">Proposed success criterion</h2>
<p>At the time of writing, there is a proposed WCAG 2.2 Level AA success criterion that relates to target areas: <a href="https://w3c.github.io/wcag/understanding/target-size-minimum.html">Target Size (Minimum)</a>.</p>
<p>In general, it requires that the target size for controls are at least 24 CSS pixels by 24 CSS pixels. However, it does allow for targets that are smaller, as long as their 'offset' (which the Success Criterion defines as the size of the target, plus its spacing to any adjacent targets) is at least 24 CSS pixels. There are also a handful of exceptions for where the minimum size does not apply, such as if the size of the target is determined by the user agent and has not been changed, or if the target is in a sentence or block of text.</p>
<p>However, this is not currently a W3C Recommendation and the inclusion of the criterion may change before release of WCAG 2.2.</p>
<p><strong>Update:</strong> in the most recent (May 2023) editor's draft for the upcoming WCAG 2.2, the proposed <a href="https://w3c.github.io/wcag/guidelines/22/#target-size-minimum">Target Size (Minimum)</a> has been considerably reworked. Instead of the original idea of 'target offset', the spacing exception now defines the minimum space between targets using circles:</p>
<blockquote>
<p>Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the bounding box of each, the circles do not intersect another target or the circle for another undersized target.</p>
</blockquote>
<p>Ideally, targets should have dimensions of at least 24 by 24 CSS pixels. If they are smaller, there must be a &quot;clearance&quot; of at least 24 CSS pixels around the center of the target, where no other targets are present.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/12/20/foundations-target-size/wcag-target-size-minimum-spacing-circles.png" alt="An illustration showing two rows: in the first row, we have a horizontal toolbar of icon-based controls, measuring 20 by 20 pixels, with 4 pixels of spacing between them. The controls are overlaid with circles, all with a 24 pixel diameter. These circles don't overlap, so this toolbar passes. In the second row, we have the same toolbar, but the 20 by 20 pixel controls are tightly packed together with no spacing. When placing 24 pixel diameter circles over these controls, all the circles overlap, failing the criterion." />
<figcaption>For small targets, place a 24 CSS pixel diameter circle on each target – if any circles overlap, or if any circle intersects another target, the spacing exception is not satisfied and the targets fail the Success Criterion</figcaption>
</figure>
<p>Note that, as a result, the name of the <em>Target Size (Minimum)</em> criterion is perhaps misleading. It won't guarantee that there are no small targets. It defines an ideal minimum size, but also allows an exception for smaller targets with sufficient <em>spacing</em>. The intent of the criterion is not to make sure targets are large enough to be comfortably activated, but to avoid having targets that are too small clustered closely together, which would otherwise increase the likelihood of a person accidentally activating an adjacent target.</p>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#dfn-pointer-input">WCAG 2.1 Success Criterion 2.5.5: Target Size</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://web.dev/accessible-tap-targets/">Accessible tap targets</a>, web.dev</li>
<li><a href="https://css-tricks.com/interaction-media-features-and-their-potential-for-incorrect-assumptions/">Interaction Media Features and Their Potential (for Incorrect Assumptions)</a>, Patrick H. Lauke</li>
<li><a href="https://www.w3.org/WAI/perspective-videos/controls/">Large Links, Buttons, and Controls</a>, W3C Web Accessibility Initiative</li>
<li><a href="https://www.a11yproject.com/posts/large-touch-targets/">Large touch targets</a>, The A11Y Project</li>
<li><a href="https://adrianroselli.com/2019/06/target-size-and-2-5-5.html">Target Size and 2.5.5</a>, Adrian Roselli</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>
<p>Updated Monday 15 May 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Henny Swan</title>
    <link href="https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/"/>
    <updated>2022-12-12T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/</id>
    <content type="html"><![CDATA[
        <p>Meet Henny Swan, one of the four TetraLogical directors, and our consultancy and accessible user experience and design lead.</p>
<p><img src="https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/henny-swan.jpeg" alt="Henny Swan" class="inline-image" style="max-height:15em" /></p>
<p>Having eked out a living doing voice-overs when living in China, Henny started her professional life on the web back in 1999 working for a Chinese search engine. Focusing on the user experience for dual language web platforms, Henny went on to set up two start-ups before the bubble burst, and she found herself back in the UK.</p>
<p>Her early career at the Royal National Institute of Blind People (RNIB) eventually led her to the BBC. Here Henny scratched an itch to write the <a href="https://www.bbc.co.uk/accessibility/forproducts/guides/mobile/">BBC Mobile Accessibility Guidelines</a> while developing a specialism in the accessible user experience of video on demand working on BBC iPlayer, the Olympics interactive media player, and subsequently other products such as Netflix and Spotify.</p>
<p>During her 20 years in accessibility Henny has contributed to the Web Accessibility Initiative (WAI) Education and Outreach Working Group (EOWG), User Agent Accessibility Guidelines User Group (UAAG), and the UN Global Initiative for Accessible ICT (UNG3ICT).</p>
<p>Currently, Henny is a proud member of <a href="https://www.groupofhumans.com/">Group of Humans</a> and is a graduate of the <a href="https://www.goldmansachs.com/citizenship/10000-small-businesses/UK/">Goldman Sachs 10,000 Small Businesses Programme</a>.</p>
<p><img src="https://tetralogical.com/blog/2022/12/12/meet-the-team-henny-swan/10ksb.jpeg" alt="10KSB logo" /></p>
<p>Henny is a co-author of the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a>; a set of principles she uses every day when design solutions for making technology usable for people with disabilities be it an <a href="https://www.smashingmagazine.com/2015/02/bbc-iplayer-accessibility-case-study/">accessible media player</a>, an <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design system</a>, or analysing the <a href="https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/">research insights</a> from inclusive user research.</p>
<p>As a mother, dog-wrangler, and wild swimmer, Henny frequently astonishes the team when she pops into the morning meetings after a freezing cold dip in the sea in her native Brighton before most people are even awake. She's even been known to do 5k swims for charity where she is pretty sure she &quot;swam backwards as the tide turned&quot;.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>It doesn't matter how compliant a website or mobile application is with <a href="https://www.w3.org/TR/WCAG21/">Web Content Accessibility Guidelines (WCAG)</a>, if someone with a disability can't use it, it's not accessible.</p>
<p>WCAG is the foundation but not the full story. You need to bring people with disabilities into the conversation however and whenever you can. Ideally this is by including people with disabilities in your team,  speaking with people with disabilities and inclusive <a href="https://tetralogical.com/services/usability-testing/">usability testing</a>, but it can also be through user research, interviews, personas, and reading studies.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>You don't, and can't, be an expert in everything as accessibility is as broad as it is deep. Learn the foundations of accessibility first: WCAG, disability, assistive technology, inclusive design, etc. With the foundations in place you can then adapt your knowledge and specialise in an area you love be it mobile, web, artificial intelligence, video on demand, inclusive user research, accessible design systems...you name it.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>There is a series of articles that I find myself returning to again and again by James Williamson. In his post <a href="http://simpleprimate.com/blog/long-goodbye">The long goodbye</a> James generously shares his experience of living with Amyotrophic lateral sclerosis (ALS). He then shares his experience of the web in <a href="http://simpleprimate.com/blog/motor">what I've learned about motor impairment</a>. It's a great piece because it highlights how some barriers really do come down to bad UX and not just WCAG.</p>
<h2 id="more-from-henny" tabindex="-1">More from Henny</h2>
<ul>
<li><a href="https://www.linkedin.com/in/hennyswan/?originalSubdomain=uk">LinkedIn</a></li>
<li><a href="https://www.youtube.com/watch?v=1OBoXqM3B4A">Designing for people who use a mouse</a>: Web Accessibility In Mind Conference</li>
<li><a href="https://www.youtube.com/watch?v=U34msEypK6k">The Inclusive Design Principles</a>: ID24 conference</li>
<li><a href="https://www.youtube.com/watch?v=rZExvZEjvtk">The velvet rope</a>: Northern UX conference</li>
<li><a href="https://www.bbc.co.uk/events/e4vgfx/live/cb54wh">Be my guest</a>: BBC Access all areas</li>
</ul>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Ela Gorla</title>
    <link href="https://tetralogical.com/blog/2022/11/15/meet-the-team-ela-gorla/"/>
    <updated>2022-11-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/11/15/meet-the-team-ela-gorla/</id>
    <content type="html"><![CDATA[
        <p>Ela Gorla is one of TetraLogical’s principal accessibility specialists and our resident user research and training expert. Read on to discover her top accessibility tips, how she came to work in accessibility and things she wishes she’d known when starting out.</p>
<p><img src="https://tetralogical.com/blog/2022/11/15/meet-the-team-ela-gorla/ela-gorla.jpg" alt="Photograph of Ela smiling while climbing a wooden ladder in a jungle at the side of a mountain" class="inline-image" style="max-width:20em" /></p>
<p>There’s never a dull moment where Ela is concerned.</p>
<p>She’s up early and off to the gym each morning and fills her evenings with relaxing hobbies like rock climbing and jive dancing. Ela consumes an intimidating range of literature and makes sure weekends are choc-a-block full of socialising, more activities, music and food.</p>
<p>Having spent over 13 years working as an accessibility specialist at Barclays, System Concepts, Vision Australia and U1 Group, Ela looks after user research at TetraLogical, including <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a>, <a href="https://tetralogical.com/services/user-experience-reviews/">User Experience Reviews</a>, and running <a href="https://tetralogical.com/services/user-research-mentoring/">User Research Mentoring</a>.</p>
<p>Ela shares much of what she does via the TetraLogical blog with posts such as <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">moderating usability testing sessions</a> and <a href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/">recruiting participants for inclusive user research</a>.</p>
<p>Ela has delivered in-person training across the globe, including Europe, Asia, North and South America covering a broad range of subjects. At TetraLogical she creates <a href="https://tetralogical.com/services/self-led-training">self-led training</a> focusing on inclusive user research, accessible document design, multimedia and social media.</p>
<p>Combining her inside knowledge of organisations with her in-depth understanding of the Web Content Accessibility Guidelines, Ela has lots of experience writing guidelines and standards for internal use by Australian government departments, Barclays and TetraLogical. She also contributed to the <a href="https://www.w3.org/WAI/standards-guidelines/atag/">W3C Authoring Tool Accessibility Guidelines</a> as a tester and the Scope Big Hack advisory board. Her documentation skills have been instrumental in documenting TetraLogical's <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">inclusive approach to video production</a> and our own internal guidelines where she was the mastermind behind TetraLogical's hugely popular <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKWTr9XWdW5hJ9tk512Ow0SE">quick accessibility tests video series</a>.</p>
<p>A well-seasoned traveller, Ela has visited 46 countries and has lived in Italy (where she grew up), Australia and now the UK. She has also travelled presenting at various conferences and meetups, including OZeWAI, UX Australia, UK UXPA, AccessU, TechShare Pro, Skillcast Institute of Coding and as a guest lecturer for the City University of London.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>That guidelines are only half the story. My first experience with accessibility was during my bachelor degree, when I wrote a thesis on the subject. Back then I thought it was all about meeting guidelines. I then started working for a user experience consultancy and soon realised that no guidelines can replace testing content with people. I now fully appreciate the value of using guidelines in conjunction with usability testing to evaluate and improve the accessibility of products.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>Be curious. Speak with as many people as you can to understand how they use technology, what works and doesn't work for them. Ask all the questions you have (in a respectful way). People are always happy to share their experience, and you will learn a lot from it.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>Other accessibility professionals. I believe that learning from one another is extremely valuable and powerful. We all have something we can teach to, and learn from, others. With so many accessibility conferences happening online now, there is a wealth of talks and discussions that we can all join or watch on demand. Learning has never been so easy.</p>
<h2 id="more-from-ela" tabindex="-1">More from Ela</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=578I2Q6yl3g">Barclays: Interview with Ela Gorla</a></li>
<li><a href="https://www.youtube.com/watch?v=Goz1dp-Z-5c">Skillscast: Vendors and accessibility</a></li>
<li><a href="https://www.tpgi.com/uxpa-uk-world-usability-day-2017-inclusion-through-user-experience/">UXPA UK World Usability Day 2017: Inclusion through User Experience</a></li>
<li><a href="https://abilitynet.org.uk/news-blogs/6-things-we-learned-about-accessibility-techshare-pro-2019">AbilityNet: 6 things we learned about accessibility at TechShare Pro 2019</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: native versus custom components</title>
    <link href="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/"/>
    <updated>2022-11-08T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/</id>
    <content type="html"><![CDATA[
        <p>Deciding whether to use native or custom components for a website or web application can have implications in terms of development effort, user experience, and accessibility. This post considers the pros and cons of each approach with a focus on accessibility, and provides guidance on how to choose one.</p>
<p>HTML offers developers a wide range of native components that can be used &quot;out-of-the-box&quot;. Buttons, links and form controls are all examples of such components. Web browsers also provide a number of standard features that developers can take advantage of, such as a default focus indicator (the border that appears when items receive the keyboard focus). Should developers rely on these native components and features, or should they build their own?</p>
<p>Both native and custom components and features come with benefits and drawbacks:</p>
<ul>
<li>Native components require very little work, are familiar to users, and can be accessible by default (more on this later). On the other hand, they may not provide exactly the functionality or behaviour that developers are after</li>
<li>Custom components can be built to appear and behave exactly as developers wish, but they require a greater effort to build. Making them accessible can also be challenging</li>
</ul>
<p>Deciding which ones to use is not always easy so here is a summary of things to consider around the accessibility of native and custom components and features. While not the only deciding factor, support for accessibility needs to be evaluated. Choosing components or features with a robust support for accessibility is likely to save you time and money in the long run.</p>
<h2 id="when-to-use-native-components" tabindex="-1">When to use native components</h2>
<p>Most of the native components in HTML provide accessibility benefits, including:</p>
<ul>
<li>Support for screen readers and other assistive technology</li>
<li>Support for keyboard access</li>
<li>Consistent behaviour across browsers, operating systems and devices</li>
<li>Support for old versions of assistive technology that may not fully understand <a href="https://www.w3.org/TR/wai-aria-1.1/">WAI-ARIA</a></li>
</ul>
<p>As an example, the HTML native <code>&lt;button&gt;</code> element is:</p>
<ul>
<li>Announced as &quot;button&quot; by screen readers</li>
<li>Identified as a button by voice recognition software</li>
<li>Focusable and actionable via the keyboard</li>
</ul>
<p>Custom buttons have none of the above features by default and need to be made accessible. This means manually adding role information and implementing keyboard support, which require time and effort.</p>
<p>From an accessibility point of view, using the native version of simple components such as buttons, links and form controls greatly outweigh any possible drawbacks.</p>
<h2 id="when-to-use-custom-components" tabindex="-1">When to use custom components</h2>
<p>There are cases, however, where using native components or standard features may not be the most accessible solution. Let me give you some examples.</p>
<h3 id="error-messages" tabindex="-1">Error messages</h3>
<p><a href="https://html.spec.whatwg.org/multipage/input.html#the-input-element">HTML5 input types</a> allow developers to specify the type of data that people are expected to enter in input fields. By using HTML5 input types, developers can take advantage of browsers' built-in client-side error validation. This means they don't need to write long blocks of HTML and JavaScript to check that data is in the expected format and to display error messages otherwise.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/example-error-message.png" alt="A form containing several input fields. The error message &quot;Please enter a URL&quot; is displayed next to the &quot;Website&quot; field" />
<figcaption>A standard error message for a field of type <code>url</code> in Chrome.</figcaption>
</figure>
<p>This sounds like a great solution, which could also make error validation consistent across websites. Unfortunately, though, browser error messages present some accessibility and usability issues, described below.</p>
<h4 id="they-are-not-persistent" tabindex="-1">They are not persistent</h4>
<p>Browser error messages remain on screen for few seconds only. After that, there is no indication that the form contains errors, what the errors are, and how to resolve them. This is an issue for all users, and for people with disabilities in particular. For example, screen magnifier users may miss the error messages as they may be looking at a different area of the page, and people with some cognitive disabilities may not have time to read and process the error messages before they disappear.</p>
<h4 id="a-single-error-message-is-displayed-at-any-one-time" tabindex="-1">A single error message is displayed at any one time</h4>
<p>Upon submitting a form containing multiple errors, people are presented with one error message only. Only after re-submitting the form, do they find out that more errors are present. This can be frustrating and time-consuming, especially for keyboard and assistive technology's users who may take longer than mouse's users to reach the submit button at the end of forms.</p>
<h4 id="no-support-for-users'-preferred-font-size." tabindex="-1">No support for users' preferred font size.</h4>
<p>Some people have their preferred font size set in the browser's settings and struggle to read text in a different size. While browsers' default error messages resize when the Zoom functionality is used, they do not honour users' font size choice.</p>
<h4 id="generic-wording" tabindex="-1">Generic wording</h4>
<p>In most cases, the error messages do not clearly explain what the problem with the entered data is and how to fix it. For example, &quot;Please fill in this field&quot; is displayed for every required field that is left empty. No indication of what data needs to be entered is provided. While some people can easily see the field's label together with the error message, it may take some effort for users of some assistive technology to do the same. Another example is the &quot;Please enter an email address&quot; error message displayed in Firefox any time an email address is entered in an incorrect format; some people may not know why the information they have entered is incorrect and what the expected format is.</p>
<h4 id="inconsistency-between-browsers" tabindex="-1">Inconsistency between browsers</h4>
<p>Each browser handles form validation and presents error messages quite differently. This creates inconsistency when accessing the same form in different browsers, which can be problematic for some people with cognitive disabilities.</p>
<p>Implementing custom error messages remains the most accessible solution until browsers address the above issues.</p>
<h3 id="focus-indicator" tabindex="-1">Focus indicator</h3>
<p>Another standard feature of web browsers that can provide a poor user experience is the focus indicator. Again, each browser's implementation is different and while some provide a highly noticeable indicator, others do not. For example, here is Firefox's standard focus indicator, hardly visible around the &quot;About us&quot; link. It will be very difficult if not impossible for some keyboard users to notice it and know where they are on the page.</p>
<p><img src="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/firefox-focus-indicator.png" alt="A navigation menu. A dotted border is hardly visible around one of the items, due to its low contrast with the background colour" /></p>
<p>We always recommend clients implement a custom focus indicator with a strong colour contrast against all background colours. For example, a dark purple border is displayed around links on our website. Not only does this make the focus indicator easy to perceive, it also makes it consistent across web browsers.</p>
<p><img src="https://tetralogical.com/blog/2022/11/08/foundations-native-versus-custom-components/tl-navigation-visible-focus.jpg" alt="The navigation menu on the TetraLogical website. A dark purple border is visible around one of the links" /></p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>In many cases, using native components and browser's standard features is the easiest and most accessible solution. This is particularly true for simple components that have been part of HTML for a long time, such as links, buttons and form fields.</p>
<p>While it is possible to implement support for accessibility using custom components, this requires more time and effort and is prone to errors. At the same time, you should not assume that all standard features are accessible by default. As the two examples above illustrate, some have accessibility and usability issues that are likely to impact the experience of people on your website and web applications.</p>
<p>Always research the accessibility support of native components and standard features before using them, or test them yourself with a range of assistive technology and accessibility settings. Conducting user research with people with disabilities is another effective way to find out what does and does not work for them.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: HTML semantics</title>
    <link href="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/"/>
    <updated>2022-10-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/</id>
    <content type="html"><![CDATA[
        <p>HTML semantics provide accessibility information about page structure and an element's role, name, and state, helping to convey the nature and purpose of content on web pages.</p>
<p>In this post we explore what HTML semantics are, and how they're experienced by people using assistive technologies like screen readers and speech recognition software.</p>
<p>HTML semantics are processed by web browsers, then used by assistive technologies so that people with disabilities can understand what elements are and how to interact with them. An assistive technology is a software that people use to access web content. This could be a screen reader which announces content to people who are blind, or speech recognition software that people with physical disabilities use to navigate content using their voice.</p>
<h2 id="structure" tabindex="-1">Structure</h2>
<p>You can use HTML to give content structure by identifying things like <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a>, <a href="https://tetralogical.com/blog/2022/04/29/lists/">lists</a>, paragraphs, and data tables. Writing semantic code means choosing the most appropriate element to identify the content and therefore the structure.</p>
<p>For example, HTML headings are identified using the elements <code>&lt;h1&gt;</code> to <code>&lt;h6&gt;</code>. A screen reader will announce &quot;heading level one” for a <code>&lt;h1&gt;</code>, “heading level two” for <code>&lt;h2&gt;</code> and so on. This gives people who use a screen reader an understanding of the heading hierarchy of a page, much like a table of contents in a book.</p>
<p>In the following example, a screen reader will announce the headings as &quot;<em>Heading level 1</em>, About TetraLogical&quot; and &quot;<em>Heading level 2</em>, Our principles&quot;.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h1</span><span class="token punctuation">></span></span>About TetraLogical<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h1</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>We’re a boutique company, with lots of experience and a whole new attitude.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
…
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Our principles<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>...TetraLogical is founded on four principles that mean everything we do is:<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Inclusive...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Sustainable...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Ethical...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Original...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span>
…</code></pre>
<p>Lists are announced when the <code>&lt;ul&gt;</code> or <code>&lt;ol&gt;</code> elements and <code>&lt;li&gt;</code> are used. In the above example a screen reader will announce “List of four items” (or similar). It will also announce where in the list the item is and what it is, for example &quot;Sustainable, two of four&quot;.</p>
<p><img src="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/tl-about-tetralogical-page.png" alt="A heading level 1 for About TetraLogical, a heading level 2 for Our Principles, and an unordered list of the About TetraLogical page" /></p>
<h2 id="role" tabindex="-1">Role</h2>
<p>An element's role describes its purpose.
Roles are announced by screen readers and indicate the type of element something is, for example a link, button, radio button, or checkbox. Many HTML elements have a default role, also known as the <strong>implicit</strong> role.</p>
<p>For example, the implicit role of the <code>&lt;a&gt;</code> element is &quot;link&quot;. When the browser processes the following code it automatically assigns a role of &quot;link&quot; to the element:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.tetralogical.com/<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>TetraLogical<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p>This means people <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> will hear &quot;TetraLogical <em>link</em>&quot; and people <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition software</a>, can say &quot;Click TetraLogical <em>link</em>&quot; to interact with it.</p>
<p>Another example is buttons. The browser assigns a role of &quot;button&quot; to the <code>&lt;button&gt;</code> element when the following code is used:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Next<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<p>People browsing with a screen reader will hear &quot;Next, <em>button</em>&quot; while people browsing with speech recognition can say &quot;Click next <em>button</em>&quot; to interact with it.</p>
<p>The role of an element is important because it lets people know how to interact with it. For example, when “link” is announced someone using a screen reader will know to press the <kbd>Enter</kbd> key to activate the link. For buttons, they will know to press the <kbd>Enter</kbd> key or <kbd>Spacebar</kbd> to activate it. The role also impacts the user experience; if you hear &quot;link&quot; you expect a new page to open, if you hear &quot;button&quot; you expect to trigger an action such as open a menu, dialog, or submit a form.</p>
<p>In the example form below, the text 'Sign in instead' is a link to a new page; it has a role of link, and looks like a link. The text 'Next' submits the form; it has a role of button, and looks like a button.</p>
<p><img src="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/wcag-form-link-and-button.png" alt="A link to 'Sign in instead' and a 'Next' button adjacent to each other at the bottom of a form." /></p>
<h2 id="name" tabindex="-1">Name</h2>
<p>An element's name, or accessible name, is how it's identified. An element's name is announced by screen readers together with the role and used by speech recognition software to map an element to a voice command.</p>
<p>All interactive elements and components must have an accessible name. For example, the accessible name for a link comes from the content inside the anchor element. When a screen reader encounters the following code, it will announce &quot;<em>sustainable accessibility</em>, link&quot;, while someone using speech recognition can say &quot;Click <em>sustainable accessibility</em> link&quot;.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.tetralogical.com/<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>sustainable accessibility<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span></code></pre>
<p><img src="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/wcag-embedded-link-tetralogical.png" alt="A paragraph of text with the link 'sustainable accessibility' in it" /></p>
<p>The accessible name for a button comes from the content inside the <code>&lt;button&gt;</code> element. In the following example, a screen reader will announce &quot;<em>Sign in</em> button&quot;, while someone who uses speech recognition can say &quot;Click <em>Sign in</em> button&quot;.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span><span class="token punctuation">></span></span>Sign in<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span></code></pre>
<p><img src="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/wcag-submit-button.png" alt="A simple log on form with a 'Sign in' button at the bottom" /></p>
<h2 id="state" tabindex="-1">State</h2>
<p>An element's state is its current condition. The state is announced by screen readers so that people know if, for example, a checkbox is selected or unselected, or a button is disabled or not.</p>
<p>In the following example a screen reader will announce “Show password, checkbox <em>checked</em>” because in the code it is indicated as &quot;checked&quot;.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkboxLabel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkboxLabel<span class="token punctuation">"</span></span> <span class="token attr-name">checked</span><span class="token punctuation">></span></span>
Show password<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span></code></pre>
<p><img src="https://tetralogical.com/blog/2022/10/05/foundations-html-semantics/wcag-show-password-checkbox-checked.png" alt="A Show password checkbox which is checked showing a password of 'S3manticsR0ck" /></p>
<h2 id="extending-html-using-wai-aria" tabindex="-1">Extending HTML using WAI-ARIA</h2>
<p>There are times when the HTML semantics need to be extended because they don't do everything we want. For example, there is no way in HTML to indicate if a button is pressed. The <a href="https://www.w3.org/TR/wai-aria-1.1/">Web Accessibility Initiative Accessible Rich Internet Applications specification 1.1</a>, or WAI-ARIA or ARIA for short, can be used to extend HTML.</p>
<p>ARIA complements HTML semantics by providing a set of attributes that allow you to enhance the native roles of HTML elements to build more accessible user experiences. We'll introduce how ARIA can do this in our next foundations post.</p>
<h2 id="tips-for-semantic-html" tabindex="-1">Tips for semantic HTML</h2>
<ul>
<li>Always use the correct semantics, for example, don't use heading elements for visual styling</li>
<li>Always use semantic HTML over ARIA when it is available. ARIA is there to fill the gaps that HTML can't reach.</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/name-role-value">Understanding Success Criterion 4.1.2 Name, Role, Value</a> Level A, WCAG 2.1</li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tink.uk/understanding-semantics/">Understanding semantics</a>, Léonie Watson</li>
<li><a href="https://www.smashingmagazine.com/2015/03/web-accessibility-with-accessibility-api/#:~:text=In%20browsers%2C%20the%20platform%20accessibility,platform%20they're%20running%20on.">Accessibility APIs: A Key To Web Accessibility</a> by Léonie Watson and Chaals McCathieNevile</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessibility and supporting Internet Explorer</title>
    <link href="https://tetralogical.com/blog/2022/08/24/ie-support/"/>
    <updated>2022-08-24T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/08/24/ie-support/</id>
    <content type="html"><![CDATA[
        <p>Given that <a href="https://blogs.windows.com/windowsexperience/2022/06/15/internet-explorer-11-has-retired-and-is-officially-out-of-support-what-you-need-to-know/">Internet Explorer 11 is now officially retired</a>, organisations occasionally ask us if, from an accessibility perspective, they should continue to support the browser. In short, we're edging (no pun intended) towards dropping support, or at least phasing out support, in favour of Microsoft Edge. There are a few reasons for this, both technical and non-technical.</p>
<h2 id="what-do-we-mean-by-%22support%22%3F" tabindex="-1">What do we mean by &quot;support&quot;?</h2>
<p>Before presenting our reasons, however, it's worth pausing to define what we mean by &quot;support&quot; in this context, and why this is an issue for organisations to consider.</p>
<p>Broadly speaking, &quot;support&quot; can be thought of as the extent to which a browser renders web content to be usable and accessible. However, from an organisational perspective, there are a number of interrelated issues to consider.</p>
<p>The first issue relates to how an organisation defines &quot;usable and accessible&quot; in terms of their own specific web products. Different organisations will have their own unique perspectives on this. In one sense, an organisation may demand that their web product remains wholly functional and aesthetically pleasing across all browsers, even those that are obsolete. On the other hand, a different organisation may be satisfied if only key functionality is supported, and be willing to live with the fact that the product's &quot;look-and-feel&quot; isn't as slick as it is in other browsers. Here, the hope is that the product will <em>technically</em> still be accessible, but will offer less in the way of an overall positive user experience.</p>
<p>The second issue relates to how much effort an organisation is willing to expend to meet these goals within the context of an effectively obsolete browser. At best, developers may need to implement <a href="https://developer.mozilla.org/en-US/docs/Glossary/Polyfill">polyfills</a> to provide modern day functionality that the browser does not support and, at worst, developers may have to resort to building a completely separate experience for people using that browser or even decide to dispense with up-to-date features altogether.</p>
<p>A final issue relates to the passing of time. With Microsoft taking the decision to drop support for Internet Explorer, any new web features introduced in the future are unlikely to work in this browser. People accessing a product that does not use those features may no longer be willing to accept alternative, lesser, experiences. And, at any point in time, those polyfills that the developers spent expensive time and effort building may simply break with no possibility for resolution or support from the browser vendor.</p>
<p>With this in mind, here are some specific areas to contemplate before making any decisions, but which we believe should encourage you to consider phasing out support for Internet Explorer.</p>
<h2 id="usage" tabindex="-1">Usage</h2>
<p>A useful starting point is to consider actual usage amongst populations most likely to be affected by dropping Internet Explorer support.</p>
<p>The <a href="https://webaim.org/projects/screenreadersurvey9/">results of the latest WebAIM screen reader user survey from 2021</a> shows that only 3.3% of respondents used Internet Explorer as their primary browser, compared to 18.4% who use Microsoft Edge. This is a massive turnaround from the <a href="https://webaim.org/projects/screenreadersurvey8/#browsers">previous year's survey</a>, in which 14.5% of respondents used a version of Internet Explorer compared to just 1.9% for Microsoft Edge.</p>
<p>While only a relatively small number of people respond to these surveys, which are predominately aimed at screen reader users rather than a wider population, this provides a good indication that there is increasing confidence in terms of using Microsoft Edge over Internet Explorer. It also suggests that the number of Internet Explorer users is likely to drop further.</p>
<h2 id="accessibility-support" tabindex="-1">Accessibility support</h2>
<p>Secondly, let's consider accessibility support.</p>
<p>The <a href="https://html5accessibility.com/">HTML5 accessibility support</a> website shows that HTML5 features alone have an accessibility support rating of 100% compared to just 56% for Internet Explorer 11. While this rating relates specifically to HTML5 features, it is arguable that Edge provides a more accessible experience for people than Internet Explorer.</p>
<h2 id="assistive-technology-support" tabindex="-1">Assistive technology support</h2>
<p>Thirdly, there are assistive technology support reasons.</p>
<p>One of the biggest arguments provided against upgrading to Microsoft Edge was due to its comparative lack of support for assistive technologies when compared to Internet Explorer and to other browsers. However, since 2020, Edge has been built on the Chromium browser engine, which is the same engine that Google Chrome uses, and which offers far improved accessibility support than the previous browser engine. Consequently, many organizations now encourage developers to use Chrome instead of Internet Explorer when testing with JAWS. See for example <a href="https://www.gov.uk/service-manual/technology/testing-with-assistive-technologies">Gov.UK: Testing with assistive technologies</a> and <a href="https://www.gov.uk/service-manual/technology/designing-for-different-browsers-and-devices">Gov.UK: Designing for different browsers and devices</a>. As indicated in the latter link, Gov.UK suggests that you test with Internet Explorer only if your analytics data shows that at least 2% of users arrive at the service's start page using it.</p>
<h2 id="practicality" tabindex="-1">Practicality</h2>
<p>Finally, there are practical reasons.</p>
<p>As time progresses, it is likely that fewer and fewer people will be able to use Internet Explorer to access services as their operating system encourages them to use Edge.</p>
<p>Of course, there will be some environments - such as public libraries and other large organisations - where people may be limited to using Internet Explorer due to restrictions placed on their machines. In such cases, and particularly if people in those environments make up a large percentage of your site visitors or users, you may need to reconsider dropping support.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Overall, and from a purely technical perspective, the benefits of phasing out support for Internet Explorer in favour of Microsoft Edge outweigh any risks involved, particularly given that Microsoft Edge leads in terms of accessibility support. However, every organisation is different, and you should think carefully before making a final decision. In particular, review your website usage analytics and carefully consider your audience so you can make a considered judgement about maintaining support or not.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read about the <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">business case for accessibility</a> and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Felicity Miners-Jones</title>
    <link href="https://tetralogical.com/blog/2022/08/15/meet-the-team-felicity-miners-jones/"/>
    <updated>2022-08-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/08/15/meet-the-team-felicity-miners-jones/</id>
    <content type="html"><![CDATA[
        <p>Meet Felicity Miners-Jones, our fearless project manager, and hear what her top accessibility tips are and what she wished she'd known when she started out in accessibility.</p>
<p><img src="https://tetralogical.com/blog/2022/08/15/meet-the-team-felicity-miners-jones/felicityminersjones.jpg" alt="Close-up photograph of Felicity, gently smiling into the camera" class="inline-image" style="max-height:15em" /></p>
<p>Felicity came to project management after training as an <a href="https://www.imdb.com/name/nm6572162/">actor</a> and setting up her own theatre company to write and produce shows across London and the South East. She also worked as a freelance producer for other production companies and theatres and was impressively nominated for a Sunday Times, National Theatre <a href="https://en.wikipedia.org/wiki/Ian_Charleson_Awards#2016">Ian Charleson</a> award for classical stage actors under 30 in 2016.</p>
<p>Felicity's theatrical roots are not that far from what we do at TetraLogical. After an industry change into tech, and a Project Management in Tech certification from Google, she  brings her creativity to our <a href="https://www.youtube.com/c/TetraLogical/featured">video</a> production work (watch this space for future voiceovers), interactive <a href="https://tetralogical.com/services/self-led-training/">training</a>, and social media channels. She still does a lot of communications training for the NHS and the military, including one to one coaching, seminar facilitation, and specialist mental health training.</p>
<p>Prior to her theatre work, Felicity worked in a hospice where she cared for patients in their homes assisting with personal care, practical needs, and emotional support for them and their families. Today she volunteers each week distributing surplus food from local businesses to those in need, which also helps reduce food waste and with a charity aimed at helping people with disabilities find permanent work.</p>
<p>Felicity splits her time between Cornwall and Surrey in an attempt to fully embrace remote working. She  enjoys a &quot;relaxing&quot; lunch nipping out for a run and will absent mindedly drop into conversation that she is &quot;doing a half marathon at the weekend&quot; and &quot;squeezing in an ultra-marathon&quot; at the end of the year, much to the stunned silence of the rest of the team. So much so, Zoom looks frozen. She's a piano player, and a big reader (traditional library user at that!) and cooks in her spare time.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>That absolutely anyone can make improvements towards being more inclusive. You don’t need specific training or to be a subject matter expert. There are simple, easy changes anyone can make in the way you use the web, post on social media, create content and so much more that are more accessible and user-friendly for everyone.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>Start somewhere and make a small change. It could be as simple as adding alt text to your images or making sure your written content is clear and concise. Small changes will snowball over time and any improvement is better than nothing.</p>
<p>There’s a thriving community of people online who are keen to share their knowledge and help others working towards the same goal, so asking questions and getting involved is always encouraged.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>I’ve learnt a huge amount from reading blogs and then following up with the conversations they generate online. Two that have made a big impact on me are <a href="https://adrianroselli.com/posts">Adrian Roselli's Blog</a> and <a href="https://garethfordwilliams.medium.com/">Gareth Ford Williams' articles on Medium</a>, along with TetraLogical’s blog of course! I found all the standards and compliance records a bit overwhelming when I first started learning about accessibility, so for me seeing articles discussing real-world examples and how they affect living people was far more digestible.</p>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessibility and QR codes</title>
    <link href="https://tetralogical.com/blog/2022/08/08/accessibility-and-qr-codes/"/>
    <updated>2022-08-08T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/08/08/accessibility-and-qr-codes/</id>
    <content type="html"><![CDATA[
        <p>Quick Response (QR) codes are graphics that can be scanned to direct people online to complete an action or find content. This blog post explores considerations and provides guidance for creating accessible experiences with QR codes.</p>
<h2 id="introduction-to-qr-codes" tabindex="-1">Introduction to QR codes</h2>
<p>QR codes are barcode-like graphics, comprised of machine-readable information that, when scanned, can be translated into a website URL. They are used for tracking in augmented reality, for joining a wi-fi network, signing into a platform, opening a web page, and other use cases.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/08/08/accessibility-and-qr-codes/bbc-research-and-development-qr-code.png" alt="A black and white square with randomly placed, black fragmented boxes of different sizes inside it with the outline of the BBC logo in the centre" />
<figcaption>A QR code that when scanned, redirects the user to the BBC's Research and Development page</figcaption>
</figure>
<h2 id="number-of-people-using-qr-codes" tabindex="-1">Number of people using QR codes</h2>
<p>A <a href="https://vocaleyes.co.uk/research/digital-accessibility-qr-codes-and-short-number-sms/">study from VocalEyes</a> (based in the UK) found that 39% of their blind or visually impaired respondents knew what a QR code is, but had not used one, 26% of the respondents had used them aided and 34% had used them independently.</p>
<h2 id="qr-code-requirements" tabindex="-1">QR code requirements</h2>
<p>Multiple sources (both <a href="https://www.qr-code-generator.com/blog/qr-code-distance/">QR Code Generator</a> and <a href="https://www.sproutqr.com/blog/qr-code-minimum-size#:~:text=QR%20codes%20were%20designed%20for,scan%20it%20from%2020%E2%80%9D%20away.">Sprout QR</a>) report that the minimum size required for a QR code is 2cm by 2cm. QR codes can be made as large as needed, as long as the pixels do not become blurred and there are no artefacts interrupting the display of the image.</p>
<p>As a rough estimate, guides recommend using a ratio of 10:1 for the scanning distance to the size of the QR code. For example, if a code is 10cm by 10cm, expect that the furthest distance a user would be able to scan it from would be 100cm (both <a href="https://scanova.io/blog/qr-code-scanning-distance/">Scanova</a> and <a href="https://www.sproutqr.com/blog/qr-code-minimum-size#:~:text=QR%20codes%20were%20designed%20for,scan%20it%20from%2020%E2%80%9D%20away.">Sprout QR</a> recommend this).</p>
<p>The ability to scan a QR code is also dependent on the version of QR code used. There are <a href="https://www.qrcode.com/en/about/version.html">40 different versions of QR code</a>, with the earlier versions being easier to scan due to them storing less information, whereas version 40 can contain up to 3391 characters, but as a result is particularly difficult to scan given the densely packed information and 31329 squares present in the graphic.</p>
<h2 id="locating-qr-codes" tabindex="-1">Locating QR codes</h2>
<p>A key aspect of QR codes is knowing they are there and where to locate them.</p>
<p>Of the 38 respondents who identified as blind or visually impaired in the VocalEyes study, 60% found it difficult to use a QR code independently. This included 17% finding it very difficult and 43% finding it difficult versus 18% who found it easy to use QR codes independently. 9% found it very easy, and another 9% easy.</p>
<p>A stand-out positive comment relating to the use of QR codes by a participant was:</p>
<blockquote>
<p>“The NHS Covid app has been a necessity recently so you just do it however inconvenient it is. Once I understood what to do it was not difficult”.</p>
</blockquote>
<p>The participant identifies that there may be inconvenience in learning how to interact with the QR code, but for repeated use, once the interaction is learnt it becomes less difficult.</p>
<p>This aligns with another comment from a participant:</p>
<blockquote>
<p>“No problem using QR codes, problem is finding them in the first place. A consistent standard for location is needed eg head height, circa 2m, to left of article to which it relates”.</p>
</blockquote>
<p>For infrequent use, locating the QR code seems to be a barrier to people who cannot see the location of the code.</p>
<p>For users who have their device mounted to their wheelchair due to mobility disabilities, pointing their device at a target or holding their device may not be possible or be very difficult to complete. The <a href="https://www.w3.org/WAI/WCAG21/Understanding/orientation.html">Web Content Accessibility Guidelines (WCAG) success criterion 1.3.4: Orientation</a> requires that content is not displayed in a way that would mean that users would have to change the orientation of their device for this reason.</p>
<p>An alternative suggested by a participant is NaviLens. Similar to QR codes, NaviLens tags are simple graphics formed of squares, using bright colours to stand out and can be scanned to provide users with information. The benefits of using NaviLens’ tags is that they can be scanned from much further distances than QR codes due to the simplicity of their designs (<a href="https://www.navilens.com/en/#navilens-section">NaviLens state that their tags can be read 12 times further away than a QR code</a>). The drawback with using these tags is that it requires that users download a specific application for people to scan them.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/08/08/accessibility-and-qr-codes/navilens-code-example.png" alt="NaviLens code with a black background, containing a number of smaller blue, pink, and yellow squares." />
<figcaption>Example of a NaviLens code</figcaption>
</figure>
<p>Downloading additional applications may prove a barrier in itself, as one participant stated:</p>
<blockquote>
<p>“I was not 100% happy downloading the app [for security reasons]”,</p>
</blockquote>
<p>and another:</p>
<blockquote>
<p>“If it was using the QR code reader in the camera app rather than a separate app then probably yes”.</p>
</blockquote>
<h2 id="impact-of-qr-code-usage-on-people-with-disabilities" tabindex="-1">Impact of QR code usage on people with disabilities</h2>
<p>Listed below are the different ways that interacting with QR codes may impact people with disabilities, both positively and negatively. People will have differing types of disability and may also have multiple and different combinations of disabilities. Note also that using QR codes assumes people have a mobile device with the capability to process QR codes</p>
<h3 id="people-on-the-autistic-spectrum" tabindex="-1">People on the autistic spectrum</h3>
<ul>
<li>May benefit by not having to copy out large website URLs into their device’s browser or remember sign in details</li>
</ul>
<h3 id="people-who-use-screen-readers" tabindex="-1">People who use screen readers</h3>
<ul>
<li>May benefit by not having to copy out large website URLs into their device’s browser or remember sign in details</li>
<li>May not be aware that a QR code is present</li>
<li>May not be able to locate the QR code independently</li>
</ul>
<h3 id="people-with-low-vision" tabindex="-1">People with low vision</h3>
<ul>
<li>May benefit by not having to copy out large website URLs into their device’s browser or remember sign in details</li>
<li>May not be aware that a QR code is present</li>
<li>May not be able to locate the QR code independently</li>
</ul>
<h3 id="people-with-dyslexia" tabindex="-1">People with dyslexia</h3>
<ul>
<li>May benefit by not having to copy out large website URLs into their device’s browser or remember sign in details</li>
</ul>
<h3 id="people-with-physical-or-motor-disabilities" tabindex="-1">People with physical or motor disabilities</h3>
<ul>
<li>May benefit those who use alternative input devices as they do not have to write out the URL or sign in details themselves</li>
<li>Scanning smaller QR codes, which requires the user to hold their device in precise positions, may be a barrier for some people</li>
<li>May not be able to position their device to scan a QR code due to their device being mounted, due to them not being able to hold their device, having shaky hands, or due to physical barriers, such as the positioning of the QR code being out of reach or not directed towards the user</li>
</ul>
<h3 id="people-with-anxiety" tabindex="-1">People with anxiety</h3>
<ul>
<li>May not be able to interact with QR codes due to concerns about where they will be redirected or the interaction that will take place, if a lack of information is present</li>
</ul>
<h3 id="older-people" tabindex="-1">Older people</h3>
<ul>
<li>May benefit by not having to copy out large website URLs into their device’s browser or remember sign in details</li>
<li>May not be aware what a QR code is</li>
<li>May lave limited vision and/or dexterity</li>
</ul>
<h2 id="wcag-considerations-when-using-graphical-codes" tabindex="-1">WCAG considerations when using graphical codes</h2>
<p>When using QR codes and conforming to the Web Content Accessibility Guidelines (WCAG) 2.1 level AA, the following should be taken into account:</p>
<ul>
<li><strong>For 1.1.1 Non-text content</strong>: if the QR code is being used as a link, then a text alternative (such as alt text) must be present to describe the purpose of the link.</li>
<li><strong>For 1.4.5 Images of text</strong>: do not include text in the image of the QR code, ensure that this text is created as text and not an image.</li>
<li><strong>For 1.4.11 Non-text contrast</strong>: as people will need to visually recognise that the graphic is a QR code in order to scan it, ensure that the colours used for the squares of the QR code have a colour contrast ratio of at least 3:1 against any adjacent colours or background colours.</li>
<li><strong>For 2.4.4 Link purpose (in context)</strong>: if using the QR code as a link, make sure that there is a text alternative that describes the purpose of the link so that the user can understand where they will be redirected to.</li>
</ul>
<h2 id="designing-accessible-qr-code-experiences" tabindex="-1">Designing accessible QR code experiences</h2>
<p>Using the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> as a framework, we can create more usable interactions with QR codes for people with disabilities using the following considerations:</p>
<ul>
  <li><strong>Provide comparable experience</strong>
    <ul>
      <li>Ensure that text alternatives are present for QR codes that accurately describe the purpose of the code and where it will redirect people</li>
      <li>When in the process if using a QR code, use haptic feedback on a mobile device to indicate that the action is in progress or complete</li>
    </ul>
  </li>
  <li><strong>Consider situation</strong>
    <ul>
      <li>Don’t presume that people will understand how to interact with QR codes, provide instructions for use</li>
      <li>Ensure that contrast against the rest of the content is good, so that people can recognise the code and interact with it</li>
      <li>Consider people may be interacting with QR codes that may have bright sunshine obscuring their display, so an alternative way of accessing the information must be provided</li>
      <li>For QR codes in a physical space, consider the height and location so that people in wheelchairs or of restricted growth can reach them</li>
    </ul>
  </li>
  <li><strong>Be consistent</strong>
    <ul>
      <li>Ensure that usage and positioning of QR codes is consistent</li>
      <li>Use consistent, plan language, to inform users about how to use QR codes</li>
    </ul>
  </li>
  <li><strong>Give control</strong>
    <ul>
      <li>On platforms that support zooming in, ensure that the QR codes size will increase as expected</li>
    </ul>
  </li>
  <li><strong>Offer choice</strong>
    <ul>
      <li>For people who cannot, or do not want to, use the QR code, ensure there is always another accessible way to access information such as by providing a URL that the user can enter themselves, or by providing an interactive link, or log in form</li>
    </ul>
  </li>
  <li><strong>Prioritise content</strong>
    <ul>
      <li>Ensure the QR code is positioned at a large enough size to be scanned from a distance, or wherever the user will be interacting with it from</li>
      <li>Keep instructions short and focused</li>
    </ul>
  </li>
  <li><strong>Add value</strong>
    <ul>
      <li>When designing access points for content (such as forms, sign-in), consider adding value with the addition of QR codes so that people can quickly navigate to the content on different devices</li>
    </ul>
  </li>
</ul>
<h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>It may be suitable to use QR codes if they:</p>
<ul>
<li>are being used multiple times in a journey, so that people can learn how to interact with them and the time spent learning is worthwhile</li>
<li>are used consistently, so that users do not have to relearn how to use them</li>
<li>can be appropriately sized or can be zoomed in on, or a user will be scanning them from a close distance</li>
</ul>
<p>If people cannot scan the QR code, ensure there is always another accessible way to access the information so that they are not excluded.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more about <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> and how we can support you with our <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive user research: recruiting participants</title>
    <link href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/"/>
    <updated>2022-08-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/</id>
    <content type="html"><![CDATA[
        <p>One of the most important and challenging aspects of running inclusive user research is finding participants with a wide range of access needs, who can provide feedback on different features of your products. Our third post from the Inclusive user research series answers key questions around recruitment.</p>
<p>In our first two posts on inclusive user research, we discussed <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">moderating usability testing sessions</a>, and <a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">analysing findings from inclusive user research</a>. Another key aspect of conducting inclusive user research is finding participants who are representative of the product's users, and can provide the feedback you need to improve its usability and accessibility.</p>
<p>When running <a href="https://tetralogical.com/services/instructor-led-training/">training courses</a> on inclusive user research, or delivering <a href="https://tetralogical.com/services/user-research-mentoring/">user research mentoring</a>, we are often asked questions around recruitment. This post answers some of the most commonly asked, and provides advice based on our experience of running research with people with disabilities.</p>
<p>In case you missed them, here are the other blog posts in our Inclusive user research series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">Moderating sessions</a></li>
<li><a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">Analysing findings</a></li>
<li><a href="https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/">Building rapport</a></li>
</ul>
<h2 id="do-i-need-to-recruit-people-with-disabilities%3F" tabindex="-1">Do I need to recruit people with disabilities?</h2>
<p>Definitely. Regardless of the product you are testing, research objectives or methodology, you should include people with disabilities. As a researcher, your aim is to have participants who are representative of products' users. With 15% of the World population living with a disability, according to  <a href="https://www.worldbank.org/en/topic/disability#1">The World Bank</a>, if you don't recruit people with disabilities, you will end up with a sample that is not truly representative.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/photo-hasmukh-2.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his cricket whites smiling as he stands ready to bat" />
<figcaption><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user">Hasmukh</a>, a blnd cricketer who uses a screen reader, says &quot;People who design websites need to include people like us so that they understand what works for us. Unless they watch how we use things, how will they know?!&quot;</figcaption>
</figure>
<h2 id="when-can-i-start-testing-my-product-with-disabled-people%3F" tabindex="-1">When can I start testing my product with disabled people?</h2>
<p>You should test products with people with and without disabilities at every stage of development; from concept all the way to launch. Feedback collected throughout the process will help you shape, design and build truly inclusive experiences. For example:</p>
<ul>
<li><strong>Concept</strong>: at the concept stage you can get ideas for features to make products easier to use for people with a certain type of disability</li>
<li><strong>Design</strong>: at the design stage you can collect feedback on the size and colour of components, particularly important for people with visual and cognitive disabilities</li>
<li><strong>Development</strong>: once products are functional, you can test their support for accessibility settings and assistive technology</li>
</ul>
<p>Proper planning and innovative thinking will allow you to come up with effective and engaging ways to test products in any format, and at any stage of development, with people with a wide range of disabilities. Often it's all about providing information in alternative ways, such as audio describing a wireframe to people who cannot see it, or producing a large print version for people with low vision. Choosing research tools, such as online survey and video conferencing platforms,  that are fully accessible is another way to allow all people to take part in research.</p>
<h2 id="how-many-people-with-disabilities-should-i-recruit%3F" tabindex="-1">How many people with disabilities should I recruit?</h2>
<p>As with participants without disabilities, the number of disabled people you should recruit will be affected by many factors, such as research methodology, budget, timelines, and the total number of people you are planning to include.</p>
<p>For moderated usability testing, we generally recommend clients recruit 12 participants. This allows to include people with a range of disabilities, who use a variety of specialised technology or settings. However, we appreciate this may not always be possible. As a general rule, you should ensure that at least 20% of participants have a disability; considering that 15% of the World population has a disability, this would be a representative sample.</p>
<p>Ultimately, the most important thing is to always include some disabled people. Recruiting just two or three people when budget is particularly tight is better than recruiting none, and contributes to making it become a standard practice.</p>
<h2 id="what-disabilities-should-i-include-in-my-recruitment-criteria%3F" tabindex="-1">What disabilities should I include in my recruitment criteria?</h2>
<p>The wider range of disability types you can include the better. However, when constrained by budget and time, you will need to carefully choose whom to include, to get the most out of your research.</p>
<p>The people to recruit will depend on your research objectives and the type of content or service you are testing. You want to include a representative sample of all people who may encounter barriers when trying to use your product. Start by analysing the content and components that make up the product, ask yourself who may find them challenging to understand or operate, and base your recruitment criteria on those considerations.</p>
<p>As an example, if you have a content-heavy website, you want to test it with people who may struggle to read, process or understand information. This may include people with some reading and cognitive disabilities, but also Deaf people, for whom English is a second language. If you are working on a highly interactive app instead, your priority may be to test it with assistive technology users, to ensure they are able to operate controls with ease.</p>
<h2 id="how-can-i-find-participants-with-disabilities%3F" tabindex="-1">How can I find participants with disabilities?</h2>
<p>You can either try finding people yourself, or ask an accessibility consultancy or recruitment agency to do it for you. Each approach has its pros and cons.</p>
<p>Reaching out to people yourselves via social media, charities and community groups can be time consuming. However, collecting information on potential participants first-hand means that you are more likely to find people who fit your recruitment criteria. We also find that the brief conversations we have with potential participants during recruitment helps establish a connection, which often results in people feeling more relaxed in the research sessions.</p>
<p>Using a consultancy or agency is indeed an easier option. Not all recruitment agencies have experience recruiting people with disabilities, though, and may not fully understand your requirements. So you don't end up with people who do not quite fit your participant profiles, be very specific when explaining your recruitment needs. Asking for someone with a motor disability is not sufficient, for example. Depending on the product or service you are testing, you may need someone who accesses digital products via specialised technology or uses a wheelchair.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Selecting and recruiting people with disabilities who are representative of your products' users is both crucial and challenging. Budget and time can limit the amount of people you can recruit, and little experience in inclusive user research can make choosing whom to include difficult at first.</p>
<p>Identifying aspects of your product or service that can be particularly challenging for some people is a first important step in the recruitment process. Unless recruiting yourself, choosing an agency with experience in the accessibility field, and being very specific when explaining your recruitment needs are also important.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> at TetraLogical and our <a href="https://tetralogical.com/services/user-research-mentoring-programme/">User Research Mentoring programme</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Research insight: accessibility of images</title>
    <link href="https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/"/>
    <updated>2022-07-21T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/</id>
    <content type="html"><![CDATA[
        <p>When conducting usability testing with disabled users, we observed how well images performed from both a visual and non-visual perspective when it came to finding and understanding content.</p>
<p>We often think of accessible images as having <code>alt</code> attributes with appropriate <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text descriptions</a> for people who can not see or understand them.</p>
<p>What gets overlooked is whether the visual content of the image is appropriate to the context of use for people with sight. Equally, if the text description fits in to the flow of adjacent content.</p>
<h2 id="the-participants" tabindex="-1">The participants</h2>
<p>Six people with disabilities were invited to test a news website on a desktop. Participants included:</p>
<ul>
<li>One person with dyslexia and ADHD</li>
<li>Two people who were blind <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a></li>
<li>One person with low vision who used zoom when browsing</li>
<li>One person <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a> with ADHD</li>
<li>One person with low vision <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a></li>
</ul>
<h2 id="the-task" tabindex="-1">The task</h2>
<p>Each participant was asked to find an article about disability on the homepage and by using search.</p>
<p>Each article consisted of an image, heading and text presented in that order both visually and in the code. The image was positioned on top as a rectangle, the heading underneath, followed by a date and name of the author, then short text introducing the topic.</p>
<p>In most cases, the heading stretched over two to four lines and was roughly 10 to 17 words. Most, possibly all, of the images were stock photos.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/wireframe-sketch-article-layout.jpg" alt="A sketched wireframe of 3 images with a thick squiggly line underneath for a heading and thinner squiggly lines under the headings to indicate text" />
<figcaption>A wireframe of how the layout of articles appeared on the home page of the test site.</figcaption>
</figure>
<h2 id="observations" tabindex="-1">Observations</h2>
<h3 id="relevancy" tabindex="-1">Relevancy</h3>
<p>When the visual content of the image and its text description did not complement the heading it was grouped with, it negatively impacted people's understanding of the page.</p>
<p>For example, when looking for an article about disability, our participant with dyslexia and ADHD didn't read the long headings. Instead they looked at the images for context but couldn't find any about disability:</p>
<blockquote>
<p>It's helpful with the imagery for articles but I'm not necessarily sure that pictures actually go with the titles that much. For me images are always helpful to sort of sum up what something is about quite quickly [...] but some of them don't really seem actually relevant.</p>
</blockquote>
<p>Our participant who was browsing with speech recognition and had ADHD didn't connect the visual content of the image with the heading and commented:</p>
<blockquote>
<p>The picture seems artificial; I guess it's a stock photo.</p>
</blockquote>
<figure>
<img src="https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/stock-photo-selection.jpg" alt="A selection of stock photos showing real people, paper cutout people, abstract people and hands moving small coloured pieces into patterns" />
<figcaption>Stockphotos shown on a website where they can be purchased.</figcaption>
</figure>
<p>Similar issues were experienced by both screen reader users, who said text descriptions of images often did not convey any useful information. As one commented:</p>
<blockquote>
<p>The description just says 'diversity', what does that mean? It tells me nothing about that graphic.</p>
</blockquote>
<h3 id="consistency" tabindex="-1">Consistency</h3>
<p>Both screen reader users commented on the inconsistent quality of text descriptions.</p>
<p>Some text descriptions gave context, for example,
<em>&quot;A disabled woman at work&quot;</em> for an article about disability at work. Other text descriptions were just a single word which was not helpful:</p>
<blockquote>
<p>A graphic called covid is amusing. What picture is that!</p>
</blockquote>
<p>The other screen reader user, mentioned inconsistent text descriptions. They also noticed some images didn't have a text description and commented the experience was  <em>&quot;disjointed&quot;</em>.</p>
<p>Other images were followed by a caption, so blind participants knew an image was on the page but could not tell what it contained. They found this annoying and made them wonder what content they were missing:</p>
<blockquote>
<p>The images on news articles are often not labelled. It just says &quot;getty image istock&quot; or whatever, it doesn't say what the image is a picture of.</p>
</blockquote>
<h3 id="reading-order" tabindex="-1">Reading order</h3>
<p>On the search results page, images preceded the heading it was associated with which caused one of the two blind participants to navigate to the wrong article.</p>
<p>Wondering what the image with a text description &quot;diversity&quot; contained and referred to, he decided to read the related article. Instead of selecting the article title that followed the image, he selected the one that preceded it, and never realised his mistake.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/07/21/research-insight-accessibility-of-images/wireframe-sketch-search-results-layout.jpg" alt="A sketched wireframe of 3 search results showing an image with a thick squiggly line underneath for a heading and thinner squiggly lines under the headings to indicate text, positioned vertically and repeated three times" />
<figcaption>A wireframe of how the layout of articles appeared on the search results page of the test site.</figcaption>
</figure>
<h2 id="research-insights" tabindex="-1">Research insights</h2>
<p>Decorative images do more than just decorate a page, they also provide context, regardless of whether you can see an image or not.</p>
<p>Our key research insights are:</p>
<ol>
<li>Avoid the use of generic images and stock photos, they can add to confusion rather than add value.</li>
<li>When choosing images, ensure visual content is relevant to the adjacent content such as headings and text. For example, pick an image that has a strong visual connection to key words in a heading.</li>
<li>When writing text descriptions, ensure the editorial describes the image with language that naturally flows with the adjacent content. For example, if the heading is &quot;Disability in the workplace&quot;, pick an image that shows someone with a disability at work and a text description that says something like &quot;A woman in a wheelchair gives a presentation in the office&quot;.</li>
<li>Use a consistent approach to writing text descriptions to help build comprehension for people who are blind.</li>
<li>Carefully consider where in the content order, an image appears. Images should follow the a heading in the code order. They can be positioned above a heading using CSS as long as visually the image, heading and associated text are grouped together. This can be done using a line to separate each article, or a box.</li>
</ol>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more about <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">moderating usability testing sessions</a>, <a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">analysing findings</a> and how we can support you with our <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability testing</a> service.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Léonie Watson</title>
    <link href="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/"/>
    <updated>2022-07-11T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/</id>
    <content type="html"><![CDATA[
        <p>Meet Léonie Watson. Our purple-haired maverick was TetraLogical's founder back in 2019 and has guided this accessible ship through an incredible amount in such a short time.</p>
<p><img src="https://tetralogical.com/blog/2022/07/11/meet-the-team-leonie-watson/leoniewatson.jpg" alt="Photograph of Léonie, our purple-haired maverick, wearing a black polo neck, sitting at a table with a cup of tea, grinning at the camera" class="inline-image" style="max-width:20em" /></p>
<p>Léonie is hugely active in the digital accessibility community. She's a member of the <a href="https://www.w3.org/2002/ab/">W3C Advisory Board</a>; co-Chair of the <a href="https://www.w3.org/groups/wg/webapps">W3C Web Applications Working Group</a>; a member of the <a href="https://bima.co.uk/councils/inclusive-design-council/">BIMA Inclusive Design Council</a> and is a <a href="https://mvp.microsoft.com/en-us/PublicProfile/5002988?fullName=L%C3%A9onie%20Watson">Microsoft Most Valued Professional (MVP)</a>.</p>
<p>Léonie is also co-organiser of the <a href="https://www.youtube.com/inclusivedesign24">Inclusive Design 24 (#id24) conference</a>; co-author of the <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a>; and a mentor to young people interested in the fields of accessibility and inclusive design.</p>
<p>Obviously, all of this wasn't enough, so she set up a company as well. <a href="https://tetralogical.com/about/">TetraLogical</a> was founded in 2019 and has gone from strength to strength, despite a global pandemic, more than doubling over the last three years.</p>
<p>This tireless energy extends to Léonie's hobbies as well. Somehow she manages to have spare time, and fills it reading, cooking, dancing and drinking either tea or tequila (we're never sure which)! She is also studying for a BA in History, which seems to be comprised of 70% work and 30% biscuits.</p>
<p>An accomplished speaker, Léonie has led talks, panels and discussions at conferences around the world, mostly talking about web standards, accessibility mechanics, and pushing the boundaries of inclusive design (with existing technologies like SVG, HTML, ARIA, and JavaScript, as well as new technologies like AI and WebVR).</p>
<p>She has also written about some of these things for <a href="https://www.smashingmagazine.com/2015/03/web-accessibility-with-accessibility-api/">Smashing magazine</a>, <a href="https://www.sitepoint.com/author/leoniewatson/">SitePoint.com</a>, <a href="https://www.creativebloq.com/netmag/l-onie-watson-giving-damn-about-what-youre-building-8135487">Net magazine</a>, and the <a href="https://www.bbc.co.uk/news/disability-34847776">BBC</a> as well as on her own site <a href="https://tink.uk/">tink.uk</a>.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>That I would never be done learning. Even now I'm constantly learning new things about accessibility, which is just as well because I get bored far too easily!</p>
<p>Technology evolves and changes, and so does accessibility. There are always new challenges, new ideas, and (still much too often) new problems.</p>
<p>It's been interesting to watch accessibility mature over the years, so that now we're increasingly finding people specialising in just one particular area. It's quite recognition of the fact that accessibility is now so broad and so varied, that none of us knows it all.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>It doesn't have to be perfect, it just has to be a little bit better than yesterday.</p>
<p>It's easy to get caught up in the enormity of accessibility - what it means to people (especially when it goes wrong), and the level of effort it takes to get it right.</p>
<p>As <a href="https://tink.uk/advice-for-life/">Baz Lurman</a> said:</p>
<blockquote>
<p>Don't worry... Or worry, but know that worrying is as effective as trying to solve an algebra equation by chewing bubble gum</p>
</blockquote>
<p>When it comes to accessibility, try to learn something new every day, or to fix one issue, then keep doing that. It won't be long before you've acquired lots of new knowledge and skills, and you realise you've fixed lots of issues that'll have a big impact on a lot of people.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p><a href="https://www.w3.org/TR/html-aria/">ARIA in HTML</a> from the W3C. It's where all the rules for using ARIA with HTML are documented. If more people used it as a code reference, and got into the habit of using one of the tools that can check HTML code against these conformance rules, it'd help prevent a lot of ARIA related problems.</p>
<h2 id="more-from-l%C3%A9onie" tabindex="-1">More from Léonie</h2>
<ul>
<li><a href="https://tink.uk/">Tink.uk</a> is Léonie's personal website full of articles, recipes, thought-pieces and everything but the kitchen sink.</li>
<li>Léonie has a huge following on <a href="https://twitter.com/leoniewatson">Twitter</a></li>
<li>&quot;You're only supposed to blow the bloody doors off!&quot; <a href="https://www.youtube.com/watch?v=VxQT3aq0nzw">Frontend NE: Conference 2018</a></li>
<li>ARIA, Accessibility APIs and coding like you give a damn! <a href="https://www.youtube.com/watch?v=qdB8SRhqvFc">Front-Trends 2015</a></li>
<li><a href="https://www.youtube.com/watch?v=vK1tlLOavvM">Design like you give a damn!</a> 2013 W3 Conference
Léonie Watson on accessibility, responsive design and creativity, <a href="https://www.youtube.com/watch?v=lyebwz8bzVM">Creative Bloq</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Android accessibility: roles and TalkBack</title>
    <link href="https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/"/>
    <updated>2022-07-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/</id>
    <content type="html"><![CDATA[
        <p>TalkBack only announces role information for a relatively small number of user interface (UI) elements within native apps. When comparing this behaviour against web content, this can often give the (false) impression that these elements must have been coded incorrectly and therefore need to be &quot;fixed&quot;.</p>
<p>This blog post looks at when it is acceptable for a role not to be announced, the roles that TalkBack <strong>does</strong> announce, and what this means for conformance to the Web Content Accessibility Guidelines (WCAG).</p>
<h2 id="brief-refresher-on-roles" tabindex="-1">Brief refresher on roles</h2>
<p>A role defines a UI element's type, such as a heading, button, slider, checkbox, and so on. When coded correctly, a screen reader will normally announce the element's role, so people using those technologies know what the element is and how they can interact with it.</p>
<p>Most development environments include elements where the role is automatically set and conveyed by a screen reader. Examples include <code>&lt;input type=&quot;checkbox&quot;&gt;</code> for checkboxes in HTML, and <code>&lt;Button&gt;</code> for buttons in native Android applications. On encountering these elements, a screen reader will announce &quot;Checkbox&quot; and &quot;Button&quot; respectively when the element receives focus.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/accessible-android_roles-and-talkback-in-native-applications_1_checkbox.png" alt="A checkbox labeled I accept the terms and conditions" />
<figcaption>A typical native checkbox in HTML</figcaption>
</figure>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkbox<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>terms<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>terms<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>I accept the terms and conditions<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>label</span><span class="token punctuation">></span></span></code></pre>
<figure>
<img src="https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/accessible-android_roles-and-talkback-in-native-applications_2_button.png" alt="A button labeled Print" />
<figcaption>A typical button in an Android app</figcaption>
</figure>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>Button</span>
  <span class="token attr-name"><span class="token namespace">android:</span>id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@+id/my_button<span class="token punctuation">"</span></span>
  <span class="token attr-name"><span class="token namespace">android:</span>layout_width</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrap_content<span class="token punctuation">"</span></span>
  <span class="token attr-name"><span class="token namespace">android:</span>layout_height</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrap_content<span class="token punctuation">"</span></span>
  <span class="token attr-name"><span class="token namespace">android:</span>text</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@string/my_button_text<span class="token punctuation">"</span></span>
<span class="token punctuation">/></span></span></code></pre>
<p>In some cases, particularly for custom components or where an appropriate native element is not available, developers must manually identify the role. For web-based content, this is achieved using <a href="https://www.w3.org/TR/wai-aria">WAI-ARIA</a>. For native Android apps, an appropriate attribute needs to be added to the view in XML, for example applying <code>android:accessibilityHeading=&quot;true&quot;</code> to indicate that a <code>TextView</code> represents a heading.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/07/07/android-accessibility-roles-and-talkback/accessible-android_roles-and-talkback-in-native-applications_3_heading.png" alt="A heading labeled Headings on Android" />
<figcaption>A typical heading in an Android app</figcaption>
</figure>
<h2 id="how-role-announcements-differ-within-native-apps-and-on-the-web" tabindex="-1">How role announcements differ within native apps and on the web</h2>
<p>If you use a screen reader such as TalkBack to navigate web content, it will announce an appropriate role for almost all UI elements on the page. These elements include:</p>
<ul>
<li>Static items such as <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a>, <a href="https://tetralogical.com/blog/2022/04/29/lists/">lists</a>, tables</li>
<li>Interactive controls such as buttons, checkboxes, form fields</li>
<li>Custom components such as menus, dialog boxes</li>
</ul>
<p>On the other hand, when using TalkBack to navigate within a native application, you will notice that only certain roles are announced.</p>
<p>For example, on encountering a <code>&lt;Button&gt;</code> element, TalkBack announces the following:</p>
<blockquote>
<p>[button label], <strong>button</strong>, double-tap to activate</p>
</blockquote>
<p>However, on encountering an <code>&lt;item&gt;</code> element, which is used to mark up actionable menu items in a hamburger menu, TalkBack announces the following:</p>
<blockquote>
<p>[menu item text], double-tap to activate</p>
</blockquote>
<p>Here, TalkBack makes no reference to the role of the element (a menu item) at all.</p>
<h2 id="why-the-lack-of-role-information-is-not-necessarily-a-problem" tabindex="-1">Why the lack of role information is not necessarily a problem</h2>
<p>Given the above behaviour, you may be tempted to think the latter does not meet <a href="https://www.w3.org/TR/WCAG21/#name-role-value">WCAG 2.1 Success Criterion 4.1.2 Name, Role, Value (Level A)</a>. However, there are a few reasons, some of which are discussed below, as to why this is the wrong position to take.</p>
<h3 id="a-misinterpretation-of-the-success-criterion's-requirements" tabindex="-1">A misinterpretation of the success criterion's requirements</h3>
<p>Success Criterion 4.1.2 Name, Role, Value requires developers to make sure that UI elements are coded in such a way that the correct role can be <em>programmatically determined</em> by an assistive technology. It does not actually specify the extent to which an assistive technology conveys this information - this is up to the assistive technology itself. To illustrate, when TalkBack encounters an element it recognises to be actionable based on a developer's coding decision, it will (normally) announce &quot;double-tap to activate&quot;, whatever the underlying role is. Indeed, it is possible for people who use TalkBack to disable this hint, so there is no guarantee it will be announced in the first place. Regardless, this is entirely outside the scope of the success criterion, and not the responsibility of an app developer to &quot;fix&quot;.</p>
<h3 id="talkback-is-programmed-to-only-announce-certain-roles" tabindex="-1">TalkBack is programmed to only announce certain roles</h3>
<p>Because the TalkBack code is <a href="https://github.com/google/talkback">open source</a>, it is possible to identify the actual roles that are announced in the file <a href="https://github.com/google/talkback/blob/master/utils/src/main/java/com/google/android/accessibility/utils/Role.java">Role.java</a>. At the time of writing, these roles are indicated in the <code>Role</code> class and include buttons, alert dialogs, toasts, and so on - but not (for example) menu items.</p>
<h3 id="potential-redundancy-of-role-announcements-within-native-apps" tabindex="-1">Potential redundancy of role announcements within native apps</h3>
<p>When navigating web content, understanding each element's specific role is often necessary in order to know how to interact with it. For example, on hearing that an element is a link, someone using a screen reader will then know to press the <kbd>Enter</kbd> key to open the link. For buttons, they will know to press the <kbd>Enter</kbd> key or <kbd>Spacebar</kbd> to trigger the related action. And for menus, they will know how to use the arrow keys to navigate between menu options.</p>
<p>On the other hand, mobile applications require far fewer gestures. Triggering a link, button, or menu item when TalkBack is active requires the same gesture: double-tapping the screen. Of course, it would be helpful if TalkBack was more explicit in terms of what will happen when this gesture is triggered so as to distinguish between element types, but there is a balance to be had between giving people <em>just enough</em> information to perform an action and overwhelming them with announcements.</p>
<h2 id="what-this-means-for-conformance" tabindex="-1">What this means for conformance</h2>
<p>In summary, if TalkBack doesn't announce the role of a element, it doesn't <strong>necessarily</strong> mean that the element fails to meet Success Criterion 4.1.2 Name, Role, Value. Instead, we offer the following guidance.</p>
<h3 id="use-native-elements-where-possible" tabindex="-1">Use native elements where possible</h3>
<p>Elements such as <code>&lt;Button&gt;</code>, <code>&lt;CheckBox&gt;</code>, <code>&lt;Spinner&gt;</code>, <code>&lt;menu&gt;</code>, <code>&lt;item&gt;</code>, and so on all have the required semantics and behaviour built in by default.</p>
<p>Furthermore, even though the role may not necessarily be announced by TalkBack, it will automatically convey instructions for operating <strong>all</strong> of the elements when they receive focus.</p>
<p>For custom user interface elements, we recommend that you extend a related native element so that the base semantics and behaviour are carried over into your customised version.</p>
<p>For <code>&lt;TextView&gt;</code> elements that represent headings, make sure that the <code>android:accessibilityHeading</code> attribute is set to <code>true</code> on the element.</p>
<h3 id="use-the-correct-native-element" tabindex="-1">Use the correct native element</h3>
<p>If TalkBack announces &quot;double-tap to activate&quot; when it encounters non-actionable plain text, it is likely that an incorrect element has been used to generate this content. In such cases, this is a failure against Success Criterion 4.1.2 Name, Role, Value, as the content will ostensibly have an actionable role even though it is non-actionable in practice.</p>
<h3 id="avoid-including-the-role-manually" tabindex="-1">Avoid including the role manually</h3>
<p>While it may be tempting, we recommend against manually adding role information in text to elements whose role isn't announced by default (for example through the <code>android:contentDescription</code> attribute). This is because, should TalkBack be updated to include additional role announcements, it will either announce role information twice (resulting in duplication) or, if the role name you choose is slightly different, will cause multiple roles to be announced. Refactoring the code to fix this is likely to require significant and costly effort.</p>
<h3 id="customize-the-default-usage-hint-where-appropriate" tabindex="-1">Customize the default usage hint where appropriate</h3>
<p>In cases where a widget requires actions that go beyond the default &quot;double-tap to activate&quot; usage hint, make sure to add those actions using the <code>setAccessibilityDelegate</code> method. This is particularly important for custom controls in which additional actions are required to operate the control - not doing so could potentially be deemed a failure against the related WCAG success criterion.</p>
<p>For example, the following (Kotlin) code snippet demonstrates how the default usage hint can be modified to announce &quot;Double tap to edit text, double tap and hold to copy text&quot; when the related control receives TalkBack focus.</p>
<pre class="language-js"><code class="language-js">ViewCompat<span class="token punctuation">.</span><span class="token function">setAccessibilityDelegate</span><span class="token punctuation">(</span>myCustomControl<span class="token punctuation">,</span> <span class="token literal-property property">object</span><span class="token operator">:</span> <span class="token function">AccessibilityDelegateCompat</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>

  override fun <span class="token function">onInitializeAccessibilityNodeInfo</span><span class="token punctuation">(</span><span class="token parameter"><span class="token literal-property property">v</span><span class="token operator">:</span> View<span class="token punctuation">,</span> <span class="token literal-property property">info</span><span class="token operator">:</span> AccessibilityNodeInfoCompat</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">super</span><span class="token punctuation">.</span><span class="token function">onInitializeAccessibilityNodeInfo</span><span class="token punctuation">(</span>v<span class="token punctuation">,</span> info<span class="token punctuation">)</span>
    info<span class="token punctuation">.</span><span class="token function">addAction</span><span class="token punctuation">(</span>
      AccessibilityNodeInfoCompat<span class="token punctuation">.</span><span class="token function">AccessibilityActionCompat</span><span class="token punctuation">(</span>
      AccessibilityNodeInfoCompat<span class="token punctuation">.</span><span class="token constant">ACTION_CLICK</span><span class="token punctuation">,</span> <span class="token string">"Edit text"</span>
    <span class="token punctuation">)</span><span class="token punctuation">)</span>
    info<span class="token punctuation">.</span><span class="token function">addAction</span><span class="token punctuation">(</span>
      AccessibilityNodeInfoCompat<span class="token punctuation">.</span><span class="token function">AccessibilityActionCompat</span><span class="token punctuation">(</span>
      AccessibilityNodeInfoCompat<span class="token punctuation">.</span><span class="token constant">ACTION_LONG_CLICK</span><span class="token punctuation">,</span> <span class="token string">"Copy text"</span>
    <span class="token punctuation">)</span><span class="token punctuation">)</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span></code></pre>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#name-role-value">WCAG 2.1 Success Criterion 4.1.2 Name, Role, Value (Level A)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://developer.android.com/guide/topics/ui/accessibility">Android Developers: Build more accessible apps</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/accessibility/principles">Android Developers: Principles for improving app accessibility</a></li>
<li><a href="https://medium.com/microsoft-mobile-engineering/android-accessibility-resolving-common-talkback-issues-3c45076bcdf6">Microsoft: Android Accessibility - Resolving common TalkBack issues</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more about <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> and our <a href="https://tetralogical.com/services/training-courses/">training courses</a> and <a href="https://tetralogical.com/services/training-programmes/">training programmes</a>.</p>
<p>Updated Monday 11 July 2022.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Accessible design systems</title>
    <link href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/"/>
    <updated>2022-06-24T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/06/24/accessible-design-systems/</id>
    <content type="html"><![CDATA[
        <p>A design system is a library of styles, components, and patterns used by product teams to consistently and efficiently launch new pages and features. A good system has accessibility embedded throughout and includes documentation, guidelines and implementation notes for accessibility.</p>
<h2 id="benefits" tabindex="-1">Benefits</h2>
<p>There are several benefits of an accessible design system for you, your team, your organisation, and the people using your products.</p>
<h3 id="efficiency" tabindex="-1">Efficiency</h3>
<p>By embedding accessibility in your design system, your team reduces the need to repeat accessibility work, freeing them to focus on new things. For example:</p>
<ul>
<li>Colour pallets don't have to be recreated and tested again and again</li>
<li>Visible focus styles can be designed once and used uniformly across a website</li>
<li>Text descriptions and accessible names can be written once and used everywhere removing the need to re-write copy</li>
</ul>
<h3 id="consistency" tabindex="-1">Consistency</h3>
<p>As the <a href="https://inclusivedesignprinciples.info/#be-consistent">Inclusive Design Principle, be consistent</a> says:</p>
<blockquote>
<p>Use familiar conventions and apply them consistently.</p>
</blockquote>
<p>By documenting accessibility for styles, patterns and components, your team reduces the risk of designing and building inconsistent experiences for people with disabilities. For example:</p>
<ul>
<li>Inconsistent keyboard focus order for people who browse with a <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">keyboard</a>, <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">speech recognition</a>, a <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">desktop screen reader</a>, a <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">mobile screen reader</a> or switch input</li>
<li>Inconsistent labels for buttons that do the same thing, which makes people unsure what a button may do</li>
</ul>
<h3 id="scale" tabindex="-1">Scale</h3>
<p>By increasing accessibility efficiency and consistency, your team can build inclusive products faster and at scale. For example:</p>
<ul>
<li>Complex components such as tab panels, menus and navigation can be built once and re-used across multiple areas of a website or application</li>
<li>Accessible styles can be applied across all products and platforms</li>
</ul>
<h3 id="usability" tabindex="-1">Usability</h3>
<p>By considering accessibility as integral to your design system, you improve the user experience for everyone as many accessibility requirements improve usability for all. For example</p>
<ul>
<li>Good contrast for text and UI components is beneficial for people using a mobile</li>
<li>A logical page structure with good use of headings helps everyone understand the relationship between content on a page</li>
</ul>
<h3 id="sustainability" tabindex="-1">Sustainability</h3>
<p>By embedding accessibility in a design system, you are one step closer to <a href="https://tetralogical.com/services/sustainable-accessibility/">sustainable accessibility</a> across your products and within your product development process. An accessible design system contributes to:</p>
<ul>
<li>Reducing remediation time for accessibility</li>
<li>Creating a culture of accessibility across product teams</li>
<li>Freeing up product teams, so accessibility is proactive and not reactive</li>
</ul>
<h2 id="contents" tabindex="-1">Contents</h2>
<p>Design systems vary, but an accessible design system can include style guides, components, patterns, and accessibility documentation.</p>
<h3 id="accessibility-documentation" tabindex="-1">Accessibility documentation</h3>
<p>Accessibility must be embedded throughout the design system. This means there is general guidance for accessibility and specific accessibility guidance for all styles, components, and patterns.</p>
<p>The general accessibility guidance can include:</p>
<ul>
<li>Your organisation's accessibility principles</li>
<li>Your organisation's accessibility compliance level</li>
<li>An overview of accessibility guidelines and techniques</li>
<li>Accessibility resources for product teams</li>
</ul>
<p>Specific accessibility documentation is then included with each style, component or pattern.</p>
<h3 id="visual-style-guide" tabindex="-1">Visual style guide</h3>
<p>A visual style guide documents the look and feel of a brand. What is included can vary but should always include:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">Colour contrast</a> used for all typography and  background colour combinations as well as UI components and meaningful graphical elements so people can perceive a product</li>
<li><a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">Visible focus styles</a> for actionable elements including links, buttons, controls and form inputs so people can operate controls</li>
<li>Typography with fonts and font sizes that support readability so people can understand a product</li>
<li>Icons with visible text labels and text descriptions that help people understand a product</li>
<li><a href="https://tetralogical.com/blog/2022/12/20/foundations-target-size/">Target size</a> for actionable elements so that people with dexterity issues can interact with content</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/design-adobe-spectrum-colour-usage.jpg" alt="Screenshot of usage guidelines for colour with a warning to not create your own colours" />
<figcaption><a href="https://spectrum.adobe.com/page/color-fundamentals/">Adobe Spectrum colour usage guidelines</a> document what colour to use and that your own colours should not be used.</figcaption>
</figure>
<h3 id="editorial-style-guide" tabindex="-1">Editorial style guide</h3>
<p>Editorial guidelines apply to all copy, this includes both visible copy and hidden copy that screen reader users access. It should cover readability and copy patterns for:</p>
<ul>
<li>Body text</li>
<li><a href="https://tetralogical.com/blog/2022/02/28/headings/">Headings</a></li>
<li>Form labels</li>
<li>Instructions</li>
<li>Notifications</li>
<li>Error messages</li>
<li>Alerts and status messages</li>
<li><a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">Text descriptions</a> for images</li>
<li>Labels for <a href="https://tetralogical.com/blog/2022/03/18/landmarks/">landmark regions</a></li>
</ul>
<p>An accessible editorial style guide will also document inclusive language guidelines for your organisation. This includes preferred language for:</p>
<ul>
<li>Age</li>
<li>Gender</li>
<li>Ethnicity</li>
<li>Disability</li>
<li>Sexual orientation</li>
<li>Socio-economic status</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/design-babylon-dna-inclusive-language-page.png" alt="A screenshot of the Babylon Health DNA design system editorial guidelines for Being inclusive" />
<figcaption>The Babylon Health DNA design system included a <em>Writing for people</em> style guide with guidance on being inclusive</figcaption>
</figure>
<h3 id="component-library" tabindex="-1">Component library</h3>
<p>A component library documents re-usable components such as menus, tab panels, accordions, buttons and so on.</p>
<p>Each component is designed, built, and tested for accessibility before it is added to the design system. Each component should include accessibility documentation so designers and developers using the component don't break the accessibility when they add it to a page.</p>
<p>For example, a component should include implementation advice on:</p>
<ul>
<li>Structure</li>
<li>Focus order</li>
<li>Keyboard behaviour</li>
<li>Text descriptions</li>
<li>Announced screen reader content</li>
<li>Expected user experience</li>
</ul>
<p>The last item, expected user experience, is a good way of helping people using your design system understand what the expected outcome is for people browsing with different assistive technologies.</p>
<p>The BBC News team have a guide on <a href="https://bbc.github.io/accessibility-news-and-you/guides/screen-reader-ux.html">How to document the screen reader user experience</a> which includes seven steps for designers to consider. There is also an accompanying <a href="https://bbc.github.io/accessibility-news-and-you/pdfs/screen-reader-ux-steps-poster.pdf">screen reader UX poster (PDF, 67kb)</a></p>
<p><img src="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/bbc-screen-reader-ux-poster.png" alt="Screenshot of the Screen reader UX poster" /></p>
<h3 id="pattern-library" tabindex="-1">Pattern library</h3>
<p>A pattern library documents how two or more components can be combined to help people complete a task or process. This can be content structure, layouts, page templates, forms, status messages, or other combinations of UI elements.</p>
<p>As with the components, including the expected user experience for people browsing with assistive technologies and various disabilities is key.</p>
<h2 id="who" tabindex="-1">Who</h2>
<p>An accessible design system is for use by product teams.</p>
<h3 id="who-creates-it" tabindex="-1">Who creates it</h3>
<p>When it comes to who is responsible for accessibility in the design system, the short answer is that everyone who works on it is responsible.</p>
<p>If you have a design system team, the team should include at least one person from each discipline. For example a UX researcher, content creator, interaction designer, visual designer, a developer, a QA tester and product owner.</p>
<p>Each team member is responsible for the accessibility of what they design, code, test, or write. This means making the styles, components, and patterns accessible as well as documenting accessibility implementation specifications for each.</p>
<p>How your team manages this process will vary but ultimately, it is a collaborative process. No individual role in the team should work in isolation; multiple roles will have input on what you do:</p>
<ul>
<li><strong>UX</strong> researchers are responsible for including people with disabilities in all research, and ensuring accessibility is part of the overall user experience working closely with product owners</li>
<li><strong>Content creators</strong> are responsible for making sure that all editorial is accessible and work closely with UX researchers, interaction and visual designers</li>
<li><strong>Interaction</strong> designers are responsible for accessible interactions that support diverse user experiences and will work closely with visual designers and developers</li>
<li><strong>Visual designers</strong> are responsible for making sure everyone can perceive and understand styles, components, and patterns and work closely with UX researchers, interaction designers and developers</li>
<li><strong>Developers</strong> are responsible for accessible code working closely with interaction and visual designers</li>
<li><strong>Quality Assurance (QA) testers</strong> are responsible for verifying the style, component, or pattern meets the expected accessibility standard working closely with developers</li>
<li><strong>Product owners</strong> are responsible for making sure accessibility is included throughout the design, build and test of assets for the design system working closely with everyone at each stage</li>
</ul>
<p>If you don't have a design team, you can create your system on a small scale by documenting established accessible style, components and patterns for re-use. This is an investment of time, but it is time you will immediately win back as you evolve your product.</p>
<p>You can also look at adopting or adapting an existing accessible design system, component library, or pattern library. This can be as large or as small as you need:</p>
<ul>
<li><a href="https://inclusive-components.design/">Inclusive components</a> by Heydon Pickering</li>
<li><a href="https://material.io/design">Material design</a>, by Google</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/doc-inclusive-components-heydon-pickering-homepage.png" alt="The Inclusive Components homepage" />
<figcaption>Inclusive Components by Heydon Pickering documents guidance for 11 common components.</figcaption>
</figure>
<p><strong>Tip:</strong> regardless of whether you are using a third party to host your design system, or you are hosting it on your platform, it must also be accessible.</p>
<p>If using a third party platform, check to see if they have an <a href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/">Accessibility Conformance Report (ACR)</a>. You will need to make sure that both the front-end is accessible as well as the back-end so that people with disabilities in your product teams can use and contribute to the design system.</p>
<h2 id="maintenance" tabindex="-1">Maintenance</h2>
<p>There will be times when product teams can't find the component, style, or pattern they need, or it doesn't do exactly what they need it to do.</p>
<p>When this happens, there is a risk of people adapting styles, creating their own components, or ignoring the design system and doing their own thing. This runs the risk of accessibility becoming compromised or broken.</p>
<p>Put a <a href="https://bradfrost.com/blog/post/a-design-system-governance-process/">design system governance process</a> in place where people can request or suggest updates. All new content added to your design system must then pass a <a href="https://tetralogical.com/services/design-system-accessibility/">design system accessibility assessment</a> before it can be added. All new styles, components, and patterns should meet WCAG 2.1 Level AA and include accessibility implementation guidance, as well as include accessibility documentation.</p>
<p>As well as maintaining accessibility, this has the added benefit of ensuring your design system can evolve and innovate with accessibility being a driver for good.</p>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://xd.adobe.com/ideas/principles/design-systems/accessibility-in-design-systems/">Building accessibility into design systems</a>, Adobe Spectrum</li>
<li><a href="https://www.youtube.com/watch?v=Y35jmpS8lQM">Annotating designs for Accessibility (video)</a> Claire Webber and Sarah Pulis  at #id24 2021</li>
<li><a href="https://stephaniewalter.design/blog/a-designers-guide-to-documenting-accessibility-user-interactions/">A Designer’s Guide to Documenting Accessibility &amp; User Interactions</a>, by Stephanie Walter</li>
<li><a href="https://inclusivedesignprinciples.info/">The Inclusive Design Principles</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>When you want your design system to be the best it can be, our <a href="https://tetralogical.com/services/design-system-accessibility/">design system accessibility</a> service gives you the information you need to build accessibility into the core of your products and services taking you one big step closer to <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a>.</p>
<p>Updated 13 January 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Meet the team: Patrick H. Lauke</title>
    <link href="https://tetralogical.com/blog/2022/06/13/meet-the-team-patrick-h-lauke/"/>
    <updated>2022-06-13T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/06/13/meet-the-team-patrick-h-lauke/</id>
    <content type="html"><![CDATA[
        <p>Meet Patrick H. Lauke, he's a technical wiz, passionate advocate and all-round expert in the world of digital accessibility. Here he shares his favourite resources and tips for those starting out.</p>
<p><img src="https://tetralogical.com/blog/2022/06/13/meet-the-team-patrick-h-lauke/patrickhlauke.jpg" alt="Photograph of Patrick H. Lauke, standing outside of a hotel in Berlin, wearing a Mozilla t-shirt." class="inline-image" style="max-height:15em" /></p>
<p>Patrick H. Lauke is a principal accessibility specialist at TetraLogical. He spends his working week tackling accessibility issues and giving recommendations to clients and then relaxes at the weekends by… tackling accessibility issues and giving recommendations on <a href="https://github.com/patrickhlauke/">open source projects</a> instead.</p>
<p>Patrick worked as a Web Evangelist in the Developer Relations team at Opera Software before moving on to work at The Paciello Group (now TPGi) as a Principal Accessibility Engineer. He's been involved in the discourse around Web Standards and Accessibility since 2001, actively speaking at conferences and participating in early initiatives such as the <a href="https://www.webstandards.org/">Web Standards Project (WaSP)</a>.</p>
<p>The team are often entertained with updates about his weekend culinary adventures, and the social call on a Friday is not complete until we’ve all given an opinion on what the Lauke household should be having for dinner that evening.</p>
<p>A keen photographer, Patrick has nearly 18 thousand photos in his online photo album on <a href="https://www.flickr.com/photos/redux">Flickr</a>, documenting his many travels, adventures, projects and outings. He’s only six years behind the organisation of these photos and will no doubt keep adding generously to the pile. Patrick also makes random recreations of old <a href="https://fontstruct.com/fontstructors/145/redux">console/arcade game pixel fonts</a> and displays these on <a href="https://www.splintered.co.uk/">splintered.co.uk</a>, a website for “random sparks of creative insight.”</p>
<p>To further nurture his creative flair, Patrick lends his dulcet tones to the video series for both TetraLogical’s <a href="https://www.youtube.com/watch?v=ahDuaWKSGZA&amp;list=PLTqm2yVMMUKWTr9XWdW5hJ9tk512Ow0SE">Quick accessibility tests</a> and <a href="https://www.youtube.com/watch?v=KuVKQQMtRRI&amp;list=PLTqm2yVMMUKVxQ6eYth4_vvbM3IcrSPlk">Browsing with assistive technologies</a> and has been instrumental in their conception and creation. He has contributed to the TetraLogical <a href="https://tetralogical.com/blog/">blog</a>, to share his knowledge on <a href="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/">Animations and flashing content</a> and <a href="https://tetralogical.com/blog/2022/03/07/session-timeouts/">Session timeouts</a>.</p>
<p>Alongside his day job, Pat is an active member of the online accessibility community, giving his time and expertise to various standards, committees and working groups. He contributes to the <a href="https://www.w3.org/TR/WCAG/">Web Content Accessibility Guidelines</a>, is a co-editor of the <a href="https://www.w3.org/TR/pointerevents2/">W3C Pointer Events Level 2 specification</a> and co-editor of the <a href="https://w3c.github.io/touch-events/">W3C Touch Events Level 2 specification</a>.</p>
<h2 id="what's-the-one-thing-you-wish-you'd-known-when-you-started-learning-about-accessibility%3F" tabindex="-1">What's the one thing you wish you'd known when you started learning about accessibility?</h2>
<p>It can likely be attributed to the hubris of youth, but when I first started back in the days of the Web Content Accessibility Guidelines (WCAG) 1.0, I was firmly convinced that whether something is accessible or not was a binary question. While it's true that for certain specific cases / success criteria you can confidently make a simple pass or fail statement, there are many situations when dealing with real-world web content where a lot more nuance in required. And realising that content can both be &quot;technically&quot; accessible, and still present people with problems - that &quot;passing WCAG&quot; is often only the bare minimum.</p>
<h2 id="what's-your-top-accessibility-tip%3F" tabindex="-1">What's your top accessibility tip?</h2>
<p>When building complex, highly interactive workflows and widgets that don't fall neatly within any standard pre-established patterns, developers often resort to just throwing more and more ARIA attributes and roles on their markup - often just following assumptions on how these additions work, rather than actually testing them using assistive technologies. In the first instance, I'd recommend taking a step back and trying to break down a complex widget into more manageable and known components (an expand/collapse disclosure control, a tab interface, a toolbar with various controls acting as mutually exclusive radio buttons, etc.), and building it &quot;from the bottom up&quot; rather than trying to sprinkle accessibility on it &quot;from the top down&quot;.
This advice also applies to auditing. It can be overwhelming to be faced with a complex, highly interactive interface, and having to determine whether it's accessible or not. Again, breaking it down into its sub-components and assessing them &quot;atomically&quot; first, before moving on to how these components interact as a whole, can be helpful.</p>
<h2 id="what's-your-top-accessibility-resource%3F" tabindex="-1">What's your top accessibility resource?</h2>
<p>One of the resources that I keep revisiting regularly are the <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">ARIA Authoring Practices Guide patterns</a>. Although they are far from perfect, they do provide solid implementation suggestions for the more common interactive ARIA widgets. While there are often many different ways to build a particular widget, it's nice to be able to reference relatively solid working example of a particular pattern - both in order to test how a browser/assistive technology combination handles a it, and as a well implemented starting point that developers can then modify and adapt to their  specific needs.</p>
<h2 id="more-from-patrick" tabindex="-1">More from Patrick</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=n-eM7_eYuCs">These aren't the SCs you're looking for... / A11y Camp 2021</a> presented as part of A11yCamp AU 2021, (<a href="https://patrickhlauke.github.io/wcag-interpretation/">slides for the presentation</a>)</li>
<li><a href="https://css-tricks.com/interaction-media-features-and-their-potential-for-incorrect-assumptions/">CSS-Trick: Interaction Media Features and Their Potential (for Incorrect Assumptions)</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more <a href="https://tetralogical.com/about/">about TetraLogical</a>, <a href="https://tetralogical.com/about/team/">our team</a>, and <a href="https://tetralogical.com/about/impact/">our impact</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive user research: analysing findings</title>
    <link href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/"/>
    <updated>2022-06-08T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/</id>
    <content type="html"><![CDATA[
        <p>In <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">inclusive user research: moderating sessions</a> we covered the skills and techniques that help researchers run sessions smoothly and collect valuable insights. The second post in our Inclusive user research series discusses some of the unique challenges posed by findings from sessions run with people with disabilities, and advice on how to analyse them.</p>
<p>Researchers have a wealth of data that needs organising, understanding, and filtering once the usability testing sessions are complete. For research that includes people with disabilities, the analysis stage often requires a bit more time and consideration. Properly investigating issues, and considering the needs of different people, is crucial for coming up with recommendations that will improve the product for all.</p>
<p>In case you missed them, here are the other blog posts in our Inclusive user research series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">Moderating sessions</a></li>
<li><a href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/">Recruiting participants</a></li>
<li><a href="https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/">Building rapport</a></li>
</ul>
<h2 id="challenges" tabindex="-1">Challenges</h2>
<p>When running usability testing with people without a disability, participants tend to encounter similar issues, and often provide similar suggestions for improvements. For example, they may all miss a link towards the end of a screen and mention it should be moved up or made bigger. You would therefore provide designers with this feedback, together with a few suggestions on how to improve the visibility of the link.</p>
<p>There may be times when participants make suggestions for changes based on their preferences. They may not like the colour scheme or images used on a website, for example. As an experienced researcher, you are able to distinguish personal preferences from usability issues and make an informed decision on whether to report them.</p>
<p>Findings from sessions involving people with disabilities can be more varied, which makes the analysis stage interesting and challenging at the same time. Here are a few of the reasons behind such a variety of results.</p>
<h3 id="unique-ways-to-use-products" tabindex="-1">Unique ways to use products</h3>
<p>Each person is likely to interact with the test product uniquely. Some may use assistive technology, others may enable accessibility settings, and others may have their own way of exploring and processing content. This often results in each participant experiencing very different issues. What works perfectly well for a person may be a complete blocker for another. Collecting, reviewing and making sense of such a wealth of information takes time.</p>
<h3 id="personal-preferences-versus-accessibility-issues" tabindex="-1">Personal preferences versus accessibility issues</h3>
<p>If you are not familiar with how participants use assistive technology or accessibility settings, it's more challenging to separate personal preferences and actual accessibility issues. For example, a blind person using a screen reader may comment that a data table is difficult to navigate. This could be because the table is not accessible or the participant dislikes or is unfamiliar with navigating data tables.</p>
<h3 id="conflicting-suggestions" tabindex="-1">Conflicting suggestions</h3>
<p>People will have ideas on how to improve the test product. Feature requests always provide valuable insight, but they may sometimes seem to conflict with one another. Because each person has different needs, a change that would make a product easier to use for one person may negatively impact someone else's experience. Finding a solution that benefits all may be challenging.</p>
<h2 id="strategies" tabindex="-1">Strategies</h2>
<p>Learning to make sense of a wide variety of data, some of which may be contradictory, and coming up with solutions that best address them all takes practice. Here are some strategies to get you started.</p>
<h3 id="learn-about-technical-accessibility-requirements" tabindex="-1">Learn about technical accessibility requirements</h3>
<p>When you understand how content should work with accessibility settings or assistive technology, you can more easily recognise irregularities. This makes differentiating between personal preferences and technical issues easier.</p>
<p>Going back to the data table example, if screen readers announce its content as expected, there is probably nothing wrong with the code. Asking developers to change it based on the feedback of one participant may actually break its accessibility. Suggesting that the content is also presented in an alternative format would be a far better recommendation and benefit all people who struggle to interpret tables.</p>
<p>Our <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browsing with assistive technology videos</a> give an overview of how popular assistive technology is used to access web content. The <a href="https://www.w3.org/WAI/WCAG21/Techniques/">Web Content Accessibility Guidelines (WCAG) 2.1 techniques</a> provides useful information on how content should be coded in order to work well with assistive technology.</p>
<h3 id="be-aware-of-the-needs-of-different-people" tabindex="-1">Be aware of the needs of different people</h3>
<p>Implementing a new feature or modifying an existing one based on a participant's feedback may be tempting, especially when it clearly improves that participant's experience. However, before you do that, consider the impact of that change on other people. Could it make it more difficult for other participants to use the product? What about people with disabilities that were not part of the participant sample?</p>
<p>In a research session we conducted, a lady with Cerebral Palsy suggested that we replaced a few drop-downs with input fields. Containing a long list of options, the drop-downs required a lot of scrolling, which she found challenging and tiring. However, we are aware that input fields pose other types of challenges to other people, and are more prone to errors. As per the data table example, offering people alternative ways to complete the same task would be a better solution. This also meets <a href="https://inclusivedesignprinciples.info/#offer-choice">offer choice</a>, from the Inclusive Design Principles.</p>
<p>Running usability testing sessions with people with a wide variety of disabilities is a great way to learn about different people's needs. The <a href="https://www.w3.org/WAI/perspective-videos/">W3C Web Accessibility Perspectives Videos</a> may also provide a good introduction.</p>
<h3 id="try-reproducing-issues" tabindex="-1">Try reproducing issues</h3>
<p>For issues experienced by people using assistive technology or accessibility settings, always try to reproduce them following the testing sessions. This is to verify the issues were:</p>
<ul>
<li>not caused by a temporary glitch with the technology</li>
<li>a code error that has been resolved since the testing</li>
<li>an error on the participant's part</li>
</ul>
<p>Failing to investigate technical issues properly may once again result in developers breaking code that was accessible.</p>
<p>Occasionally we have been unable to replicate issues following user research. In some cases, the code causing the issues had been replaced; in others, participants, still new to their assistive technology, had used an incorrect command to interact with content.</p>
<p>If you are not familiar with the assistive technology used by participants, or do not have access to it, you can ask someone else either within or outside your organisation to test the content for you. Ideally, the same version of assistive technology, accessibility settings, browser, operating system and device model should be used.</p>
<h2 id="writing-recommendations" tabindex="-1">Writing recommendations</h2>
<p>Once you have finalised a list of issues to report, write accurate and clear recommendations on how designers, content authors, and developers should address them.</p>
<p>Including links to relevant <a href="https://inclusivedesignprinciples.info/">Inclusive Design Principles</a> may inspire and help designers come up with ideas on how to improve the product for all. For technical accessibility issues, include details on the portion of code causing the issues and how to change it, and details of the assistive technology or accessibility settings used, browser version, operating system and device model. Links to relevant Techniques from WCAG 2.1 may also be useful.</p>
<p>If assigning issues and recommendations a priority level, carefully consider the impact of each observed issue on the product's users, and the effort required to solve it. We often recommend that clients focus on the issues with the most severe impact first, as well as those issues, large or small, that can be fixed quickly. This allows to start improving the accessibility of the product straight away.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Thanks to the variety of people who take part in inclusive user research, findings are always interesting, sometimes surprising, and at times conflicting. Analysis can take time, and requires accessibility knowledge and skills. Take your time to learn about technical accessibility requirements, assistive technology and accessibility settings, and how different types of disabilities impact people's experiences with digital products. With the right knowledge and experience, you can come up with recommendations that will improve the product for all people, with and without disabilities.</p>
<p>Learn how to <a href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/">moderate usability testing sessions</a>, or find out about <a href="https://tetralogical.com/services/usability-testing/">usability testing</a> at TetraLogical.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>How to write user stories for accessibility</title>
    <link href="https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/"/>
    <updated>2022-05-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/</id>
    <content type="html"><![CDATA[
        <p>A user story usually focuses on the value a software feature will deliver to an end-user, and an accessibility user story is no different. Whether you need to write an accessibility user story to fix issues found in an accessibility review, as part of a business case, or as part of your service delivery plan, there’s not much that you need to do differently.</p>
<p>Your end-user might have a persona that differs from some of your other user personas, have different needs, or interact differently from how other users interact with your product. Technical or QA requirements may be slightly different or more detailed than you might be used to providing, but the basic outline is the same:</p>
<ul>
<li>Start with the user persona</li>
<li>Identify the desired outcome or the user’s goal</li>
<li>Define the benefit or value to them</li>
</ul>
<p>As you move on from the high-level acceptance criteria to refining the detail, you can then start identifying any requirement for specialist coding knowledge, for example, WAI-ARIA, or testing criteria needed to meet your Definition of Done. To do this you will need to understand how people with disabilities <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browsing with assistive technologies</a> navigate and experience the web.</p>
<p>Remember, understand the feature from the perspective of the end-user and the benefits they will receive, just as you would with any user story.</p>
<p>Allocating time and resources to accessibility planning in your development lifecycle also <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">benefits your business</a>. As well as resulting in a more inclusive product, it can help avoid expensive mistakes which need to be remedied when accessibility is only considered after a feature has been released. This is especially true if accessibility standards haven't been met which might result in a legal case being brought forward.</p>
<h2 id="examples-of-accessibility-user-stories" tabindex="-1">Examples of accessibility user stories</h2>
<p>Below are some examples of accessibility user stories you might find helpful. Each user story is a response to a particular issue but focuses on the user, their needs, and the benefit they gain from the feature.</p>
<h3 id="visible-indication-of-keyboard-focus" tabindex="-1">Visible indication of keyboard focus</h3>
<blockquote>
<p>As a keyboard-only user, I want to know where I am on the screen so that I can perform an action or navigate to other areas of the site.</p>
</blockquote>
<p>In this example, an accessibility review found that active links and buttons had no visible indication of keyboard focus. As a result, people <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a> can find it difficult to navigate or use buttons when they don’t know which element has focus.</p>
<p>The following video shows how you can test visible focus as well as keyboard order.</p>
<div class="tabs" id="tabs_1773627714410246">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/#tabs_1773627714410246_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/05/26/how-to-write-user-stories-for-accessibility/#tabs_1773627714410246_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714410246_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ahDuaWKSGZA" title="Quick accessibility test: Keyboard support video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714410246_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/n2PSQT2zrIc" title="Quick accessibility test: Keyboard support (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Keyboard support</p>
<p>[An image appears of a person in a lab coat typing on a black keyboard]</p>
<p>Many people are unable to use a mouse or touch gestures due to limited arm movement and dexterity issues. Instead they may rely on a keyboard, or similar input device, to navigate and operate digital content.</p>
<p>[The TetraLogical &quot;Services&quot; page fades into view]</p>
<p>To find out if your website is keyboard accessible, load the site, and start navigating it by pressing the Tab key on your keyboard.</p>
<p>[A purple &quot;Skip to main content&quot; button appears at the top of the screen. As the user navigates, the visible focus indicator moves through the links]</p>
<p>You should be able to reach all actionable controls, such as links, buttons, and form fields.</p>
<p>Pressing the Enter key or Spacebar should activate these controls.</p>
<p>[A link on the page from the TetraLogical website is activated with the Enter key and a new page is loaded]</p>
<p>If any actionable element on your website is skipped, receives the focus in an illogical order, or you cannot see where the focus is at any time, then keyboard support is not properly implemented.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="text-descriptions-for-images" tabindex="-1">Text descriptions for images</h3>
<blockquote>
<p>As a screen reader user, I want to hear the text equivalent for each image button so that I will know what function it performs.</p>
</blockquote>
<p>In this example, an accessibility review found that the icons on a mobile navigation menu had no accessible name or <a href="https://tetralogical.com/blog/2022/01/24/text-descriptions/">text description</a>,  making images inaccessible for <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">people browsing with a mobile screen reader</a>. As a result, screen reader users are unable to navigate using the menu as they didn’t know the purpose of the links.</p>
<h3 id="use-of-colour" tabindex="-1">Use of colour</h3>
<blockquote>
<p>As a user who is colour blind, I want links to be distinguishable on the page so that I can find the links and navigate the site.</p>
</blockquote>
<p>In this example, the accessibility review found there were no underlines or borders for links so they are only identified by a colour change from the surrounding text. Colour-blind users and users with low vision can't access <a href="https://tetralogical.com/blog/2022/02/15/colour-meaning/">colour and meaning</a> and can find it difficult to distinguish colour differences, especially if there isn’t a strong <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">colour contrast</a> between the text and the link. As a result, they will find it difficult to perceive the links.</p>
<h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>In conclusion, accessibility user stories are just like any other user story and focus on the value and benefits a feature will provide to people who might use your product in different ways. Understanding how people will use your product or site using accessible personas makes it easier to understand how to bring those benefits to them, and to the business.</p>
<h2 id="further-reading" tabindex="-1">Further reading</h2>
<ul>
<li><a href="https://www.w3.org/WAI/people-use-web/user-stories/">Stories of Web Users</a>, by the Web Accessibility Initiative</li>
<li><a href="https://uxdesign.cc/creating-accessibility-personas-e7749d4096b4">Creating accessibility personas</a>, by UX Design</li>
<li><a href="https://alphagov.github.io/accessibility-personas/">Experience the web as personas with access needs</a>, by the Government Digital Service</li>
<li><a href="https://markboyessmith.medium.com/accessibility-personas-in-detail-919e4fb50d75">Accessibility personas in detail</a>, by Alice Crowther</li>
<li><a href="https://www.mountaingoatsoftware.com/blog/why-the-three-part-user-story-template-works-so-well">Why the Three-Part User Story Template Works So Well</a>, by Mountain Goat Software</li>
<li><a href="https://www.accessibility.com/blog/developing-accessible-user-stories">Developing Accessible User Stories</a>, by Accessibility.com</li>
<li><a href="https://insidegovuk.blog.gov.uk/2018/01/24/improving-accessibility-with-accessibility-acceptance-criteria/">Improving accessibility with accessibility acceptance criteria</a>, by the Government Digital Service</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about accessibility <a href="https://tetralogical.com/services/assessments/">assessments</a> at TetraLogical and how people with disabilities <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browse the web using assistive technologies</a>.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Triaging WCAG 2.1 Level AAA</title>
    <link href="https://tetralogical.com/blog/2022/05/20/triaging-wcag-level-aaa/"/>
    <updated>2022-05-20T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/05/20/triaging-wcag-level-aaa/</id>
    <content type="html"><![CDATA[
        <p>If you've taken the time to <a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">understand WCAG 2.1 Level AAA</a> and have spent time <a href="https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/">testing WCAG 2.1 Level AAA</a>, what do you do with the results?</p>
<p>In <a href="https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/">testing WCAG 2.1 Level AAA</a>, we looked at the twenty-eight success criteria for WCAG 2.1 Level AAA and suggested ways to go about testing against them. If you follow this process you will, almost certainly, have found cases where your site or application is not meeting the requirements of WCAG 2.1 Level AAA. But, as WCAG itself notes:</p>
<blockquote>
<p>It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA Success Criteria for some content.</p>
</blockquote>
<p>So, how do you decide what to fix and what to ignore?</p>
<h2 id="three-groups-of-issues" tabindex="-1">Three groups of issues</h2>
<p>When performing any sort of assessment there are generally three groups issues fall into:</p>
<ul>
<li>Fix</li>
<li>Won't fix</li>
<li>Not relevant</li>
</ul>
<p>Most of the time issues will be in the Fix or Won't fix group; so why would something that is Not relevant be included as a test in the first place? Because you've tested against a defined set of criteria, you may find issues that just aren't relevant just as you would at Level A and Level AAA.</p>
<p>Let's look at the different groups and what issues you should include in each.</p>
<h3 id="fix" tabindex="-1">Fix</h3>
<p>These issues are, naturally, the ones you intend to fix. You can identify these in two ways:</p>
<ul>
<li>Does this issue present an accessibility barrier to your audience?</li>
<li>Does fixing the issue significantly improve the user experience, particularly for people with disabilities?</li>
</ul>
<p>The first point is something that differentiates WCAG 2.1 Level AAA from Level A and Level AA. While Level A and Level AA are both intended to be used for general accessibility, WCAG 2.1 Level AAA is intended to be used for specific content, audiences, or circumstances.</p>
<p>For example, do Deaf users make up a large proportion of your audience? If they do, then a lack of sign language may be a significant barrier, so meeting <a href="https://www.w3.org/TR/WCAG21/#sign-language-prerecorded">SC 1.2.6 Sign Language (Prerecorded)</a>, may be more important for your site or application than others.</p>
<p>The second point captures more general benefits to meeting WCAG 2.1 Level AAA. An application for a summer music festival may benefit from greater contrast for text as it will (hopefully!) be used in bright sunlight. <a href="https://www.w3.org/TR/WCAG21/#contrast-enhanced">SC 1.4.6 Contrast (Enhanced)</a> could be a success criterion you want to meet.</p>
<h3 id="won't-fix" tabindex="-1">Won't fix</h3>
<p>You may decide there are things you won't fix. It may seem odd to test against a standard and then choose not to fix issues, but for WCAG 2.1 Level AAA, this is expected for reasons described in <a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">understanding WCAG 2.1 Level AAA</a>.</p>
<p>For example, <a href="https://www.w3.org/TR/WCAG21/#reading-level">SC 3.1.5 Reading Level</a> is as follows:</p>
<blockquote>
<p>When text requires reading ability more advanced than the lower secondary education level after removal of proper names and titles, supplemental content, or a version that does not require reading ability more advanced than the lower secondary education level, is available.</p>
</blockquote>
<p>However, for a scientific journal with an audience that is predominantly people with an advanced education level and used to reading scientific articles, this may not be necessary. Simplifying the language may, in the worst case, make the content less accessible to its intended audience if less precise terms are used to meet a lower reading level.</p>
<p>This doesn't mean that you should always ignore issues raised. You may want to use the failed criteria as the basis for setting your own requirements, perhaps using a higher reading level as your target.</p>
<p>If there are issues that you don't want to fix <em>now</em>, include these in the Fix group; fixing later is still fixing, and so should not be included in the Won't fix group.</p>
<p>The important thing that Level AAA testing gives you is the ability be able to make an informed decision. You should document whatever decision you make, along with your reasoning, so that the decision can be reassessed in the future or applied consistently in other circumstances.</p>
<h3 id="not-relevant" tabindex="-1">Not relevant</h3>
<p>This is everything else, the issues that are not applicable to your content. You haven't failed them, they just haven't been tested against. If you don't have multimedia content then all of the criteria under <a href="https://www.w3.org/TR/WCAG21/#time-based-media">Guideline 1.2 Time-based Media</a> do not apply.</p>
<p>You shouldn't forget about them, though. Content and features of sites and applications constantly change. Keep this group of success criteria in mind as features are developed and content is added, and test against them if they become relevant.</p>
<h2 id="what-to-fix-first" tabindex="-1">What to fix first</h2>
<p>When testing against WCAG, the level gives you the first piece of information that you need to determine the order to fix issues. In most cases, you should fix Level A issues first, followed by Level AA. Sometimes, when a Level A criterion is a stricter version of a Level AA criterion, you can fix both at the same time, so it's worth looking ahead to Level AAA issues at the same time. The same applies to evaluating Level AAA issues; check if there is an enhanced equivalent at Level AAA that you could meet.</p>
<p>For example, if you need to increase the contrast of a piece of text, are you going to increase it to 4.5:1 to meet the Level AA requirement and then think about increasing it to 7:1 to meet the Level AAA criterion later, or does it make more sense to jump straight to the enhanced contrast level? Almost certainly the latter.</p>
<p>The second thing to consider is the severity of the issue. This is less likely to include Level AAA criteria, as they are, by their nature, generally less critical than Level A or Level AA criteria. The same principle of looking ahead applies here as well. Remember, WCAG success criteria define the minimum expectations; Level AAA often raises the minimum expectation but often does so in ways that will benefit your entire audience.</p>
<p>The third thing to consider is your audience. As Level AAA criteria may more beneficial to specific user groups than the general population, you should always look to it if you have a particular target audience. If your target audience is predominantly a group of people with disabilities that would benefit from one or more Level AAA success criteria, then you may even wish to prioritise these over Level A or Level AA criteria.</p>
<h2 id="conclusion" tabindex="-1">Conclusion</h2>
<p>Testing against WCAG 2.1 Level AAA is a great way to get a better understanding of how your site or application might be improved beyond the Level A and Level AA success criteria. By including specific criteria in your regular testing, you can ensure that you are not just meeting but exceeding the legal requirements for accessibility in most countries and, more importantly, making your site or application more accessible and more usable for people with disabilities.</p>
<p>Find out more about <a href="https://tetralogical.com/services/assessments/">assessments</a> at TetraLogical or read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> to learn more about the Web Content Accessibility Guidelines.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out how we went about <a href="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/">meeting WCAG Level AAA on the TetraLogical website</a>, or how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
<p>Updated 21 April 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: lists</title>
    <link href="https://tetralogical.com/blog/2022/04/29/lists/"/>
    <updated>2022-04-29T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/04/29/lists/</id>
    <content type="html"><![CDATA[
        <p>A list is generally agreed to be a series of words or phrases that are grouped together for a reason. That reason might be to remember the items we want from the store, to share our top five favourite movies, or to write down the steps needed to complete a task.</p>
<p>Whether lists are vertical or horizontal, the design usually makes it clear that all the items belong together. To offer a <a href="https://inclusivedesignprinciples.info/#provide-comparable-experience">comparable experience</a> to people who cannot see the way content is designed, it is important to make the same information available in the HTML code.</p>
<p>People <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> have commands and gestures for navigating between lists and list items. When a screen reader encounters a list it will announce “list” and how many items are in the list.</p>
<p><img src="https://tetralogical.com/blog/2022/04/29/lists/tl-main-navigation-vo-links-dialog.png" alt="The TetraLogical main navigation with the VoiceOver screen reader dialog showing the text &quot;Visited link, About 4 items&quot;" /></p>
<p>Lists also improve the readability of content. Breaking text into lists helps everyone, but in particular people who have cognitive or learning disabilities.</p>
<h2 id="types-of-lists" tabindex="-1">Types of lists</h2>
<p>Lists should be used to group together collections of related items where it is helpful for the user to know there is a relationship between them.</p>
<p>Unordered lists are ones where the order of the items does not matter. For example, lists of:</p>
<ul>
<li>Product features</li>
<li>Navigation links</li>
<li>Recipe ingredients</li>
</ul>
<p>Ordered lists are ones where the order of the items does matter. For example, lists of:</p>
<ul>
<li>Stages in the production lifecycle</li>
<li>Top 10 favourite books</li>
<li>Steps to make a recipe</li>
</ul>
<p>Description lists (previously known as definition lists) are ones where the list contains a number of terms and each term has one or more definitions. For example, lists of:</p>
<ul>
<li>Dictionary definitions</li>
<li>Key value pairs</li>
<li>Related terms</li>
</ul>
<h2 id="planning-lists" tabindex="-1">Planning lists</h2>
<p>Start by thinking about how lists will appear in your designs. Make sure it's possible to tell when a collection of items belongs to a list. If the order of items in the list is important, include some variations that have sequential bullet markers. For description lists, make sure your designs clearly establish a relationship between each term/definition pair in the list.</p>
<p>As you plan your content, think about how and when to use lists. As a general rule, if you have two or three items it's OK to include them within a sentence. Any more than that and it's better to put them into a list.</p>
<p>Think about how your lists work alongside other structural elements such as <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a> and <a href="https://tetralogical.com/blog/2022/03/18/landmarks/">landmarks</a>. For example, news items or products on a page may work better as a list than lots of headings.</p>
<h2 id="implementing-lists" tabindex="-1">Implementing lists</h2>
<p>If the order of items in the list does not matter use the <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> elements. This is useful for main navigation lists for example.</p>
<p><img src="https://tetralogical.com/blog/2022/04/29/lists/tl-main-navigation-unordered-list.jpg" alt="The TetraLogical main navigation" /></p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>nav</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>about.html<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>About<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>services.html<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Services<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>news.html<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>News<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>blog.html<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Blog<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>nav</span><span class="token punctuation">></span></span></code></pre>
<p>If the order of items in the list does matter use the <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> elements. This is useful for steps and instructions.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ol</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Open your browser and go to the URL<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Use f12 to open the developer tools<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span>Use the developer tools to inspect the accessibility properties of elements<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ol</span><span class="token punctuation">></span></span></code></pre>
<p>Do not use <code>list-style-type:none;</code> on an <code>&lt;ol&gt;</code> element because it causes browsers to treat it like an <code>&lt;ul&gt;</code> which means screen reader users will not be aware that it's an ordered list.</p>
<p>If the list contains term and description pairs use the <code>&lt;dl&gt;</code>, <code>&lt;dt&gt;</code> and <code>&lt;dd&gt;</code> elements. This is useful for definitions such as in a glossary.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dl</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dt</span><span class="token punctuation">></span></span>HTML<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dt</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dd</span><span class="token punctuation">></span></span>A markup language used to give content structure and semantics<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dd</span><span class="token punctuation">></span></span>

  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dt</span><span class="token punctuation">></span></span>CSS<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dt</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dd</span><span class="token punctuation">></span></span>A style sheet language used to design and present content<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dd</span><span class="token punctuation">></span></span>

  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dt</span><span class="token punctuation">></span></span>JavaScript<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dt</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dd</span><span class="token punctuation">></span></span>A scripting language used to give content functionality and interaction<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dd</span><span class="token punctuation">></span></span>

  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dt</span><span class="token punctuation">></span></span>ARIA<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dt</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dd</span><span class="token punctuation">></span></span>A markup language used to polyfill accessibility information<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dd</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dl</span><span class="token punctuation">></span></span>
</code></pre>
<h2 id="using-lists" tabindex="-1">Using lists</h2>
<h3 id="screen-readers-on-windows-and-macos" tabindex="-1">Screen readers on Windows and macOS</h3>
<h4 id="narrator-(windows)" tabindex="-1">Narrator (Windows)</h4>
<p>Use <kbd>Capslock</kbd> + <kbd>Space</kbd> to turn on scan mode, then use <kbd>l</kbd> to move to the next list or <kbd>Shift</kbd> + <kbd>l</kbd> to move to the previous list.</p>
<p>Use <kbd>Capslock</kbd> + <kbd>Space</kbd> to turn on scan mode, then use <kbd>i</kbd> to move to the next list item or <kbd>Shift</kbd> + <kbd>i</kbd> to move to the previous list item.</p>
<h4 id="nvda-(windows)" tabindex="-1">NVDA (Windows)</h4>
<p>Use <kbd>l</kbd> to move to the next list or <kbd>Shift</kbd> + <kbd>l</kbd> to move to the previous list.</p>
<p>Use <kbd>i</kbd> to move to the next list item or <kbd>Shift</kbd> + <kbd>i</kbd> to move to the previous list item.</p>
<h4 id="jaws-(windows)" tabindex="-1">Jaws (Windows)</h4>
<p>Use <kbd>l</kbd> to move to the next list or <kbd>Shift</kbd> + <kbd>l</kbd> to move to the previous list.</p>
<p>Use <kbd>i</kbd> to move to the next list item or <kbd>Shift</kbd> + <kbd>i</kbd> to move to the previous list item.</p>
<h4 id="voiceover-(macos)" tabindex="-1">VoiceOver (macOS)</h4>
<p>Use <kbd>Command</kbd>, <kbd>Option</kbd>, <kbd>Command</kbd> + <kbd>x</kbd> to move to the next list, or <kbd>Shift</kbd>, <kbd>Control</kbd>, <kbd>Option</kbd>, <kbd>Command</kbd> + <kbd>x</kbd> to move to the previous list.</p>
<h3 id="screen-readers-on-android-and-ios" tabindex="-1">Screen readers on Android and iOS</h3>
<h4 id="talkback-(android)" tabindex="-1">Talkback (Android)</h4>
<p>Swipe right to move to the next item in a list and swipe left to move the the previous item.</p>
<h4 id="voiceover-(ios)" tabindex="-1">VoiceOver (iOS)</h4>
<p>Swipe right to move to the next item in a list and swipe left to move the the previous item.</p>
<p>Use the three-finger tap to announce the position of an item within a list.</p>
<h2 id="tips-for-creating-lists" tabindex="-1">Tips for creating lists</h2>
<ul>
<li>Use list elements for main navigation, while the list is visually evident it is not clear for people who can't see it</li>
<li>Consider lists together with headings and landmark regions, these should all work together so every part of the page is discoverable</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#info-and-relationships">WCAG 2.1 Success Criterion 1.3.1 Info and Relationships (Level A)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.nomensa.com/blog/2011/using-html-lists">Using HTML lists</a>, by Nomensa</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">HTML elements reference</a>, by Nomensa</li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>The business case for accessibility</title>
    <link href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/"/>
    <updated>2022-04-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/</id>
    <content type="html"><![CDATA[
        <p>In an ideal world, products and services would be designed so that every person experienced them in an equitable and comparable way. However, sometimes it is necessary to justify to stakeholders why the proper time, money, and resources need to be dedicated to embed accessible practises.</p>
<p>This post outlines the benefits that accessibility brings to all organisations. At the end of the post, you can also <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/#complete-our-training-module">complete our training module</a> <em>Foundations of a successful business case</em> to learn how to build a successful business case for accessibility.</p>
<h2 id="benefits-of-accessibility" tabindex="-1">Benefits of accessibility</h2>
<h3 id="reputation" tabindex="-1">Reputation</h3>
<p>Digital accessibility is an essential part of every product and service. People with disabilities make up around 20% of the global population which is a significant portion of your potential customer base. Once we include both situational disabilities (a scenario where someone needs specific accommodations) and temporary disabilities (for example, a broken arm), that number is vastly increased.</p>
<p>There is no magic number that can be directly linked to a company’s return on investment. Likewise, creating a product that is compliant with the <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines (WCAG)</a> is not an exact science.</p>
<p>However, there are many reasons why it’s beneficial to focus on thoughtful design and to create something that is intended to include, rather than exclude, everyone in your target audience.</p>
<p>After all, a truly inclusive user experience can't be measured and little is more important than brand reputation and customer loyalty.</p>
<h3 id="financial" tabindex="-1">Financial</h3>
<p>It is important that your teams allocate the correct amount of time and resources to incorporate accessibility planning into every stage of your development lifecycle, not merely bolting it on to the end. This can avoid expensive mistakes that are difficult to remedy, and is by far the most efficient and cost-effective method for designing a product that is inclusive to all.</p>
<p>This responsibility does not rest solely with your developers. Every member of the team can take an active role in ensuring the accessibility of a product.</p>
<h3 id="legal" tabindex="-1">Legal</h3>
<p>Every organisation has a legal responsibility to make sure their site is accessible. The legislation will vary depending on the location and the product or service, and the type of the organisation. For a list of relevant legislation, broken down by location, read <a href="https://www.forbes.com/sites/forbesbusinesscouncil/2021/11/19/a-guide-to-international-web-accessibility-laws-and-policies/?sh=20d8c0e76083">Forbes' Guide To International Web Accessibility Laws And Policies</a>.</p>
<p>It could be costly, time-consuming and reflect badly on the company as a whole if these standards are not met and a case is brought forward against them.</p>
<h3 id="ethical" tabindex="-1">Ethical</h3>
<p>To include people with disabilities is undoubtedly the right thing to do. Many companies have a focus on being ethical and inclusive, and want to reflect that in their diverse workforce. An accessible website or app reflects these values and empowers your employees and customers to use an ethical product you can be proud of.</p>
<h3 id="excellence" tabindex="-1">Excellence</h3>
<p>Your site will be more readable, more easily operable, and clear. Good websites and apps, designed with accessibility in mind, work smoothly across multiple platforms, and are used in a wide range of circumstances.</p>
<p>As the <a href="https://www.w3.org/">World Wide Web Consortium (W3C)</a> puts it so succinctly;</p>
<blockquote>
<p>Web accessibility: essential for some, useful for all.</p>
</blockquote>
<h2 id="complete-our-training-module">Complete our training module</h2>
<p>Take this module, from one of our self-led <a href="https://tetralogical.com/services/self-led-training/">training courses</a>, to learn how to build a successful business case for accessibility. The module will take around 30 minutes to complete and you can start it at any time by selecting the <strong>Next</strong> button below.</p>
<iframe id="businessCaseDemo" title="Building a business case for accessibility, self led training" src="https://tetralogical.com/training-demo/module/" style="border: 0.15rem solid #B6A7BD; min-height: 90vh; width: 100%;">
</iframe>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more about <a href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/">sustainable accessibility</a> and how to embed accessibility within your organisation, with our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service.</p>
<p>Updated 17 November 2025.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: landmarks</title>
    <link href="https://tetralogical.com/blog/2022/03/18/landmarks/"/>
    <updated>2022-03-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/03/18/landmarks/</id>
    <content type="html"><![CDATA[
        <p>Most websites have common areas of content like a header and footer, a main content area, and one or more navigation blocks. Sighted people can identify these areas based on the way they're styled and the content they contain, but people who are blind cannot do that quite as efficiently. Landmarks, like <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a> and <a href="https://tetralogical.com/blog/2022/04/29/lists/">lists</a>, offer screen reader users a more comparable experience for identifying and navigating between different areas of content.</p>
<p>The <a href="https://dictionary.cambridge.org/dictionary/english/landmark">Cambridge English Dictionary</a> describes a landmark like this:</p>
<blockquote>
<p>A building or place that is easily recognised, especially one that you can use to judge where you are.</p>
</blockquote>
<p>For example, if you were in London and you could see the tower that contains <a href="https://en.wikipedia.org/wiki/Big_Ben">Big Ben</a>, you would know that you were in Westminster.</p>
<p>Landmarks on the web do the same thing. When you use a screen reader to navigate into an area with a landmark, the screen reader tells you what the landmark is, and you can use that information to work out where you are and what that area of the page is all about.</p>
<h2 id="common-landmarks" tabindex="-1">Common landmarks</h2>
<p>These are the areas of content most often marked up as landmarks:</p>
<ul>
<li>Header (banner)</li>
<li>Footer</li>
<li>Main content</li>
<li>Navigation</li>
<li>Complementary content</li>
<li>Search</li>
</ul>
<p><img src="https://tetralogical.com/blog/2022/03/18/landmarks/tl-about-regions.jpg" alt="The TetraLogical About us page showing landmarks for banner (header), navigation and main" /></p>
<h2 id="planning-landmarks" tabindex="-1">Planning landmarks</h2>
<p>Start thinking about landmarks when you begin sketching out designs for your website. As common areas like the header and footer, main content area, navigation, and search  start to take shape, annotate your designs to indicate that they should be implemented as landmarks.</p>
<p>If the designs include areas of distinctly styled content that complements the main content, include them in your annotations too.</p>
<h2 id="implementing-landmarks" tabindex="-1">Implementing landmarks</h2>
<p>You can use HTML elements to provide most common landmarks. The exception is the search landmark, which can only be provided using ARIA. If you cannot use the HTML elements you need, you can use ARIA to create them instead.</p>
<h3 id="header-landmark" tabindex="-1">Header landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>Use the <code>&lt;header&gt;</code> element</p>
  </dd>
  <dd>
<p>Note that if the <code>&lt;header&gt;</code> element is inside an <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;nav&gt;</code>, or <code>&lt;section&gt;</code> element, the landmark should not be exposed to screen readers</p>
  </dd>
  <dt>ARIA</dt>
  <dd>
<p>Use <code>role=&quot;banner&quot;</code> on the element that contains the header content</p>
   </dd>
  <dd>
<p>Note that if the container element is inside an <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;nav&gt;</code>, or <code>&lt;section&gt;</code> element, the landmark should not be exposed to screen readers</p>
  </dd>
</dl>
<h3 id="footer-landmark" tabindex="-1">Footer landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>Use the <code>&lt;footer&gt;</code> element</p>
  </dd>
  <dd>
<p>Note that if the <code>&lt;footer&gt;</code> element is inside an <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;nav&gt;</code>, or <code>&lt;section&gt;</code> element, the landmark should not be exposed to screen readers</p>
   </dd>
  <dt>ARIA</dt>
  <dd>
<p>Use <code>role=&quot;contentinfo&quot;</code> on the element that contains the footer content</p>
  </dd>
  <dd>
<p>Note that if the container element is inside an <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;nav&gt;</code>, or <code>&lt;section&gt;</code> element, the landmark should not be exposed to screen readers</p>
  </dd>
</dl>
<h3 id="main-landmark" tabindex="-1">Main landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>Use the <code>&lt;main&gt;</code> element</p>
  </dd>
  <dt>ARIA</dt>
  <dd>
<p>Use <code>role=&quot;main&quot;</code> on the element that contains the main content</p>
  </dd>
</dl>
<h3 id="navigation-landmark" tabindex="-1">Navigation landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>Use the <code>&lt;nav&gt;</code> element</p>
  </dd>
  <dt>ARIA</dt>
   <dd>
<p>Use <code>role=&quot;navigation&quot;</code> on the element that contains the navigation</p>
  </dd>
</dl>
<h3 id="complementary-landmark" tabindex="-1">Complementary landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>Use the <code>&lt;aside&gt;</code> element</p>
  </dd>
  <dt>ARIA</dt>
  <dd>
<p>Use <code>role=&quot;complementary&quot;</code> on the element that contains the complementary information</p>
  </dd>
</dl>
<h3 id="search-landmark" tabindex="-1">Search landmark</h3>
<dl>
  <dt>HTML</dt>
  <dd>
<p>There is no HTML element with a built-in search landmark</p>
  </dd>
  <dt>ARIA</dt>
  <dd>
<p>Use <code>role=&quot;search&quot;</code> on the element that contains the search</p>
  </dd>
</dl>
<h2 id="using-landmarks" tabindex="-1">Using landmarks</h2>
<p>Every screen reader has at least one command or gesture for navigating between landmarks.</p>
<h3 id="screen-readers-on-windows-and-macos" tabindex="-1">Screen readers on Windows and macOS</h3>
<dl>
  <dt>Narrator (Windows)</dt>
  <dd>
<p>Use <kbd>Capslock</kbd> + <kbd>Space</kbd> to turn on scan mode, then use <kbd>d</kbd> to move to the next landmark or <kbd>Shift</kbd> + <kbd>d</kbd> to move to the previous landmark</p>
  </dd>
  <dt>NVDA (Windows)</dt>
  <dd>
<p>Use <kbd>d</kbd> to move to the next landmark or <kbd>Shift</kbd> + <kbd>d</kbd> to move to the previous landmark</p>
  </dd>
  <dt>JAWS (Windows)</dt>
  <dd>
<p>Use <kbd>r</kbd> to move to the next landmark or <kbd>Shift</kbd> + <kbd>r</kbd> to move to the previous landmark</p>
  </dd>
  <dt>VoiceOver (macOS)</dt>
  <dd>
<p>Use <kbd>Control</kbd>, <kbd>Option</kbd> + <kbd>u</kbd> to open the rotor, use <kbd>Left arrow</kbd> or <kbd>Right arrow</kbd> to navigate to the list of available landmarks, then use <kbd>Up arrow</kbd> or <kbd>Down arrow</kbd> to move to the desired landmark</p>
  </dd>
</dl>
<h3 id="screen-readers-on-android-and-ios" tabindex="-1">Screen readers on Android and iOS</h3>
<dl>
  <dt>TalkBack (Android)</dt>
  <dd>
<p>Swipe up and right in a single gesture, navigate the options until you hear &quot;landmarks&quot;, then swipe left or right to find the landmark you want</p>
  </dd>
  <dt>VoiceOver (iOS)</dt>
  <dd>
<p>Rotate two fingers on the screen until you hear &quot;landmarks&quot;, then swipe up or down to find the landmark you want</p>
  </dd>
</dl>
<h2 id="tips-for-creating-landmarks" tabindex="-1">Tips for creating landmarks</h2>
<ul>
<li>Try to put all content inside a landmark area, it helps make sure screen reader users don't accidentally miss something</li>
<li>Use the visual design of your website to guide your choice of landmarks</li>
<li>Consider <a href="https://tetralogical.com/blog/2022/02/28/headings/">headings</a> and landmarks together, these should complement each other so parts of the page are discoverable, for example, try and position the heading level 1, <code>&lt;h1&gt;</code>, immediately after the start of the main landmark as this is a logical place to find it</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#info-and-relationships">WCAG 2.1 Success Criterion 1.3.1 Info and Relationships (Level A)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.w3.org/TR/wai-aria-practices/examples/landmarks/index.html">W3C: WAI-ARIA landmarks</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/landmark_role">MDN: Landmark roles</a></li>
<li><a href="https://webaim.org/techniques/semanticstructure/">WebAIM: Semantic Structure: Regions, Headings, and Lists</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: session timeouts</title>
    <link href="https://tetralogical.com/blog/2022/03/07/session-timeouts/"/>
    <updated>2022-03-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/03/07/session-timeouts/</id>
    <content type="html"><![CDATA[
        <p>Session timeouts are designed to protect privacy and security, but if they’re implemented incorrectly, they can prevent people from completing tasks on a website.</p>
<p>Typical problems include:</p>
<ul>
<li>The session times out too quickly. People with cognitive and learning disabilities, keyboard users, and those who use assistive technologies like screen readers, may need more time to read through a page or to perform specific tasks</li>
<li>The site has a timeout notification, and an option to extend the session. But the notification is not explicitly announced by assistive technologies - people who use a screen reader may not even be aware of it</li>
<li>There is an option to extend the timeout, but there is not enough time for a person using a keyboard to activate the option before the timeout ends</li>
</ul>
<h2 id="implementing-session-timeouts" tabindex="-1">Implementing session timeouts</h2>
<p>Avoid using any form of time limit. However, there may be situations where a time limit or session timeout is unavoidable.</p>
<p>Right from the outset, make sure that the default session duration is generous enough that it doesn’t put anyone under pressure. This will depend on the amount of content provided on each page, and the time that is required on average to complete any activities on those pages.</p>
<p>It’s a good idea to provide a visible indication on the page about any session timeouts. As an example, a site could provide a discreet timer as part of its overall navigation or interface.</p>
<p><img src="https://tetralogical.com/blog/2022/03/07/session-timeouts/timeout-indicator.png" alt="Part of a site navigation, with the current user’s name 'Patrick Lauke', a logout button, and a timer showing '5 Minutes'" /></p>
<p>Make sure that changes to the timer are conveyed to people using assistive technologies. Generally, this is done by making the timer an <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions">ARIA live region</a>.</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">aria-live</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>polite<span class="token punctuation">"</span></span> <span class="token attr-name">aria-atomic</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Time remaining: 5 Minutes<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span></code></pre>
<p>If the site has a user profile or settings page, consider adding options for people to adjust the specific timeout limit, or to turn off session timeouts altogether.</p>
<p>If the session timeout is intended to automatically log out &quot;inactive&quot; visitors, consider automatically resetting/extending the timeout whenever a person moves their mouse or uses the keyboard while on a page, rather than just basing &quot;activity&quot; on new page loads.</p>
<p>When a session timeout is about to occur, show a dialog that allows people to extend the session.</p>
<p><img src="https://tetralogical.com/blog/2022/03/07/session-timeouts/timeout-dialog.png" alt="A dialog box with a countdown and text &quot;Automatic logout in 0:18. Would you like to continue with online banking?&quot; and a &quot;Continue&quot; button" /></p>
<p>When the dialog appears, move focus to it programmatically. This ensures that the timeout warning message is announced by assistive technologies. For people using screen magnification, this will also result in their zoomed-in viewport being moved to / centred on the dialog, so that they won’t miss it accidentally. See <a href="https://www.w3.org/TR/wai-aria-practices-1.2/#alertdialog">WAI-ARIA Authoring Practices 1.2 - Alert and Message Dialogs</a> for implementation advice.</p>
<p>Provide a clear warning message that the session is about to end, and offer a way to extend the timeout. As the focus has already been moved to the dialog, the option should be easy to reach for keyboard users.</p>
<p>Make sure to provide enough time before the actual timeout to enable people to read, understand, and respond to the alert dialog.</p>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#timing-adjustable">WCAG 2.1 Success Criterion 2.2.1 Timing Adjustable (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#status-messages">WCAG 2.1 Success Criterion 4.1.3 Status Messages (Level AA)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://tink.uk/accessible-timeout-notifications/">Tink: Accessible timeout notifications</a></li>
<li><a href="https://www.w3.org/WAI/perspective-videos/notifications/">W3C Perspectives: Notifications and feedback</a></li>
<li><a href="https://www.w3.org/TR/wai-aria-practices-1.2/#alertdialog">W3C WAI-ARIA Authoring Practices 1.2: Alert and Message Dialogs</a></li>
<li><a href="https://www.tpgi.com/a-web-of-anxiety-accessibility-for-people-with-anxiety-and-panic-disorders-part-1/">A web of anxiety: accessibility for people with anxiety and panic disorders [Part 1]</a></li>
<li><a href="https://www.tpgi.com/a-web-of-anxiety-accessibility-for-people-with-anxiety-and-panic-disorders-part-2/">A web of anxiety: accessibility for people with anxiety and panic disorders [Part 2]</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: headings</title>
    <link href="https://tetralogical.com/blog/2022/02/28/headings/"/>
    <updated>2022-02-28T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/02/28/headings/</id>
    <content type="html"><![CDATA[
        <p>Well structured content helps everybody understand and navigate documents. When coded properly in the HTML, headings, <a href="https://tetralogical.com/blog/2022/04/29/lists/">lists</a>, and <a href="https://tetralogical.com/blog/2022/03/18/landmarks/">landmarks</a> help people who use screen readers (software that reads what’s on screen) both scan and navigate pages.</p>
<p>Visually, it is possible to scan a page to find the content you want. People <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> can do the same using keyboard commands and gestures for navigating between headings. This makes it possible for people to scan the content to find something of interest quickly. On the web, screen readers will also announce the level of each heading, helping people build up a mental map of content on the page.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/28/headings/photo-hasmukh-6.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his Metro Blind Sport cricket club shirt, sitting and proudly holding the top of his bat with both hands as the bottom rests on the floor as if he is waiting to go into bat" />
<figcaption><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user">Hasmukh</a>, a blind cricketer and screen reader user, says &quot;When I click on a link and go to a new page, I expect the information to be right on the top of the new page or under a heading. Otherwise, I spend so much time looking for the information that should be just there!&quot;</figcaption>
</figure>
<h2 id="creating-robust-headings" tabindex="-1">Creating robust headings</h2>
<p>Headings should introduce the content that follows so people can decide if they're in the right place or not, and in web content, headings should be sequential, so the different heading levels reflect the hierarchy of different sections of content.</p>
<dl>
<dt>HTML</dt>
<dd>
Use the `<h1>` to `<h6>` elements to create a heading hierarchy</h6></h1></dd>
<dt>Android</dt>
<dd>
Set the `android:accessibilityHeading` attribute to `true` on the view that represents the heading</dd>
<dt>iOS</dt>
<dd>
use `UIAccessibilityTraitHeader` to indicate the text is a heading</dd>
</dl>
<h3 id="example-of-html-headings" tabindex="-1">Example of HTML headings</h3>
<p>In the following image shows headings on the TetraLogical <a href="https://tetralogical.com/services/">services</a> page with the headings highlighted using <a href="https://accessibilityinsights.io/">Accessibility Insights</a>.</p>
<p><img src="https://tetralogical.com/blog/2022/02/28/headings/tl-services-headings-highlighted-accessibility-insights.png" alt="The TetraLogical services page with the headings highlighted using Accessibility Insights" /></p>
<p>The coding for the headings is as follows:</p>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>main</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h1</span><span class="token punctuation">></span></span>WCAG primer<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h1</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>The Web Content Accessibility Guidelines (WCAG) are...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>History<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>WCAG has been the internationally recognised standard for web accessibility...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Principles<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>The structure of WCAG changed between WCAG 1.0 and WCAG 2.0...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h3</span><span class="token punctuation">></span></span>Perceivable<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h3</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>People will perceive, or become aware of, content in different ways...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h3</span><span class="token punctuation">></span></span>Operable<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h3</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>People will operate, or use, content in different ways...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>

<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>main</span><span class="token punctuation">></span></span></code></pre>
<h2 id="tips-for-an-effective-heading-structure" tabindex="-1">Tips for an effective heading structure</h2>
<ul>
<li>Position the <code>&lt;h1&gt;</code> immediately after the <code>&lt;main&gt;</code> element in the content order, this makes the start of the main content more discoverable for people using a screen reader</li>
<li>Think carefully about how many headings there are in a page, too many headings can make navigation cluttered, too few can make it harder to find the right section of content</li>
<li>Consider the heading structure together with lists and landmark regions, these should all work together so every part of the page is discoverable</li>
<li>Do not code headings on text just for visual effect, for example, on text that is a byline or subtitle</li>
<li>Try and make the heading structure within a page consistent across the website or application where possible, for example, the <code>&lt;h1&gt;</code> is always after the <code>&lt;main&gt;</code> element</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#info-and-relationships">WCAG 2.1 Success Criterion 1.3.1 Info and Relationships (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#headings-and-labels">WCAG 2.1 Success Criterion 2.4.6 Headings and Labels (Level AA)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.nomensa.com/blog/2010/how-use-html-headings">Nomensa: How to use HTML headings</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">MDN: HTML elements reference</a></li>
<li><a href="https://developer.apple.com/documentation/uikit/uiaccessibility/uiaccessibilitytraits">Apple: UIKit accessibility traits</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/accessibility/principles#headings_within_text">Google: Principles for improving Android app accessibility</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: colour and meaning</title>
    <link href="https://tetralogical.com/blog/2022/02/15/colour-meaning/"/>
    <updated>2022-02-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/02/15/colour-meaning/</id>
    <content type="html"><![CDATA[
        <p>Colour is a valuable tool for communicating meaning. But if you can't see colour, then meaning is lost. Always plan to use colour to convey meaning in combination with another means of identification.</p>
<p>Colour and meaning is difficult or impossible to see for many people, for example:</p>
<ul>
<li>People who are blind <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> wont be able to see colour</li>
<li>People with low vision can find colours difficult to see</li>
<li>People who are colour blind may not be able to tell the difference between certain colour combinations</li>
<li>People with Autistic Spectrum Disorders may not understand or interpret colours in the way they are intended</li>
<li>People browsing with black and white displays wont be able to see colours</li>
</ul>
<h2 id="rules-for-using-colour" tabindex="-1">Rules for using colour</h2>
<p>As well as having good <a href="https://tetralogical.com/blog/2022/02/04/colour-contrast/">colour contrast</a>, colour should never be the only way to identify something. Colour must always be accompanied by other means of identification. This could be visible text, underlines and borders for <a href="https://tetralogical.com/blog/2023/01/13/foundations-visible-focus-styles/">visible focus styles</a>, or shapes depending on the type of content being displayed.</p>
<h3 id="form-errors" tabindex="-1">Form errors</h3>
<p>If highlighting form errors with a visual change, for example by placing a red border around a form field, also include an error message in text next to the field.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-error-incorrect.png" alt="Three text fields labeled 'First name (required)', 'Second name (required)' and 'Age (required)'. The first name field contains the value of 'John'. The age field contains the value of 42. The second name field is empty. The label text and the border for the field are shown in red to indicate it's in an error state." />
<figcaption>Incorrect use of colour alone to indicate a field is in an error state.</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-error-correct.png" alt="The same content as in the previous image, except a visible text message is now below the error field 'Error: Please enter your second name'." />
<figcaption>Use of an additional visual cue (a visible error message in text) below the affected field.</figcaption>
</figure>
<h3 id="links" tabindex="-1">Links</h3>
<p>Links embedded in sections of text should be underlined, have borders, or some other visual change as well as be in a different colour so they are easy to see.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-link-poor.png" alt="The text 'Please read our terms and conditions for more information'. 'Terms and conditions' is a link and is distinguishable only by colour alone (light blue instead of black text)." />
<figcaption>Link embedded within a section of text that is only identifiable via colour alone.</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-link-good.png" alt="The same text as before, only now the link is underlined." />
<figcaption>Use of an underline more clearly distinguishes the link text from the surrounding non-link text.</figcaption>
</figure>
<h3 id="icons" tabindex="-1">Icons</h3>
<p>Icons must have different shapes, text labels, or some other visual change as well as different colours.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-shape-poor.png" alt="A table with two columns: Transaction and Submitted for Review. The transaction cells are 'Initial Outline', 'Draft Plans' and 'Final Plans'. Circles are placed in the Submitted For Review column to indicate whether these have been submitted (green) or not submitted (red). The circles for 'Initial Outline' and 'Draft Plans' are green, and red for 'Final Plans'." />
<figcaption>Incorrect use of colour alone to distinguish between submitted and non-submitted items.</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/colours-and-colour-contrast-shape-good.png" alt="The same table as before, but now there are tick and cross icons inside the green and red circles respectively to distinguish them." />
<figcaption>Use of additional icons to further distinguish between submitted and non-submitted items.</figcaption>
</figure>
<h3 id="graphs-and-charts" tabindex="-1">Graphs and charts</h3>
<p>Graphs and charts must combine colour with text labels or patterns and legends.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/wcag-colour-meaning-graph-bad-example-1.jpg" alt="A line chart showing three lines of different colours and one dashed line. A legend is also provided" />
<figcaption>Incorrect use of colour to indicate different lines in a chart. One line is dashed however and is the only line that can be identified by people with vision who can not see colour</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2022/02/15/colour-meaning/wcag-colour-meaning-graph-good-example.jpg" alt="A line chart showing five lines of different colours with each using a different patterns such as dots, dashes, or a lines with a shape on. A legend is also provided." />
<figcaption>Correct use of colour to indicate different lines in a chart in combination with different patterns and a legend.</figcaption>
</figure>
<h2 id="tips-for-using-colour-to-convey-meaning" tabindex="-1">Tips for using colour to convey meaning</h2>
<ul>
<li>Design content without colour first, then add colour to reinforce meaning</li>
<li>Switch your screen to black and white to see if you can identify links, error messages and other elements that convey meaning</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#use-of-color">WCAG 2.1 Success Criterion 1.4.1 Use of Color (Level A)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/nocoffee/">NoCoffee Vision Simulator for Firefox</a></li>
<li><a href="https://www.highcharts.com/docs/accessibility/accessibility-module">Highcharts: Accessibility module</a></li>
</ul>
<p>For more information about the Web Content Accessibility Guidelines, read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> and find out more about embedding accessibility into design in <a href="https://tetralogical.com/blog/2022/06/24/accessible-design-systems/">accessible design systems</a>.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>
<p>Updated 24 January 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: colour contrast</title>
    <link href="https://tetralogical.com/blog/2022/02/04/colour-contrast/"/>
    <updated>2022-02-04T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/02/04/colour-contrast/</id>
    <content type="html"><![CDATA[
        <p>Good contrast is about using colours that provide enough variation between the content and background. This is particularly important for people who have conditions that affect vision or colour perception, as well as people browsing on mobile in different light conditions.</p>
<p>People find it difficult to read content for many reasons:</p>
<ul>
<li>Colour Vision Deficiency, otherwise known as colour-blindness, means some people have difficulty recognising certain colours or any colours at all</li>
<li>Ageing impacts people's ability to see colours</li>
<li>Differences in device size, resolution and contrast can all affect colour quality</li>
<li>Bright conditions, such as sunlight, can reduce someone's ability to see what's on the screen clearly</li>
</ul>
<p>Another consideration is the psychological impact colours can have on some people:</p>
<ul>
<li>People with Autistic Spectrum Disorders can be sensitive to sensory information including very bright or high-contrasting colours</li>
<li>People with Dyslexia can find text on a pure white background dazzling and difficult to read</li>
<li>People with low vision can find text on a patterned or textured background difficult to read</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/02/04/colour-contrast/photo-steve-6.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is standing facing into the camera while he holds his book or poetry and photos open in front of him" />
<figcaption>Steve, a deaf and low vision photographer and poet, would like to see better use of colour contrast and bigger font sizes in menus.</figcaption>
</figure>
<h2 id="colour-contrast-ratios" tabindex="-1">Colour contrast ratios</h2>
<p>A colour contrast <a href="https://www.bbc.co.uk/bitesize/topics/zsq7hyc/articles/z8kfnbk">ratio</a> describes the colour of an object (such as text) against the colour of its background. It's written as object:background - for example 4.5:1.</p>
<p>In some cases, it's necessary to think about more than one contrast ratio per element. For example, the colour of a button must contrast clearly against its background, and the button's text label must also contrast well against the button's colour.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/04/colour-contrast/colours-and-colour-contrast-button-poor.png" alt="A simple button with white 'Submit' text on a light grey background. The button is on a white background." />
<figcaption> Typical example of a button with bad contrast. The contrast of the white (#FFFFFF) &quot;Submit&quot; text against the light gray (#CCCCCC) background is just 1.6:1.</figcaption>
</figure>
<figure>
<img src="https://tetralogical.com/blog/2022/02/04/colour-contrast/colours-and-colour-contrast-button-good.png" alt="A simple button with white 'Submit' text on a very dark grey background. The button is on a white background." />
<figcaption>Typical example of a button with good  contrast. The contrast of the white (#FFFFFF) &quot;Submit&quot; text against the dark gray (#222222) background is 15.9:1.</figcaption>
</figure>
<h3 id="contrast-rules-for-text" tabindex="-1">Contrast rules for text</h3>
<p>There are two contrast requirements for text:</p>
<ul>
<li>Large text (at least 24px, or bold and at least 19px) should have a minimum contrast ratio of 3:1</li>
<li>Small text (less than 24px, except for the bold rule outlined above) should have a minimum contrast ratio of 4.5:1</li>
</ul>
<h3 id="contrast-rules-for-graphics-and-user-interface-components" tabindex="-1">Contrast rules for graphics and user interface components</h3>
<p>A contrast ratio of 3:1 is required for graphics containing information needed to understand the content and interactive elements. This includes form fields, links and buttons, and any visual cues that indicate their state.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/02/04/colour-contrast/colours-and-colour-contrast-form-input-poor.png" alt="Grey borders used for email and password form inputs set against a white background" />
<figcaption> Typical example of form fields with bad contrast on the input outline. The contrast of the white (#FFFFFF) against the light gray (##DADBDA) outline is just 1.4:1.</figcaption>
</figure>
<h3 id="exclusions-to-the-contrast-rules" tabindex="-1">Exclusions to the contrast rules</h3>
<p>There are some types of content that don't need to meet colour contrast requirements:</p>
<ul>
<li>An image of text that is not essential to understanding the meaning of the content</li>
<li>A decorative graphic that does not have any meaning or purpose</li>
<li>Text which is part of a logo or brand identity</li>
</ul>
<h2 id="tips-for-colour-contrast" tabindex="-1">Tips for colour contrast</h2>
<ul>
<li>View your content on a mobile when outside to see if it is still readable in different light conditions</li>
<li>Always try and <strong>exceed</strong> the colour contrast minimum, not just meet it</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#contrast-minimum">WCAG 2.1 Success Criterion 1.4.3 Contrast (Minimum) (Level AA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#non-text-contrast">WCAG 2.1 Success Criterion 1.4.11 Non-text Contrast (Level AA)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://developer.paciellogroup.com/resources/contrastanalyser/">TPG: Colour Contrast Analyser</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/nocoffee/">NoCoffee Vision Simulator for Firefox</a></li>
<li><a href="https://www.w3.org/WAI/perspective-videos/contrast/">W3C Perspectives: Color contrast</a></li>
<li><a href="https://www.youtube.com/watch?v=HtUlonNewGk">ID24: Rethinking color contrast by Jared Smith</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: text descriptions</title>
    <link href="https://tetralogical.com/blog/2022/01/24/text-descriptions/"/>
    <updated>2022-01-24T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/01/24/text-descriptions/</id>
    <content type="html"><![CDATA[
        <p>Text descriptions are primary content, and when images do not have a text description, anyone who cannot see the image will not know its purpose. This means people may be unable to access content or perform related tasks.</p>
<p>Appropriate text descriptions provide the following benefits:</p>
<ul>
<li>People <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> or <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> who cannot see the image can hear and understand its meaning or purpose</li>
<li>People <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a> can target image buttons and graphical links by including the text description in the voice command if the image doesn't load and the text description is visible</li>
<li>People on slow networks where images don't load properly or who have them switched off can read the text description  shown in place of the image in some browsers</li>
<li>Search engines are better able to index images with text descriptions</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/photo-hasmukh-6.jpg" alt="A black and white photo of Hasmukh, an older man of South Asian heritage. He is wearing his Metro Blind Sport cricket club shirt, sitting and proudly holding the top of his bat with both hands as the bottom rests on the floor as if he is waiting to go into bat" />
<figcaption><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user">Hasmukh</a>, a blind cricketer and screen reader user, says &quot;Emails that have graphics with no text descriptions means I can't use them! This is a big problem with meeting invites. I've actually missed a few meetings because I can't read the time or date or find the join meeting button&quot;.</figcaption>
</figure>
<h2 id="deciding-the-type-of-image" tabindex="-1">Deciding the type of image</h2>
<p>The first step is to decide what type of image it is then what kind of text description it needs.</p>
<p>Ask yourself:</p>
<ul>
<li>Does this image convey any information?</li>
<li>If this image was removed:
<ul>
<li>Would it affect the meaning of the content?</li>
<li>Would it change the user's experience?</li>
</ul>
</li>
</ul>
<p>If your answer is &quot;No, the image does not convey meaning&quot;, it is probably decorative and doesn't need a text description.</p>
<p>If your answer is &quot;yes&quot; in each case, then you may have one of the following types of image, all of which need text descriptions:</p>
<ul>
<li>Functional image</li>
<li>Informative image</li>
<li>Image of text</li>
<li>Complex image</li>
</ul>
<h2 id="decorative-images" tabindex="-1">Decorative images</h2>
<p>Decorative images are used to improve the visual appearance of the page. They don't convey any information or add to the user experience. Types of decorative images include:</p>
<ul>
<li>Visual styling (borders, spacers, corners)</li>
<li>Images which are described by the surrounding text</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/text-descriptions-decorative.png" alt="A screenshot of a decorative separator made up of four coloured circles" />
<figcaption>Typical example of a decorative image from the footer of the TetraLogical website.</figcaption>
</figure>
<h3 id="text-descriptions-for-decorative-images" tabindex="-1">Text descriptions for decorative images</h3>
<p>Decorative images do not need text descriptions because they do not convey information or meaning. It is still important to handle decorative images in the right way though.</p>
<dl>
<dt>HTML</dt>
  <dd>Use the <code>alt</code> attribute on the <code>&lt;img&gt;</code> element but do not give it a value: <code>alt=""</code>. If a different approach is used to generate images, for example an icon font), apply <code>aria-hidden="true"</code> to the element used for the image.</dd>
<dt>Android</dt>
  <dd>Use the <code>android:contentDescription</code> attribute on the image view, and set its value to <code>@null</code></dd>
<dt>iOS</dt>
<dd>Set the <code>isAccessibilityElement</code> property on the image to <code>false</code> and do not provide a label</dd>
</dl>
<h2 id="images-of-text" tabindex="-1">Images of text</h2>
<p>Avoid images of text where possible because the visual quality of the text deteriorates for people <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a>. If you have to use an image of text, the text description must contain the same words as the image itself.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/text-descriptions-image-of-text.png" alt="A 'Sale now on! 25% off all products' image of text." />
<figcaption>Typical example of an image of text.</figcaption>
</figure>
<h2 id="functional-images" tabindex="-1">Functional images</h2>
<p>Functional images form part of interactive elements like links or buttons. The text description for a functional image should convey the intended action of the interactive element. For example, a button to start a new email might show an icon of a pen, but the text description should be &quot;New email&quot;, not &quot;Pen icon&quot; because it's the button's action that's the important information.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/text-descriptions-email.png" alt="A screenshot of an email icon made up of an envelope and a pointing arrow." />
<figcaption>Typical example of a functional image forming part of a button (source: Microsoft Outlook)</figcaption>
</figure>
<h2 id="informative-images" tabindex="-1">Informative images</h2>
<p>Informative images communicate information or add to the user experience in some way. Types of informative images include:</p>
<ul>
<li>Photos that show people, scenery or objects that add to the experience of the content</li>
<li>Pictures of products and product variations</li>
<li>Credit card symbols for payment options</li>
</ul>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/text-descriptions-informative.png" alt="A screenshot of a cat followed by the text 'Pets are primarily kept for a person's company, rather than as a working animal. Two of the most popular pets are cats and dogs, but other animals commonly kept include rabbits, gerbils, parrots, fish, and guinea pigs'." />
<figcaption>Typical example of an informative image. The image is closely related to the subject matter of the page content but not directly discussed. However, the fact that the image shows a cat means it is strongly recommended that a text alternative is provided - such as &quot;An image of a ginger cat sitting on a kitchen floor&quot;.</figcaption>
</figure>
<h3 id="text-descriptions-for-images-of-text%2C-functional-and-informative-images" tabindex="-1">Text descriptions for images of text, functional and informative images</h3>
<dl>
<dt>HTML</dt>
<dd>Use the <code>alt</code> attribute on the <code>&lt;img&gt;</code> element to add the text description</dd>
<dt>Android</dt>
<dd>Use the <code>android:contentDescription</code> on the image view to add the text description</dd>
<dt>iOS</dt>
<dd>Use the <code>accessibilityLabel</code> attribute on the image to add the text description</dd>
</dl>
<h2 id="complex-images" tabindex="-1">Complex images</h2>
<p>Complex images convey detailed, factual information like graphs and charts, illustrations and infographics. The text description must be accompanied by a more extended description or an alternative presentation of the image.</p>
<figure>
<img src="https://tetralogical.com/blog/2022/01/24/text-descriptions/text-descriptions-complex.png" alt="A screenshot of a pie chart that shows the sales at Acme Supermarket for April 2018: 14% Clothing, 16% Electrical goods and 70% food." />
<figcaption>Typical example of a complex image, a pie chart.</figcaption>
</figure>
<h3 id="text-descriptions-for-complex-images" tabindex="-1">Text descriptions for complex images</h3>
<dl>
<dt>HTML</dt>
<dd>Use the <code>alt</code> attribute on the <code>&lt;img&gt;</code> element to add a short text description; then either:
<ul>
<li>Use the <code>aria-describedby</code> attribute to point to an element on the same page that contains a longer description of the image</li>
<li>Use the <code>&lt;details&gt;</code> and <code>&lt;summary&gt;</code> elements (with the <code>&lt;img&gt;</code> element inside the <code>&lt;summary&gt;</code> element) to create a disclosure component that reveals the longer description on request</li>
</ul>
</dd>
<dt>Android</dt>
<dd>Use the <code>android:contentDescription</code> on the image view to add a long text description</dd>
<dt>iOS</dt>
<dd>Use the <code>accessibilityLabel</code> attribute on the image to add a long text description</dd>
</dl>
<h2 id="tips-for-writing-effective-text-descriptions" tabindex="-1">Tips for writing effective text descriptions</h2>
<p>Think about how you would describe the image to someone on the phone. Here are some other things to think about:</p>
<ul>
<li>Keep text descriptions short and to the point, no more than a few words is about right</li>
<li>Think about the context of the image; the same image may have a different text description depending on how it's context of use</li>
<li>Do not use phrases like &quot;picture of…&quot;, &quot;image of…&quot; or &quot;… graphic&quot; because screen readers will know it's an image based on the <code>&lt;img&gt;</code> element or the properties of the image in native apps</li>
<li>If it's relevant, use phrases like &quot;Illustration of…&quot;, &quot;Sketch of…&quot; or &quot;water colour painting of…&quot; because they can help convey the style and nature of the image</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#non-text-content">WCAG 2.1 Success Criterion 1.1.1 Non-text Content (Level A)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://www.w3.org/WAI/tutorials/images/">W3C Accessibility Tutorials: Image concepts</a></li>
<li><a href="https://tink.uk/text-descriptions-emotion-rich-images/">Tink: Text descriptions and emotion rich images</a></li>
<li><a href="https://tink.uk/thoughts-on-skin-tone-and-text-descriptions/">Tink: Thoughts on text descriptions and skin tone</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">MDN: HTML elements reference</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Quick accessibility tests anyone can do</title>
    <link href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/"/>
    <updated>2022-01-18T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/</id>
    <content type="html"><![CDATA[
        <p>These 10 quick accessibility tests can help you understand how easy or difficult it is for people with disabilities to perceive, operate and understand content on your website or mobile app. The tests are helpful for anyone wishing to get an idea of a product's support for accessibility, including project managers, content editors, procurement managers, and many others.</p>
<p>The tests can be done in a few minutes without testing tools or specialised knowledge. While they do not replace the need for a more comprehensive accessibility assessment they can indicate how easy or difficult a product is to use for people with disabilities. For more information about what is involved in an accessibility assessment read <a href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/">accessibility conformance review</a>.</p>
<p>These tests cover three of the four Web Content Accessibility Guidelines (WCAG) 2.1 principles: perceivable, operable and understandable. These are discussed in more detail in our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a>.</p>
<p>You can view the tests below, as well as on the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKWTr9XWdW5hJ9tk512Ow0SE">Quick accessibility tests playlist on YouTube</a> or the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKVJsYABedyzqzoYDhxaFA2S">Quick accessibility tests with British Sign Language (BSL) playlist on YouTube</a>.</p>
<h2 id="testing-if-content-is-perceivable" tabindex="-1">Testing if content is perceivable</h2>
<p>Accessible products include two key characteristics: conveying information in alternative formats and adapting to people's preferences. This ensures essential information can be perceived by all, including people who cannot see or hear content, or need to modify its visual presentation.</p>
<h3 id="test-1%3A-captions" tabindex="-1">Test 1: captions</h3>
<p>If your content contains videos whose audio track conveys information, captions must be available for people unable to hear or understand the audio track. This includes:</p>
<ul>
<li>People with hearing disabilities</li>
<li>People whose first language is not the one used in the videos and want to also read what they hear</li>
<li>People who don't have a headset and are in a noisy environment</li>
<li>People in a quiet place who do not wish to disturb others</li>
</ul>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/capture.png" alt="A video player with captions at the bottom of the video" /></p>
<p>Identify where there are videos, then check the following:</p>
<ul>
<li>Captions (closed or open) are available when the audio track conveys information</li>
<li>Captions are accurate, for example they match the audio track</li>
<li>Captions are synchronised with the audio track</li>
</ul>
<div class="tabs" id="tabs_1773627714394718">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714394718_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714394718_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714394718_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ih7DZk-9US8" title="Quick accessibility test: captions video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714394718_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/hDlwTvjas00" title="Quick accessibility test: Captions (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Captions</p>
<p>[The screen fades to a still of a programme on BBC iPlayer with pale blue captions over a black background at the bottom of the screen]</p>
<p>Captions are used by many people; people who have hearing disabilities, people who are in a noisy environment, people whose first language is not the one used in the video. When captions are not provided, all these people have no access to the information in the audio track.</p>
<p>[The screen fades to show a video player that fades into the TetraLogical logo. The title &quot;Introducing TetraLogical&quot; is displayed under the player]</p>
<p>Check that all videos on your website have captions.</p>
<p>[The user hovers the cursor over the &quot;subtitles/closed captions&quot; icon on the player and enables captions. White text is now visible on a black background]</p>
<p>These can be permanently displayed or be available for people to turn on.</p>
<p>[The video plays soundlessly in the background as the subtitles continue to display]</p>
<p>Checking that captions are accurate and synchronised with the video content is also important; while automated captions can be useful in some situations, they should not be relied on.</p>
<p>[A video featuring Léonie talking about TetraLogical plays in the background with captions visible on the screen]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<p><a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">An inclusive approach to video production</a> describes approaches to video production that allows you to create accessible videos efficiently.</p>
<h3 id="test-2%3A-content-resizing" tabindex="-1">Test 2: content resizing</h3>
<p>People with vision disabilities and older people may need to increase or decrease the text size to read it comfortably. They can do so using the browser zoom functionality or their device accessibility settings. Text must then resize and reflow to fit the screen width, so people are not forced to scroll content horizontally to view it.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/zoom.png" alt="Zoom options on a web browser menu" /></p>
<p>Zoom content up to 400% on desktop (for websites) or enlarge the font size in your mobile device settings (for apps), then check the following:</p>
<ul>
<li>All text resizes accordingly</li>
<li>All content remains visible and readable, for example no text overlaps or is truncated</li>
<li>All content can be viewed without having to scroll horizontally (on websites)</li>
</ul>
<div class="tabs" id="tabs_1773627714395197">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395197_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395197_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395197_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/KzV-BjoXjHo" title="Quick accessibility test: content resizing video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395197_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/M47DPC1O50Q" title="Quick accessibility test: Content resizing (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Content resizing</p>
<p>[A section of the TetraLogical homepage is displayed with a window open showing various browser settings. The &quot;Zoom&quot; setting is highlighted at 125%]</p>
<p>Zoom is a commonly used feature of all browsers; people zoom in web pages for many different reasons: because they have forgotten their reading glasses, because they are looking at a website on a small screen, or because they have low vision.</p>
<p>The content on your website must resize and reflow as people zoom in.</p>
<p>[The screen zooms out so a large portion of the &quot;Services&quot; web page is visible from the TetraLogical website. The user navigates to the menu and increases the Zoom percentage incrementally so the content on the screen keeps enlarging]</p>
<p>Open your browser menu, find the Zoom functionality and zoom in up to 400%.</p>
<p>[A page from the TetraLogical website is loaded in Chrome, the browser menu is opened and the Zoom level is increased to 400%.</p>
<p>The user navigates down the page. All written content is visible within the window]</p>
<p>Check that all information and functionality remain available and fully legible, and that the content reflows so that there is no need to scroll horizontally to view it.</p>
<p>[All content on the page from the TetraLogical website resizes, remains visible and reflows to fit the screen. It is possible to view all content without having to scroll horizontally.]</p>
<p>Using responsive design is a great way to ensure that content resizes and reflows as expected.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="test-3%3A-colour-customisation" tabindex="-1">Test 3: colour customisation</h3>
<p>Many people cannot read text unless it is in a specific colour and against a particular background. For example, people with visual or reading disabilities, such as colour blindness or dyslexia, benefit from customising text and background colour. You want to ensure that your content adjusts as expected to any colour scheme that people may choose to use.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/hcm.png" alt="A page from the TetraLogical website in High Contrast mode (static text is white, links are yellow and the background is black)" /></p>
<p>Select a different colour scheme in the device settings, then check the following:</p>
<ul>
<li>All text adapts to the selected colour scheme</li>
<li>All text is still visible</li>
</ul>
<div class="tabs" id="tabs_1773627714395480">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395480_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395480_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395480_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/urRQNIowiEQ" title="Quick accessibility test: High Contrast mode video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395480_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/WHrutJdliPI" title="Quick accessibility test: High Contrast mode (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: High Contrast mode</p>
<p>[The macOS system preferences for accessibility are displayed in a window. The user is on the &quot;Display&quot; settings where a variety of options are available]</p>
<p>All devices have an option to change the colour of text and background; this is because many people find it easier to read text when it's in a particular colour, against a specific background.</p>
<p>[A Google search result page is shown with the background colour as black, links in bright yellow, and paragraph text in white]</p>
<p>For example, many may prefer to read white text on a black background.</p>
<p>[The page content stays the same but the colours change. The black background turns to light blue, the link text changes to a dark blue and paragraph text is now grey]</p>
<p>Others, grey text on a light blue background.</p>
<p>Websites and apps must adapt and remain usable in all colour schemes. Check if colours on your website can be customised.</p>
<p>[The screen changes to the TetraLogical homepage in the background as the user opens the Windows settings menu]</p>
<p>If you have a Windows machine, find the High Contrast option under Ease of Access in Settings and turn it on.</p>
<p>[The same happens on macOS as the user opens the &quot;Systems Preferences&quot; settings and navigates to &quot;Accessibility&quot;]</p>
<p>You can do the same on macOS by selecting the Invert Colors option under Display in the Accessibility settings.</p>
<p>[The TetraLogical homepage is displayed again, but the colours have inverted. Links are now bright yellow]</p>
<p>At this point, all text except for links should be white on a black background.</p>
<p>[The user navigates down the page where all content is displayed as intended]</p>
<p>Next, check that the content is still fully visible and understandable. For example, check that no informative images have suddenly disappeared from the page and that buttons are still recognisable.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="test-4%3A-visual-presentation-of-links" tabindex="-1">Test 4: visual presentation of links</h3>
<p>Links offer people an easy way to navigate content and find the information they want. When links are identified using colour alone, some people may struggle to notice them, for example:</p>
<ul>
<li>People unable to perceive some or all colours</li>
<li>People using an app in a very sunny or bright place</li>
<li>People using an app in a dim environment</li>
</ul>
<p>Using an additional visual cue, such as an underline, can help all sighted people find them.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/link-presentation.png" alt="A page from the TetraLogical website containing a link. The link is in a different colour and is underlined." /></p>
<p>Identify where there are Links, then check the following:</p>
<ul>
<li>They are identified via an underline or other visual cue</li>
</ul>
<div class="tabs" id="tabs_1773627714395667">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395667_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395667_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395667_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ZMilJDiij7s?si=QDNdL7fgjm_Q8xQ-" title="Quick accessibility test: Visual presentation of links" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395667_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/8o0AGw5y5js" title="Quick accessibility test: Visual presentation of links (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Visual presentation of links</p>
<p>[A block of black text appears, displayed on a white background. Certain words are coloured in a blue hue]</p>
<p>Links are often displayed in a different colour from static text, so that people can recognise them. However, not all people can perceive differences in colour.</p>
<p>[The text transforms to be completely uniform black writing]</p>
<p>Some have visual disabilities that impact colour perception.</p>
<p>To make it easy for people to recognise links, an additional visual cue should be used to differentiate them.</p>
<p>[The text changes back to the first version with the blue wording, except those words now have an underline]</p>
<p>A permanent underline is a common way to identify links, and can be perceived by all sighted people. Other visual cues can also be used, such as an icon next to links.</p>
<p>[The user navigates through several pages on the TetraLogical website. All have clear links, underlined and in a bright purple colour, that makes them easy to perceive]</p>
<p>Go through your website and check that links are not just identified by colour, but that they also have an additional visual cue.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="test-5%3A-text-legibility" tabindex="-1">Test 5: text legibility</h3>
<p>The fonts, styles and alignment can have a huge impact on the readability of text for some people. While there are no set rules around text fonts and alignment, simple and commonly used fonts and left-aligned text are easier to read. Styles such as bold, italic and all capitals can decrease text legibility, especially if used for long blocks of content.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/typography.png" alt="The same word &quot;accessibility&quot; displayed in a variety of fonts and styles" /></p>
<p>Identify headings, paragraphs, lists, labels and other text, then check the following:</p>
<ul>
<li>Simple and common fonts are used</li>
<li>Text is left-aligned</li>
<li>Bold, italics and capitalised text is used sparingly</li>
</ul>
<div class="tabs" id="tabs_177362771439521">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_177362771439521_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_177362771439521_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_177362771439521_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/PX3flsJpNQA" title="Quick accessibility test: Typography video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_177362771439521_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/97qLsKep-1M" title="Quick accessibility test: Typography (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Typography</p>
<p>[A white screen with the word &quot;Accessibility&quot; written multiple times appears. Each word is a different font, size, colour, or orientation]</p>
<p>Text formatting plays an important role in making content easy to read for all.</p>
<p>[Three words are highlighted in quick succession, each one in a clearly legible font]</p>
<p>While each person has their own preferences, simple and commonly used fonts are easier to recognise and read, as is left-aligned text.</p>
<p>[The TetraLogical &quot;Articles&quot; page appears on a browser and the user starts to navigate down the page]</p>
<p>Check that only a few simple fonts are consistently used across your website, and that text on all pages is left-aligned.</p>
<p>Also, check that bold, italic and all-capital text is not used for long blocks of content, as they can have a negative impact on content legibility.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="testing-if-content-is-operable" tabindex="-1">Testing if content is operable</h2>
<p>Not everybody can or wants to use websites with a mouse or mobile apps with gestures. Many prefer, or need, to use alternative input methods. These include keyboards, mouth sticks, eye tracking, speech recognition, and much more. With so many different input devices available, checking support for everything may seem daunting. Luckily, the way most input devices interact with digital content is relatively similar. By ensuring content works well with a keyboard, you can be reasonably confident they will offer good support for other input devices.</p>
<h3 id="test-6%3A-keyboard-support" tabindex="-1">Test 6: keyboard support</h3>
<p>Check that it's possible to navigate content using the keyboard alone. This means you can reach and activate all actionable elements such as buttons, links and controls. The order in which those actionable items are reached must also be logical, or people may become disoriented. If testing on mobile, you can connect a bluetooth keyboard to ket keyboard support.</p>
<p>Other issues experienced by keyboard users are the lack of a visible indication of their current location on the screen and the inability to interact with components using standard navigation and activation keys.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/pwd-keyboard-broken-arm.jpg" alt="A lady with a broken arm, using her laptop via the keyboard" />
(Credit: <a href="https://www.w3.org/WAI/perspective-videos/keyboard/">WAI Perspectives: Keyboard Compatibility</a>)</p>
<p>Using a keyboard navigate content and check the following:</p>
<ul>
<li>All buttons, links, form fields can be accessed using the <kbd>Tab</kbd> key</li>
<li>All buttons, links, form fields can be activated using the <kbd>Enter</kbd> or <kbd>Spacebar</kbd> key</li>
<li>All buttons, links, form fields have a visible focus state</li>
<li>The content order is logical</li>
</ul>
<div class="tabs" id="tabs_1773627714395821">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395821_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395821_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395821_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ahDuaWKSGZA" title="Quick accessibility test: Keyboard support video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395821_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/n2PSQT2zrIc" title="Quick accessibility test: Keyboard support (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Keyboard support</p>
<p>[An image appears of a person in a lab coat typing on a black keyboard]</p>
<p>Many people are unable to use a mouse or touch gestures due to limited arm movement and dexterity issues. Instead they may rely on a keyboard, or similar input device, to navigate and operate digital content.</p>
<p>[The TetraLogical &quot;Services&quot; page fades into view]</p>
<p>To find out if your website is keyboard accessible, load the site, and start navigating it by pressing the Tab key on your keyboard.</p>
<p>[A purple &quot;Skip to main content&quot; button appears at the top of the screen. As the user navigates, the visible focus indicator moves through the links]</p>
<p>You should be able to reach all actionable controls, such as links, buttons, and form fields.</p>
<p>Pressing the Enter key or Spacebar should activate these controls.</p>
<p>[A link on the page from the TetraLogical website is activated with the Enter key and a new page is loaded]</p>
<p>If any actionable element on your website is skipped, receives the focus in an illogical order, or you cannot see where the focus is at any time, then keyboard support is not properly implemented.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<p><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">Browsing with a keyboard</a> discusses how keyboard users experience the web.</p>
<h3 id="test-7%3A-skip-links" tabindex="-1">Test 7: skip links</h3>
<p>People using keyboards, sip and puff devices, joysticks, head pointers and similar input devices navigate pages sequentially: from the first item at the top to the last one at the bottom. Sometimes this results in people having to press a key or button many times before reaching the content they want. This is why <em>skip links</em>, which allow people to skip entire content sections, are helpful, especially on pages with large navigation menus. Skip links should be the first items on every page and always visible or become visible when they receive focus. &quot;Skip to main content&quot; is the most commonly used editorial.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/tl-skip-link-narrow.jpg" alt="The &quot;Skip to main content&quot; link on the TetraLogical website" /></p>
<p>Identify is skip links are available on your website, then check the following:</p>
<ul>
<li>The skip link is available at the top of the page in the keyboard tab order</li>
<li>The skip link can be activated using the <kbd>Enter</kbd> key</li>
<li>Focus moves to the right section of content</li>
</ul>
<div class="tabs" id="tabs_1773627714395438">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395438_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395438_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395438_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/kVXVeq6TMJk" title="Quick accessibility test: Skip links video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395438_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/6jnRLmy4ut8" title="Quick accessibility test: Skip links (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Skip links</p>
<p>[A webpage is displayed with various menu options and a drop down arrow next to each one. The option titled &quot;Sending&quot; has been expanded and is displaying fourteen different links over two columns]</p>
<p>For people navigating websites with the keyboard, having to go through a large number of links before reaching the main content of the page can be tiring. For people with motor disabilities who use specialised input devices, this can be even more of a barrier.</p>
<p>[The TetraLogical homepage comes into view. It darkens as a purple button with the wording &quot;Skip to main content&quot; is highlighted]</p>
<p>Skip links offer people a way to skip entire sections of repeated content, and to quickly reach the main content of the page. Easy to implement, they can be visible on the screen by default, or they can appear when people start navigating a page with a keyboard or similar input device.</p>
<p>[The Google homepage appears in the browser. The user navigates to the address bar and loads the TetraLogical homepage. Almost immediately, the purple &quot;Skip to main content&quot; button appears at the top of the page]</p>
<p>Check if your website contains skip links by pressing the Tab key on your keyboard after loading a page. A &quot;skip to main content&quot;, or a similar link, should appear on the screen.</p>
<p>Next check that the link works as expected. Press the Enter key and check that the focus moves to the main content area.</p>
<p>[As the link is activated, the screen jumps down and the keyboard focus becomes visible around the main content area]</p>
<p>Now, if you press the Tab key again, focus should move to the first actionable item in the main content.</p>
<p>[The focus moves to the first link in the main content area of the TetraLogical page. The screen then fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="testing-if-content-is-understandable" tabindex="-1">Testing if content is understandable</h2>
<p>Ensuring information is easy to understand is essential for everyone, particularly for people with situational, temporary or permanent cognitive disabilities. For example,  someone with a learning disability may struggle to understand sentences, or someone with a migraine may find concentrating difficult. Content designed and written following accessibility best practices is easier to comprehend for everybody.</p>
<h3 id="test-8%3A-content-structure" tabindex="-1">Test 8: content structure</h3>
<p>A logical content structure is one of the ways you can improve its readability and understandability. Long blocks of content with no structure are more challenging to understand than brief sections preceded by a descriptive heading. Information presented in bulleted or numbered lists is also generally easier to comprehend. Finally, prioritising content and calls to action at the beginning of each page, screen, or section helps people notice them.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/tl-home.jpg" alt="The TetraLogical homepage, containing brief sections of content and bulleted lists" /></p>
<p>Identify different page/screen content and layouts, then check the following:</p>
<ul>
<li>Content is broken down into brief sections, each preceded by a descriptive heading</li>
<li>Bulleted and numbered lists are used when appropriate</li>
<li>Key information and calls to actions are prioritised in the content order</li>
</ul>
<div class="tabs" id="tabs_1773627714395130">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395130_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395130_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395130_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/NZWb5DO-AiU" title="Quick accessibility test: Content structure video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395130_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ezKb_55rMMw" title="Quick accessibility test: Content structure (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Content structure</p>
<p>[A simple webpage appears with a heading in a dark purple banner and content below. Each section is labelled so the &quot;Page main heading&quot; and &quot;Section headings&quot; are titled as such, followed by a paragraph below. A &quot;Main call to action&quot; button is clearly marked and related links are listed to the left of the screen]</p>
<p>Content that is well structured is easier to read and understand for all, and in particular for people with cognitive and reading disabilities.</p>
<p>Good content structure includes: breaking down content into short sections, each preceded by a clear heading; using list format when appropriate; and placing important information at the beginning of the content.</p>
<p>[The TetraLogical web page appears and the user navigates down the &quot;Knowledge&quot; page where text is clearly laid out and easily legible]</p>
<p>Navigate your website and check that pages don't contain long blocks of text with no structure, and that enough prominence is given to the most important information and calls to action.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<p><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">Browsing with desktop screen readers</a> and <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">mobile screen readers</a> discusses how people navigate content structure including headings.</p>
<h3 id="test-9%3A-link-text" tabindex="-1">Test 9: link text</h3>
<p>People should not have to activate links to know what content they load. All links should be descriptive enough for people to understand their purpose, for example, &quot;read all UK news&quot; and &quot;how to register&quot; are clear. Vague links such as &quot;click here&quot; or &quot;read more&quot; are not and should be avoided. Avoid using a URL as link text; they are difficult to read and process for everybody. For links that load content other than web pages such as PDF, including the content format is good practice. For example, &quot;Annual report 20-21 (PDF)&quot; rather than &quot;Annual report 20-21&quot;.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/link-text.png" alt="The TetraLogical homepage contains several links. Each link accurately describes its destination content. For example, &quot;More news items&quot; and &quot;More blog posts&quot;." /></p>
<p>Identify links within your content, then check the following:</p>
<ul>
<li>Links provide you with enough information to know what content they load confidently</li>
<li>Generic link text such as &quot;read more&quot;, &quot;click here&quot; or similar is not used</li>
<li>A URL is not used as link text</li>
<li>Links that load PDF or other documents include the file format</li>
</ul>
<div class="tabs" id="tabs_1773627714395388">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395388_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714395388_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714395388_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/b_F7BcbBAUc" title="Quick accessibility test: Link text video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714395388_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/y8u6sM36Dl4" title="Quick accessibility test: Link text (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Link text</p>
<p>[The screen fades to a mobile view of VoiceOver settings on iOS]</p>
<p>People who are blind use a software called a screen reader, which reads out all content on the screen for them.</p>
<p>[The Amazon home page loads on a web browser]</p>
<p>When browsing web content with a screen reader, it is possible to access a list of all links on a page, without the surrounding text.</p>
<p>[A dialog box appears called &quot;Links list&quot;. All available links are displayed in a list the user can navigate through]</p>
<p>This means that links like &quot;click here&quot; or &quot;read more&quot; provide no useful information. The purpose of such generic links can be difficult to understand for some sighted people too.</p>
<p>[The TetraLogical website loads on the &quot;Articles&quot; page. The user navigates down where links in the page content are brightly coloured, clearly displayed and have unique names]</p>
<p>Check that links on your website are easy to understand for all; read them without the surrounding text and check that they clearly and accurately describe the content they link to.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="test-10%3A-page-titles" tabindex="-1">Test 10: page titles</h3>
<p>Page titles, displayed on the browser tab when pages loads, are key for many people. It is the first piece of information screen reader users hear when navigating to a new page and the only information visible when multiple tabs are open in the browser. It reassures people they have landed on the right page and reminds people with memory loss what page they are on. Ensure all pages in your website have a unique and descriptive title. A descriptive title should also be in the header of mobile app screens.</p>
<p><img src="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/page-title.jpg" alt="Three pages from the TetraLogical website are opened in a browser. The titles &quot;TetraLogical&quot;, &quot;News - TetraLogical&quot; and &quot;Sustainable accessibility - TetraLogical&quot; are visible." /></p>
<p>Identify page titles, then check the following:</p>
<ul>
<li>Web page titles describe the unique content of each page</li>
<li>Screens in mobile apps have a unique and descriptive title</li>
<li>Titles start with the page or screen name, for example, &quot;News - TetraLogical&quot; instead of &quot;TetraLogical - News&quot;</li>
</ul>
<div class="tabs" id="tabs_1773627714396514">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714396514_0">Video</a></li><li><a href="https://tetralogical.com/blog/2022/01/18/quick-accessibility-tests-anyone-can-do/#tabs_1773627714396514_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714396514_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/5DeZzPQgfXo" title="Quick accessibility test: Page titles video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714396514_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/veXk2QQ6Uzc" title="Quick accessibility test: Page titles (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[A dark purple background appears with the TetraLogical logo in the top left corner]</p>
<p>Quick accessibility test: Page titles</p>
<p>[A browser comes into view displaying the TetraLogical homepage. The screen darkens as five open tabs are highlighted, each one showing the title of a different webpage]</p>
<p>The page title is the first piece of information announced by screen readers when a page loads. It's also the only information visible when multiple tabs are opened in a browser. Accurate page titles remind and reassure people of their current location on a website; generic ones can confuse and frustrate people.</p>
<p>[The user navigates through various pages on the TetraLogical website. Each one has a unique title that matches the page content]</p>
<p>Load a few pages from your website and check that an accurate and clear title is visible on the browser tab or the browser's title bar. Each page should have a unique title that briefly and precisely describes its content.</p>
<p>[The screen fades to the same dark purple as the beginning of the video]</p>
<p>To find out more about accessibility, visit our website at <a href="https://tetralogical.com/">tetralogical.com</a>.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>Performing these 10 quick accessibility checks helps you to identify key accessibility issues with your content. Anyone can use them as part of an initial product review to raise awareness around the needs of people with disabilities and help build a business case for accessibility.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Learn about how people with disabilities <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browse with assistive technologies</a> or how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Foundations: animations and flashing content</title>
    <link href="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/"/>
    <updated>2022-01-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/</id>
    <content type="html"><![CDATA[
        <p>Animation and movement can add to the visual appeal of content, but poorly designed animations can cause problems for many people unless they are implemented correctly.</p>
<p>The types of issues animations and flashing content can cause are:</p>
<ul>
<li>Seizures can be triggered in people with photosensitive epilepsy by rapidly flashing or bright lights, with red and high-contrast flashes carrying the most risk</li>
<li>Symptoms like motion sickness, headaches and nausea can be triggered in people with vestibular disorders when looking at large animations</li>
<li>Concentration may be difficult or impossible for people with cognitive disabilities that affect attention and focus</li>
<li>Distraction for people with low vision <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> where movement can take up all or large parts of the screen</li>
</ul>
<h2 id="adding-animations-or-flashing-content" tabindex="-1">Adding animations or flashing content</h2>
<p>The first thing to consider is whether you need to use animation or flashing content. Only include them if they enhance the user experience without causing undue distraction. Make sure that animations and flashing are only used as additional “eye-candy”, and <a href="https://inclusivedesignprinciples.info/#give-control">give people control</a> over the animations and movement. For example movement can be removed or suppressed without affecting the meaning of the content and without loss of important information.</p>
<h3 id="rules-for-animations" tabindex="-1">Rules for animations</h3>
<p>Avoid using animated content that starts automatically — for example on page load, or animation triggered by any event outside of direct user interaction such as a timer or external event — and lasts for longer than five seconds.</p>
<p>If the use of animated content is unavoidable, add a mechanism for people to pause/hide the animation. Generally, the mechanism can be a control/button on the page itself, or an option in a site-wide user account profile or set of preferences. This is particularly important for large “hero” type animated panels, or panels that use auto playing video.</p>
<p><img src="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/banner-pause.jpg" alt="'Video Hero Banner - Simple. Accessible. Performant.' showing a video background and a pause button" /></p>
<p>In the case of more minor animations, for example animated effects on controls, designed to catch people’s attention, where it wouldn’t be possible to add separate play/pause controls, consider stopping the animation effect after five seconds.</p>
<p>Consider keeping the animation effect very subtle for animations that happen due to user interaction — such as parallax scrolling effects or animations that start once a control has been triggered. Avoid excessively fast and big movements that last for more than a few seconds.</p>
<p><img src="https://tetralogical.com/blog/2022/01/10/animations-and-flashing-content/spinner-button.png" alt="A 'Loading' button with a spinner icon" /></p>
<p>Another suggestion is to take advantage of the <a href="https://www.w3.org/TR/mediaqueries-5/#prefers-reduced-motion"><code>prefers-reduced-motion</code></a> media query. CSS-based animations can be set to only play if a person has not enabled the relevant reduced motion setting in their browser/operating system. See for instance <a href="https://codepen.io/patrickhlauke/full/YzPPdeo">Defensive prefers-reduced-motion use - no motion first design</a>).</p>
<pre class="language-css"><code class="language-css"><span class="token comment">/* non animated styles */</span>

<span class="token atrule"><span class="token rule">@media</span> <span class="token punctuation">(</span><span class="token property">prefers-reduced-motion</span><span class="token punctuation">:</span> no-preference<span class="token punctuation">)</span></span> <span class="token punctuation">{</span>
  <span class="token comment">/* specific animation styles, only shown if the browser
     supports the media query and an explicit preference
     for reduced motion has not been set*/</span>
<span class="token punctuation">}</span></code></pre>
<p>You can also provide explicit fallback/alternative styles that come into effect if a person <em>did</em> enable the setting for reduced motion:</p>
<pre class="language-css"><code class="language-css"><span class="token atrule"><span class="token rule">@media</span> <span class="token punctuation">(</span><span class="token property">prefers-reduced-motion</span><span class="token punctuation">:</span> reduce<span class="token punctuation">)</span></span> <span class="token punctuation">{</span>
  <span class="token comment">/* alternative styles when a preference for
     reduced motion has been set*/</span>
<span class="token punctuation">}</span></code></pre>
<p>This media query feature can also be queried from JavaScript, and can be used to inform the default state of any custom play/pause buttons that are added to animations.</p>
<pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> mqList <span class="token operator">=</span> window<span class="token punctuation">.</span><span class="token function">matchMedia</span><span class="token punctuation">(</span><span class="token string">'(prefers-reduced-motion:no-preference)'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token keyword">if</span> <span class="token punctuation">(</span>mqList<span class="token punctuation">.</span>matches<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  <span class="token comment">/* the browser supports the media query, and no preference
     for reduced motion has been set.
     consider it safe to start playing animations by default */</span>
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
  <span class="token comment">/* the browser either doesn’t support the media query, or an
     explicit preference for reduced motion has been set.
     start off with animations paused */</span>
<span class="token punctuation">}</span></code></pre>
<h3 id="rules-for-flashing-content" tabindex="-1">Rules for flashing content</h3>
<p>Even <em>if</em> you provide explicit play/pause controls for animations, or take advantage of the <code>prefers-reduced-motion</code> media query, there are additional requirements if your animations include flashing content. People may be severely affected by flashing content even before they get a chance to pause/stop an animation or explicitly set a preference in their browser. In extreme cases, a severe seizure can put someone in hospital, so there are critical rules to follow when using content that flashes:</p>
<ul>
<li>Content must not flash more than 3 times per second</li>
<li>Do not flash red or colours on the red spectrum</li>
<li>Keep the area of flashing content small</li>
</ul>
<p>The safest option is usually to avoid flashing altogether. If it’s absolutely necessary to flash content, make sure the flashing frequency is very low.</p>
<h2 id="tips-for-animations-and-flashing-content" tabindex="-1">Tips for animations and flashing content</h2>
<p>When designing animations and movement consider it's goal:</p>
<ul>
<li>Animation to communicate change on a page such as an accordion opening, is better than animation intended to  disrupt and grab attention such as a flashing advert</li>
<li>Animation caused by a person interacting with the page is better than animation that occurs automatically</li>
</ul>
<p>For flashing content:</p>
<ul>
<li>Check any videos you host to not have flashing content, if they do add a warning at the start of the video</li>
</ul>
<h2 id="related-standards" tabindex="-1">Related standards</h2>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#pause-stop-hide">WCAG 2.1 Success Criterion 2.2.2 Pause, Stop, Hide (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#three-flashes-or-below-threshold">WCAG 2.1 Success Criterion 2.3.1 Three Flashes or Below Threshold (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#three-flashes">WCAG 2.1 Success Criterion 2.3.2 Three Flashes (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#animation-from-interactions">WCAG 2.1 Success Criterion 2.3.3 Animation from Interactions (Level AAA)</a></li>
</ul>
<h2 id="more-information" tabindex="-1">More information</h2>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion">MDN: CSS prefers-reduced-motion</a></li>
<li><a href="https://www.w3.org/TR/mediaqueries-5/#prefers-reduced-motion">W3C Media Queries Level 5 / 12.2. Detecting the desire for less motion on the page: the prefers-reduced-motion feature</a></li>
<li><a href="https://webaim.org/articles/seizure/">WebAIM: Seizure disorders</a></li>
<li><a href="https://web.dev/prefers-reduced-motion/">web.dev - Thomas Steiner - prefers-reduced-motion: Sometimes less movement is more</a></li>
<li><a href="https://css-tricks.com/introduction-reduced-motion-media-query/">CSS Tricks - Eric Bailey: An Introduction to the Reduced Motion Media Query</a></li>
<li><a href="https://codepen.io/patrickhlauke/full/YzPPdeo">CodePen - Patrick H. Lauke: Defensive prefers-reduced-motion use - no motion first design</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read more <a href="https://tetralogical.com/blog/2024/03/18/accessibility-foundations/">accessibility foundations</a> posts or sign up for <a href="https://tetralogical.com/newsletters/accessibility-unlocked/">Accessibility Unlocked</a>, our free six-day newsletter series designed to help you kick-start accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Inclusive user research: moderating sessions</title>
    <link href="https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/"/>
    <updated>2022-01-04T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2022/01/04/inclusive-user-research-moderating-sessions/</id>
    <content type="html"><![CDATA[
        <p>All user research projects should include people with disabilities. Representing at least 15% of the world population, <a href="https://www.worldbank.org/en/topic/disability#1">according to The World Bank</a>, and potentially your target market, it doesn't make sense to exclude them. This post provides user researchers with tips on how to best moderate usability testing sessions where participants have a disability.</p>
<p>As an experienced researcher, your existing skills will help when conducting research with people with disabilities. Combining moderation best practices with flexibility, quick problem-solving and consideration for participants will allow you to run sessions smoothly and collect valuable insights.</p>
<p>While careful planning, familiarity with assistive technology, and technical skills are also required to successfully design and carry out inclusive user research, this post focuses only on session moderation.</p>
<p>In case you missed them, here are the other blog posts in our Inclusive user research series:</p>
<ul>
<li><a href="https://tetralogical.com/blog/2022/06/08/inclusive-user-research-analysing-findings/">Analysing findings</a></li>
<li><a href="https://tetralogical.com/blog/2022/08/01/inclusive-user-research-recruiting-participants/">Recruiting participants</a></li>
<li><a href="https://tetralogical.com/blog/2025/05/23/inclusive-user-research-building-rapport/">Building rapport</a></li>
</ul>
<h2 id="take-your-time" tabindex="-1">Take your time</h2>
<p>We have all been there: you have several journeys to test and many questions to ask in a short amount of time. Rushing through the welcoming and introductory sections and reading out scenarios and instructions as quickly as possible can be tempting. However, this will only result in people getting confused and anxious, with some not understanding what they are required to do. This is particularly true for people with certain disabilities, such as people with hearing loss or cognitive disabilities. You must take your time, talk slowly and clearly, and pause to check people's understanding.</p>
<p>It is just as important you give people the time they need to process information and answer your questions. Some people with disabilities may need slightly longer to understand instructions and formulate answers than other participants. Allow silence, do not interrupt people as they think or talk, and only move to the next question when you are sure they have nothing else to add. In sessions with people who have a speech disability, such as stammering, do not complete words or sentences for them. Not only is this disrespectful, but it can also worsen people's anxiety making it more challenging to answer questions.</p>
<p>Similarly, allow people as much time as they need to attempt tasks. Some assistive technology users may take longer to navigate and operate digital products than others. People with cognitive disabilities may spend a while on pages reading and processing content. Never put pressure on participants; let them use the product as they usually would, even when this means spending longer on a page than you had anticipated.</p>
<p>Finally, some types of disabilities can cause people to get tired quickly. Offer as many breaks as needed during the session and end the session if they are too tired to continue. Participants' wellness should be any researcher's priority.</p>
<p>If you are concerned you may not be able to go through all tasks and questions in your moderation guide in the allowed time, remove some. It is not uncommon to have a shorter moderation guide for sessions with people with disabilities. This also allows for additional time to troubleshoot technical issues that may arise during the sessions (more on this in the <em>Use your problem-solving skills</em> section below).</p>
<h2 id="be-flexible" tabindex="-1">Be flexible</h2>
<p>When running research with people who have a variety of disabilities, you may need to adapt your moderation style based on each person's abilities and preferences.</p>
<p>Your instructions, questions and scenarios may not work for everybody. People may not be familiar with words you have used, some may find your questions difficult to process or not specific enough, and tasks may not feel realistic to them. Be ready to make adjustments on the fly: you may need to use simpler words, shorter sentences or gestures, ask more precise questions or modify scenarios slightly.</p>
<p>This happened to us in a recent research project where one of the tasks required people to enter details from an ID document such as a passport. Some of the participants did not own one, so we quickly adapted the task so that it better reflected a real-life scenario for these participants.</p>
<p>The way you plan to share content may also pose difficulties. For example, some people may struggle to navigate to or open a chat and read instructions posted in there. Be prepared to try out alternative communication channels. In the example of the chat, it may be as simple as reading out the instructions for the participant, which may also work better for some people with reading disabilities. Similarly, offer people alternative ways to complete activities, such as communicating scores verbally if entering them in an online form is challenging.</p>
<p>A technique commonly used in moderated usability testing is to ask participants to &quot;think aloud&quot; as they use a website or app. It is a simple and effective way to capture people's thoughts, reasoning and emotions. However, it may not work well with all participants. Think of screen reader users, for example, who may struggle to talk while listening to their screen reader. If a participant lets you know they cannot or prefer not to think aloud, do not pressure them and assure them it is fine not to. You can still learn a lot by observing them.</p>
<p>If you plan to use rating scales as part of a research session, keep them as simple as possible. This means writing questions in simple language and using a small scale, for example a 5-point scale rather than a 7-point one. Even so, scales may be challenging for some people. Be prepared to rephrase the questions and offer people a different way to express their opinion: a thumb up or down may be all you need.</p>
<h2 id="use-your-problem-solving-skills" tabindex="-1">Use your problem-solving skills</h2>
<p>We have all been in testing sessions where the website or app being tested isn't working, or the test device keeps crashing. When running sessions with people who use assistive technology or adjust their accessibility settings, you are even more likely to encounter problems. In fact, using AT or adjusting accessibility settings adds a layer of complexity to the technical set-up of a session. You must be able to think on your feet and find solutions to continue the session should technical issues arise. This may mean finding a way to bypass a screen, switching to a different version of the test product, or changing a task on the fly.</p>
<p>In a recent research session we were testing both the website and app version of a user journey. In one session the app kept crashing when used with a specific assistive technology. After a few attempts, we decided to move away from the app and ask the participant to complete tasks using the website instead. We then asked a different participant who was testing the website later in the week to test the app instead. This way we were still able to collect useful information on the content presentation and understandability.</p>
<p>At other times, technical accessibility issues with the website or app being tested may be complete showstoppers for participants. Again, you may decide to divert from the moderation guide or provide assistance to proceed. As long as you accurately document where and why the problem occurred, this is the best approach to collecting as much feedback as possible.</p>
<p>In another project we worked on recently, we observed a few participants who were using a very large font size becoming stuck when key content including the main call to action ended up being off-screen. With no option to scroll the content and make it visible, there was no way for these participants to continue the journey. Rather than ending the session, we decided to help them move to the next screen: we asked them to reduce the text size in their device settings so that the content became fully visible on screen again, then we directed them to the button they needed to activate, which was too small for them to see. Once on the next screen, they went back to the device settings and selected their preferred font size again, before proceeding with the task. When documenting the research findings for the client, we made it clear that the issue with the enlarged content not fitting on the screen was a complete showstopper for these participants.</p>
<h2 id="be-respectful" tabindex="-1">Be respectful</h2>
<p>Researchers must always show respect to participants. This means using inclusive language when talking about disabilities and people with disabilities. For example, avoid negative words or phrases, such as &quot;suffers from&quot; or &quot;wheelchair-bound&quot;. Instead, say &quot;has epilepsy&quot; or &quot;uses a wheelchair&quot;. Never identify people by their disability, such as saying &quot;the blind&quot;. Instead, say &quot;people who are blind&quot;. A disability is what someone has, not what someone is.</p>
<p>Referring to people without disabilities as &quot;normal&quot; or &quot;able-bodied&quot; should be avoided, as it implies that people with a disability are &quot;abnormal&quot;. The <a href="https://www.respectability.org/inclusion-toolkits/etiquette-interacting-with-people-with-disabilities/">Etiquette: Interacting with People with Disabilities article</a> on the RespectAbility website provides valuable tips on how to communicate with people with disabilities.</p>
<p>Being respectful also means respecting people's privacy. While the information on the assistive technology or adaptive strategies used by participants is important, details about their health are often not needed. Unless people volunteer this information, limit your questions to what is absolutely required. If participants' health happens to be discussed in the session, remove all details from the recordings before sharing them together with other personal information. Such sensitive information must not be available to people outside of the research team working on the project.</p>
<p>Recognising the uniqueness of each participant is another way to show respect. Because two people have the same disability and use the same assistive technology, it does not mean they use products in the same way. People's personal preferences, past experiences, attitudes toward technology and many other factors play a role. Refrain from asking questions that generalise participants' experience, for example, &quot;Do you think that other people who are blind would find this website easy to use?&quot;</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>No user research is complete when people with disabilities are excluded. Next time you run a research project, make sure to recruit people with various disabilities and use the advice from this post to make each session enjoyable for both you and the participant.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about <a href="https://tetralogical.com/services/agile-usability-testing/">Agile Usability Testing</a> at TetraLogical and how people with disabilities <a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/">browse the web with assistive technologies</a>.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with assistive technology videos</title>
    <link href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/"/>
    <updated>2021-12-24T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/</id>
    <content type="html"><![CDATA[
        <p>Understanding how people with disabilities browse the web using assistive technologies (AT) is core to making an accessible and inclusive user experience. Our browsing with assistive technology videos series introduces commonly used software, who uses it, how it works, and ways people navigate content.</p>
<p>Assistive technologies (AT) are software or hardware used by people with disabilities to help them complete a task. While AT can refer to wheelchairs, hearing aids or canes, we look at AT for using a computer and browsing the web, including desktop and mobile screen readers, the keyboard, screen magnification, and speech recognition.</p>
<p>Credit to <a href="https://www.linkedin.com/in/redux/">Patrick H Lauke</a> who created the naturally described scripts, voiced, and produced the video. To find out more about how to produce accessible video read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a>.</p>
<p>You can view the videos below, or as well as on the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKVxQ6eYth4_vvbM3IcrSPlk">Browsing with assistive technology playlist on YouTube</a> or the <a href="https://www.youtube.com/playlist?list=PLTqm2yVMMUKWpUN1zLyxNchyomZXOoaXJ">Browsing with assistive technology with British Sign Language (BSL) playlist on YouTube</a>.</p>
<h2 id="browsing-with-a-screen-reader" tabindex="-1">Browsing with a screen reader</h2>
<p>A screen reader is a software application that announces what is on the screen to people who cannot see or understand visual content. They provide access to the entire operating system and applications, including browsers and web content.</p>
<h3 id="browsing-with-a-desktop-screen-reader" tabindex="-1">Browsing with a desktop screen reader</h3>
<div class="tabs" id="tabs_1773627714375143">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375143_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375143_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714375143_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/KuVKQQMtRRI" title="Browsing with a desktop screen reader" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714375143_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/gcNWPYnWtSc" title="Browsing with a desktop screen reader (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with a desktop screen reader</p>
<p>Screen readers announce everything on a web page and within an application.</p>
<p>All static text is spoken including paragraphs of text, headings and lists.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below]</p>
<p>Screen readers also announce additional information such as text descriptions for images, visually hidden text, and the names of landmark regions (for example banner, main and footer) when browsing web content.</p>
<p>As an example, here's an extract from the TetraLogical.com site, as experienced with a screen reader.</p>
<p>[The NVDA screen reader starts reading out information as the visible focus in the form of a solid coloured line, moves around the page]</p>
<p>[NVDA] Link, skip to main content, visited link, graphic, TetraLogical, main navigation landmark, list with four items, visited link About, visited link Services, visited link News, visited link Blog, Out of list, Main landmark, Heading level 1, Hello, we're TetraLogical, We're a company with, inclusion at its heart., We specialise in all aspects of accessibility, from working with your, websites and apps to giving your teams the skills they need to make accessibility part of everything they do.</p>
<p>[A new webpage appears with the title &quot;Checkbox&quot;. Two checkbox items appear above a purple &quot;submit&quot; button]</p>
<p>For interactive elements, screen readers will not only announce the name and role of the element, but its current state as well.</p>
<p>In this example, we're using NVDA to navigate to an unchecked checkbox, and then check it.</p>
<p>[NVDA reads aloud as the visible focus moves to the checkbox and then selects it so a tick appears]</p>
<p>[NVDA] Checkbox, document, Checkbox not checked, I have read the terms and conditions, Checked</p>
<p>[The TetraLogical homepage reappears]</p>
<p>The basic navigation for people who use a screen reader is the same as that used by keyboard users in general.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears]</p>
<p>The Tab key is used to navigate to the next focusable element, such as links, buttons or form inputs.</p>
<p>[As the user navigates through the main menu using the tab key, an overlay with the word &quot;tab&quot; on appears]</p>
<p>To move backwards, you use Shift + Tab.</p>
<p>Enter is used to activate links.</p>
<p>[The visible focus solid line changes to a dotted line on the &quot;Blog&quot; item in the menu bar]</p>
<p>Enter or Space activate buttons.</p>
<p>[The visible focus moves down the page, highlighting each element as it is read aloud]</p>
<p>The arrow keys are used to navigate static content such as text, as well as to interact with components such as menus, tab panels, sliders, select dropdowns, and groups of radio buttons.</p>
<p>Beyond the basics, however, people who use a screen reader have many more keyboard commands at their disposal.</p>
<p>[The TetraLogical homepage fades back into view. The user slowly scrolls down the page]</p>
<p>Where sighted people will visually scan a page, then make decisions about where to navigate to or what to concentrate on, screen reader users will do the same but with keyboard commands.</p>
<p>[A mouse hovers over a button with &quot;hello@tetralogical.com&quot;]</p>
<p>While screen readers often have different keyboard commands, people tend to use the same general strategy for exploring, navigating, and reading content.</p>
<p>[The TetraLogical homepage fades back into view.]</p>
<p>When opening a web page, screen readers will automatically read the page from top to bottom, starting with the page title. It's common for people to stop the screen reader, then explore the content for themselves.</p>
<p>A common strategy is to scan a page using headings or landmark regions, then use other keyboard commands to explore relevant content in more detail.</p>
<p>This enables people to understand the overall structure of content, before deciding what to do next.</p>
<p>For example, a screen reader user may navigate between the headings on the page until they find one that seems to preface the content they're looking for.</p>
<p>Then they'll use more keyboard commands to read the subsequent content, activate a link, or perform some other task.</p>
<p>In this example, we're using NVDA to navigate between the headings on the TetraLogical website using the H key.</p>
<p>Once we reach a heading that interests us, we continue using the Tab key to reach the following link.</p>
<p>[NVDA] Hello, we're TetraLogical, heading level 1. [The focus jumps down the page onto the &quot;News&quot; heading] News, heading level 2, [it continues to jump down as each new heading is announced] Blog, heading level 2, Contact us, heading level 2, Main region, hello@tetralogical.com, send mail link.</p>
<p>[The TetraLogical homepage appears again. A dialogue box is now displayed with the NVDA settings]</p>
<p>Probably the most common setting people change is the rate of speech output.</p>
<p>Many people who use screen readers on a daily basis listen to the speech output very fast. This is similar to how someone who is sighted might skim read and read fast in their head. The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers.</p>
<p>As an example, here we change the speaking rate in NVDA's Speech settings from 60% to 100%, and then read through content on the TetraLogical website's homepage.</p>
<p>[The focus moves to the &quot;Rate&quot; slider. The user moves the mouse to increase this to its maximum. The focus moves down in the page as the screen reader reads the content aloud]</p>
<p>[NVDA] Rate, slider 60, Alt+R 100, Main landmark, Hello, we're TetraLogical, heading level 1. We're a company with inclusion at its heart. We specialise in all aspects of accessibility, from working with your websites and apps to giving your teams the skills they need to make accessibility part of everything they do.</p>
<p>These are some of the high level details, about desktop screen readers, and common strategies that people browsing with a desktop screen reader use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<p>Read more about <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>.</p>
<h3 id="browsing-with-a-mobile-screen-reader" tabindex="-1">Browsing with a mobile screen reader</h3>
<div class="tabs" id="tabs_1773627714375585">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375585_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375585_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714375585_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ev8ERS5Z3NU" title="Browsing with a mobile screen reader" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714375585_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/Cz5IH-JDr6M" title="Browsing with a mobile screen reader (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with a mobile screen reader.</p>
<p>Like desktop screen readers, mobile screen readers announce everything on a web page and within an application.</p>
<p>All static text is spoken including paragraphs of text, headings and lists.</p>
<p>Screen readers also announce additional information, such as text descriptions for images, visually hidden text, and the names of landmark regions (for example banner, main, and footer) when browsing web content.</p>
<p>[An image of the TetraLogical homepage appears on a mobile device being held in hand. The logo is displayed at the top, then below it a horizontal list of links for main navigation. The main heading is below that, and the body of the page content fills the rest of the screen]</p>
<p>When a mobile screen reader is enabled on a touch-screen device, all the gestures change.</p>
<p>Instead of visually scanning the screen and tapping once on something to activate it, people will scan the screen by touch, and move their screen reader focus sequentially, in a linear fashion, through elements on the screen.</p>
<p>[The hands holding the device navigate through the elements on screen]</p>
<p>Swipe right to move focus to the next item. Swipe left to move focus to the previous item.</p>
<p>In addition, mobile screen readers also let you &quot;explore by touch&quot;, dragging a finger over the screen.</p>
<p>[As the user drags their finger, a green visible focus outline highlights content as it moves. Text is displayed at the bottom of the screen as the screen reader reads content aloud]</p>
<p>The screen reader will focus and announce each item you touch.</p>
<p>This can be useful in situations where an item can't be reached through normal navigation, but can be quite inefficient.</p>
<p>[The user moves the visible focus to the &quot;News&quot; page. They double-tap elsewhere on the screen and the News page opens]</p>
<p>Once a mobile screen reader is focused on an item, double-tapping anywhere on the screen will activate it.</p>
<p>[The TetraLogical homepage on a mobile screen is displayed on a purple background]</p>
<p>On both Android and iOS it is possible to navigate by a specific type of element.</p>
<p>On iOS, the VoiceOver rotor makes it possible to access different configuration settings and to navigate applications and web pages by different elements.</p>
<p>Moving two fingers clockwise opens the rotor where you can choose what types of element you want to navigate between.</p>
<p>[The Voiceover rotor appears on screen with 8 options displayed in a dial. As the user navigates and each new item is announced, the dial moves clockwise through the options]</p>
<p>[VoiceOver] Characters, Words, Lines, Speaking rate, 60%, Containers, Headings, 5 headings</p>
<p>[The rotor disappears]</p>
<p>Once a type of element is selected, swiping up or down moves focus between the elements of that particular type.</p>
<p>For example, while browsing a website, if headings are selected in the rotor, then swiping up or down moves focus from heading to heading.</p>
<p>[The visible focus moves from heading to heading as the user navigates down the page and each heading is read aloud]</p>
<p>[VoiceOver] Hello, we're TetraLogical, Heading level 1, News, heading level 2, Blog, heading level 2, Contact us, heading level 2.</p>
<p>[The TetraLogical homepage on a mobile screen reappears. The visible focus is now an outline over the entire screen]</p>
<p>On Android you can swipe down then up in one gesture to cycle between TalkBack navigation options.</p>
<p>[V-shaped arrows pointing up and down appear on screen, they are displayed above and below each the word being announced]</p>
<p>[TalkBack] Characters, Words, Lines, Headings, Swipe up or swipe down to read by headings</p>
<p>[The visible focus outline stops on the main heading]</p>
<p>Once an option is selected, such as headings, a single swipe, either up or down, moves focus between each heading.</p>
<p>[The visible focus outline moves down the page as the user navigates]</p>
<p>[TalkBack] Hello, we're TetraLogical, Heading 1, News, heading 2, Blog, heading 2.</p>
<p>All screen readers can be customised to suit people's preferences. Probably the most common setting people change is the rate of speech output.</p>
<p>[The VoiceOver rotor reappears with &quot;Speaking Rate&quot; selected in the dial]</p>
<p>Many people who use screen readers on a daily basis listen to the speech output very fast.</p>
<p>This is similar to how someone who is sighted might skim read or read fast in their head.</p>
<p>The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers.</p>
<p>As an example, here we change the speaking rate in iOS VoiceOver from 60% to 100%, and then read through content on the TetraLogical website's homepage.</p>
<p>[The &quot;Speaking Rate&quot; overlay disappears]</p>
<p>[VoiceOver] Speaking Rate, 60%, 65%, 70%, 75%, 80%, 85%, 90%, 95%, 100%</p>
<p>[VoiceOver, speaking at a very high rate] We take the time to understand your organisation, your project, and your goals, so we can put together services that are tailored to suit you. Our accessibility services include...</p>
<p>These are some of the high level details about mobile screen readers, and common strategies that people browsing with a mobile screen reader use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<p>Read more about <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>.</p>
<h2 id="browsing-with-a-keyboard" tabindex="-1">Browsing with a keyboard</h2>
<p>Keyboards can be plugged in, built-in or attached wirelessly to desktop computers, laptops and mobile devices. They enable access to the entire operating system and applications, including browsers and web content, for people who do not use a mouse.</p>
<div class="tabs" id="tabs_1773627714375538">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375538_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375538_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714375538_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/757suz8MTV8" title="Browsing with a keyboard" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714375538_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/N8ZR0cEGgqg" title="Browsing with a keyboard (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with a keyboard</p>
<p>Navigating a web page or web application with a keyboard is very different from navigating with a mouse.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below. The cursor moves around the screen]</p>
<p>When you use a mouse, you choose where to point it, follow the visible mouse cursor until you get where you want, then interact with the content.</p>
<p>[The cursor selects the &quot;News&quot; link from the main navigation and the News page opens]</p>
<p>When you use a keyboard, your actions are constrained by the order in which content is coded, rather than its visual presentation and layout.</p>
<p>Unlike with a mouse, you're more limited in how you can move your focus.</p>
<p>[The TetraLogical homepage fades back into view]</p>
<p>Keyboard focus moves sequentially through focusable elements such as links, buttons, controls, and form inputs.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears at the top of the screen. As the user navigates through the main menu using the tab key, the word &quot;tab&quot; on appears at the bottom of the screen]</p>
<p>By default, the Tab key is used to navigate to the next focusable element and Shift+Tab is used to move to the previous focusable element.</p>
<p>[The screen changes to reveal the Mac System Preferences displaying a series of icons]</p>
<p>In contrast with other operating systems, note that by default, on macOS, Tab only moves between text input fields and a limited set of controls.</p>
<p>[The mouse moves over the screen and selects the options as they're read aloud]</p>
<p>Generally, people that rely on the keyboard to navigate will go to macOS' System Preferences &gt; Keyboard &gt; Shortcuts and enable the &quot;Use keyboard navigation to move focus between controls&quot; option.</p>
<p>[The TetraLogical homepage reappears]</p>
<p>You can generally scroll through content using the cursor keys.</p>
<p>[As the user navigates down the page, the word &quot;space&quot; on appears at the bottom of the screen]</p>
<p>You can also use Space to scroll one screen at a time, and Shift+Space to scroll backwards.</p>
<p>The same can be achieved using the PageUp and PageDown keys.</p>
<p>It's important to remember that these keys only bring more content into view. In order to interact with content, people using a keyboard rely instead on moving the specific keyboard focus.</p>
<p>[The TetraLogical homepage reappears along with the word &quot;tab&quot; at the bottom of the screen. The visible focus outline jumps to each new element as the user navigates through the page]</p>
<p>Once focus is on a control, there are different keys that can be used to interact with the focused element.</p>
<p>[The word &quot;Enter&quot; appears on the screen as the &quot;News&quot; page is selected and opens]</p>
<p>Enter is used to activate links.</p>
<p>[A new webpage appears with the heading &quot;Checkbox&quot;. Two checkbox items appear above a purple &quot;submit&quot; button. The word &quot;tab&quot; appears at the bottom of the screen]</p>
<p>Checkboxes and switches are toggled using Space.</p>
<p>[As the user presses space the word on screen changes from  &quot;Tab&quot; to &quot;Space&quot;. &quot;Tab&quot; causes the visible focus to move to the first checkbox. &quot;Space&quot; then selects the box so a small tick appears inside. This is repeated for the second checkbox item</p>
<p>[A new screen appears with the heading &quot;Select&quot; above a &quot;Select dropdown&quot; menu. The dropdown says &quot;Choose an option&quot; next to a downwards-facing arrow]</p>
<p>Select dropdowns are opened using Enter or Alt+Down arrow.</p>
<p>[The text &quot;Alt+&quot; and a downwards arrow appears in screen. This expands the dropdown menu so options one, two, three, and four are displayed. The user navigates down the list as the downwards arrow is displayed on screen]</p>
<p>The selected option can then be chosen using the arrow keys.</p>
<p>[The user presses &quot;Enter&quot; and the word &quot;Enter is displayed on screen. The dropdown menu closes]</p>
<p>Tab, Enter, or Esc close the dropdown again.</p>
<p>[The screen changes with the heading &quot;Radio buttons&quot; above the same options, this time displayed as four separate radio buttons. The visible focus is on the first option which has been checked]</p>
<p>In some situations, complex or compound controls only present the user with a single tab stop.</p>
<p>Once they have focus, the arrow keys are used to move between the different controls.</p>
<p>As an example, here is a group of radio buttons. Only the currently checked control receives focus.</p>
<p>[The user navigates through the options using the right arrow key which is displayed on screen as it is pressed. They then navigate back the opposite way through the options]</p>
<p>Once it has focus, arrow keys are used to change the currently selected radio button.</p>
<p>Buttons can be activated using Space or Enter.</p>
<p>[A new screen appears with &quot;Confirmation&quot; as the heading. Below is text saying confirming a form has been submitted]</p>
<p>These are some of the high-level details about keyboard navigation, and common strategies that people browsing with a keyboard use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<p>Read more about <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>.</p>
<h2 id="browsing-with-screen-magnification" tabindex="-1">Browsing with screen magnification</h2>
<p>Screen magnification software enlarges content on a desktop computer, laptop, tablet or smartphone screen. It magnifies everything on the screen, including the operating system, applications, and content.</p>
<div class="tabs" id="tabs_1773627714375878">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375878_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714375878_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714375878_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/vfgyBfXRo0c" title="Browsing with screen magnification" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714375878_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/iADmQ-jnG-s" title="Browsing with screen magnification (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with screen magnification.</p>
<p>Screen magnification works by zooming all or parts of the screen as if you are looking through a magnifying glass.</p>
<p>[The TetraLogical homepage appears. In the centre of the screen is the Magnifier application window displaying various options. A mouse hovers over the plus button. As it is selected, the screen gets larger and larger]</p>
<p>Depending on the software, you can enlarge content on screen to 60 times, or 6000% the original size, and more.</p>
<p>Screen magnification software is used with a mouse, touchpad, keyboard or other pointer device. It also comes with keyboard commands to help you quickly execute common actions like zooming in and out.</p>
<p>[A zoomed-in TetraLogical homepage appears. As the mouse pointer moves around, the screen tracks it so different elements of the page are displayed]</p>
<p>A really useful feature of screen magnification is focus tracking. As you move the pointer or cursor, the screen magnifier moves with it. Taking Magnifier on Windows as an example, note how the zoomed-in view scrolls to follow the mouse pointer. When navigating using the keyboard, note how the view scrolls to always maintain the currently focused element in view.</p>
<p>While magnifying content is helpful, people often use additional enhancements to make content easier to see.</p>
<p>[The screen displays the Magnifier settings. The user checks the &quot;Invert colours&quot; box]</p>
<p>For example, colour inversion, turning text from black-on-white to white-on-black, can reduce screen glare and is helpful for older people or people with certain sight conditions such as macular degeneration.</p>
<p>[The TetraLogical homepage is displayed again. This time, the ZoomText Magnifier/Reader settings are displayed]</p>
<p>Mouse and text cursors can often be modified to make them easier to locate on screen.</p>
<p>[The user navigates to the &quot;Pointer&quot; drop-down. &quot;Normal&quot; is currently selected. Next to the option &quot;Scheme&quot; a range of different options are available. The user selects &quot;Large yellow&quot; which increases the size of the pointer and changes the colour]</p>
<p>This could be by enlarging them, circling them, or changing the colour.</p>
<p>[The user selects the &quot;Yellow with crosshairs&quot; option. The cursor changes to a hand icon. Large red grid lines are displayed across the entire screen. The horizontal and vertical lines meet at the point where the cursor sits]</p>
<p>Some people may prefer to use crosshairs rather than a mouse cursor, especially if they can be customised.</p>
<p>[The screen changes back to the Magnifier settings. It shows the option &quot;Change Magnifier view&quot; and offers a dropdown for the user to choose a view where full screen is currently selected.</p>
<p>You can use different magnification modes for different tasks.</p>
<p>[The user selects &quot;Lens&quot; which creates a highly magnified rectangle that focuses on the element the cursor hovers over]</p>
<p>You can magnify the whole screen, or use a magnifying lens that can be moved around the otherwise un-magnified screen.</p>
<p>[The TetraLogical homepage reappears with the ZoomText Magnifier/Reader settings displayed]</p>
<p>Many screen magnification solutions also include speech output or integrated screen reading capabilities. Taking ZoomText as an example, you can enable &quot;Mouse Echo&quot; which will read out any text underneath the mouse pointer.</p>
<p>[The user selects the &quot;Mouse&quot; drop-down and changes the settings from &quot;no echo&quot; to &quot;instant&quot;]</p>
<p>[ZoomText] Mouse, No Echo checked, Instant, Mouse Echo set to Instant mode, Hello, we're TetraLogical, We're a company with inclusion at its heart.</p>
<p>Matching functionality is also available if you're navigating with a keyboard instead.</p>
<p>[The TetraLogical homepage is displayed again, zoomed in to 300%]</p>
<p>When opening a web page, people who use screen magnification will generally move the viewport to the top left of the page (for content in a language that is written left-to-right).</p>
<p>[The user slowly moves their mouse across the screen displaying the menu bar from left to right]</p>
<p>Typically this is the website logo in the header of the web page. People expect to find common features such as the main navigation, search, and links to login and help by scrolling horizontally.</p>
<p>[The page changes to the &quot;Contact us&quot; heading as the user navigates down to the page footer]</p>
<p>People who use screen magnification often rely on their mouse (or finger on a touchpad) to pan their screen and at times need different levels of magnification.</p>
<p>[The user zooms in further, then uses the cursor to navigate to the social icons for Twitter, YouTube and LinkedIn in the footer]</p>
<p>For example, if links and buttons are small, magnification can be increased to enable people to select them accurately.</p>
<p>[The cursor moves around in a blank space with no content in sight]</p>
<p>When using screen magnification, it can be easy to become disorientated in long web pages or pages with a lot of content or large areas of white space.</p>
<p>[The user zooms out, locates the content they need, then zooms back in]</p>
<p>A common strategy is to zoom out to find your location quickly and then zoom back in again to explore the content in-depth.</p>
<p>These are some of the high-level details about screen magnification, and common strategies that people browsing with screen magnification use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<p>Read more about <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a>.</p>
<h2 id="browsing-with-speech-recognition" tabindex="-1">Browsing with speech recognition</h2>
<p>Speech recognition software listens to human speech, transcribes it into text, and executes spoken commands that operate your computer or device. People commonly use it as an alternative to using a keyboard, mouse or touch gestures. Speech recognition provides access to the entire operating system and applications, including browsers and web content.</p>
<div class="tabs" id="tabs_1773627714376725">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714376725_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/12/24/browsing-with-assistive-technology-videos/#tabs_1773627714376725_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714376725_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/yGOP2fOp7TA" title="Browsing with speech recognition" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714376725_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/iEiSez9F79o" title="Browsing with speech recognition (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with speech recognition</p>
<p>Speech recognition software listens to human speech, transcribes it into text, and executes spoken commands that operate your computer or device.</p>
<p>As well as dictating text, filling out forms, and opening and closing applications, you can browse the web and completely control websites with voice commands.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below]</p>
<p>Core navigation verbally mirrors how you navigate with a keyboard. For example, rather than using keys on a keyboard, you say &quot;Tab&quot; to move focus to the next item, &quot;Shift Tab&quot; to move to the previous item, and &quot;Press Enter&quot; to activate a control.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears. As the user interacts with the page, the visible focus indicator moves too]</p>
<p>[User voice] tab, tab, tab four times, press shift tab, press, shift tab, press enter.</p>
<p>[On the final command, the &quot;Services&quot; page opens. The page then fades back to the homepage]</p>
<p>To activate a link or button, you can say &quot;Click&quot; together with the text used in the link or button. For example, &quot;Click Services&quot; to activate a link labeled &quot;Services&quot;.</p>
<p>[User voice] click services</p>
<p>[The &quot;Services&quot; pages opens as before]</p>
<p>If you just say &quot;Click link&quot;, the software will highlight and number all links in the current page. You then select the link you want by saying the number.</p>
<p>[User voice] click link</p>
<p>[A series of six green numbers appear dotted throughout the page. These are attached to each separate link, such as the logo and each individual menu option]</p>
<p>[User voice] choose 3</p>
<p>[The visible focus moves to the &quot;Services&quot; menu option, which has the number three above it. This then opens the &quot;Services&quot; page</p>
<p>The homepage appears again, this time with gridlines across the entirety of the page, marking out six distinct areas]</p>
<p>In situations where a control lacks a visible text label, or where the visible text doesn't match the actual accessible name of the control in the underlying markup, people using speech recognition can use alternative approaches such as MouseGrid, which overlays a grid on the page.</p>
<p>[The user moves the mouse cursor which changes the size and location of the grid. As the user hones in on the menu options, the grid keeps resizing to display as a smaller, more precise area]</p>
<p>Each box has a number. By saying a number in a box, the grid focuses on that part of the page.</p>
<p>This is repeated until the button or link you want is focused.</p>
<p>[The bottom of the TetraLogical homepage is displayed in front of a bright pink background]</p>
<p>In this recording, we're using MouseGrid to set focus to a graphical control that lacks visible text.</p>
<p>[User voice] MouseGrid</p>
<p>[Lines appear across the screen marking out nine areas of equal size on screen. Each one is numbered]</p>
<p>[User voice] seven</p>
<p>[A new grid appears in the area that was previously marked as seven. This is much smaller and now focuses on the bottom right of the screen.]</p>
<p>[User voice] six</p>
<p>[Again, a new grid appears in the area that was previously marked as six]</p>
<p>[User voice] six</p>
<p>[A very small grid is now displayed. The majority of the grid is over a button with an &quot;email&quot; icon displayed]</p>
<p>[User voice] click</p>
<p>These are some of the high level details about speech recognition, and common strategies that people browsing with speech recognition use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<p>Read more about <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a>.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible videos and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Testing WCAG 2.1 Level AAA</title>
    <link href="https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/"/>
    <updated>2021-12-09T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/</id>
    <content type="html"><![CDATA[
        <p>In our second post on WCAG 2.1 Level AAA, we discuss how to test against various Level AAA success criteria. You can read about the benefits of Level AAA and when to consider including Level AAA Success Criteria in our first post, <a href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/">Understanding WCAG 2.1 Level AAA</a>, and what to do with your test results in our third post, <a href="https://tetralogical.com/blog/2022/05/20/triaging-wcag-level-aaa/">Triaging WCAG 2.1 Level AAA</a>.</p>
<p>As explained in our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines (WCAG) primer</a>, the guidelines are a set of recommendations for making websites and applications accessible. These guidelines are split into four principles:</p>
<ul>
<li><strong>Perceivable:</strong> Content can be consumed in different ways to suit a person's needs. For example, videos with captions for a deaf or hard of hearing person.</li>
<li><strong>Operable:</strong> Interfaces are usable with a range of input devices. This includes pointing devices such as a mouse or trackpad, keyboards, voice recognition software, switches, and more.</li>
<li><strong>Understandable:</strong> Content can be understood by people with different reading needs. For example, someone who has difficulty reading may need complex words or acronyms explained or written in full. A person with a learning difficulty may need support with understanding the context for questions asked in forms.</li>
<li><strong>Robust:</strong> Content can be handled by whatever user agent (a software that retrieves and presents web content, for example a browser or media player) a person uses. This allows people to choose their user agent based on their own needs. Following a standard, such as HTML, makes this possible.</li>
</ul>
<p>These four principles are broken down into twelve guidelines. These are in turn broken down into the individual requirements  known as “Success Criteria” or &quot;SC&quot; for short. An example guideline, <a href="https://www.w3.org/WAI/WCAG21/Understanding/text-alternatives">Guideline 1.1 Text Alternatives</a>, is written as follows:</p>
<blockquote>
<p>Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.</p>
</blockquote>
<p>Understanding these principles and guidelines is not essential for testing against WCAG 2.1; in theory the text of each SC provides all of the information you need. However, they give a sense of the intent or spirit of the requirements and this can help understand how to test for them.</p>
<p>Testing Level AAA success criteria can be a challenge. Most tools available for automated or manual testing only cover Level A and Level AA criteria. Here are some suggestions for testing a sample of the Level AAA success criteria.</p>
<h2 id="time-based-media" tabindex="-1">Time-based media</h2>
<p>Some success criteria deal with what WCAG calls time-based content. This is usually audio and video content.</p>
<h3 id="sc-1.2.6-sign-language-(prerecorded)" tabindex="-1">SC 1.2.6 Sign Language (Prerecorded)</h3>
<p>The first is SC <a href="https://www.w3.org/TR/WCAG21/#sign-language-prerecorded">SC 1.2.6 Sign Language (Prerecorded) (Level AAA)</a>. This can be assessed in the same way as <a href="https://www.w3.org/TR/WCAG21/#captions-prerecorded">SC 1.2.2 Captions (Prerecorded) (Level A)</a>, at least to an extent.</p>
<p>Identify any content that requires captions, then check that there is sign language available as well. What makes this more challenging for most people is checking that the sign language is accurate. I can determine this in spoken English with English captions, but I don't know sign language. A single spoken language may also have many sign language equivalents. English may be signed with American Sign Language (ASL), British Sign Language (BSL), and more.</p>
<p>Minimally check that sign language is available. If possible, confirm with someone proficient in sign language that it is accurate.</p>
<h3 id="sc-1.2.7-extended-audio-description-(prerecorded)" tabindex="-1">SC 1.2.7 Extended Audio Description (Prerecorded)</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#extended-audio-description-prerecorded">SC 1.2.7 Extended Audio Description (Prerecorded) (Level AAA)</a> is related to <a href="https://www.w3.org/TR/WCAG21/#audio-description-prerecorded">SC 1.2.5 Audio Description (Prerecorded) (Level AA)</a>. Both require a spoken description of visual only content of a video.</p>
<p>The Level AA version only requires sufficient description to a level of detail that fits within existing pauses within the video content. The Level AAA criteria requires that if an extended audio description would be beneficial, for example a more extensive description of dialog, that the video is paused to allow for this description.</p>
<p>Whether or not these extended descriptions fall under the Level AAA SC is a matter of judgement. If you've not watched a video before, play it without looking at the visual content and check:</p>
<ul>
<li>Content is understandable without the visual aspect</li>
<li>Descriptions provide sufficient detail and do not need to be extended</li>
</ul>
<p>If these checks fail content may need extended audio description.</p>
<h2 id="content" tabindex="-1">Content</h2>
<p>There are several success criteria related to the accessibility of content.</p>
<h3 id="sc-1.3.6-identify-purpose" tabindex="-1">SC 1.3.6 Identify Purpose</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#identify-purpose">SC 1.3.6 Identify Purpose (Level AAA)</a> is in an unfortunate state at the moment. It requires that the purpose of all user interface components, icons, and regions can be programmatically determined.</p>
<p>For some components this is quite straight forward. For example, the 'required' or error state for a form element can be identified with an attribute, <code>aria-required</code> or <code>aria-invalid</code>, in the markup.</p>
<p>Where this SC can't realistically be implemented is with icons and similar page elements. There isn't currently a fully specified and widely supported method of describing an icon of a question mark in a circle as being a 'help' icon. While the <a href="https://www.w3.org/WAI/GL/task-forces/coga/">Cognitive and Learning Disabilities Accessibility Task Force (COGA)</a> at the W3C is working on such a specification, it is not ready to use at the time of writing.</p>
<h3 id="sc-3.1.3-unusual-words%2C-sc-3.1.4-abbreviations%2C-and-sc-3.1.6-pronunciation" tabindex="-1">SC 3.1.3 Unusual Words, SC 3.1.4 Abbreviations, and SC 3.1.6 Pronunciation</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#unusual-words">SC 3.1.3 Unusual Words (Level AAA)</a>, <a href="https://www.w3.org/TR/WCAG21/#abbreviations">SC 3.1.4 Abbreviations (Level AAA)</a>, and <a href="https://www.w3.org/TR/WCAG21/#pronunciation">SC 3.1.6 Pronunciation (Level AAA)</a> can be assessed together. What we are looking for are examples of unusual words, abbreviations, and words that can have more than one meaning depending on their pronunciation.</p>
<p>Unusual words can be a matter of judgement, but look for idioms and jargon within the content and ensure there is a definition for these terms.Abbreviations should be expanded when they are first used within the text.</p>
<p>For pronunciation, look for words that could be ambiguous even within the context of the text. For example, 'desert' can mean an arid region or to abandon. If it is used in a sentence, ensure that it is clear which of these meanings is correct, and if not, there is some method of determining which is correct.</p>
<h2 id="presentation" tabindex="-1">Presentation</h2>
<p>There are several Success Criteria related to the presentation of content that build on Level A or Level AA Success Criteria.</p>
<h3 id="sc-1.4.6-contrast-(enhanced)" tabindex="-1">SC 1.4.6 Contrast (Enhanced)</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#contrast-enhanced">SC 1.4.6 Contrast (Enhanced) (Level AAA)</a> is tested in the same way as <a href="https://www.w3.org/TR/WCAG21/#contrast-minimum">SC 1.4.3 Contrast (Minimum) (Level AA)</a>, but the threshold for passing is increased.</p>
<p>The minimum contrast for regular text increases from 4.5:1 to 7:1, and for large text it increases from 3:1 to 4.5:1. There is a slight increase in difficulty for testing these ratios because most tools you may use, such as <a href="https://www.deque.com/axe/">Deque's Axe</a> or <a href="https://www.tpgi.com/arc-platform/arc-toolkit/">TPGi's ARC Toolkit</a> only test to the Level AA requirements. <a href="https://tenon.io/">Tenon</a> can be used to find Level AAA issues, but this is often used as part of continuous integration rather than testing individual pages.</p>
<p>If you are comfortable using developer tools, change the styling of text so its size falls below the 18.5px threshold for &quot;large text&quot;. If Axe or ARC Toolkit finds text that falls below the 4.5:1 contrast ratio, it must fail the Level AAA requirement as this is the minimum required for all text. You will then need to determine if it should be a minimum of 4.5:1 or 7:1.</p>
<p>The most reliable tool to use is the <a href="https://www.tpgi.com/color-contrast-checker/">TPGi's Colour Contrast Analyser</a> when manual testing contrast ratios. It gives pass/fail results for normal and large text against both Level AA and Level AAA SC.</p>
<h3 id="sc-1.4.8-visual-presentation" tabindex="-1">SC 1.4.8 Visual Presentation</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#visual-presentation">SC 1.4.8 Visual Presentation (Level AAA)</a> combines and extends several other Success Criteria. It has similar requirements to <a href="https://www.w3.org/TR/WCAG21/#text-spacing">SC 1.4.12 Text Spacing (Level AA)</a> regarding line spacing (leading).</p>
<p>It increases the minimum paragraph spacing (the space following a paragraph) to 1.5 times the line spacing. If the line spacing is 1.5, this means a minimum paragraph spacing of 2.25 (1.5 × 1.5). Note this does not have to be the default presentation of text. The requirement is that there is a mechanism for achieving this:</p>
<blockquote>
<p>The mechanism may be explicitly provided in the content, or may be relied upon to be provided by either the platform or by user agents, including assistive technologies.</p>
</blockquote>
<p>Therefore, anything that can be done in developer tools, found in every modern browser, is considered sufficient (if not exactly usable). If you are using a <a href="https://codepen.io/stevef/pen/YLMqbo/">bookmarklet to increase text spacing</a> for SC 1.4.12 Text Spacing it will give you a high degree of confidence already, but you can modify the applied styles to cover the Level AAA requirements.</p>
<p>This SC also requires that text is not justified which can also be achieved using developer tools.</p>
<p>Finally, text spacing requires that text can be displayed with a line length of no more than 80 characters and that:</p>
<blockquote>
<p>&quot;Text can be resized without assistive technology up to 200 percent in a way that does not require the user to scroll horizontally to read a line of text on a full-screen window.&quot;</p>
</blockquote>
<p>Sites that meet <a href="https://www.w3.org/TR/WCAG21/#reflow">SC 1.4.10 Reflow (Level AA)</a> will automatically pass the second clause. They will almost certainly allow for 80 characters or fewer line lengths by either increasing the browser zoom level or by resizing the viewport. On mobile devices or tablets with a fixed viewport width, the screen width is usually fewer than 80 characters will display on a line. The text sizing settings on the device can also be used to reduce the number of characters per line on larger screens.</p>
<p>Current web design and implementation practices mean this success criterion is generally achievable by default. What is really being tested is that nothing is preventing the normal use of the browser. An example of this would be a site with JavaScript used to force a particular display of content, perhaps by scaling content to fit perfectly within a viewport, but by doing so, it overrides any preferences or customisations that have been set by the person using the site.</p>
<h2 id="interaction" tabindex="-1">Interaction</h2>
<p>There are three notable success criteria overlap when it comes to testing interaction.</p>
<h3 id="sc-2.1.3-keyboard-(no-exception)" tabindex="-1">SC 2.1.3 Keyboard (No Exception)</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#keyboard-no-exception">SC 2.1.3 Keyboard (No Exception) (Level AAA)</a> is an enhancement of <a href="https://www.w3.org/TR/WCAG21/#keyboard">SC 2.1.1 Keyboard (Level AA)</a>. The Level AA success criterion has an exception for &quot;where the underlying function requires input that depends on the path of the user's movement and not just the endpoints&quot;. So a graphics application that uses cursor movement controlled by a pointing device like a mouse, touchpad, or touchscreen to draw shapes on a canvas would have that functionality exempted. The Level AAA success criteria removes that exemption. Usually, meeting Level AA will mean a pass of Level AAA because that type of functionality is rare. The testing requires you to identify any keyboard interactions that only pass SC 2.1.1 because of the exemption.</p>
<h3 id="sc-2.5.6-concurrent-input-mechanisms" tabindex="-1">SC 2.5.6 Concurrent Input Mechanisms</h3>
<p>Functionality that may fail <a href="https://www.w3.org/TR/WCAG21/#concurrent-input-mechanisms">SC 2.5.6 Concurrent Input Mechanisms (Level AAA)</a> is rare. Using the graphics application as an example, this SC would require a line to be drawn using a touchpad and then have the user choose to use a keyboard to continue drawing the line. In this way, concurrent input mechanisms can be used interchangeably.</p>
<p>For regular sites and applications, making all functionality keyboard accessible supports other modes of input automatically. For example, if a button can be activated with a keyboard, it can also be activated using a switch control or voice recognition software. So look for exceptions and attempt to use them in this multi-modal way.</p>
<h3 id="sc-3.2.5-change-on-request" tabindex="-1">SC 3.2.5 Change on Request</h3>
<p><a href="https://www.w3.org/TR/WCAG21/#change-on-request">SC 3.2.5 Change on Request (Level AAA)</a> expands on <a href="https://www.w3.org/TR/WCAG21/#on-input">SC 3.2.2 On Input (Level A)</a>. The Level AA requirement is that changing the value or setting of a user interface component, such as the value of a <code>&lt;select&gt;</code> element, does not change the page's context. For example it does not take the user to another page on the site, <em>unless</em> the user has been informed of this beforehand.</p>
<p>At Level AAA the requirement removes the option to inform the user of this type of interaction and requires that all changes of context are made explicitly or can be changed so that this is the case. For example, a <code>&lt;select&gt;</code> element that changes the current page would need to have a submit button control that triggers the change in context. This is considered good practice anyway, and I've rarely seen a site or application that passes SC 3.2.2 On Input by informing the user of the behaviour they can expect.</p>
<p>While not exhaustive, I hope this helps with testing some of the more interesting Level AAA SC.</p>
<h2 id="list-of-wcag-2.1-level-aaa-success-criteria" tabindex="-1">List of WCAG 2.1 Level AAA Success Criteria</h2>
<p>For convenience, we provide links to all twenty-eight WCAG 2.1 Level AAA success criteria:</p>
<ul>
<li><a href="https://www.w3.org/TR/WCAG21/#sign-language-prerecorded">SC 1.2.6 Sign Language (Prerecorded)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#extended-audio-description-prerecorded">SC 1.2.7 Extended Audio Description (Prerecorded)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#media-alternative-prerecorded">SC 1.2.8 Media Alternative (Prerecorded)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#audio-only-live">SC 1.2.9 Audio-only (Live)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#identify-purpose">SC 1.3.6 Identify Purpose</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#contrast-enhanced">SC 1.4.6 Contrast (Enhanced)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#low-or-no-background-audio">SC 1.4.7 Low or No Background Audio</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#visual-presentation">SC 1.4.8 Visual Presentation</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#images-of-text-no-exception">SC 1.4.9 Images of Text (No Exception)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#keyboard-no-exception">SC 2.1.3 Keyboard (No Exception)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#no-timing">SC 2.2.3 No Timing</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#interruptions">SC 2.2.4 Interruptions</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#re-authenticating">SC 2.2.5 Re-authenticating</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#timeouts">SC 2.2.6 Timeouts</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#three-flashes">SC 2.3.2 Three Flashes</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#animation-from-interactions">SC 2.3.3 Animation from Interactions</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#location">SC 2.4.8 Location</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#link-purpose-link-only">SC 2.4.9 Link Purpose (Link Only)</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#section-headings">SC 2.4.10 Section Headings</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#target-size">SC 2.5.5 Target Size</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#concurrent-input-mechanisms">SC 2.5.6 Concurrent Input Mechanisms</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#unusual-words">SC 3.1.3 Unusual Words</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#abbreviations">SC 3.1.4 Abbreviations</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#reading-level">SC 3.1.5 Reading Level</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#pronunciation">SC 3.1.6 Pronunciation</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#change-on-request">SC 3.2.5 Change on Request</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#help">SC 3.3.5 Help</a></li>
<li><a href="https://www.w3.org/TR/WCAG21/#error-prevention-all">SC 3.3.6 Error Prevention (All)</a></li>
</ul>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out how we went about <a href="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/">meeting WCAG Level AAA on the TetraLogical website</a>, or how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
<p>Updated 21 April 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Understanding WCAG 2.1 Level AAA</title>
    <link href="https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/"/>
    <updated>2021-11-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/11/26/understanding-wcag-level-aaa/</id>
    <content type="html"><![CDATA[
        <p>In our first post about WCAG 2.1 Level AAA, we discuss why it is useful and when to consider including it. You can also read about how some Level AAA Success Criteria expand upon Level A and Level AA Success Criteria and how to test them in our second post, <a href="https://tetralogical.com/blog/2021/12/09/testing-wcag-level-aaa/">Testing WCAG 2.1 Level AAA</a>, and what to do with your test results in our third post, <a href="https://tetralogical.com/blog/2022/05/20/triaging-wcag-level-aaa/">Triaging WCAG 2.1 Level AAA</a>.</p>
<p>The <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">Web Content Accessibility Guidelines</a> (WCAG) are a set of recommendations for making websites and applications accessible to people with disabilities. At the core of WCAG are testable requirements known as Success Criteria or SC for short.</p>
<p>There are seventy-eight success criteria in total, with each one assigned a level. There are three levels in WCAG 2.1, Level A (the lowest level), Level AA, and Level AAA (the highest level). These are usually pronounced as 'single A', 'double A', and 'triple A' in spoken English. Each level builds on the one before. To be conformant with Level AA a site or application must also be conformant with Level A.</p>
<p>Usually, sites and applications are expected to conform with the Level AA standard. Where accessibility laws reference WCAG , for example in Europe and North America, it is almost always to Level AA. While Level AAA contains SC that are beneficial to a wide range of people, it is generally not possible to meet Level AAA in all circumstances. WCAG includes a note that explains this:</p>
<blockquote>
<p>It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA Success Criteria for some content.</p>
</blockquote>
<p>So, if that's the case, what is the point of the Level AAA Success Criteria? Conformance to any standard, such as WCAG, should be considered a minimum. It is not a gold standard of accessibility. There is always more that can be done to make our websites and applications both accessible and more usable. Some of the extra things that we can do are in Level AAA.</p>
<p>Level AA is required by most laws around the world rather than Level AAA. This is because the success criteria at that Level Are achievable in all circumstances. Level AAA is not always realistically achievable. It would therefore be unreasonable to require conformance to it. However, we can use it for valuable suggestions on improving accessibility and usability beyond the minimum.</p>
<h2 id="why-consider-level-aaa-sc%3F" tabindex="-1">Why consider Level AAA SC?</h2>
<p>Considering Level AAA SC can have several benefits. While Level A and Level AA SC give a good foundation, Level AAA SC contains both new types of criteria and criteria that build on Level A or Level AA criteria. For example, there is a new SC for reading levels and an SC that enhances the Level AA SC for text contrast. Both the new SCs and enhanced SCs can be particularly beneficial if your audience includes people who are older or have disabilities or learning difficulties such as dyslexia. As already noted, WCAG Level AA compliance is a minimum requirement. Achieving compliance against SC 1.4.6 Contrast (Enhanced) on a site for people with low vision could make a real difference over SC 1.4.3 Contrast (Minimum).</p>
<p>It's worth noting that for an existing website or application, you may already be meeting many Level AAA SC. Several of them build on the requirements at Level A or Level AA. Others are often achieved by following good web design and development practices. By assessing your project against Level AAA, you gain information you can use in accessibility statements, marketing material, or product pitches. It demonstrates a commitment to accessibility that is increasingly becoming important to customers.</p>
<h2 id="when-to-consider-level-aaa-sc%3F" tabindex="-1">When to consider Level AAA SC?</h2>
<p>Accessibility is best considered at the start of a project, whether building a new site from scratch or adding a new feature. It's worth investing some time at this stage to see which Level AAA SC might apply and which you want to meet. Incorporating Level AAA success criteria from the start is much easier than trying to retrofit your project later. For example, if you decide to meet the requirements of <a href="https://www.w3.org/TR/WCAG21/#contrast-enhanced">SC 1.4.6 Contrast (Enhanced)</a>, choosing colour combinations that have a contrast ratio of 7:1 for regular sized text from the start is easier than choosing non-conforming colours and then updating the design at a later date. Editorial is also difficult to change later. Setting requirements for language early means you don't have to do rewrites later.</p>
<p>For existing projects, an assessment against Level AAA can give you ideas on how to improve. You can make informed decisions about fixing any of the SC that you've not passed. It may be that none of them applies to your project, or they may not be possible to achieve realistically.</p>
<p>Every failure you turn into a pass is an improvement to the accessibility and usability of your site. While there will always be more you can do, WCAG Level AAA is an excellent place to look for ideas.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out how we went about <a href="https://tetralogical.com/blog/2023/04/21/meeting-wcag-level-aaa/">meeting WCAG Level AAA on the TetraLogical website</a>, or how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
<p>Updated 21 April 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with speech recognition</title>
    <link href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/"/>
    <updated>2021-11-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/</id>
    <content type="html"><![CDATA[
        <p>In our fifth and final post from our browsing with assistive technology series, we discuss browsing with speech recognition.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, and <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a>.</p>
<p>Speech recognition software listens to human speech, transcribes it into text, and executes spoken commands that operate your computer or device. People commonly use it as an alternative to using a keyboard, mouse or touch gestures. Speech recognition provides access to the entire operating system and applications, including browsers and web content.</p>
<h2 id="who-uses-speech-recognition" tabindex="-1">Who uses speech recognition</h2>
<p>People with physical disabilities, dexterity limitations, cognition and learning disabilities use speech recognition software.</p>
<p>People who have paraplegia, quadriplegic, have one arm, or limited use of their arms due to osteoarthritis or arthritis may use speech recognition. Some people use speech recognition software combined with other assistive technologies such as switch devices or ergonomic keyboards.</p>
<p>People with temporary limitations may revert to speech recognition when needed. This includes people with conditions such as Repetitive Strain Injury (RSI) or Carpal Tunnel and people with a broken or fractured wrist or tendinitis.</p>
<p>Speech recognition is helpful for people with situational limitations that make using a keypad, mouse or touch gestures difficult or impossible. This includes using speech recognition on phones and voice assistants to look up information when cooking or driving a car.</p>
<figure>
<img src="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/photo-josh-1.jpg" alt="A black and white photo of Josh, a younger white man with short brown hair. He is sitting in his wheelchair as he laughs at the camera holding an ordnance survey map" />
<figcaption>Josh, sportsman and a wheelchair user with Spinal Muscular Atrophy, &quot;I use my laptop, sensors, Alexa, and phone to train for the Paralympics and find accessible outdoor routes for hikes&quot;.</figcaption>
</figure>
<h2 id="commonly-used-speech-recognition-software" tabindex="-1">Commonly used speech recognition software</h2>
<p>Speech recognition software is built into all popular platforms, including Windows, macOS, iOS and Android. Speech recognition is also available through voice assistants such as Amazon Alexa, Apple's Siri, and Google Home.</p>
<p>Stand alone software can offer more robust support for browsing. <a href="https://www.nuance.com/en-gb/dragon/dragon-for-pc/home-edition.html">Dragon</a> is supported on Windows, and <a href="https://www.nuance.com/en-gb/dragon/dragon-anywhere.html">Dragon Anywhere</a> is supported on Android and iOS. The Dragon family of products is probably the most popular available.</p>
<h2 id="how-speech-recognition-works" tabindex="-1">How speech recognition works</h2>
<p>Speech recognition uses a combination of Automatic Speech Recognition (ASR) and Natural Language Processing (NLP) to convert spoken words and sentences into text or actionable commands.</p>
<p>When using speech recognition, it can take time to train the software to recognise your voice accurately.  It is also essential to have a good quality microphone that can clearly pick up what you say.</p>
<h2 id="navigating-with-speech-recognition" tabindex="-1">Navigating with speech recognition</h2>
<p>As well as dictating text, filling out forms, and opening and closing applications, you can browse the web and completely control websites with voice commands.</p>
<p>Core navigation verbally mirrors how you navigate with a keyboard. For example, rather than selecting <kbd>TAB</kbd> on a keyboard, you say &quot;Tab&quot; to move focus to the next item and &quot;Shift-Tab&quot; to move to the previous item. To activate a link or button, say &quot;Click&quot; together with the text used in the link or button, such as &quot;Click Home&quot;.</p>
<p>Things can get more complex depending on how well the content is designed and coded. If there are multiple links on the same page with the same link text, the software won't know which link to click. Instead, it will highlight all the links with the same link text and number them. You then select the link you want by saying the number.</p>
<p><img src="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/speech-recognition-dragon-click-link.png" alt="Image placeholder of the TetraLogical website main navigation showing all links annotated with white numbers, 1 to 5, in green boxes" /></p>
<p>Buttons must have visible labels so they can be activated. Labels in the source code must match their visual presentation, so it is clear which speech command will activate a control. If they don't have labels, you can say &quot;MouseGrid&quot;, which overlays a grid on the page. Each box has a number. By saying a number in a box, the grid focuses on that part of the page. This is repeated until the button or link you want is focused.</p>
<p><img src="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/speech-recognition-dragon-mousegrid.png" alt="Image placeholder of the TetraLogical website home page showing the MouseGrid overlaid, with the screen split in to nine boxes with a number from 1 to 9 in each box" /></p>
<p>While strategies such as numbering repeated links and MouseGrid are good, it slows down navigation and is not as good a user experience as it can be.</p>
<div class="tabs" id="tabs_1773627714370429">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/#tabs_1773627714370429_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/#tabs_1773627714370429_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714370429_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/yGOP2fOp7TA" title="Browsing with speech recognition" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714370429_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/iEiSez9F79o" title="Browsing with speech recognition (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with speech recognition</p>
<p>Speech recognition software listens to human speech, transcribes it into text, and executes spoken commands that operate your computer or device.</p>
<p>As well as dictating text, filling out forms, and opening and closing applications, you can browse the web and completely control websites with voice commands.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below]</p>
<p>Core navigation verbally mirrors how you navigate with a keyboard. For example, rather than using keys on a keyboard, you say &quot;Tab&quot; to move focus to the next item, &quot;Shift Tab&quot; to move to the previous item, and &quot;Press Enter&quot; to activate a control.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears. As the user interacts with the page, the visible focus indicator moves too]</p>
<p>[User voice] tab, tab, tab four times, press shift tab, press, shift tab, press enter.</p>
<p>[On the final command, the &quot;Services&quot; page opens. The page then fades back to the homepage]</p>
<p>To activate a link or button, you can say &quot;Click&quot; together with the text used in the link or button. For example, &quot;Click Services&quot; to activate a link labeled &quot;Services&quot;.</p>
<p>[User voice] click services</p>
<p>[The &quot;Services&quot; pages opens as before]</p>
<p>If you just say &quot;Click link&quot;, the software will highlight and number all links in the current page. You then select the link you want by saying the number.</p>
<p>[User voice] click link</p>
<p>[A series of six green numbers appear dotted throughout the page. These are attached to each separate link, such as the logo and each individual menu option]</p>
<p>[User voice] choose 3</p>
<p>[The visible focus moves to the &quot;Services&quot; menu option, which has the number three above it. This then opens the &quot;Services&quot; page</p>
<p>The homepage appears again, this time with gridlines across the entirety of the page, marking out six distinct areas]</p>
<p>In situations where a control lacks a visible text label, or where the visible text doesn't match the actual accessible name of the control in the underlying markup, people using speech recognition can use alternative approaches such as MouseGrid, which overlays a grid on the page.</p>
<p>[The user moves the mouse cursor which changes the size and location of the grid. As the user hones in on the menu options, the grid keeps resizing to display as a smaller, more precise area]</p>
<p>Each box has a number. By saying a number in a box, the grid focuses on that part of the page.</p>
<p>This is repeated until the button or link you want is focused.</p>
<p>[The bottom of the TetraLogical homepage is displayed in front of a bright pink background]</p>
<p>In this recording, we're using MouseGrid to set focus to a graphical control that lacks visible text.</p>
<p>[User voice] MouseGrid</p>
<p>[Lines appear across the screen marking out nine areas of equal size on screen. Each one is numbered]</p>
<p>[User voice] seven</p>
<p>[A new grid appears in the area that was previously marked as seven. This is much smaller and now focuses on the bottom right of the screen.]</p>
<p>[User voice] six</p>
<p>[Again, a new grid appears in the area that was previously marked as six]</p>
<p>[User voice] six</p>
<p>[A very small grid is now displayed. The majority of the grid is over a button with an &quot;email&quot; icon displayed]</p>
<p>[User voice] click</p>
<p>These are some of the high level details about speech recognition, and common strategies that people browsing with speech recognition use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>People use speech recognition as an alternative to using a keyboard, mouse or touch gestures. It is used by people with physical disabilities, dexterity limitations, cognition and learning disabilities.</p>
<p>Speech recognition software uses algorithms to identify spoken languages and follow verbal commands.</p>
<p>As well as dictating text, filling out forms, and opening and closing applications, you can browse the web and completely control websites with voice commands.</p>
<p>Speech recognition software depends on the quality of the design and code used to create the application or the web content. Repeated link text and missing labels for form inputs or buttons can make content harder to navigate.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible videos and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with screen magnification</title>
    <link href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/"/>
    <updated>2021-11-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/</id>
    <content type="html"><![CDATA[
        <p>In our fourth post from our browsing with assistive technology series, we discuss browsing with screen magnification.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, and <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a>.</p>
<p>Screen magnification software enlarges content on a desktop computer, laptop, tablet or smartphone screen. It magnifies everything on the screen, including the operating system, applications, and content.</p>
<h2 id="who-uses-screen-magnification" tabindex="-1">Who uses screen magnification</h2>
<p>People who are partially sighted may use screen magnification. This includes people who have permanent sight loss due to conditions such as cataracts, glaucoma or ageing. People with temporary vision limitations such as tiredness or migraines may also choose to magnify their screens. People with situational limitations such as glare on their screen from sunlight may do the same.</p>
<p>Some people who are partially sighted may use screen magnification in combination with a screen reader. This is especially useful for people who may want to view magnified images and understand page layout but want a screen reader to read text. Read <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">Browsing with a desktop screen reader</a> and <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">Browsing with a mobile screen reader</a> to find out more.</p>
<p>People with cognitive or learning disabilities may also use screen magnification. Magnifying the screen can help people focus on critical tasks and remove unwanted distractions such as banner adverts or animations.</p>
<figure>
<img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/photo-steve-3.jpg" alt="A black and white photo of Steve, an older white man with thick white hair. He is facing into the camera while he holds his camera over his right eye" />
<figcaption><a href="https://tetralogical.com/blog/2024/10/29/meet-steve-a-photographer-who-is-deaf-and-low-vision/">Meet Steve</a>, a poet and photographer who is hard of hearing and has low vision, &quot;Accessibility means I can confidently plan travel and enjoy an audiobook through my hearing aids using an app&quot;.</figcaption>
</figure>
<h2 id="commonly-used-screen-magnification-software" tabindex="-1">Commonly used screen magnification software</h2>
<p>Screen magnification is built-in on all popular platforms, including Windows, macOS, iOS and Android.</p>
<p>Windows has <a href="https://support.microsoft.com/en-us/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198#:~:text=To%20quickly%20turn%20on%20Magnifier,%3E%20Magnifier%20%3E%20Turn%20on%20Magnifier">Magnifier</a> built-in and macOS has <a href="https://www.google.com/search?q=macOS+screen+magnification&amp;rlz=1C5CHFA_enGB922GB931&amp;oq=macOS+screen+magnification&amp;aqs=chrome..69i57j0i22i30l6j0i390l2.7429j0j4&amp;sourceid=chrome&amp;ie=UTF-8">Zoom</a>. Android <a href="https://support.google.com/accessibility/android/answer/6006949?hl=en-GB">Magnification</a> increases everything on screen as does <a href="https://support.apple.com/en-gb/guide/iphone/iphd6804774e/ios">Zoom</a> on iOS. Both mobile platforms also support pinch zoom and the ability to magnify parts of the screen.</p>
<p>Built-in screen magnification is limited by the level of magnification and features it supports, so some people use a separate software such as <a href="https://yourdolphin.com/products?id=1">SuperNova</a>, <a href="hhttps://www.freedomscientific.com/products/software/zoomtext/">ZoomText</a> or <a href="https://www.freedomscientific.com/products/software/fusion/">Fusion</a> all available on Windows.</p>
<p>ZoomText is screen magnification with speech and, according to the <a href="https://webaim.org/projects/screenreadersurvey9/">WebAim Survey of screen reader users in 2021</a>, is commonly used with the Chrome and Edge browsers. Fusion is a combination of the JAWS screen reader and screen magnification.</p>
<h2 id="how-screen-magnification-works" tabindex="-1">How screen magnification works</h2>
<p>Screen magnification magnifies all or part of the screen. Depending on the software, content on-screen can be enlarged up to 60 times the original size. This is a percentage increase of 6000%, considerably more than the 200% or 400% recommended in the Web Content Accessibility Guidelines 2.1 (WCAG).</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/tl-homepage-zoom-magnification-on-laptop.jpg" alt="A laptop on a desk showing the TetraLogical homepage zoomed with the main navigation showing in the viewport" /></p>
<p>Screen magnification software is used with a mouse, touchpad, keyboard or other pointer devices. It also comes with keyboard commands to help you quickly execute common actions like zooming in and out.</p>
<p>A valuable feature of screen magnification is focus tracking. As the pointer or cursor moves, the screen magnifier moves with it. Screen magnifiers can also smooth the edges of blocks of text and images to make content more readable.</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/at-ios-magnifier-tl-homepage-device-held-in-hand.jpg" alt="A hand holding an iOS device with a finger highlighting a magnified area on screen" style="max-height:25rem;" /></p>
<h3 id="customising-screen-magnification" tabindex="-1">Customising screen magnification</h3>
<p>While magnifying content is helpful, people often use other enhancements to make content easier to see.</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/at-zt-actual-screenshot.png" alt="The ZoomText settings panel showing the open magnifier pane over the TetraLogical homepage" /></p>
<p>Colour inversion, turning text from black-on-white to white-on-black, can reduce screen glare and is helpful for older people or people with certain sight conditions such as macular degeneration.</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/at-zt-colour-invert.png" alt="The TetraLogical homepage with ZoomText settings over the page with inverted colours" /></p>
<p>Mouse and text cursors can often be modified to make them easier to locate on screen. This could be by enlarging them, circling them or changing the colour. Some people may prefer to use crosshairs (a cross) rather than a mouse cursor, especially if they can be customised.</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/at-zt-pointer-yellow-crosshair.png" alt="The TetraLogical homepage with the ZoomText cross hair tool open" /></p>
<p>Different magnification modes can be used for different tasks. Magnification can cover the whole screen, or a magnifying lens can be moved around the un-magnified screen. This is useful when browsing lists of links as by magnifying that area, the links become larger and easier to select.</p>
<p><img src="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/at-zt-window-one-monitor-lens.png" alt="The TetraLogical homepage with the ZoomText magnifier highlighting one part of the page" /></p>
<h3 id="screen-magnification-and-speech-output" tabindex="-1">Screen magnification and speech output</h3>
<p>Screen magnification is helpful for some tasks, but speech output is better for others. For example, speech output is useful when images are blurred, and you want to listen to the text description instead.</p>
<p>Fly-out menus and pop-ups can be challenging to use as they take over the whole screen. Providing they are coded correctly, speech output can help people access the links and controls to navigate away from or close the menus and pop-ups.</p>
<h2 id="navigating-with-screen-magnification" tabindex="-1">Navigating with screen magnification</h2>
<p>People who use screen magnification will look at the top left when opening a web page to understand where they are. Typically this is the website logo in the header. People expect to find common features such as the main navigation, search and links to login and help by scrolling horizontally.</p>
<p>When using screen magnification, it can be easy to become disorientated in long web pages, pages with a lot of content, or pages with large areas of white space. A common strategy is to zoom out to find your location quickly and then zoom back in again to explore the content in-depth.</p>
<p>People who use screen magnification rely on their mouse (or finger on a touchpad) to pan their screen and, at times, need different levels of magnification. For example, if links and buttons are small, magnification can be increased so people can select them accurately.</p>
<div class="tabs" id="tabs_1773627714366717">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/#tabs_1773627714366717_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/#tabs_1773627714366717_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714366717_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/vfgyBfXRo0c" title="Browsing with screen magnification" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714366717_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/iADmQ-jnG-s" title="Browsing with screen magnification (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with screen magnification.</p>
<p>Screen magnification works by zooming all or parts of the screen as if you are looking through a magnifying glass.</p>
<p>[The TetraLogical homepage appears. In the centre of the screen is the Magnifier application window displaying various options. A mouse hovers over the plus button. As it is selected, the screen gets larger and larger]</p>
<p>Depending on the software, you can enlarge content on screen to 60 times, or 6000% the original size, and more.</p>
<p>Screen magnification software is used with a mouse, touchpad, keyboard or other pointer device. It also comes with keyboard commands to help you quickly execute common actions like zooming in and out.</p>
<p>[A zoomed-in TetraLogical homepage appears. As the mouse pointer moves around, the screen tracks it so different elements of the page are displayed]</p>
<p>A really useful feature of screen magnification is focus tracking. As you move the pointer or cursor, the screen magnifier moves with it. Taking Magnifier on Windows as an example, note how the zoomed-in view scrolls to follow the mouse pointer. When navigating using the keyboard, note how the view scrolls to always maintain the currently focused element in view.</p>
<p>While magnifying content is helpful, people often use additional enhancements to make content easier to see.</p>
<p>[The screen displays the Magnifier settings. The user checks the &quot;Invert colours&quot; box]</p>
<p>For example, colour inversion, turning text from black-on-white to white-on-black, can reduce screen glare and is helpful for older people or people with certain sight conditions such as macular degeneration.</p>
<p>[The TetraLogical homepage is displayed again. This time, the ZoomText Magnifier/Reader settings are displayed]</p>
<p>Mouse and text cursors can often be modified to make them easier to locate on screen.</p>
<p>[The user navigates to the &quot;Pointer&quot; drop-down. &quot;Normal&quot; is currently selected. Next to the option &quot;Scheme&quot; a range of different options are available. The user selects &quot;Large yellow&quot; which increases the size of the pointer and changes the colour]</p>
<p>This could be by enlarging them, circling them, or changing the colour.</p>
<p>[The user selects the &quot;Yellow with crosshairs&quot; option. The cursor changes to a hand icon. Large red grid lines are displayed across the entire screen. The horizontal and vertical lines meet at the point where the cursor sits]</p>
<p>Some people may prefer to use crosshairs rather than a mouse cursor, especially if they can be customised.</p>
<p>[The screen changes back to the Magnifier settings. It shows the option &quot;Change Magnifier view&quot; and offers a dropdown for the user to choose a view where full screen is currently selected.</p>
<p>You can use different magnification modes for different tasks.</p>
<p>[The user selects &quot;Lens&quot; which creates a highly magnified rectangle that focuses on the element the cursor hovers over]</p>
<p>You can magnify the whole screen, or use a magnifying lens that can be moved around the otherwise un-magnified screen.</p>
<p>[The TetraLogical homepage reappears with the ZoomText Magnifier/Reader settings displayed]</p>
<p>Many screen magnification solutions also include speech output or integrated screen reading capabilities. Taking ZoomText as an example, you can enable &quot;Mouse Echo&quot; which will read out any text underneath the mouse pointer.</p>
<p>[The user selects the &quot;Mouse&quot; drop-down and changes the settings from &quot;no echo&quot; to &quot;instant&quot;]</p>
<p>[ZoomText] Mouse, No Echo checked, Instant, Mouse Echo set to Instant mode, Hello, we're TetraLogical, We're a company with inclusion at its heart.</p>
<p>Matching functionality is also available if you're navigating with a keyboard instead.</p>
<p>[The TetraLogical homepage is displayed again, zoomed in to 300%]</p>
<p>When opening a web page, people who use screen magnification will generally move the viewport to the top left of the page (for content in a language that is written left-to-right).</p>
<p>[The user slowly moves their mouse across the screen displaying the menu bar from left to right]</p>
<p>Typically this is the website logo in the header of the web page. People expect to find common features such as the main navigation, search, and links to login and help by scrolling horizontally.</p>
<p>[The page changes to the &quot;Contact us&quot; heading as the user navigates down to the page footer]</p>
<p>People who use screen magnification often rely on their mouse (or finger on a touchpad) to pan their screen and at times need different levels of magnification.</p>
<p>[The user zooms in further, then uses the cursor to navigate to the social icons for Twitter, YouTube and LinkedIn in the footer]</p>
<p>For example, if links and buttons are small, magnification can be increased to enable people to select them accurately.</p>
<p>[The cursor moves around in a blank space with no content in sight]</p>
<p>When using screen magnification, it can be easy to become disorientated in long web pages or pages with a lot of content or large areas of white space.</p>
<p>[The user zooms out, locates the content they need, then zooms back in]</p>
<p>A common strategy is to zoom out to find your location quickly and then zoom back in again to explore the content in-depth.</p>
<p>These are some of the high-level details about screen magnification, and common strategies that people browsing with screen magnification use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>People use screen magnification because they have partial sight or have a cognitive or learning disability, which means magnifying content is helpful.</p>
<p>People who use screen magnification have many options available to help make content more visible. This includes inverting colours, customising the mouse pointer and cursors, using a crosshair cursor and an on-screen magnifying glass. They can also combine screen magnification with speech output.</p>
<p>People can navigate using a mouse or touchpad and often zoom in and out of content to orientate themselves, find their location in a page and enlarge controls to make them easier to select.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible videos and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with a keyboard</title>
    <link href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/"/>
    <updated>2021-10-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/</id>
    <content type="html"><![CDATA[
        <p>In our third post from our browsing with assistive technology series, we discuss browsing with a keyboard.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>, <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> and <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a>.</p>
<p>Keyboards can be plugged in, built-in or attached wirelessly to desktop computers, laptops and mobile devices. They enable access to the entire operating system and applications, including browsers and web content, for people who do not use a mouse.</p>
<h2 id="who-uses-a-keyboard" tabindex="-1">Who uses a keyboard</h2>
<p>Most people will use a keyboard. However, people who have limited or no use of a mouse or touch may rely on a keyboard to interact with their device.</p>
<p>People with permanent disabilities that affect arm movement or dexterity will use a keyboard. This includes people with Cerebral Palsy, people who are paraplegic or quadriplegic, have arthritis or Parkinson's disease.</p>
<p>Keyboards are also used by people with temporary limitations such as Repetitive Strain Injury (RSI), fractured or broken wrists, or damaged tendons. People with situational limitations may also use a keyboard; for example, if their mouse is broken.</p>
<figure>
<img src="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/photo-bev-1.jpg" alt="A black and white photo of Bev, a white woman in her 50s with blond hair scooped back in a hairband. She is sitting in front of a canvas laughing while she paints with her right hand and holds the canvas and some paint brushes in her prosthetic hand and arm" />
<figcaption>Bev, an artist with a prosthetic arm, &quot;Accessibility means being able to do things on my own terms, and in my own time&quot;.</figcaption>
</figure>
<h2 id="ergonomic-keyboards" tabindex="-1">Ergonomic keyboards</h2>
<p>Unlike standard keyboards, ergonomic keyboards come in all sorts of shapes and sizes and are designed to fit you, rather than you having to fit the keyboard.</p>
<p>The shape and fit of an ergonomic keyboard is designed to remove the strain you might experience on your hands when using a standard keyboard. They can have concave or tapered keys, well-spaced keys, or split keypads for the left hand and right hand.</p>
<p>Ergonomic keyboards are used by people with permanent disabilities such as Cerebral Palsy or limited dexterity and are popular with people with temporary disabilities such as RSI.</p>
<p><img src="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/split-keyboard.jpg" alt="A woman using a split keyboard" /></p>
<h2 id="navigating-with-a-keyboard" tabindex="-1">Navigating with a keyboard</h2>
<p>Navigating with a keyboard is very different from navigating with a mouse. When you use a mouse, you choose where to point it, follow the visible cursor until you get where you want, then interact with the content.</p>
<p>When you use a keyboard, your actions are constrained by the order in which content is coded. Unlike with a mouse, you cannot choose where your focus goes. You can only navigate sequentially through focusable page elements including links, buttons and form inputs. You cannot jump between headings, lists, links, or form inputs the same way mouse users or people who use a screen reader can. Read <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with a desktop screen reader</a> and <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a> to find out more.</p>
<p>Common keyboard commands when navigating with a keyboard are:</p>
<ul>
<li><code>Tab</code> to navigate to the next focusable element</li>
<li><code>Shift</code> + <code>Tab</code> to move to the previous focusable element</li>
<li><code>Enter</code> to activate links</li>
<li><code>Enter</code> or <code>Space</code> keys to activate buttons</li>
<li>Arrow keys to navigate components such as menus, sliders, and tab panels.</li>
</ul>
<p>When navigating web pages, visible focus changes help you track where you are. People also expect the reading order to flow from top to bottom and left to right. If the focus is not visible or logical, you can quickly become lost on a page. Try using the <code>Tab</code> key to tab around this page, you'll notice that links that receive focus change visibly, so you know where you are.</p>
<p>It can also be very frustrating when there are buttons, links or form inputs that cannot be reached or cannot be activated by the keyboard.</p>
<p>Unless focus is on a button, the <code>Space</code> key scrolls more content into view. The <code>Page Up</code> and <code>Page Down</code> keys can also be used to do this. It's important to remember that these keys only bring more content into view. They do not move keyboard focus (which remains on the last focusable element to be navigated to using the <code>Tab</code> or <code>Shift</code> + <code>Tab</code> keys).</p>
<div class="tabs" id="tabs_1773627714359132">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/#tabs_1773627714359132_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/#tabs_1773627714359132_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714359132_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/757suz8MTV8" title="Browsing with a keyboard" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714359132_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/N8ZR0cEGgqg" title="Browsing with a keyboard (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with a keyboard</p>
<p>Navigating a web page or web application with a keyboard is very different from navigating with a mouse.</p>
<p>[The TetraLogical homepage appears with a horizontal list of links for main navigation at the top, a heading, and the body of the page content below. The cursor moves around the screen]</p>
<p>When you use a mouse, you choose where to point it, follow the visible mouse cursor until you get where you want, then interact with the content.</p>
<p>[The cursor selects the &quot;News&quot; link from the main navigation and the News page opens]</p>
<p>When you use a keyboard, your actions are constrained by the order in which content is coded, rather than its visual presentation and layout.</p>
<p>Unlike with a mouse, you're more limited in how you can move your focus.</p>
<p>[The TetraLogical homepage fades back into view]</p>
<p>Keyboard focus moves sequentially through focusable elements such as links, buttons, controls, and form inputs.</p>
<p>[A purple button with the text &quot;Skip to main content&quot; appears at the top of the screen. As the user navigates through the main menu using the tab key, the word &quot;tab&quot; on appears at the bottom of the screen]</p>
<p>By default, the Tab key is used to navigate to the next focusable element and Shift+Tab is used to move to the previous focusable element.</p>
<p>[The screen changes to reveal the Mac System Preferences displaying a series of icons]</p>
<p>In contrast with other operating systems, note that by default, on macOS, Tab only moves between text input fields and a limited set of controls.</p>
<p>[The mouse moves over the screen and selects the options as they're read aloud]</p>
<p>Generally, people that rely on the keyboard to navigate will go to macOS' System Preferences &gt; Keyboard &gt; Shortcuts and enable the &quot;Use keyboard navigation to move focus between controls&quot; option.</p>
<p>[The TetraLogical homepage reappears]</p>
<p>You can generally scroll through content using the cursor keys.</p>
<p>[As the user navigates down the page, the word &quot;space&quot; on appears at the bottom of the screen]</p>
<p>You can also use Space to scroll one screen at a time, and Shift+Space to scroll backwards.</p>
<p>The same can be achieved using the PageUp and PageDown keys.</p>
<p>It's important to remember that these keys only bring more content into view. In order to interact with content, people using a keyboard rely instead on moving the specific keyboard focus.</p>
<p>[The TetraLogical homepage reappears along with the word &quot;tab&quot; at the bottom of the screen. The visible focus outline jumps to each new element as the user navigates through the page]</p>
<p>Once focus is on a control, there are different keys that can be used to interact with the focused element.</p>
<p>[The word &quot;Enter&quot; appears on the screen as the &quot;News&quot; page is selected and opens]</p>
<p>Enter is used to activate links.</p>
<p>[A new webpage appears with the heading &quot;Checkbox&quot;. Two checkbox items appear above a purple &quot;submit&quot; button. The word &quot;tab&quot; appears at the bottom of the screen]</p>
<p>Checkboxes and switches are toggled using Space.</p>
<p>[As the user presses space the word on screen changes from  &quot;Tab&quot; to &quot;Space&quot;. &quot;Tab&quot; causes the visible focus to move to the first checkbox. &quot;Space&quot; then selects the box so a small tick appears inside. This is repeated for the second checkbox item</p>
<p>[A new screen appears with the heading &quot;Select&quot; above a &quot;Select dropdown&quot; menu. The dropdown says &quot;Choose an option&quot; next to a downwards-facing arrow]</p>
<p>Select dropdowns are opened using Enter or Alt+Down arrow.</p>
<p>[The text &quot;Alt+&quot; and a downwards arrow appears in screen. This expands the dropdown menu so options one, two, three, and four are displayed. The user navigates down the list as the downwards arrow is displayed on screen]</p>
<p>The selected option can then be chosen using the arrow keys.</p>
<p>[The user presses &quot;Enter&quot; and the word &quot;Enter is displayed on screen. The dropdown menu closes]</p>
<p>Tab, Enter, or Esc close the dropdown again.</p>
<p>[The screen changes with the heading &quot;Radio buttons&quot; above the same options, this time displayed as four separate radio buttons. The visible focus is on the first option which has been checked]</p>
<p>In some situations, complex or compound controls only present the user with a single tab stop.</p>
<p>Once they have focus, the arrow keys are used to move between the different controls.</p>
<p>As an example, here is a group of radio buttons. Only the currently checked control receives focus.</p>
<p>[The user navigates through the options using the right arrow key which is displayed on screen as it is pressed. They then navigate back the opposite way through the options]</p>
<p>Once it has focus, arrow keys are used to change the currently selected radio button.</p>
<p>Buttons can be activated using Space or Enter.</p>
<p>[A new screen appears with &quot;Confirmation&quot; as the heading. Below is text saying confirming a form has been submitted]</p>
<p>These are some of the high-level details about keyboard navigation, and common strategies that people browsing with a keyboard use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<h2 id="macos-and-a-keyboard" tabindex="-1">macOS and a keyboard</h2>
<p>Unlike Windows, keyboard support needs to be enabled on macOS. If it is not enabled you can only TAB into the form inputs and not the links, buttons and controls. To do this go to Apple menu &gt; Settings &gt; Keyboard &gt; Shortcuts and select &quot;Use keyboard navigation to move focus between controls&quot;.</p>
<p><img src="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/mac-keyboard-settings.jpg" alt="The macOS Keyboard Shortcuts settings showing &quot;Use keyboard navigation to move focus between controls&quot; selected" /></p>
<h2 id="using-keyboards-with-other-input-devices" tabindex="-1">Using keyboards with other input devices</h2>
<p>People often use a keyboard in combination with another input device. This is quite common as keyboard navigation on its own is limited. Alternative devices can range from voice input, pointing devices and switches to even a mouse for people with limited use of a mouse.</p>
<p>What devices people use, and when, will vary depending on what tasks they are doing. For example, someone with Cerebral Palsy or RSI might prefer to use speech recognition to enter text like a search term, then use the keyboard to navigate the search results.</p>
<p>Some people may not be able to use their hands with a keyboard and instead use a pointing device attached to their head or in their mouth to tap the keys.</p>
<p><img src="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/pointing-device-and-keyboard.jpg" alt="A man in a wheelchair at his desk, holding a pointing device with his mouth and using the keyboard on his laptop" />
(Credit: <a href="https://www.w3.org/WAI/perspective-videos/keyboard/">WAI Perspectives: Keyboard compatibility</a>)</p>
<h2 id="skip-links" tabindex="-1">Skip links</h2>
<p>Skip links provide a way for keyboard users to bypass repeated web content, including main navigation and search, and move directly to the main content area.</p>
<p><img src="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/skip-link.jpg" alt="The skip link on the TetraLogical homepage which becomes visible on focus" /></p>
<p>Given how limited keyboard navigation is and how it forces sequential navigation, skip links can be very important for sighted keyboard users, more so than screen reader users who have many other keyboard shortcuts available to them. Try using the <code>Tab</code> key now to tab to the top of the TetraLogical page where a skip link becomes visible on keyboard focus</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>People use keyboards because they have limited or no use of the mouse.</p>
<p>Ergonomic keyboards come in all sorts of shapes and sizes to fit what people need.</p>
<p>Keyboard navigation is limited, so it is common for people to use a keyboard combined with another form of input.</p>
<p>Keyboard navigation is sequential, moving through content in the order it appears in the source code of the page. In western cultures, people expect the content order to go from top to bottom, left to right and to be able to track visible focus.</p>
<p>Shortcuts like skip links are useful for keyboard users as they help bypass repeated content across pages.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible videos and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Introduction to Accessibility Conformance Reports</title>
    <link href="https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/"/>
    <updated>2021-10-15T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/10/15/introduction-to-accessibility-conformance-reports/</id>
    <content type="html"><![CDATA[
        <p>An Accessibility Conformance Report (ACR) is a document that formally summarises the extent to which an information and communications technology (ICT) product or service conforms to an agreed set of international accessibility guidelines and standards.</p>
<p>Typically, an ACR will document a product or service's conformance to the <a href="https://www.w3.org/TR/WCAG/">Web Content Accessibility Guidelines (WCAG) 2.2</a>, but it is often also used to show conformance against the <a href="https://www.access-board.gov/ict/">Revised 508 standards</a> (for products and services sold in the US) and <a href="https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf">EN 301 549</a> (for products and services sold in the European Union). Read our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG Primer</a> to learn more about the Web Content Accessibility Guidelines.</p>
<h2 id="why-might-i-need-to-produce-an-acr%3F" tabindex="-1">Why might I need to produce an ACR?</h2>
<p>ACRs are commonly used as part of the procurement or tendering process. Buyers of the product or service can use the ACR to compare compliance levels between competing suppliers in order to make the choice that best meets their requirements.</p>
<p>ACRs are not mandatory <em>per se</em>, but certain organisations will not enter into agreements to purchase the related product or service unless an associated ACR is available. In particular, an ACR is often required for products and services sold to:</p>
<ul>
<li>State governments</li>
<li>Government agencies</li>
<li>Non-governmental organisations who otherwise receive government funding</li>
</ul>
<p>Even non-governmental organisations may require you to provide an ACR. Examples include:</p>
<ul>
<li>Private schools/universities soliciting bids for a new virtual learning environment (VLE)</li>
<li>Online stores soliciting bids for a new content management system</li>
<li>Large companies soliciting bids for videoconferencing software</li>
</ul>
<p>Therefore, it is good practice to have an ACR for each of your ICT products and services in case an opportunity arises for you to market them to organisations of the above types in the future. Additionally, even if an ACR is <em>not</em> required as part of the procurement process, providing one can show your commitment to making sure that your product or service is available to as wide an audience as possible - and to concede where you need to improve. ACRs are not set in stone - if you improve the accessibility of your product over time, then you can always revisit and update your ACR accordingly.</p>
<h2 id="what-types-of-products-and-services-are-covered-by-an-acr%3F" tabindex="-1">What types of products and services are covered by an ACR?</h2>
<p>In short, most ICT products or services are subject to an ACR. The following list includes a few examples, although there are many, many more.</p>
<ul>
<li>Electronic content such as a website, web application, PDF document, or web-based authoring tool</li>
<li>Software (open) such as a desktop application, native mobile application (including authoring tools in each of these environments), video communication software, or assistive technology software</li>
<li>Hardware such as a kiosk, mobile phone, or peripheral device</li>
<li>Support documentation and services such as manuals, help documentation, contact information</li>
</ul>
<h2 id="how-is-an-acr-structured%3F" tabindex="-1">How is an ACR structured?</h2>
<p>An ACR is based on a formal template known as a <a href="https://www.itic.org/policy/accessibility/vpat/">Voluntary Product Accessibility Template (VPAT)</a>. Note that the term &quot;VPAT&quot; is often used interchangeably with &quot;accessibility conformance report&quot;, even though a VPAT specifically refers to the report's template rather than its contents (and is a registered trademark).</p>
<p>The VPAT is available as a Word document, but the related report can be presented in whichever format you prefer - such as Word, PDF, or even as an HTML page on the product's website.</p>
<p>The ACR is broken up into the following sections:</p>
<ol>
<li><strong>Product/service summary</strong> - this section includes a short description of the product or service, the ACR's publication date and version number, contact information, and the evaluation methods used to produce the results within the ACR.</li>
<li><strong>Applicable standards/guidelines</strong> - the accessibility standards/guidelines that the product or service is intended to conform to.</li>
<li><strong>WCAG 2.x report</strong> - the extent to which the product or service conforms to WCAG. The vast majority of ICT products or services are subject to this section. This section is further broken up into three subsections - WCAG Level A, WCAG Level AA, and WCAG Level AAA.</li>
<li><strong>Revised Section 508 report</strong> - the extent to which the product or service conforms to Revised Section 508. Reporting conformance against this standard is normally required for products or services used by government agencies in the USA. This section is broken up into four &quot;chapters&quot;, each of which matches up directly with the equivalent chapter in the related standard.</li>
<li><strong>EN 301 549 report</strong> - the extent to which the product or service conforms to EN 301 549. Reporting conformance against this standard is normally required for products or services used by government agencies in the European Union. Similarly to the previous section, this section is broken up into ten chapters, each of which matches up directly with the equivalent chapter in the related standard.</li>
<li><strong>Legal disclaimer</strong> - your company's legal disclaimer, if required.</li>
</ol>
<p>Each of the relevant standards are further separated out into individual tables made up of three columns covering:</p>
<ul>
<li>Individual criteria in each standard</li>
<li>The extent to which the product or service meets individual criteria (known as the <em>conformance level</em>)</li>
<li>Supporting remarks and explanations</li>
</ul>
<p>There are five possible conformance levels:</p>
<ul>
<li><strong>Supports</strong>: All of the content and functionality within the product or service meets the related success criterion. For example, all images are provided with appropriate text descriptions, or all functionality is keyboard accessible.</li>
<li><strong>Partially supports</strong>: Some content and functionality within the product or service does not meet the related success criterion. For example, most images are provided with appropriate text descriptions, but some text descriptions are missing, or most of the product's functionality is keyboard accessible, but one of the widgets cannot be operated without using a mouse.</li>
<li><strong>Does not support</strong>: The majority of the content and functionality within the product or service does not meet the related success criterion. For example, most images are missing appropriate text descriptions, and most functionality relies on mouse operation.</li>
<li><strong>Not applicable</strong>: The related success criterion is not relevant to the product or service. For example, success criteria related to video content is not relevant if the product does not include any video content, or if the product is a non-interactive document, then success criteria related to keyboard access are not relevant.</li>
<li><strong>Not evaluated</strong>: The product or service has not been evaluated against the related success criterion. For example, if a product has only been assessed against WCAG 2.2 Level A and Level AA, then the conformance level is set to &quot;not evaluated&quot; on all Level AAA success criteria.</li>
</ul>
<p>The following table demonstrates how conformance against the first two WCAG Level A success criteria may be recorded in practice.</p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Criteria</th>
<th>Conformance Level</th>
<th>Remarks and Explanations</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.1.1 Non-text Content (Level A)</td>
<td>Supports</td>
<td>All non-text content that is presented to the user has a text alternative that serves the equivalent purpose.</td>
</tr>
<tr>
<td>1.2.1 Audio-only and Video-only (Prerecorded) (Level A)</td>
<td>Partially supports</td>
<td>An equivalent transcript is provided for all prerecorded audio-only content, with the exception of audiobook content from third-party providers.</td>
</tr>
</tbody>
</table>
</div><p>It is important to note that, depending on the applicable standards and guidelines, and the type of product or service, certain sections within the ACR can be skipped entirely. For example, if your product or service is not available within the European Union, tables related to EN 301 549 do not need to be completed. Similarly, if your product is a web-based application that only runs in the browser and does not require documentation or additional support services, then it is normally not necessary to complete tables related to software and support documentation.</p>
<h2 id="i-think-i-need-an-acr---how-can-tetralogical-help%3F" tabindex="-1">I think I need an ACR - how can TetraLogical help?</h2>
<p>At TetraLogical, every member of our team has extensive experience producing ACRs for a wide range of ICT products and services.</p>
<p>We begin by agreeing the applicable international standards and guidelines based on your needs, and where your (potential) customers are located. We also determine which sections of the VPAT need to be completed based on the type, functionality, and features of the product or service.</p>
<p>We then formally <a href="https://tetralogical.com/services/assessments/">assess</a> your product or service against the agreed international standards and guidelines using a blend of inspection tools, manual testing, and usability verification with assistive technologies. The results of this assessment will then form the basis of the ACR. At this stage, you can choose to release the ACR &quot;as is&quot;.</p>
<p>If you have agreed to a retest to be conducted at a later date, we can also update the ACR to reflect the results of our retest.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about the European Union <a href="https://tetralogical.com/blog/2019/07/26/public-sector-accessibility-regulations/">Public Sector Accessibility Regulations</a> and how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
<p>Updated: 12 December 2023</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with a mobile screen reader</title>
    <link href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/"/>
    <updated>2021-10-05T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/</id>
    <content type="html"><![CDATA[
        <p>In our second post from our browsing with assistive technology series, we discuss mobile screen readers.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/">browsing with desktop screen readers</a>, <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> and <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a>.</p>
<p>A screen reader is a software application that announces what is on screen to people who cannot see, or who cannot understand, what is displayed visually. They provide access to the entire operating system and applications including browsers and web content. There are screen readers available on all popular platforms including Windows, macOS, iOS and Android.</p>
<h2 id="who-uses-a-mobile-screen-reader" tabindex="-1">Who uses a mobile screen reader</h2>
<p>People who are blind or partially sighted use a screen reader, as well as people with cognition or learning disabilities.</p>
<p>People who are blind and read Braille may use a screen reader in combination with a refreshable Braille display. A refreshable Braille display is an external piece of hardware made up of rows of pins that can be formed into the shape of a Braille character. People can use Braille in combination with speech output or without it. Braille displays are a useful tool if people are in meetings or in a noisy room where listening to the speech output is not convenient.</p>
<p><img src="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/braille-display-tablet.jpg" alt="A refreshable Braille display next to a tablet" /></p>
<p>Most touch devices support screen magnification in combination with screen readers. This enables people with partial sight, cognition or learning disabilities to use a combination of speech and sight. For example, on iOS Zoom can be used to enlarge everything on screen or the magnifier can be used to enlarge parts of the screen while VoiceOver reads content.</p>
<figure>
<img src="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/photo-hasmukh-1.jpg" alt="A black and white photo of Hasmukh, a man of South Asian heritage. He is wearing his cricket whites smiling as he stands ready to bat" />
<figcaption><a href="https://tetralogical.com/blog/2024/10/15/meet-hasmukh-a-blind-cricketer-and-screen-reader-user/">Meet Hasmukh</a>, a blind cricketer, &quot;I use the web to shop, listen to spiritual talks, and plan transport to cricket matches. Images are important as often they include information I need when shopping and finding out match information&quot;.</figcaption>
</figure>
<h2 id="popular-mobile-screen-readers" tabindex="-1">Popular mobile screen readers</h2>
<p>There are screen readers available on all popular mobile platforms:</p>
<ul>
<li>Android Talkback, Samsung Voice Assistant and Amazon Voice View</li>
<li>iOS VoiceOver</li>
</ul>
<p>The <a href="https://webaim.org/projects/screenreadersurvey9">WebAIM screen reader user survey</a> in 2021 notes that the most popular mobile platform, and therefore screen reader, is iOS VoiceOver with 72% usage, then Android with 25.8% and the rest at 2.2%.</p>
<p>The following mobile browser combinations are the most commonly used on iOS and Android respectively:</p>
<ul>
<li>VoiceOver with Safari</li>
<li>TalkBack with Chrome</li>
</ul>
<h2 id="what-mobile-screen-readers-announce" tabindex="-1">What mobile screen readers announce</h2>
<p>Like desktop screen readers, mobile screen readers announce everything on a web page and within an application.</p>
<p>All static text is spoken including paragraphs of text, headings and lists. Screen readers also announce hidden text such as text descriptions for images, visually hidden text, and the names of landmark regions (for example banner, main and footer) when browsing web content.</p>
<p>Mobile screen readers will also identify the role of an element for example link, button, image, slider, toggle button, etc.</p>
<p>On iOS there is an additional feature where a &quot;hint&quot; can be announced with an element. This acts as an audible tooltip, by describing the action an element completes. For example, &quot;View, button, displays book detail&quot;, where &quot;displays book detail&quot; is the hint. It is possible to switch support for hints on or off so they should never be relied on for primary content.</p>
<h2 id="navigating-with-mobile-screen-readers" tabindex="-1">Navigating with mobile screen readers</h2>
<p>When a mobile screen reader is enabled on a touch-screen device all the gestures change. This is because the mode of interaction changes when a screen reader is enabled. Instead of visually scanning the screen and tapping once on something to activate it, it is necessary to scan the screen by touch and then double tap to activate it.</p>
<div class="tabs" id="tabs_1773627714361411">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/#tabs_1773627714361411_0">Video</a></li><li><a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/#tabs_1773627714361411_1">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="tabs_1773627714361411_0">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/ev8ERS5Z3NU" title="Browsing with a mobile screen reader" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="tabs_1773627714361411_1">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/Cz5IH-JDr6M" title="Browsing with a mobile screen reader (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure" data-max-height="">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[The TetraLogical logo whooshes into view on a white background. The logo flashes and stops with a sonar-like 'ping'. It then magnifies and fades out.]</p>
<p>[A dark purple background appears with the TetraLogical logo faintly overlaid]</p>
<p>Browsing with a mobile screen reader.</p>
<p>Like desktop screen readers, mobile screen readers announce everything on a web page and within an application.</p>
<p>All static text is spoken including paragraphs of text, headings and lists.</p>
<p>Screen readers also announce additional information, such as text descriptions for images, visually hidden text, and the names of landmark regions (for example banner, main, and footer) when browsing web content.</p>
<p>[An image of the TetraLogical homepage appears on a mobile device being held in hand. The logo is displayed at the top, then below it a horizontal list of links for main navigation. The main heading is below that, and the body of the page content fills the rest of the screen]</p>
<p>When a mobile screen reader is enabled on a touch-screen device, all the gestures change.</p>
<p>Instead of visually scanning the screen and tapping once on something to activate it, people will scan the screen by touch, and move their screen reader focus sequentially, in a linear fashion, through elements on the screen.</p>
<p>[The hands holding the device navigate through the elements on screen]</p>
<p>Swipe right to move focus to the next item. Swipe left to move focus to the previous item.</p>
<p>In addition, mobile screen readers also let you &quot;explore by touch&quot;, dragging a finger over the screen.</p>
<p>[As the user drags their finger, a green visible focus outline highlights content as it moves. Text is displayed at the bottom of the screen as the screen reader reads content aloud]</p>
<p>The screen reader will focus and announce each item you touch.</p>
<p>This can be useful in situations where an item can't be reached through normal navigation, but can be quite inefficient.</p>
<p>[The user moves the visible focus to the &quot;News&quot; page. They double-tap elsewhere on the screen and the News page opens]</p>
<p>Once a mobile screen reader is focused on an item, double-tapping anywhere on the screen will activate it.</p>
<p>[The TetraLogical homepage on a mobile screen is displayed on a purple background]</p>
<p>On both Android and iOS it is possible to navigate by a specific type of element.</p>
<p>On iOS, the VoiceOver rotor makes it possible to access different configuration settings and to navigate applications and web pages by different elements.</p>
<p>Moving two fingers clockwise opens the rotor where you can choose what types of element you want to navigate between.</p>
<p>[The Voiceover rotor appears on screen with 8 options displayed in a dial. As the user navigates and each new item is announced, the dial moves clockwise through the options]</p>
<p>[VoiceOver] Characters, Words, Lines, Speaking rate, 60%, Containers, Headings, 5 headings</p>
<p>[The rotor disappears]</p>
<p>Once a type of element is selected, swiping up or down moves focus between the elements of that particular type.</p>
<p>For example, while browsing a website, if headings are selected in the rotor, then swiping up or down moves focus from heading to heading.</p>
<p>[The visible focus moves from heading to heading as the user navigates down the page and each heading is read aloud]</p>
<p>[VoiceOver] Hello, we're TetraLogical, Heading level 1, News, heading level 2, Blog, heading level 2, Contact us, heading level 2.</p>
<p>[The TetraLogical homepage on a mobile screen reappears. The visible focus is now an outline over the entire screen]</p>
<p>On Android you can swipe down then up in one gesture to cycle between TalkBack navigation options.</p>
<p>[V-shaped arrows pointing up and down appear on screen, they are displayed above and below each the word being announced]</p>
<p>[TalkBack] Characters, Words, Lines, Headings, Swipe up or swipe down to read by headings</p>
<p>[The visible focus outline stops on the main heading]</p>
<p>Once an option is selected, such as headings, a single swipe, either up or down, moves focus between each heading.</p>
<p>[The visible focus outline moves down the page as the user navigates]</p>
<p>[TalkBack] Hello, we're TetraLogical, Heading 1, News, heading 2, Blog, heading 2.</p>
<p>All screen readers can be customised to suit people's preferences. Probably the most common setting people change is the rate of speech output.</p>
<p>[The VoiceOver rotor reappears with &quot;Speaking Rate&quot; selected in the dial]</p>
<p>Many people who use screen readers on a daily basis listen to the speech output very fast.</p>
<p>This is similar to how someone who is sighted might skim read or read fast in their head.</p>
<p>The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers.</p>
<p>As an example, here we change the speaking rate in iOS VoiceOver from 60% to 100%, and then read through content on the TetraLogical website's homepage.</p>
<p>[The &quot;Speaking Rate&quot; overlay disappears]</p>
<p>[VoiceOver] Speaking Rate, 60%, 65%, 70%, 75%, 80%, 85%, 90%, 95%, 100%</p>
<p>[VoiceOver, speaking at a very high rate] We take the time to understand your organisation, your project, and your goals, so we can put together services that are tailored to suit you. Our accessibility services include...</p>
<p>These are some of the high level details about mobile screen readers, and common strategies that people browsing with a mobile screen reader use.</p>
<p>[The screen fades to white and the TetraLogical logo appears again]</p>
<p>To find out more about accessibility visit tetralogical.com.</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="standard-navigation" tabindex="-1">Standard navigation</h3>
<p>The most common approach to navigating with a mobile screen reader is to swipe through content sequentially.</p>
<ul>
<li>Swipe right to move focus to the next item</li>
<li>Swipe left to move focus to the previous item</li>
</ul>
<p>In addition, mobile screen readers also let you &quot;explore by touch&quot;, dragging a finger over the screen. The screen reader will focus and announce each item you touch. This can be useful in situations where an item can't be reached through normal navigation, but can be quite inefficient.</p>
<p>Once a mobile screen reader is focused on an item, double-tapping anywhere on the screen will activate it.</p>
<h3 id="navigating-specific-elements" tabindex="-1">Navigating specific elements</h3>
<p>On both Android and iOS it is possible to select the type of element to navigate by.</p>
<p>The VoiceOver rotor makes it possible to access different configuration settings and to navigate applications and web pages by different elements. Moving two fingers clockwise opens the rotor where you can choose what types of element you want to navigate between:</p>
<ul>
<li>In applications this includes headings, words, characters, containers and lines</li>
<li>When browsing this includes headings, words, characters, containers, lines, links, and form controls</li>
</ul>
<p>Once a type of element is selected, swiping up or down moves focus between the selected item. For example if headings are selected in the rotor then swiping moves focus from heading to heading. For more information visit <a href="https://support.apple.com/en-gb/guide/iphone/iph3e2e2281/ios">VoiceOver gestures on iPhone</a> (note these also apply to iPads as well).</p>
<p><img src="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/ios-mobile-rotor-headings.jpg" alt="The iOS rotor showing the headings options selected on the TetraLogical homepage" /></p>
<p>On Android you can swipe down then up in one gesture to cycle between TalkBack navigation options. Options include characters, words, lines, paragraphs, headings, controls and links. Once an option is selected, such as headings, a single swipe either up or down moves focus between each heading. For more information visit <a href="https://support.google.com/accessibility/android/answer/6006598">navigating your device with TalkBack</a>.</p>
<p><img src="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/wcag-talkback-headings.jpg" alt="The TalkBack navigation option for heading navigation on the TetraLogical homepage" /></p>
<p><a href="https://support.google.com/accessibility/android/answer/6151827?hl=en-GB#zippy=%2Cversion-and-up">Android TalkBack</a> gestures can vary between versions, and between different devices, so it is always worth following the TalkBack tutorial available in accessibility options in settings. iOS VoiceOver also has a built-in tutorial in settings.</p>
<h2 id="speech-output-rate" tabindex="-1">Speech output rate</h2>
<p>All screen readers can be customised to suit people's preferences. Probably the most common setting people change is the rate of speech output.</p>
<p>Many people who use screen readers on a daily basis listen to the speech output very fast. This is similar to how someone who is sighted might skim read or read fast in their head. The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers. This is why it is important to prioritise keywords first in links, headings and sentences.</p>
<h2 id="the-difference-between-browsing-the-web-and-browsing-applications" tabindex="-1">The difference between browsing the web and browsing applications</h2>
<p>According to the <a href="https://webaim.org/projects/screenreadersurvey9">WebAIM screen reader user survey</a> in 2021, people who use mobile screen readers are slightly more likely to use a mobile app than a web site to carry out tasks.</p>
<p>It's hard to know why but it may be due to browsing the web being slightly more complicated than browsing apps. For example, on the web more information is announced which can be both a good and a bad thing.</p>
<p>On a positive note you get more detailed information about elements. A heading level one <code>&lt;h1&gt;</code> on the web will be announced as &quot;heading level one&quot;. On applications only &quot;heading&quot; is announced, not the level, as there is no means to include levels.</p>
<p>Apps, however, are simpler and less complex. Standard UI components that come with app UI libraries are natively accessible making the user experience much smoother.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>People use mobile screen readers because they cannot see the screen or have a cognitive or learning disability, which means listening to content is helpful.</p>
<p>People who use mobile screen readers have many gestures at their disposal. These gestures are used in various combinations depending on what the person wants to do - read a section of content, scan a page for a section of interest, find out how a word is spelt, activate a link or button, and more besides.</p>
<p>Some people who use a mobile screen reader prefer to use apps over web content. Possibly because they are simpler to use and easier to make accessible.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible video and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Browsing with a desktop screen reader</title>
    <link href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/"/>
    <updated>2021-09-29T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/</id>
    <content type="html"><![CDATA[
        <p>In our first post from our browsing with assistive technologies series, we discuss desktop screen readers.</p>
<p>You can also explore <a href="https://tetralogical.com/blog/2021/10/05/browsing-with-a-mobile-screen-reader/">browsing with a mobile screen reader</a>, <a href="https://tetralogical.com/blog/2021/10/26/browsing-with-a-keyboard/">browsing with a keyboard</a>, <a href="https://tetralogical.com/blog/2021/11/10/browsing-with-screen-magnification/">browsing with screen magnification</a> and <a href="https://tetralogical.com/blog/2021/11/15/browsing-with-speech-recognition/">browsing with speech recognition</a>.</p>
<p>A screen reader is a software application that announces what is on screen to people who cannot see, or who cannot understand, what is displayed visually. They provide access to the entire operating system and applications including browsers and web content.</p>
<h2 id="who-uses-a-screen-reader" tabindex="-1">Who uses a screen reader</h2>
<p>People who are blind or partially sighted use a screen reader, as well as people with cognitive or learning disabilities who find it helpful to listen to what's on screen instead of look at it.</p>
<p>People who are blind and read Braille may use a screen reader in combination with a refreshable Braille display. A refreshable Braille display is an external piece of hardware made up of rows of pins that can be formed into the shape of a Braille character. People can use Braille in combination with speech output or without it. Braille displays are a useful tool if people are in meetings or in a noisy room where listening to the speech output is not convenient.</p>
<figure>
<img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/photo-andre-1.jpg" alt="A black and white photo of Andre playing an electronic keyboard sitting side on. Andre is a younger black man and wears a striped shirt and Ray-Ban Meta Smart Glasses" />
<figcaption>Andre, a blind composer and music producer, &quot;I use audio software to control the output from my keyboard during gigs; without accessibility, there would be no music&quot;.</figcaption>
</figure>
<p>Some screen readers also support screen magnification. This enables people with low vision to use a combination of speech and sight. The magnifier enlarges content while the reader announces everything on the computer screen, echoing typing and automatically reading documents, web pages, and other applications.</p>
<h2 id="popular-desktop-screen-readers" tabindex="-1">Popular desktop screen readers</h2>
<p>There are a number of desktop screen readers people can choose from. Windows has <a href="https://support.microsoft.com/en-us/windows/hear-text-read-aloud-with-narrator-3215dce8-a560-4f9d-236c-fd7439d5dfd3">Narrator</a> built in and macOS has <a href="https://support.apple.com/en-gb/guide/voiceover/welcome/mac">VoiceOver</a>.</p>
<p>VoiceOver is the only screen reader available on macOS, but there are other screen readers that can be installed on Windows, including <a href="https://nvaccess.org/">NVDA</a> and <a href="https://www.freedomscientific.com/products/software/jaws/">JAWS</a>.</p>
<p><a href="https://help.gnome.org/users/orca/stable/">Orca</a> is the screen reader for Linux distributions that use the GNOME desktop.</p>
<p>According to the <a href="https://webaim.org/projects/screenreadersurvey9/">WebAIM Survey of screen reader users in 2021</a> the most popular screen readers are JAWS or NVDA on Windows and VoiceOver on macOS. Chrome is the most commonly used browser with Microsoft Edge usage increasing.</p>
<p>It is not uncommon for people to have two desktop screen readers. Windows users might use JAWS at work and NVDA at home, because although JAWS is expensive it's often favoured by employers, where NVDA is free. People who use Windows at work may prefer to use macOS at home, meaning they use JAWS at work and VoiceOver at home.</p>
<h2 id="what-desktop-screen-readers-announce" tabindex="-1">What desktop screen readers announce</h2>
<p>When it comes to web content, desktop screen readers will read everything on a web page, provided it has been coded correctly, plus some things that are not visible.</p>
<p>All text is read out including paragraphs of text, headings, lists and form labels.</p>
<p>Screen readers also announce useful information about the content, based on the HTML elements that have been used. For example, when a screen reader encounters a heading that uses the <code>&lt;h1&gt;</code> element, it announces the element's role as well as the heading level. The &quot;News&quot; heading in the screenshot below would be announced as &quot;Heading level one, News&quot; where &quot;heading&quot; is the role and &quot;one&quot; is the level.</p>
<p><img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/heading-level-one.jpg" alt="The main heading News, highlighted on the TetraLogical homepage with the VoiceOver text output showing Heading Level 1, News" /></p>
<p>When reading lists screen readers will announce how many items are in the list and when the end of the list is reached. For example, &quot;List of 3 items, 2 of 3&quot; or &quot;End of list&quot;.</p>
<p><img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/lists.jpg" alt="The main navigation list of links on the TetraLogical site showing the second link highlighted and the VoiceOver text output as visited link, Services, 2 of 4" /></p>
<p>Working in partnership with the browser, screen readers are able to identify almost every kind of HTML element, including those used to represent tables, forms, images, links, and landmark regions like navigation blocks or the main content area of the page.</p>
<p><img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/landmark-regions-main.jpg" alt="The main landmark region of the TetraLogical News page highlighted with the text output as main" /></p>
<p>Like headings and lists, when navigating elements such as links, buttons or form inputs, screen readers announce the text content as well as the role and state of the element. For example, a button with the visible text submit will be announced as &quot;Submit, button&quot;. A checkbox that is selected will be announced as &quot;checkbox, selected&quot; or &quot;checkbox, Checked&quot;.</p>
<p><img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/checkbox-selected.jpg" alt="A selected show password checkbox" /></p>
<p><strong>Note:</strong> Screen readers all do the same things, but they do not always do them in exactly the same way. For example, one screen reader might announce &quot;image&quot; and another &quot;graphic&quot;, when they encounter an <code>&lt;img&gt;</code> element. These differences are to be expected and are nothing to worry about.</p>
<p>Screen readers also announce hidden text like text descriptions for images, or content that has been intentionally hidden from sighted people.</p>
<h2 id="navigating-with-desktop-screen-readers" tabindex="-1">Navigating with desktop screen readers</h2>
<p>Where sighted people will visually scan a page, then make decisions about where to navigate or what to concentrate on, screen reader users will do the same but with keyboard commands.</p>
<p>While screen readers often have different keyboard commands, people tend to use the same general strategy for exploring, navigating, and reading content.</p>
<p>When opening a web page, screen readers will automatically read the page from top to bottom, starting with the page title. However, it's common for people to stop the screen reader, then explore the content for themselves.</p>
<div class="tabs" id="tabs-example">
        <ul class="tabs__triggers"><li><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/#post-video">Video</a></li><li><a href="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/#bsl-video">British Sign Language Video</a></li></ul>
        <div class="tabs__panel flow" id="post-video">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/KuVKQQMtRRI" title="Browsing with a desktop screen reader" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div><div class="tabs__panel flow" id="bsl-video">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/gcNWPYnWtSc" title="Browsing with a desktop screen reader (British Sign Language version)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
  </div>
      </div>
<div class="tl-disclosure">
        <button class="tl-disclosure__control tl-js-disclosure-control" ype="button" style="display:none;">
          <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 8 8 8 8-8"></path></svg>
          Transcript
        </button>
        <p class="tl-disclosure__placeholder tl-js-disclosure-placeholder" type="button">
          Transcript
        </p>
        <div class="tl-disclosure__content tl-js-disclosure-content" tabindex="0">
          <div class="tl-disclosure__content-wrapper prose flow">
<p>[Logo whooshes into view, stopping with a sonar-like 'ping']</p>
<p>Browsing with a desktop screen reader</p>
<p>Screen readers announce everything on a web page and within an application. All static text is spoken including paragraphs of text, headings and lists. Screen readers also announce additional information such as text descriptions for images, visually hidden text, and the names of landmark regions (for example banner, main and footer) when browsing web content. As an example, here's an extract from the TetraLogical.com site as experienced with a screen reader.</p>
<p>[NVDA] Link, skip to main content Visited link, graphic, TetraLogical Main navigation landmark list with four items visited link About visited link Services visited link News visited link Blog Out of list Main landmark Heading level 1 Hello, we're TetraLogical. We're a company with inclusion at its heart. We specialise in all aspects of accessibility, from working with your websites and apps to giving your teams the skills they need to make accessibility part of everything they do.</p>
<p>For interactive elements, screen readers will not only announce the name and role of the element, but its current state as well. In this example, we're using NVDA to navigate to an unchecked checkbox, and then check it.</p>
<p>[NVDA] Checkbox, document Checkbox not checked I have read the terms and conditions Checked The basic navigation for people who use a screen reader is the same as that used by keyboard users in general. The Tab key is used to navigate to the next focusable element such as links, buttons or form inputs. To move backwards, you use Shift + Tab. Enter is used to activate links. Enter or Space activate buttons. The Arrow keys are used to navigate static content such as text, as well as to interact with components such as menus, tab panels, sliders, select dropdowns, and groups of radio buttons.</p>
<p>Beyond the basics, however, people who use a screen reader have many more keyboard commands at their disposal. Where sighted people will visually scan a page, then make decisions about where to navigate to or what to concentrate on, screen reader users will do the same but with keyboard commands. While screen readers often have different keyboard commands, people tend to use the same general strategy for exploring, navigating, and reading content. When opening a web page, screen readers will automatically read the page from top to bottom, starting with the page title. It's common for people to stop the screen reader, then explore the content for themselves. A common strategy is to scan a page using headings or landmark regions, then use other keyboard commands to explore relevant content in more detail. This enables people to understand the overall structure of content, before deciding what to do next.</p>
<p>For example, a screen reader user may navigate between the headings on the page until they find one that seems to preface the content they're looking for. Then they'll use more keyboard commands to read the subsequent content, activate a link, or perform some other task. In this example, we're using NVDA to navigate between the headings on the TetraLogical website using the H key. Once we reach a heading that interests us, we continue using the Tab key to reach the following link.</p>
<p>[NVDA] Hello, we're TetraLogical, heading level 1 News, heading level 2 Blog, heading level 2 Contact us, heading level 2 Main region hello@tetralogical.com, send mail link</p>
<p>Probably the most common setting people change is the rate of speech output. Many people who use screen readers on a daily basis listen to the speech output very fast. This is similar to how someone who is sighted might skim read and read fast in their head. The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers. As an example, here we change the speaking rate in NVDA's Speech settings from 60% to 100%, and then read through content on the TetraLogical website's homepage.</p>
<p>[NVDA] Rate, slider 60, Alt+R 100 Main landmark Hello, we're TetraLogical, heading level 1 We're a company with inclusion at its heart. We specialise in all aspects of accessibility, from working with your websites and apps to giving your teams the skills they need to make accessibility part of everything they do.</p>
<p>These are some of the high level details about desktop screen readers, and common strategies that people browsing with a desktop screen reader use. To find out more about accessibility visit tetralogical.com</p>
<p></p></div>
</div>
</div><p></p>
<h3 id="standard-keyboard-navigation" tabindex="-1">Standard keyboard navigation</h3>
<p>The <code>Tab</code> key is used to navigate to the next focusable element such as links, buttons or form inputs. To move backwards <code>Shift</code> + <code>Tab</code> is used.</p>
<p><code>Enter</code> is used to activate links and <code>Enter</code> or <code>Spacebar</code> to activate buttons. The <code>Arrow</code> keys are used to navigate static content such as text as well as interact with components such as menus, tab panels, sliders and so on.</p>
<p>Use of the <code>Tab</code>, <code>Shift</code> + <code>Tab</code>, <code>Enter</code> and <code>Spacebar</code> keyboard commands is the same for people navigating a web page with a keyboard but this is where the similarity ends. The <a href="https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/">difference between keyboard and screen reader navigation</a> is that screen reader users have many more keyboard commands available to them.</p>
<h3 id="screen-reader-navigation" tabindex="-1">Screen reader navigation</h3>
<p>A common strategy is to scan a page using headings or landmark regions, then use other keyboard commands to explore relevant content in more detail.</p>
<p>This enables people to understand the overall structure of content, before deciding what to do next. For example, a screen reader user may navigate between the headings on the page until they find one that seems to preface the content they're looking for, then they'll use more keyboard commands to read the subsequent content, activate a link, or perform some other task.</p>
<p>Navigating by headings is very common amongst people who use screen readers, 85.7% of respondents in the 2020 WebAIM screen reader user survey reported <a href="https://webaim.org/projects/screenreadersurvey9/#heading">heading levels</a> as key to navigating pages. This is in contrast to only 25.6% of respondents reporting navigating by <a href="https://webaim.org/projects/screenreadersurvey9/#landmarks">landmarks</a> as useful.</p>
<p>This could be for any number of reasons such as landmark regions not being implemented as well as headings by developers. Or possibly people being less familiar with landmark regions.</p>
<p>When a screen reader user finds the general content they're interested in, they have many different options to choose from, including:</p>
<ul>
<li>Reading content by character, word, sentence, or paragraph</li>
<li>Reading all the content from there to the bottom of the page</li>
<li>Navigating between links</li>
<li>Completing forms</li>
<li><a href="https://tink.uk/how-screen-readers-navigate-data-tables/">Navigating data tables</a></li>
</ul>
<h3 id="skip-links" tabindex="-1">Skip links</h3>
<p>Skip links provide a way for keyboard users to bypass repeated content, including main navigation and search, and jump to the main part of the page, but they're not always used by screen reader users.</p>
<p><img src="https://tetralogical.com/blog/2021/09/29/browsing-with-a-desktop-screen-reader/skip-link.jpg" alt="The skip link on the TetraLogical homepage which becomes visible of focus" /></p>
<p>According to the 2021 WebAIM screen reader user survey, <a href="https://webaim.org/projects/screenreadersurvey9/#skip">skip link</a> usage among screen reader users is mixed with only 16.8% reporting they always used them and 14.4% reporting they never use them.</p>
<h2 id="screen-reader-verbosity-settings" tabindex="-1">Screen reader verbosity settings</h2>
<p>All screen readers can be customised to suit people's preferences. Verbosity settings determine how much detail screen readers will read back. This might include announcing text formatting changes, punctuation, and information about components such as tables or frames.</p>
<p>How much people customise a screen reader will  vary depending on preference, familiarity, and experience.</p>
<h3 id="speech-rate" tabindex="-1">Speech rate</h3>
<p>Probably the most common setting people change is the rate of speech output.</p>
<p>Many people who use screen readers on a daily basis listen to the speech output very fast. This is similar to how someone who is sighted might skim read and read fast in their head. The speech rate can be so fast that output is almost impossible to follow for people unaccustomed to screen readers. This is why it is important to prioritise keywords first in links, headings and sentences.</p>
<h3 id="punctuation" tabindex="-1">Punctuation</h3>
<p>Another common setting is the amount of punctuation spoken. Screen readers all treat punctuation a little differently by default, but they can all be configured to the user's preferences.</p>
<p>A common choice is for the screen reader to speak punctuation just like a person would if they were reading out loud. This means that most punctuation is not actually spoken, but is inferred from the way the screen reader speaks - a brief pause for a comma, a slightly longer pause for a full stop, or a rise in inflection for a sentence that ends with a question mark for example. Only a few punctuation marks are actually spoken - the @ sign in an email address or the forward slashes in a web address for example.</p>
<p>It's tempting to try and write content that is announced in a particular way by screen readers, but <a href="https://accessibility.blog.gov.uk/2017/02/08/advice-for-creating-content-that-works-well-with-screen-readers/">writing content that works well with screen readers</a> is a remarkably complex task.</p>
<h2 id="summary" tabindex="-1">Summary</h2>
<p>People use desktop screen readers because they cannot see the screen, or because they have a cognitive or learning disability that means listening to content is helpful.</p>
<p>People who use desktop screen readers have many keyboard commands at their disposal. These commands are used in various combinations depending on what the user wants to do - read a section of content, scan a page for a section of interest, find out how a word is spelt, activate a link or button, and more besides.</p>
<p>Desktop screen readers are dependent on the quality of the code that was used to create the application or the web content. If the wrong HTML elements are used, the screen reader has no way of identifying what the content is, and the screen reader user has no information to help them make decisions about what to do with it.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read <a href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/">an inclusive approach to video production</a> to learn more about how to produce accessible video and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>
<p>Updated Thursday 2 March 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>An inclusive approach to video production</title>
    <link href="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/"/>
    <updated>2021-06-23T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/</id>
    <content type="html"><![CDATA[
        <p>Some people find accessing audio or visual content in video challenging or impossible; for this reason, providing alternatives is a requirement of the Web Content Accessibility Guidelines (WCAG) 2.1. It is a common belief that producing alternatives are expensive and time-consuming. This can be the case when accessibility is not considered at the planning stage of video content.</p>
<p>This article describes an inclusive approach to video production that allows you to create accessible videos without expensive add-ons.</p>
<h2 id="wcag-2.1-requirements" tabindex="-1">WCAG 2.1 requirements</h2>
<p>WCAG 2.1 includes a number of requirements around multimedia content. In order to comply with WCAG, videos on your websites and mobile apps must have the following:</p>
<ul>
<li><strong>Captions:</strong> Unless the audio track of your videos does not convey information, captions must be provided to give people unable to hear the audio access to it. (<a href="https://www.w3.org/WAI/WCAG21/Understanding/captions-prerecorded.html">Success Criterion 1.2.2 Captions (Prerecorded)</a></li>
<li><strong>Audio description:</strong> When the visual content of videos communicates information not in the audio track, you must also include an audio description. This can be added in the natural pauses of the audio track, or in extended pauses specifically created for the audio description. (<a href="https://www.w3.org/WAI/WCAG21/Understanding/audio-description-or-media-alternative-prerecorded.html">Success Criterion 1.2.3 Audio Description or Media Alternative</a> and <a href="https://www.w3.org/WAI/WCAG21/Understanding/audio-description-prerecorded.html">Success Criterion 1.2.5 Audio Description (Prerecorded)</a>)</li>
<li><strong>Text transcript:</strong> Finally, providing a text transcript is essential to make the content available to people who are deafblind. It also benefits people who prefer to consume content at their own pace or find written text easier to understand than video content. The text transcript must include both the audio track and a description of any meaningful visual content. (<a href="https://www.w3.org/WAI/WCAG21/Understanding/audio-description-or-media-alternative-prerecorded.html">Success Criterion 1.2.3 Audio Description or Media Alternative</a> and <a href="https://www.w3.org/WAI/WCAG21/Understanding/media-alternative-prerecorded.html">Success Criterion 1.2.8 Media Alternative (Prerecorded)</a>)</li>
</ul>
<h2 id="a-commonly-used-approach" tabindex="-1">A commonly used approach</h2>
<p>A common approach by many companies, and individuals, is to produce the video content first, then to send it to an external organisation who generates all the needed alternatives. This approach has a number of significant drawbacks:</p>
<ul>
<li><strong>It is expensive:</strong> The costs of getting captions, audio description and text transcripts from a third-party can be high</li>
<li><strong>It is time consuming:</strong> It is not unusual for companies to take several weeks to create the alternatives</li>
<li><strong>The alternatives may not always be equivalent:</strong> In order to provide a comparable experience to all people, it is fundamental that the alternatives provide equivalent information to the original video content. When audio descriptions and text transcripts are produced by a third-party, there is a risk that the messages the video content conveys are partially lost</li>
</ul>
<h2 id="a-more-inclusive-approach" tabindex="-1">A more inclusive approach</h2>
<p>The fundamental flaw of the above approach described is that it starts with an inaccessible product (i.e. the initial video content) and tries to build accessibility features on top of it. The final product is likely to be compliant with accessibility requirements but not as accessible and usable as it could be.</p>
<p>A more inclusive approach is to start with a product that is accessible to all, then create different versions of it so that people can choose the one that works best for them. Taking this approach will allow you to produce truly accessible video content, efficiently and at a lower cost.</p>
<p>The steps that make up this process are described below.</p>
<h3 id="step-1%3A-write-a-comprehensive-text-transcript" tabindex="-1">Step 1: Write a comprehensive text transcript</h3>
<p>Start by writing an accurate and comprehensive text transcript, which includes all information you want to communicate.</p>
<p>Here is the initial transcript we wrote for the <a href="https://www.youtube.com/watch?v=ahDuaWKSGZA">Quick accessibility test: Keyboard support</a> video we produced for GAAD 2021. It contains the script, a description of any meaningful visual content, and a few instructions for the benefit of people producing the video (e.g. title and final slides, the URL of the page for the demo, etc.).</p>
<blockquote>
<p>Title slide: Quick accessibility test: Keyboard support</p>
<p>Script: Quick accessibility test: Keyboard support. Many people are unable to use a mouse or touch gestures due to limited arm movement and dexterity issues. Instead they may rely on a keyboard, or similar input device, to navigate and operate digital content.
To find out if your website is keyboard accessible, load the site and start navigating it by pressing the Tab key on your keyboard. You should be able to reach all actionable controls, such as links, buttons and form fields.</p>
<p>Visual content: A page from the TetraLogical website (<a href="https://tetralogical.com/services/">https://tetralogical.com/services/</a>) being navigated with the keyboard. All actionable elements receive the keyboard focus in a logical order and the focus indicator is visible around them.</p>
<p>Script: Pressing the Enter key or Spacebar should activate these controls.</p>
<p>Visual content: A link (&quot;Knowledge&quot;) on the page from the TetraLogical website is activated with the Enter key and a new page is loaded.</p>
<p>Script: If any actionable element on your website is skipped, receives the focus in an illogical order, or you cannot see where the focus is at any time, then keyboard support is not properly implemented.
To find out more about accessibility, visit our website at tetralogical.com</p>
<p>End slide: To find out more about accessibility, visit our website at tetralogical.com</p>
</blockquote>
<p>This content is accessible to everybody and, with the exception of instructions, can be published to the website / mobile app as a text alternative for the video content.</p>
<h3 id="step-2%3A-include-a-description-of-all-informative-visual-content-in-the-audio-track" tabindex="-1">Step 2: Include a description of all informative visual content in the audio track</h3>
<p>When writing the script, make sure to include a description of any meaningful visual content you are planning to have in your video. You only need to describe visuals that convey important information, such as text displayed on screen, steps demoed in an instructional video, and so on.</p>
<p>You may have noticed how the transcript above contains the text displayed on the title and final slide. This is an example of how easy including information conveyed by the visual content can be.</p>
<blockquote>
<p>Title slide: Quick accessibility test: Keyboard support</p>
<p>Script: Quick accessibility test: Keyboard support.</p>
</blockquote>
<p>When writing the script for <a href="https://www.youtube.com/watch?v=urRQNIowiEQ">Quick accessibility test: High Contrast mode</a>, we also included a description of the steps to turn on High Contrast mode and Invert Colours settings, which we were going to demo in the video.</p>
<blockquote>
<p>If you have a Windows machine, find the High Contrast option under Ease of Access in Settings and turn it on. You can do the same on macOS by selecting the Invert Colors option under Display in the Accessibility settings. At this point, all text except for links should be white on a black background.</p>
</blockquote>
<p>Doing this at this stage removes the need of producing an (expensive) audio description at a later stage.</p>
<h3 id="step-3%3A-add-captions-to-your-video" tabindex="-1">Step 3: Add captions to your video</h3>
<p>Once you have produced your video, you will need to add captions. Having your entire script already written, this should only take a few minutes.</p>
<p><img src="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/captions.png" alt="Screenshot of the YouTube video player with captions turned on." /></p>
<p>Various software and online tools allow you to upload your video and script then automatically synchronise them. You just need to review the accuracy of the captions and timestamps, and make minor adjustments if needed (e.g. breaking long lines of captions into several shorter ones, merging or further separating captions to make it as easy as possible for people to read and understand them).</p>
<p>Here are the guidelines that we follow when adding captions (more detailed ones are available online, such as the <a href="https://www.bbc.co.uk/accessibility/forproducts/guides/subtitles/">BBC Subtitle Guidelines</a>):</p>
<ul>
<li>Start and end captions exactly where the audio starts and ends</li>
<li>Have a maximum of 2 lines</li>
<li>Do not include more than 30 characters per line</li>
<li>If you can, break lines where you have a punctuation mark (full stop, comma, etc.). When you must break lines at other points, do not break them in between:
<ul>
<li>a person’s first and last name, or title and name</li>
<li>a conjunction (e.g. &quot;and&quot;) and the following word</li>
<li>an article (e.g. &quot;the&quot;, &quot;a&quot;, &quot;an&quot;) and the following noun</li>
<li>an auxiliary (e.g. &quot;could&quot;, &quot;have&quot;, &quot;must&quot;) and the following verb</li>
</ul>
</li>
<li>Spell out numbers from 1 to 10 (&quot;one&quot;, &quot;two&quot;, etc.), use digits for larger numbers (&quot;65&quot;, &quot;1002&quot;)</li>
<li>Include meaningful sound effects in square brackets, in capitals (e.g. &quot;[DOOR SLAMS]&quot;)</li>
<li>For videos containing multiple speakers, display their name in capitals (e.g. &quot;ELA: How are you? HENNY: I'm well&quot;)</li>
<li>Ensure that no important visual content is hidden when captions are enabled</li>
</ul>
<p>For our <em>Quick accessibility tests</em> video series, we used YouTube Studios, which quite accurately matched the text we uploaded with the audio track of our videos. Other tools are available and may be equally effective.</p>
<h3 id="step-4%3A-add-a-text-transcript-to-your-page" tabindex="-1">Step 4: Add a text transcript to your page</h3>
<p>Now that your video has captions and an audio track containing a description of all meaningful visual content, the only thing for you left to do is to add a text transcript to the page where the video is embedded. This, again, should only take a few minutes. Remove the instructions from the text transcript that you wrote at step 1 of this process, then paste the remaining transcript into your page.</p>
<p>Here is the text transcript we published on our YouTube channel for the <em>Quick accessibility test: Keyboard support</em> video. It is an almost exact copy of the initial transcript we wrote when planning this content; we only removed internal instructions.</p>
<blockquote>
<p>Quick accessibility test: Keyboard support</p>
<p>Many people are unable to use a mouse or touch gestures due to limited arm movement and dexterity issues. Instead they may rely on a keyboard, or similar input device, to navigate and operate digital content.</p>
<p>To find out if your website is keyboard accessible, load the site and start navigating it by pressing the Tab key on your keyboard. You should be able to reach all actionable controls, such as links, buttons and form fields.</p>
<p>A page from the TetraLogical website being navigated with the keyboard. All actionable elements receive the keyboard focus in a logical order and the focus indicator is visible around them.</p>
<p>Pressing the Enter key or Spacebar should activate these controls.</p>
<p>A link on the page from the TetraLogical website is activated with the Enter key and a new page is loaded.</p>
<p>If any actionable element on your website is skipped, receives the focus in an illogical order, or you cannot see where the focus is at any time, then keyboard support is not properly implemented.</p>
<p>To find out more about accessibility, visit our website at tetralogical.com</p>
</blockquote>
<p>And here is how it looks on the page:</p>
<p><img src="https://tetralogical.com/blog/2021/06/23/an-inclusive-approach-to-video-production/text-transcript.png" alt="A YouTube page with the above text transcript on it." /></p>
<p>If you have a long text transcript, breaking down content into small sections and using headings and lists will improve its readability.</p>
<h2 id="additional-considerations" tabindex="-1">Additional considerations</h2>
<p>While this article focuses on alternatives for audio and visual content, a number of additional accessibility considerations must be taken into account in the planning stage of videos. These includes:</p>
<ul>
<li>If showing text on screen, choosing colours with a strong contrast ratio with background colours (at least 4.5:1) and a large font size</li>
<li>Avoiding including fast-flashing content (never have content that flashes more than three times per second)</li>
<li>When writing the script, use simple language that most people are likely to understand; unfamiliar words, abbreviations and idioms should be avoided</li>
</ul>
<p>The <a href="https://www.w3.org/WAI/media/av/">Web Accessibility Initiative (WAI) website</a> has an abundance of information on the above and other accessibility considerations for video content.</p>
<p>Creating accessible video content does not need to be expensive and time-consuming; it is all about taking an inclusive approach and considering the needs of all people as early as possible in the planning stage.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read about <a href="https://tetralogical.com/blog/2023/03/07/adding-sign-language-to-video/">adding sign language to video</a> and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Sustainable accessibility</title>
    <link href="https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/"/>
    <updated>2021-01-07T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2021/01/07/sustainable-accessibility/</id>
    <content type="html"><![CDATA[
        <p>It takes time and effort to embed sustainable accessibility into an organisation. It cannot be achieved through disconnected activities like assessments or training (although such things can be useful in their own right); sustainable accessibility needs a <a href="https://tetralogical.com/services/sustainable-accessibility/">co-ordinated and evolving plan</a> that encompasses every aspect of the organisation.</p>
<figure class="inline-image__container">
<svg role="img" aria-label="Sustainable accessibility: an outline of a muted purple tree with two branches on either side of the trunk. At the ends of the branches are bright purple or red gears which interlock and rotate with the gear above or below it. There are two bright orange leaves growing at the top of the tree and a single leaf towards the bottom." class="services__icon inline-image" focusable="false" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round" viewBox="0 0 2000 2000">
<desc>Sustainable accessibility: an outline of a muted purple tree with two branches on either side of the trunk. At the ends of the branches are bright purple or red gears which interlock and rotate with the gear above or below it. There are two bright orange leaves growing at the top of the tree and a single leaf towards the bottom.</desc>
<path d="m526.734 340.318 273.121 342.485-.089 803.474M1140.173 864.884l-318.641 286.128M928.821 441.909 817.87 637.369M610.441 1191.028l174.743 141.35M397.768-1.75l78.472 210.611M471.958 789.954l308.977 256.804" style="fill:none;fill-rule:nonzero;stroke:#7c618b;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<path d="M643.01 274.737c29.045-26.576 47.425-59.616 53.454-94.943 6.028-35.327-.294-72.94-3.817-100.803s-4.247-45.975-24.993-41.308-61.513 32.111-88.125 56.383c-26.612 24.271-39.068 45.368-47.773 74.827s-13.658 67.279-12.275 91.884c1.382 24.604 9.114 36.013-6.062 25.509s-53.357-42.988-87.466-60.389-64.322-19.779-96.616-14.993-67.126 16.797-88.1 24.029c-20.975 7.233-28.146 9.706-24.813 19.112s17.181 25.766 41.575 52.085c24.393 26.319 59.339 62.607 107.189 70.17 47.85 7.562 108.602-13.6 158.835-34.238s89.942-40.749 118.987-67.325" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:73.7px" transform="translate(-.990216 -3.009739)scale(1.333333)"></path>
<g transform="translate(0 .000045)scale(1.333333)">
<path d="m1062.62 121.879-13.586 57.439M973.604 455.163l-13.586 57.438M912.582 144.155l26.669 52.654M1084.137 436.466l26.669 52.654M1149.08 351.096l55.548 19.954M819.161 269.813l55.548 19.954M1135.736 251.647l48.761-33.259M840.009 422.288l52.271-27.414" style="fill:none;fill-rule:nonzero;stroke:#ff1958;stroke-width:92.18px"></path>
<circle cx="1008.995" cy="322.007" r="136.82" style="fill:none;stroke:#ff1958;stroke-width:92.18px"></circle>
<circle cx="1008.559" cy="321.585" r="45" style="fill:#ff1958"></circle>
</g>
<g transform="rotate(7.94302 -6314.65621 -3829.29329)scale(1.333333)">
<path d="m1062.62 121.879-13.586 57.439M973.604 455.163l-13.586 57.438M912.582 144.155l26.669 52.654M1084.137 436.466l26.669 52.654M1149.08 351.096l55.548 19.954M819.161 269.813l55.548 19.954M1135.736 251.647l48.761-33.259M840.009 422.288l52.271-27.414" style="fill:none;fill-rule:nonzero;stroke:#ff1958;stroke-width:92.18px"></path>
<circle cx="1008.995" cy="322.007" r="136.82" style="fill:none;stroke:#ff1958;stroke-width:92.18px"></circle>
<circle cx="1008.559" cy="321.585" r="45" style="fill:#ff1958"></circle>
</g>
<path d="m1211.083 513.725 4.875 58.822M1229.686 858.19l4.875 58.822M1075.325 581.382l41.669 41.804M1328.99 806.173l41.668 41.803M1364.294 704.885l58.997 1.766M1025.424 729.798l58.997 1.766M1320.8 614.461l36.061-46.727M1092.478 868.315l41.208-42.257" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="translate(0 .000045)scale(1.333333)"></path>
<circle cx="938.753" cy="1063.737" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-18.04518 .000142 .000023)scale(1.333334)"></circle>
<circle cx="938.316" cy="1063.316" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-18.04518 .000142 .000023)scale(1.333334)"></circle>
<path d="m1211.083 513.725 4.875 58.822M1229.686 858.19l4.875 58.822M1075.325 581.382l41.669 41.804M1328.99 806.173l41.668 41.803M1364.294 704.885l58.997 1.766M1025.424 729.798l58.997 1.766M1320.8 614.461l36.061-46.727M1092.478 868.315l41.208-42.257" style="fill:none;fill-rule:nonzero;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-4.75638 136.78869 15410.814556)scale(1.333334)"></path>
<circle cx="938.753" cy="1063.737" r="136.82" style="fill:none;stroke:#a900c0;stroke-width:92.18px" transform="rotate(-22.80156 -478.975515 3199.537454)scale(1.333334)"></circle>
<circle cx="938.316" cy="1063.316" r="45" style="fill:#a900c0;stroke:#a900c0;stroke-width:.33px;stroke-linecap:butt;stroke-linejoin:miter" transform="rotate(-22.80156 -478.975515 3199.537454)scale(1.333334)"></circle>
<path d="M643.595 276.828c28.46-28.667 46.84-61.707 52.869-97.034 6.028-35.327-.294-72.94-3.817-100.803s-4.247-45.975-24.993-41.308-61.513 32.111-88.125 56.383c-26.612 24.271-39.068 45.368-46.509 74.688-7.44 29.32-9.864 66.861-9.467 93.577s3.615 42.606 6.503 56.093c2.887 13.487 5.443 24.572 25.991 17.968s59.088-30.897 87.548-59.564" style="fill:none;fill-rule:nonzero;stroke:#f56f00;stroke-width:73.7px" transform="rotate(32.8401 -1529.230824 1817.809233)scale(1.333334)"></path>
</svg>
<figcaption>Sustainable <em>accessibility</em></figcaption>
</figure>
<p>Sustainable accessibility is a significant investment because it has many moving parts, but it ultimately reduces cost because it:</p>
<ul>
<li>Sets expectations by communicating clear accessibility policies and priorities</li>
<li>Amplifies knowledge throughout the organisation from <a href="https://tetralogical.com/services/recruitment/">recruitment</a> to establishing an accessibility champions network</li>
<li>Reduces production time by making accessibility a first principle for design and development</li>
<li>Reduces refactoring and remediation time by eliminating accessibility issues during production</li>
<li>Reduces dependency on assessments by making them a monitoring tool instead of a primary way to manage accessibility</li>
<li>Reduces reliance on third parties by empowering teams to make accessibility part of everything they do</li>
</ul>
<h2 id="knowledge-risk" tabindex="-1">Knowledge risk</h2>
<p>When accessibility knowledge is dependent on a particular person or group of people, the organisation is at risk of losing that knowledge should those people leave. For accessibility to be really sustainable it must be part of the organisation's DNA; but because every organisation is different there is no definitive blueprint for sustainable accessibility. That said, it is typically a 12 to 36 month endeavour that encompasses many different activities that reflect the size, complexity, and existing practices of the organisation.</p>
<h2 id="living-roadmap" tabindex="-1">Living roadmap</h2>
<p>At its core is a living roadmap that is, as the name suggests, constantly updated and refined as the organisation makes demonstrable progress towards sustainable accessibility. The living roadmap can cover any period of time but starting with a 6 to 12 month plan helps focus the initial (and most intense) period of activity.</p>
<h2 id="common-features" tabindex="-1">Common features</h2>
<p>The scope and content of the living roadmap are unique to the organisation, but there are certain features that are almost always worth including - albeit with adaptations that make them relevant to the organisation in question:</p>
<ul>
<li><strong>Policy:</strong> A sustainable accessibility policy sets clear expectations throughout the organisation so that everyone understands they have a responsibility and what that responsibility is</li>
<li><strong>Processes:</strong> Changes to existing processes or the introduction of new processes so that accessibility is part of everything the organisation does including strategy, marketing, communication, research, design and development</li>
<li><strong>Training:</strong> Maintainable training materials that can be deployed at scale, delivered in different formats and at different points (like on-boarding)</li>
<li><strong>Champions:</strong> A network of people to help communicate, educate and facilitate the spread of accessibility knowledge throughout the organisation</li>
<li><strong>Documentation:</strong> Maintainable information and resources integrated into design systems, repositories and standard project requirements</li>
<li><strong>Competency:</strong> Mechanisms for monitoring and maintaining high standards of accessibility knowledge throughout the organisation</li>
<li><strong>Recruitment:</strong> Job descriptions for all roles with consistent expectations in terms of accessibility skills and experience</li>
<li><strong>Procurement:</strong> Changes to procurement processes and contract language to protect the organisation against the purchase of inaccessible platforms or services</li>
<li><strong>Assessments:</strong> Periodic monitoring of products and services to verify that accessibility standards continue to be met, and to inform senior stakeholders</li>
</ul>
<p>When deciding which features to include in the living roadmap it is tempting to try and change the way the organisation works, but this is rarely successful. Whatever else it does, sustainable accessibility should amplify what the organisation is already doing - helping to achieve more (not slow things down).</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Read about <a href="https://tetralogical.com/blog/2022/04/05/business-case-for-accessibility/">the business case for accessibility</a> and how our <a href="https://tetralogical.com/services/embedded-accessibility/">embedded accessibility</a> service can help you achieve sustainable accessibility.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Choosing the right type of accessibility assessment</title>
    <link href="https://tetralogical.com/blog/2020/12/01/choosing-the-right-type-of-accessibility-assessment/"/>
    <updated>2020-12-01T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2020/12/01/choosing-the-right-type-of-accessibility-assessment/</id>
    <content type="html"><![CDATA[
        <p>This article gives an overview of what an accessibility assessment is, when it is beneficial, and when another service may be better suited.</p>
<p>When it comes to digital accessibility, most people immediately think of audits (or assessments, as we call them here at TetraLogical). Organisations want a comprehensive understanding of what is &quot;wrong&quot; with their website or app, so they can fix it and claim compliance. While this approach works well in many situations, there are times when a different type of assessment is worth considering. Before requesting an accessibility assessment, many factors should be taken into consideration, including the current level of awareness and knowledge of teams as well as the organisation's short and long-term accessibility objectives.</p>
<h2 id="benefits-of-accessibility-assessments" tabindex="-1">Benefits of accessibility assessments</h2>
<p>During an assessment, an accessibility specialist reviews a <a href="https://tetralogical.com/articles/representative-samples-for-accessibility-assessments/">representative sample of pages</a> from a website or app and identifies all instances where the content fails a requirement from the <a href="https://tetralogical.com/articles/wcag-primer/">Web Content Accessibility Guidelines (WCAG) 2.1</a>.</p>
<p>Depending on whether accessibility has been considered throughout the production lifecycle and how much accessibility knowledge a team has, the results of the assessment are provided in the most appropriate and useful way ranging from lightning reports to detailed issues filed directly into the team's issue tracking system. Accessibility <a href="https://tetralogical.com/services/assessments/">assessments</a> are detailed and thorough services that give teams one or more of the following:</p>
<ul>
<li>A confirmation that their product complies with WCAG 2.1, up to an agreed level of compliance</li>
<li>A list of issues which are preventing the product from being fully compliant, and an indication of where they occur</li>
<li>Detailed advice on how to address outstanding issues</li>
<li>A confirmation that their services meet any applicable accessibility regulations</li>
<li>Details of full or partial compliance with WCAG 2.1 to include in the Voluntary Product Accessibility Template (VPAT) or accessibility statement</li>
</ul>
<p>However, assessments are not always the answer to an organisation's accessibility needs, as explained below.</p>
<h2 id="when-an-assessment-is-not-the-right-service" tabindex="-1">When an assessment is not the right service</h2>
<p>The granularity and thoroughness that make accessibility assessments so useful are not necessarily beneficial in every situation. Teams at the beginning of their accessibility journey, for example, may find other services more valuable. Here are a few reasons why:</p>
<ul>
<li>Digital products that have not been planned, designed and built with accessibility in mind are likely to present a large number of accessibility defects when reviewed for the first time. Having to deal with a very high number of issues following an assessment can be overwhelming and may end up with the issues not being addressed at all, due to the lack of a structured plan</li>
<li>Without a basic knowledge of the principles, guidelines and success criteria from WCAG, it may be difficult to fully understand the reasons behind some of the requirements. Without guidance, navigating and interpreting WCAG 2.1 can be a very daunting task</li>
<li>Even when the issues from the assessment report are addressed and compliance is achieved, unless all people maintaining and updating the product are aware of accessibility requirements, issues will re-appear over time</li>
</ul>
<p>It is also worth noting that assessments on their own may not identify usability issues which may impact a product's users. A fully compliant website or app may still be completely unusable to some, especially when inclusion is not considered at the early stages of the product development life cycle , so it is always worth considering <a href="https://tetralogical.com/services/experience/">usability testing</a> as part of a robust approach.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about the Web Content Accessibility Guidelines in our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> and how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>
<p>Updated 21 January, 2026</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Representative samples for accessibility assessments</title>
    <link href="https://tetralogical.com/blog/2020/08/14/representative-samples-for-accessibility-assessments/"/>
    <updated>2020-08-14T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2020/08/14/representative-samples-for-accessibility-assessments/</id>
    <content type="html"><![CDATA[
        <p>When a website is assessed using the <a href="https://tetralogical.com/articles/wcag-primer/">Web Content Accessibility Guidelines (WCAG)</a>, it is rarely feasible to test every single page. Instead, the assessment can be based on a sample of pages that are representative of the website as a whole, to keep things as efficient and cost-effective as possible.</p>
<h2 id="why-testing-every-page-is-not-feasible" tabindex="-1">Why testing every page is not feasible</h2>
<p>The reason it is almost never possible to test every page is simple logistics. There are 30 Level A and 20 Level AA Success Criteria (SC) in WCAG 2.1, another 28 if you include Level AAA. Leaving Level AAA aside for a moment, that's 50 checks that need to be made to every page included in the assessment.</p>
<p>Some of those checks can be done quickly and some can be made easier through the use of tools, but others take more time because they are complex or need careful inspection.</p>
<p>For example, <a href="https://www.w3.org/TR/WCAG21/#captions-prerecorded">SC 1.2.2</a> says that captions must be provided for prerecorded video (unless the video itself is an alternative to some text content). Checking if captions are available can be done quite quickly, but in the information to help you avoid failing the SC there is <a href="https://www.w3.org/WAI/WCAG21/Techniques/failures/F8.html">F8: Failure of Success Criterion 1.2.2 due to captions omitting some dialogue or important sound effects</a>.</p>
<p>Every SC has a number of <a href="https://www.w3.org/WAI/WCAG21/quickref/">&quot;sufficient&quot; and &quot;failure&quot; techniques</a>. The techniques are not a formal part of the SC, but they are intended to help people understand, interpret and test it. So to test SC 1.2.1 properly it is necessary not only to check that captions have been provided, but also to check that the captions are an accurate representation of the dialogue and sound-effects in the video - and that takes time.</p>
<p>Let's say that on average, it takes about 3 minutes to test an SC, or 2.5 hours to test a page against all 50 Level A and Level AA SC. That might sound achievable, but it doesn't consider the following:</p>
<ul>
<li>Time to write up the findings</li>
<li>The scale of the website</li>
</ul>
<p>There is little point in assessing a website unless the findings are reported, so let's increase the average to just over 5 minutes for each SC or 4.5 hours for every page.</p>
<p>For a simple brochure website of a few pages this is manageable, but at the other extreme the BBC has around 12.5 million pages. Most websites sit at the lower-end of that range, but even a website with 100 pages would take 450 hours to assess. That's a little more than 69 days (assuming an intense 8 hour day with reasonable time for breaks).</p>
<p>That is a lot of time and a lot of money. It also includes a lot of unnecessary duplication.</p>
<p>That is where the idea of a representative sample of pages comes in.</p>
<h2 id="about-representative-samples" tabindex="-1">About representative samples</h2>
<p>Step 3 of the <a href="https://www.w3.org/TR/WCAG-EM/">Website Accessibility Conformance Evaluation Methodology</a> from the W3C covers selecting a representative sample of pages:</p>
<blockquote>
<p>During this step the evaluator selects a sample of web pages and web page states that is representative of the target website to be evaluated. The purpose of this selection is to ensure that the evaluation results reflect the accessibility performance of the website with reasonable confidence.</p>
</blockquote>
<p>A good representative sample should include examples of different types of page layout and design, content and functionality. It should be large enough to be representative of the website as a whole but not so large it is wasteful in terms of the time and money invested in the assessment.</p>
<p>Factors that can influence the size of the representative sample include:</p>
<ul>
<li>The size of the website; the larger it is the more likely it is to have many different page layouts, content and functionality types</li>
<li>The age of the website; older websites often have areas that use earlier or different page designs, and pockets of forgotten content</li>
<li>The complexity of the website; websites with lots of rich interactive content, or content that is responsive or available in different ways (light/dark mode or multiple languages for example) tend to mean a larger representative sample is needed</li>
</ul>
<p>When the sample of pages is chosen well, it should be representative of the website as a whole and therefore representative of the different accessibility issues that affect it. Any accessibility issues that are identified within the accessibility sample need to be fixed there, and then the same fixes need to be applied to all other pages across the website with the same layout, design, content or functionality type.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about the Web Content Accessibility Guidelines in our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> and how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>WCAG primer</title>
    <link href="https://tetralogical.com/blog/2020/04/10/wcag-primer/"/>
    <updated>2020-04-10T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2020/04/10/wcag-primer/</id>
    <content type="html"><![CDATA[
        <p>The <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines (WCAG)</a> are a set of recommendations for making websites and apps accessible to people with disabilities. This article explains WCAG and how to use them.</p>
<h2 id="history" tabindex="-1">History</h2>
<p>WCAG has been the internationally recognised standard for web accessibility for more than 20 years. WCAG 1.0 was published by the W3C in 1999, WCAG 2.0 in 2008, WCAG 2.1 in 2018, and the current version WCAG 2.2 in 2023. The W3C is now working on WCAG 3.0, but publication is not expected for several years.</p>
<p>The Accessibility Guidelines Working Group (AGWG) is responsible for creating WCAG at the W3C. Members of AGWG include large technology companies like Adobe and Google, accessibility companies like TetraLogical, and many people who represent other organisations with an interest in accessibility. The AGWG also consults widely with the web community to make sure that each version of WCAG receives feedback from as many people who will use them as possible.</p>
<h2 id="principles" tabindex="-1">Principles</h2>
<p>The structure of WCAG changed between WCAG 1.0 and WCAG 2.0. Since then there have been <a href="https://www.w3.org/WAI/WCAG22/Understanding/intro#understanding-the-four-principles-of-accessibility">4 principles in WCAG</a>, designed to help you think about the ways people use web content:</p>
<h3 id="perceivable" tabindex="-1">Perceivable</h3>
<blockquote>
<p>Information and user interface components must be presentable to users in ways they can perceive.</p>
</blockquote>
<p>People will perceive, or become aware of, content in different ways. For example, a sighted person will see the content, a blind person may listen to it as synthetic speech and a deaf-blind person will feel it with their fingertips as electronic Braille.</p>
<h3 id="operable" tabindex="-1">Operable</h3>
<blockquote>
<p>User interface components and navigation must be operable.</p>
</blockquote>
<p>People will operate, or use, content in different ways. For example, someone with a physical disability that means they can't use a mouse may use the keyboard or voice recognition instead of a mouse or trackpad.</p>
<h3 id="understandable" tabindex="-1">Understandable</h3>
<blockquote>
<p>Information and the operation of the user interface must be understandable.</p>
</blockquote>
<p>People understand content differently. For example someone who has difficulty reading may want acronyms to be written out in full, someone who is blind will want their screen reader to speak foreign language content using the correct accent, and someone who has a learning disability will prefer things to work consistently wherever they find them.</p>
<h3 id="robust" tabindex="-1">Robust</h3>
<blockquote>
<p>Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies.</p>
</blockquote>
<p>People use different devices and browsers to access the web, many will use assistive technologies too, and web content needs to work reliably on them all. For example someone with low vision might use Safari on an iOS device with zoom enabled, someone who is blind might use Firefox on Windows 10 with the NVDA screen reader, or a person who is unable to use a mouse or keyboard might use Internet Explorer on Windows 7 with Dragon voice recognition software.</p>
<h2 id="guidelines" tabindex="-1">Guidelines</h2>
<p>There are 13 guidelines that support the 4 principles in WCAG 2.2. Each guideline is broken down into individual requirements known as Success Criteria or SC for short.</p>
<h3 id="guideline-1.1-text-alternatives" tabindex="-1">Guideline 1.1 Text Alternatives</h3>
<blockquote>
<p>Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.</p>
</blockquote>
<p>Not everyone is able to see graphical content, but text can be read by people who cannot see images and it can be adapted so people can read it in different ways. For example, a text description of an image can be converted into synthetic speech or electronic Braille using a screen reader.</p>
<p>There is one SC under <a href="https://www.w3.org/tr/wcag22/#text-alternatives">Guideline 1.1 Text Alternatives</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#non-text-content">1.1.1 Non-text Content (Level A)</a></li>
</ul>
<h3 id="guideline-1.2-time-based-media" tabindex="-1">Guideline 1.2 Time-based Media</h3>
<blockquote>
<p>Provide alternatives for time-based media.</p>
</blockquote>
<p>Not everyone is able to see or hear time-based media, otherwise known as multi-media, so alternatives are needed. Text alternatives in the form of transcripts or real-time synchronised captions will enable people who are deaf or hard of hearing to experience audio content, and text also forms the basis for scripted audio description that describes video content to people unable to see it.</p>
<p>There are 9 SC under <a href="https://www.w3.org/tr/wcag22/#time-based-media">Guideline 1.2 Time-based Media</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#audio-only-and-video-only-prerecorded">1.2.1 Audio-only and Video-only (Prerecorded) (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#captions-prerecorded">1.2.2 Captions (Prerecorded) (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#audio-description-or-media-alternative-prerecorded">1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#captions-live">1.2.4 Captions (Live) (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#audio-description-prerecorded">1.2.5 Audio Description (Prerecorded) (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#sign-language-prerecorded">1.2.6 Sign Language (Prerecorded) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#extended-audio-description-prerecorded">1.2.7 Extended Audio Description (Prerecorded) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#media-alternative-prerecorded">1.2.8 Media Alternative (Prerecorded) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#audio-only-live">1.2.9 Audio-only (Live) (Level AAA)</a></li>
</ul>
<h3 id="guideline-1.3-adaptable" tabindex="-1">Guideline 1.3 Adaptable</h3>
<blockquote>
<p>Create content that can be presented in different ways (for example simpler layout) without losing information or structure.</p>
</blockquote>
<p>People will adapt the way content is presented based on their needs or preferences. For example, someone with low vision may choose to use their own style sheets because they prefer a particular font, someone with a physical disability may need content to always be in the portrait orientation because their tablet is fixed to their wheelchair in that position, or someone with a cognitive disability may use a browser plug-in that helps them identify the purpose of form fields that ask for their personal data.</p>
<p>There are 6 SC under <a href="https://www.w3.org/tr/wcag22/#adaptable">Guideline 1.3 Adaptable</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#info-and-relationships">1.3.1 Info and Relationships (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#meaningful-sequence">1.3.2 Meaningful Sequence (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#sensory-characteristics">1.3.3 Sensory Characteristics (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#orientation">1.3.4 Orientation (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#identify-input-purpose">1.3.5 Identify Input Purpose (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#identify-purpose">1.3.6 Identify Purpose (Level AAA)</a></li>
</ul>
<h3 id="guideline-1.4-distinguishable" tabindex="-1">Guideline 1.4 Distinguishable</h3>
<blockquote>
<p>Make it easier for users to see and hear content including separating foreground from background.</p>
</blockquote>
<p>Certain things can make it harder for people to see or hear content. For example if the colour of text doesn't show up clearly against the background it will be harder for people with low vision to make out, if a video plays automatically it may be so loud that a blind person cannot hear what their screen reader is saying or someone with a cognitive disability may find it so distracting they cannot use the page at all.</p>
<p>There are 13 SC under <a href="https://www.w3.org/tr/wcag22/#distinguishable">Guideline 1.4 Distinguishable</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#use-of-color">1.4.1 Use of Color (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#audio-control">1.4.2 Audio Control (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#contrast-minimum">1.4.3 Contrast (Minimum) (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#resize-text">1.4.4 Resize Text (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#images-of-text">1.4.5 Images of Text (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#contrast-enhanced">1.4.6 Contrast (Enhanced) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#low-or-no-background-audio">1.4.7 Low or No Background Audio (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#visual-presentation">1.4.8 Visual Presentation (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#images-of-text-no-exception">1.4.9 Images of Text (No Exception) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#reflow">1.4.10 Reflow (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#non-text-contrast">1.4.11 Non-text Contrast (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#non-text-contrast">1.4.12 Text Spacing (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#content-on-hover-or-focus">1.4.13 Content on Hover or Focus (Level AA)</a></li>
</ul>
<h3 id="guideline-2.1-keyboard-accessible" tabindex="-1">Guideline 2.1 Keyboard Accessible</h3>
<blockquote>
<p>Make all functionality available from a keyboard.</p>
</blockquote>
<p>Not everyone uses a mouse or a trackpad and there are different alternatives available. Many people with physical disabilities will use a keyboard, but some will use voice recognition software that is also dependent on the content being keyboard accessible. People who use other assistive technologies like screen readers or screen magnification often use a keyboard too.</p>
<p>There are 4 SC under <a href="https://www.w3.org/tr/wcag22/#keyboard-accessible">Guideline 2.1 Keyboard Accessible</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#keyboard">2.1.1 Keyboard (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#no-keyboard-trap">2.1.2 No Keyboard Trap (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#keyboard-no-exception">2.1.3 Keyboard (No Exception) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#character-key-shortcuts">2.1.4 Character Key Shortcuts (Level A)</a></li>
</ul>
<h3 id="guideline-2.2-enough-time" tabindex="-1">Guideline 2.2 Enough Time</h3>
<blockquote>
<p>Provide users enough time to read and use content.</p>
</blockquote>
<p>Not everyone is able to complete a task in a short amount of time. For example, someone who finds reading difficult may need more time to read instructions, someone with a physical disability may take longer to move through the content, and aggressive time limits may put someone with Anxiety Disorder under so much pressure they're unable to complete the task.</p>
<p>There are 6 SC under <a href="https://www.w3.org/tr/wcag22/#enough-time">Guideline 2.2 Enough Time</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#timing-adjustable">2.2.1 Timing Adjustable (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#pause-stop-hide">2.2.2 Pause, Stop, Hide (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#no-timing">2.2.3 No Timing (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#interruptions">2.2.4 Interruptions (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#re-authenticating">2.2.5 Re-authenticating (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#timeouts">2.2.6 Timeouts (Level AAA)</a></li>
</ul>
<h3 id="guideline-2.3-seizures-and-physical-reactions" tabindex="-1">Guideline 2.3 Seizures and Physical Reactions</h3>
<blockquote>
<p>Do not design content in a way that is known to cause seizures or physical reactions.</p>
</blockquote>
<p>Seizures are often serious and sometimes life-threatening so it is vital that content does not trigger them. For example, a seizure can be triggered in someone with Photo-sensitive Epilepsy if content flashes more than 3 times a second. Other physical reactions like dizziness and nausea can be triggered by moving or animated content particularly if it uses a parallax effect.</p>
<p>There are 3 SC under <a href="https://www.w3.org/tr/wcag22/#seizures-and-physical-reactions">Guideline 2.3 Seizures and Physical Reactions</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#three-flashes-or-below-threshold">2.3.1 Three Flashes or Below Threshold (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#three-flashes">2.3.2 Three Flashes (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#animation-from-interactions">2.3.3 Animation from Interactions (Level AAA)</a></li>
</ul>
<h3 id="guideline-2.4-navigable" tabindex="-1">Guideline 2.4 Navigable</h3>
<blockquote>
<p>Provide ways to help users navigate, find content, and determine where they are.</p>
</blockquote>
<p>People can find it difficult to navigate web content or to be sure of where they are. For example, someone with a cognitive disability that affects memory may use the page title to remind themselves where they are, a sighted keyboard user will depend on a visible indicator that tells them where their keyboard is currently focused, and a screen reader user will find links easier to use if the link text makes it clear where the link leads.</p>
<p>There are 13 SC under <a href="https://www.w3.org/tr/wcag22/#navigable">Guideline 2.4 Navigable</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#bypass-blocks">2.4.1 Bypass Blocks (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#page-titled">2.4.2 Page Titled (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#focus-order">2.4.3 Focus Order (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#link-purpose-in-context">2.4.4 Link Purpose (In Context) (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#multiple-ways">2.4.5 Multiple Ways (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#headings-and-labels">2.4.6 Headings and Labels (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#focus-visible">2.4.7 Focus Visible (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#location">2.4.8 Location (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#link-purpose-link-only">2.4.9 Link Purpose (Link Only) (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#section-headings">2.4.10 Section Headings (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#focus-not-obscured-minimum">2.4.11 Focus Not Obscured (Minimum) (Level AA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#focus-not-obscured-enhanced">2.4.12 Focus Not Obscured (Enhanced) (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#focus-appearance">2.4.13 Focus Appearance (Level AAA)</a></li>
</ul>
<h3 id="guideline-2.5-input-modalities" tabindex="-1">Guideline 2.5 Input Modalities</h3>
<blockquote>
<p>Make it easier for users to operate functionality through various inputs beyond keyboard.</p>
</blockquote>
<p>As well as the keyboard, people will use touch-screen devices and voice recognition as alternatives to using a mouse or trackpad. And even if people do use a mouse or trackpad, they may not have the fine motor control necessary for certain types of interactions, such as accurately dragging interface elements. It's important to make sure people can still operate content. For example, making sure links and buttons have visible labels will help voice recognition users target them more accurately, not triggering actions the moment someone places a finger on a touch-screen will help prevent people with dexterity problems doing things unintentionally, and offering alternative ways to complete tasks that require multi-touch or dragging gestures is helpful to anyone unable to confidently operate a touch screen or mouse.</p>
<p>There are 8 SC under <a href="https://www.w3.org/tr/wcag22/#input-modalities">Guideline 2.5 Input Modalities</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#pointer-gestures">2.5.1 Pointer Gestures (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#pointer-cancellation">2.5.2 Pointer Cancellation (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#label-in-name">2.5.3 Label in Name (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#motion-actuation">2.5.4 Motion Actuation (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#target-size">2.5.5 Target Size (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#concurrent-input-mechanisms">2.5.6 Concurrent Input Mechanisms (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#dragging-movements">2.5.7 Dragging Movements (Level AA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#target-size-minimum">2.5.8 Target Size (Minimum) (Level AA)</a></li>
</ul>
<h3 id="guideline-3.1-readable" tabindex="-1">Guideline 3.1 Readable</h3>
<blockquote>
<p>Make text content readable and understandable.</p>
</blockquote>
<p>Not everyone finds text easy to read and understand. For example, someone who finds reading difficult may find it helpful if the meaning of unusual words is explained, or someone with a learning disability will find simple content easier to understand.</p>
<p>There are 6 SC under <a href="https://www.w3.org/tr/wcag22/#readable">Guideline 3.1 Readable</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#language-of-page">3.1.1 Language of Page (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#language-of-parts">3.1.2 Language of Parts (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#unusual-words">3.1.3 Unusual Words (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#abbreviations">3.1.4 Abbreviations (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#reading-level">3.1.5 Reading Level (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#pronunciation">3.1.6 Pronunciation (Level AAA)</a></li>
</ul>
<h3 id="guideline-3.2-predictable" tabindex="-1">Guideline 3.2 Predictable</h3>
<blockquote>
<p>Make Web pages appear and operate in predictable ways.</p>
</blockquote>
<p>Most people find content easier to use when it looks familiar and behaves consistently. For example, putting things like the logo and navigation in the same place on every page helps screen magnification users orient themselves, and using the same labels for links and buttons that do the same thing helps people with cognitive disabilities correctly identify them.</p>
<p>There are 6 SC under <a href="https://www.w3.org/tr/wcag22/#predictable">Guideline 3.2 Predictable</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#on-focus">3.2.1 On Focus (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#on-input">3.2.2 On Input (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#consistent-navigation">3.2.3 Consistent Navigation (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#consistent-identification">3.2.4 Consistent Identification (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#change-on-request">3.2.5 Change on Request (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#consistent-help">3.2.6 Consistent Help (Level A)</a></li>
</ul>
<h3 id="guideline-3.3-input-assistance" tabindex="-1">Guideline 3.3 Input Assistance</h3>
<blockquote>
<p>Help users avoid and correct mistakes.</p>
</blockquote>
<p>Nobody wants to make mistakes but avoiding mistakes or correcting them if they happen can be difficult for some people. For example, letting people review their answers before they submit a form that relates to a financial or legal agreement helps people with all disabilities avoid sending the wrong information, and presenting error messages as text means that people who cannot see warning colours or symbols know the errors are there.</p>
<p>There are 9 SC under <a href="https://www.w3.org/tr/wcag22/#input-assistance">Guideline 3.3.3 Input Assistance</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#error-identification">3.3.1 Error Identification (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#labels-or-instructions">3.3.2 Labels or Instructions (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#error-suggestion">3.3.3 Error Suggestion (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#error-prevention-legal-financial-data">3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#help">3.3.5 Help (Level AAA)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#error-prevention-all">3.3.6 Error Prevention (All) (Level AAA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#redundant-entry">3.3.7 Redundant Entry (Level A)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#accessible-authentication-minimum">3.3.8 Accessible Authentication (Minimum) (Level AA)</a></li>
<li><a href="https://www.w3.org/TR/WCAG22/#accessible-authentication-enhanced">3.3.9 Accessible Authentication (Enhanced) (Level AAA)</a></li>
</ul>
<h3 id="guideline-4.1-compatible" tabindex="-1">Guideline 4.1 Compatible</h3>
<blockquote>
<p>Maximize compatibility with current and future user agents, including assistive technologies.</p>
</blockquote>
<p>Writing code in ways that support a range of different devices and technologies makes content more reliable. For example, writing HTML that avoids errors known to cause problems for assistive technologies like screen readers and voice recognition software, and making sure that custom components and notifications are created in ways that include all the accessibility information needed by people who use assistive technologies.</p>
<p>There are 2 SC under <a href="https://www.w3.org/tr/wcag22/#compatible">Guideline 4.1 Compatible</a>:</p>
<ul>
<li><a href="https://www.w3.org/tr/wcag22/#name-role-value">4.1.2 Name, Role, Value (Level A)</a></li>
<li><a href="https://www.w3.org/tr/wcag22/#status-messages">4.1.3 Status Messages (Level AA)</a></li>
</ul>
<p><strong>Note:</strong> <a href="https://www.w3.org/TR/WCAG22/#parsing">4.1.1 Parsing</a> was marked as obsolete and removed in WCAG 2.2.</p>
<h2 id="conformance" tabindex="-1">Conformance</h2>
<p>Each WCAG SC is assigned a conformance level: Level A, Level AA or Level AAA. In WCAG 2.2 there are:</p>
<ul>
<li>31 Level A SC</li>
<li>24 Level AA SC</li>
<li>31 Level AAA SC</li>
</ul>
<p>Level A is the most basic level of accessibility. When a website meets all Level A SC it has a good foundation of accessibility in place but it will still put obstacles in the way of many disabled people.</p>
<p>Level AA can only be achieved once Level A has been met. It is the level of accessibility referenced in many laws and policies around the world. When a website meets all Level A and Level AA SC it will be accessible to people with many different disabilities.</p>
<p>Level AAA is the highest level, and like Level AA it builds on top of the levels before it. Level AAA SC should be met wherever possible, but it is not expected that an entire website will meet Level AAA because the SC are only applicable in some circumstances. WCAG includes this note:</p>
<blockquote>
<p>It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA Success Criteria for some content.</p>
</blockquote>
<p>It is worth noting that not all SC apply all of the time, no matter which level they're assigned. For example, if the website contains no multimedia content then none of the SC under Guideline 1.2 Time-based Media will apply.</p>
<p>The principles, guidelines and SC in WCAG are relevant to every part of a website or product created using web technologies. This includes the design, code, content and functionality, and it means that every member of a production team should be familiar with WCAG as a matter of course.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify accessibility issues in your products and services and how to pick <a href="https://tetralogical.com/blog/2020/08/14/representative-samples-for-accessibility-assessments/">representative samples for accessibility assessments</a>.</p>
<p>Updated: 5 September 2023.</p>

      ]]>
    </content>
  </entry>
  
  <entry>
    <title>Public sector accessibility regulations</title>
    <link href="https://tetralogical.com/blog/2019/07/26/public-sector-accessibility-regulations/"/>
    <updated>2019-07-26T00:00:00Z</updated>
    <id>https://tetralogical.com/blog/2019/07/26/public-sector-accessibility-regulations/</id>
    <content type="html"><![CDATA[
        <p>A new law concerning the accessibility of public sector websites and mobile apps came into effect in 2018. This article explains what the  Public Sector Accessibility Regulations mean, what’s included and what isn’t, and the deadlines by which all public sector websites and mobile apps must comply.</p>
<p>A <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32016L2102">European Union (EU) Directive</a> on the accessibility of public sector websites and apps was approved in October 2016 and has since been incorporated into the national laws of all EU member states. In the UK it’s known as the <a href="http://www.legislation.gov.uk/uksi/2018/952/introduction/made">Public Sector Bodies (Websites and Mobile Apps) Accessibility Regulations 2018</a>.</p>
<h2 id="definition-of-public-sector" tabindex="-1">Definition of public sector</h2>
<p>The Public Sector Accessibility Regulations consider national, regional, and local authorities to be public sector bodies, as well as any organisation that receives public funding. Associations formed between one or more authorities or organisations that receive public funding are also counted as  public sector bodies, providing they’re formed to serve the general interest and are not industrial or commercial.</p>
<p>Non-Governmental Organisations (NGO) like charities are not counted as public sector bodies by the Public Sector Accessibility Regulations, unless they:</p>
<ul>
<li>Are mostly funded by public money</li>
<li>Provide services that are essential to the public or that are aimed at disabled people</li>
</ul>
<p>Schools and nurseries are excluded, except for any websites or apps needed to use their services (like choosing school meal preferences or signing up to an activity club). Public sector broadcasters and their subsidiaries are also excluded.</p>
<p>It is important to realise that organisations not covered by the Public Sector Accessibility Regulations may still be covered by other legislation. In the UK for example, the <a href="http://www.legislation.gov.uk/ukpga/2010/15/contents">Equality Act 2010</a> requires that all services (including websites and apps) are accessible to disabled people, no matter which sector the organisation operates in.</p>
<h2 id="definition-of-websites-and-apps" tabindex="-1">Definition of websites and apps</h2>
<p>The Public Sector Accessibility Regulations apply to all (internal and external) websites and apps that belong to a public sector organisation, except:</p>
<ul>
<li>Extranets or intranets published before 23 September 2019, unless they have undergone a major revision since 23 September 2018</li>
<li>Websites and apps that are only for archival purposes, and that will not be updated after 23 September 2019</li>
</ul>
<p>Certain types of content are also excluded under the Public Sector Accessibility Regulations:</p>
<ul>
<li>Office file formats published before 23 September 2018, unless the documents are needed for administrative activities relating to the public sector organisation</li>
<li>Pre-recorded time-based media (audio or video) published before 23 September 2020</li>
<li>Live time-based media</li>
<li>Maps and mapping services, as long as maps intended for navigational purposes provide the essential information in an accessible format</li>
<li>Third party content that is not funded, created, or controlled by the public sector organisation</li>
<li>Reproductions of documents in heritage collections that cannot be made accessible without damaging the authenticity or preservation of the original, or that cannot be made accessible using automated or cost-efficient techniques</li>
</ul>
<h2 id="requirements" tabindex="-1">Requirements</h2>
<p>The requirements for the Public Sector Accessibility Regulations are set out in clauses 9, 10, and 11 of <a href="https://www.etsi.org/human-factors-accessibility/en-301-549-v3-the-harmonized-european-standard-for-ict-accessibility#:~:text=EN%20301%20549-,What%20is%20EN%20301%20549%3F,use%20by%20persons%20with%20disabilities">European Standard EN 301 549</a>. EN 301 549 defines Level AA of the <a href="https://www.w3.org/TR/WCAG21/">Web Content Accessibility Guidelines (WCAG) 2.1</a> as the required standard.</p>
<p>In addition to meeting WCAG 2.1 Level AA, the Public Sector Accessibility Regulations also say that an accessibility statement must be published for each website and app.</p>
<h2 id="timetable" tabindex="-1">Timetable</h2>
<p>There are three deadlines for meeting the Public Sector Accessibility Regulations:</p>
<ul>
<li>Websites published after 23 September 2018 must conform to WCAG 2.1 Level A by 23rd September 2019</li>
<li>Websites published before 23 September 2018 must conform to WCAG 2.1 Level AA by 23 September 2020</li>
<li>Apps must conform to WCAG 2.1 Level AA by 21 June 2021</li>
</ul>
<h2 id="disproportionate-burden" tabindex="-1">Disproportionate burden</h2>
<p>It may not be necessary for a website or app to conform to the Public Sector Accessibility Regulations if it can be proved it would be a “disproportionate burden” to do so.</p>
<p>To claim disproportionate burden, public sector organisations need to assess the website or app and weigh the burden of making it accessible against the benefit to disabled people. The assessment should consider:</p>
<ul>
<li>The size of the organisation and the resources it has available</li>
<li>The purpose of the organisation and the services it provides</li>
<li>The cost of making the website or app accessible, and the impact the cost will have on the organisation</li>
<li>The benefit to people with disabilities, and the impact making the website or app accessible will have on their ability to participate in society</li>
</ul>
<p>A lack of time or accessibility knowledge are not reasons for claiming disproportionate burden. Not making accessibility a priority within an organisation is also not considered a good reason.</p>
<p>If a public sector organisation claims that making a website or app accessible would be a disproportionate burden, it must explain why in the accessibility statement for the website or app.</p>
<h2 id="accessibility-statements" tabindex="-1">Accessibility statements</h2>
<p>The Public Sector Accessibility Regulations say that every website and mobile app must have an accessibility statement, and that the statement must be regularly reviewed and updated.</p>
<p>The accessibility statement for a website must:</p>
<ul>
<li>Be in accessible format</li>
<li>Be available on the website itself</li>
</ul>
<p>The accessibility statement for a mobile app must:</p>
<ul>
<li>Be in accessible format</li>
<li>Be available at the point the app is downloaded, or available on the website of the public sector organisation</li>
</ul>
<p>The accessibility statement must conform to the <a href="https://www.gov.uk/guidance/model-accessibility-statement">model accessibility statement</a>. The model statement says that websites and apps should be monitored at least once a year for conformance with the Public Sector Accessibility Regulations.</p>
<h2 id="monitoring-and-reporting" tabindex="-1">Monitoring and reporting</h2>
<p>Monitoring is carried out by each EU member state, and a regular report is filed with the EU. In the UK the Cabinet Office is responsible for monitoring UK conformance with the Public Sector Accessibility Regulations, and the first report will be submitted between 1 January 2020 and 31 December 2021, then every 12 months after that.</p>
<p>To make monitoring and reporting consistent across the EU, a <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32018D1524">monitoring and reporting methodology</a> has been agreed. The methodology is intended for use by EU member states, but it also provides a useful framework for use by public sector organisations to monitor the conformance of websites and mobile apps.</p>
<p>The methodology describes two monitoring methods:</p>
<ul>
<li>Simplified monitoring designed to detect non-conformance</li>
<li>Thorough monitoring designed to assess the extent of conformance</li>
</ul>
<p>In other words, each public sector organisation must monitor its websites and apps for conformance with the Public Sector Accessibility Regulations and use the information to update its accessibility statements, and each EU member state must monitor national conformance and use that information to report to the EU.</p>
<h2 id="psar-amendment-2022" tabindex="-1">PSAR amendment 2022</h2>
<p>In 2022, an <a href="https://www.legislation.gov.uk/ukdsi/2022/9780348237603/">amendment to the Public Sector Accessibility Regulations</a> was released to address changes brought about by the UK's departure from the EU in 2020.</p>
<p>Updated 6 November 2023.</p>
<h2 id="next-steps" tabindex="-1">Next steps</h2>
<p>Find out more about the Web Content Accessibility Guidelines in our <a href="https://tetralogical.com/blog/2020/04/10/wcag-primer/">WCAG primer</a> and how <a href="https://tetralogical.com/services/assessments/">assessments</a> can help you identify issues in your websites, mobile applications, design systems, and other products and services.</p>

      ]]>
    </content>
  </entry>
</feed>