<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>The A11Y Project</title>
	<subtitle>A community-driven effort to make digital accessibility easier.</subtitle>
	<link href="https://a11yproject.com/feed/feed.xml" rel="self"/>
	<link href="https://a11yproject.com/"/>
	<updated>2025-03-10T00:00:00Z</updated>
	<id>https://a11yproject.com/</id>
	<author>
		<name>Dave Rupert</name>
		<email>hello@a11yproject.com</email>
	</author>
	
	<entry>
		<title>Accessibility is &#39;blind people&#39;</title>
		<link href="https://a11yproject.com/posts/accessibility-is-blind-people/"/>
		<updated>2013-01-11T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/accessibility-is-blind-people/</id>
		<content type="html">&lt;p&gt;Accessibility is often viewed as making your site work on screen readers. In reality, web accessibility is a subset of User Experience (UX) focused on making your websites usable by the widest range of people possible, including those who have disabilities.&lt;/p&gt;
&lt;h2 id=&quot;four-categories-of-accessibility&quot; tabindex=&quot;-1&quot;&gt;Four categories of accessibility&lt;/h2&gt;
&lt;p&gt;Accessibility can be broken down into &lt;a href=&quot;http://www.creativebloq.com/netmag/simple-introduction-web-accessibility-7116888&quot;&gt;four key categories&lt;/a&gt;:&lt;/p&gt;
&lt;h3 id=&quot;visual&quot; tabindex=&quot;-1&quot;&gt;Visual&lt;/h3&gt;
&lt;p&gt;This can be non-sighted users, users with low-vision, users with obstructed vision, or even simply your aging parents.&lt;/p&gt;
&lt;h4 id=&quot;associated-conditions&quot; tabindex=&quot;-1&quot;&gt;Associated conditions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Myopia&lt;/li&gt;
&lt;li&gt;Colour blindness&lt;/li&gt;
&lt;li&gt;Glaucoma&lt;/li&gt;
&lt;li&gt;Albinism&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;auditory&quot; tabindex=&quot;-1&quot;&gt;Auditory&lt;/h3&gt;
&lt;p&gt;The web is a visual medium, but captions and fallbacks for sound-necessary media need to be considered for hearing impaired users.&lt;/p&gt;
&lt;h4 id=&quot;associated-conditions-1&quot; tabindex=&quot;-1&quot;&gt;Associated conditions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Presbycusis&lt;/li&gt;
&lt;li&gt;Acoustic trauma&lt;/li&gt;
&lt;li&gt;Auditory processing disorder&lt;/li&gt;
&lt;li&gt;Otosclerosis&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;motor&quot; tabindex=&quot;-1&quot;&gt;Motor&lt;/h3&gt;
&lt;p&gt;People with motor impairments typically use a wide range of assistive technology from specialized keyboards, to eye trackers, to using single buttons (a device known as a &amp;quot;switch&amp;quot;) to navigate their computers.&lt;/p&gt;
&lt;h4 id=&quot;associated-conditions-2&quot; tabindex=&quot;-1&quot;&gt;Associated conditions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;RSI&lt;/li&gt;
&lt;li&gt;Cerebral palsy&lt;/li&gt;
&lt;li&gt;Parkinson&#39;s&lt;/li&gt;
&lt;li&gt;Muscular dystrophy&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;cognitive&quot; tabindex=&quot;-1&quot;&gt;Cognitive&lt;/h3&gt;
&lt;p&gt;Relates to the ease processing of information.&lt;/p&gt;
&lt;h4 id=&quot;associated-conditions-3&quot; tabindex=&quot;-1&quot;&gt;Associated conditions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Down’s syndrome&lt;/li&gt;
&lt;li&gt;Autism&lt;/li&gt;
&lt;li&gt;Global developmental delay&lt;/li&gt;
&lt;li&gt;Dyslexia&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;temporary-disabilities&quot; tabindex=&quot;-1&quot;&gt;Temporary disabilities&lt;/h3&gt;
&lt;p&gt;While each of these disabilities is usually permanent, there are often situations in which even fully-abled people are &amp;quot;temporarily disabled&amp;quot;. For instance, an arm or wrist injury may temporarily prevent you from being able to use a mouse.&lt;/p&gt;
&lt;p&gt;Robin Christopherson (an accessibility expert who is blind) once spoke about how people that are driving but use hands-free sets or have their phone connected to the car radio are temporarily disabled, as they use the phone differently to how they normally would. Of course, no one should browse websites while they are driving but it is important to understand different situations like that, where the user may not have special software installed that a disabled user might.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Navigate using just your keyboard</title>
		<link href="https://a11yproject.com/posts/navigate-using-just-your-keyboard/"/>
		<updated>2013-01-11T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/navigate-using-just-your-keyboard/</id>
		<content type="html">&lt;p&gt;Testing your site for keyboard navigation will help ensure that keyboard users can access your site.&lt;/p&gt;
&lt;p&gt;As a bonus, sites that can be navigated with a keyboard are more likely to be navigable with other input devices such as switches.&lt;/p&gt;
&lt;h2 id=&quot;how-to-navigate-a-website-with-a-keyboard&quot; tabindex=&quot;-1&quot;&gt;How to navigate a website with a keyboard&lt;/h2&gt;
&lt;p&gt;Generally, pressing &lt;kbd&gt;Tab&lt;/kbd&gt; moves focus between interactive elements and pressing &lt;kbd&gt;Enter&lt;/kbd&gt; will interact with them.&lt;/p&gt;
&lt;p&gt;If you are using Safari, &lt;kbd&gt;Option&lt;/kbd&gt; + &lt;kbd&gt;Tab&lt;/kbd&gt; is the default keyboard shortcut to move focus between elements. You can update your settings to make &lt;kbd&gt;Tab&lt;/kbd&gt; the default navigation key by following the instructions in this article: &lt;a href=&quot;https://a11yproject.com/posts/navigate-using-just-your-keyboard/&quot;&gt;Quick Tip: Safari Keyboard Navigation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Additional keyboard shortcuts are described here: &lt;a href=&quot;https://webaim.org/techniques/keyboard/&quot;&gt;WebAIM - Keyboard Accessibility&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;things-to-keep-in-mind-while-testing&quot; tabindex=&quot;-1&quot;&gt;Things to keep in mind while testing&lt;/h2&gt;
&lt;p&gt;It is not enough to simply tab through a webpage from start to end. While navigating the site, keep these things in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interactive elements should be functional using only keyboard input.&lt;/li&gt;
&lt;li&gt;The focused element should be visible and have an obvious focus style. See article: &lt;a href=&quot;https://a11yproject.com/posts/never-remove-css-outlines/&quot;&gt;&amp;quot;Quick Tip: Never remove CSS outlines&amp;quot;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Focus should move between elements as they appear on the page and not jump back and forth.&lt;/li&gt;
&lt;li&gt;There should be a way to skip past lengthy spans of content, like global navigation menus. See article: &lt;a href=&quot;https://a11yproject.com/posts/skip-nav-links/&quot;&gt;&amp;quot;How–to: Use Skip Navigation links&amp;quot;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Using alt text properly</title>
		<link href="https://a11yproject.com/posts/alt-text/"/>
		<updated>2013-01-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/alt-text/</id>
		<content type="html">&lt;p&gt;The &lt;code&gt;alt&lt;/code&gt; attribute is meant to provide &amp;quot;alternate text&amp;quot; descriptions of images to help ensure people do not miss out on information conveyed by graphics.&lt;/p&gt;
&lt;p&gt;Alternative text can help people using assistive technology, such as screen readers, or people who have images turned off on their mobile devices (to save data, for instance). Additionally, alt text can be useful to everyone in instances of poor Internet service, or your CDN of choice having a service hiccup (or attack), and images are slow or fail to load.&lt;/p&gt;
&lt;h2 id=&quot;a-few-tips-on-how-and-when-to-use-the-alt-attribute%3A&quot; tabindex=&quot;-1&quot;&gt;A few tips on how and when to use the &lt;code&gt;alt&lt;/code&gt; attribute:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use the &lt;code&gt;alt&lt;/code&gt; attribute for images that are used as more than decoration. The alternative text describes the primary purpose of an image and is rarely a detailed description of the image itself (unless, for example, the page is actually about a specific image).&lt;/li&gt;
&lt;li&gt;Make sure the description of the image is useful. For example, if the image is of a company&#39;s logo, the &lt;code&gt;alt&lt;/code&gt; should be the company&#39;s name. The word &amp;quot;logo&amp;quot; is not necessary or useful as part of the alternative text.&lt;/li&gt;
&lt;li&gt;Don&#39;t begin alternative text with &amp;quot;photo of...&amp;quot; or &amp;quot;picture of...&amp;quot;. Assistive technologies already indicate the role of the element as an &amp;quot;image&amp;quot; or &amp;quot;graphic&amp;quot;. Redundancy makes for poor user experiences.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.paciellogroup.com/blog/2015/09/short-note-on-coding-alt-text/&quot;&gt;Don&#39;t put line breaks in &lt;code&gt;alt&lt;/code&gt; text&lt;/a&gt;. Doing so can cause awkward screen reader announcements. For instance, inserting the element&#39;s role &amp;quot;graphic&amp;quot; and unintended pauses prior to each line break.&lt;/li&gt;
&lt;li&gt;Use an empty &lt;code&gt;alt&lt;/code&gt; attribute for any image that is decorative or not necessary for understanding the content of the page. For example, an image providing decoration to an article&#39;s heading could be hidden by giving the image an &lt;code&gt;alt=&amp;quot;&amp;quot;&lt;/code&gt; or simply &lt;code&gt;alt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Using an image several times in a website doesn&#39;t necessarily mean the &lt;code&gt;alt&lt;/code&gt; attribute will be the same for each instance. For example, a logo within a website&#39;s header often doubles a link back to the home page. In this example, the &lt;code&gt;alt&lt;/code&gt; would be useful as &amp;quot;Company&#39;s name - home&amp;quot;. If that same logo were used in the footer of the site, next to the text &amp;quot;Company&#39;s name, copyright 20XX&amp;quot;, then the logo would have an empty alt (&lt;code&gt;alt=&amp;quot;&amp;quot;&lt;/code&gt;) so as to not create a redundant announcement of the company&#39;s name.&lt;/li&gt;
&lt;li&gt;There may be other times where images are used within links, but are decorative to the visible label of the link. For example, if the image is an icon of a phone and part of a &amp;quot;contact&amp;quot; link, the &lt;code&gt;alt&lt;/code&gt; could be empty as the text of the link indicates what the icon represents.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>ARIA Landmark roles and HTML5 implicit mapping</title>
		<link href="https://a11yproject.com/posts/aria-landmark-roles/"/>
		<updated>2013-01-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/aria-landmark-roles/</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://w3c.github.io/aria/#landmark_roles&quot;&gt;ARIA Landmark Roles&lt;/a&gt; can be helpful to assistive device users, as they can be used to orient a user to, and easily navigate, your website or application. For a quick video demonstration, check out &lt;a href=&quot;https://youtu.be/IhWMou12_Vk&quot;&gt;&amp;quot;How ARIA landmark roles help screen reader users&amp;quot;&lt;/a&gt;, by &lt;a href=&quot;https://tink.uk/&quot;&gt;Léonie Watson&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;landmark-quick-reference&quot; tabindex=&quot;-1&quot;&gt;Landmark quick reference&lt;/h2&gt;
&lt;p&gt;The following are common landmark roles that tend to be useful on many pages:&lt;/p&gt;
&lt;h3 id=&quot;banner&quot; tabindex=&quot;-1&quot;&gt;banner&lt;/h3&gt;
&lt;p&gt;Typically the primary “header” of your page, containing the name of the site/application along with other globally available content. It MUST be scoped to the &lt;code&gt;body&lt;/code&gt; element, and not within another sectioning element, or the &lt;code&gt;main&lt;/code&gt; of the document.&lt;/p&gt;
&lt;h3 id=&quot;search&quot; tabindex=&quot;-1&quot;&gt;search&lt;/h3&gt;
&lt;p&gt;Use on the primary search form. Often, but not always, found within a &lt;code&gt;banner&lt;/code&gt;.  If you have multiple &lt;code&gt;search&lt;/code&gt; landmarks in a document it would be good to provide them with unique accessible names to indicate how they differ.&lt;/p&gt;
&lt;h3 id=&quot;main&quot; tabindex=&quot;-1&quot;&gt;main&lt;/h3&gt;
&lt;p&gt;Designates the primary content area of the current document. Only one main landmark should be exposed to users at a time.&lt;/p&gt;
&lt;h3 id=&quot;navigation&quot; tabindex=&quot;-1&quot;&gt;navigation&lt;/h3&gt;
&lt;p&gt;Used to promote an area as a navigation. Combine with a unique &lt;code&gt;aria-label&lt;/code&gt; to provide context of the navigation&#39;s purpose. e.g. &lt;code&gt;&amp;lt;nav aria-label=&amp;quot;primary&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;contentinfo&quot; tabindex=&quot;-1&quot;&gt;contentinfo&lt;/h3&gt;
&lt;p&gt;Typically the &amp;quot;footer&amp;quot; of your page that contains information about the parent document such as copyrights and links to privacy statements.&lt;/p&gt;
&lt;p&gt;Implementing landmarks in your documents is a straightforward process. Simply add the &lt;code&gt;role&lt;/code&gt; attribute referencing the appropriate landmark value. For example:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;contentinfo&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  ...&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;html5-implicit-mappings-of-landmark-roles&quot; tabindex=&quot;-1&quot;&gt;HTML5 implicit mappings of Landmark roles&lt;/h2&gt;
&lt;p&gt;Before you start adding ARIA roles to your HTML elements, you should be aware that many of these landmarks will be natively conveyed by proper HTML usage. For example, the following markup snippet will produce a warning in modern HTML and accessibility automated checkers:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;header&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;banner&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;site-header&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  ...&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;header&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The following table outlines the different ARIA landmarks, and the HTML5 element they are associated with:&lt;/p&gt;
&lt;table class=&quot;table-dividers&quot;&gt;
  &lt;col width=&quot;35%&quot; /&gt;
  &lt;thead&gt;
    &lt;tr&gt;
        &lt;th scope=&quot;col&quot;&gt;Landmark Role&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;HTML Element&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;banner&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;
        &lt;br /&gt;(if not a child of a sectioning element or the &lt;code&gt;main&lt;/code&gt;.)
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;complementary&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;contentinfo&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;
        &lt;br /&gt;(if not a child of a sectioning element or the &lt;code&gt;main&lt;/code&gt;.)
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;form&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;
        &lt;br /&gt;(if provided an accessible name via &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;main&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;
        &lt;br /&gt;(only use one per page)
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;navigation&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;region&lt;/td&gt;
      &lt;td&gt;
        &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;
        &lt;br /&gt; (if provided an accessible name via &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;search&lt;/td&gt;
      &lt;td&gt;
        none
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The majority of &lt;a href=&quot;https://www.html5accessibility.com/&quot;&gt;modern browsers&lt;/a&gt; (except Internet Explorer) support these mappings. But it&#39;s always beneficial to run your own tests to ensure the appropriate landmark role is being appropriately exposed to assistive technology.&lt;/p&gt;
&lt;p&gt;For example, there are &lt;a href=&quot;https://www.scottohara.me/blog/2019/04/05/landmarks-exposed.html&quot;&gt;still support gaps in browsers and screen readers&lt;/a&gt; for exposing some landmarks. When presented with situations like this, ignoring conformance warnings, and adding a redundant role to an element, may be preferred to not exposing the correct landmark information.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with macOS VoiceOver</title>
		<link href="https://a11yproject.com/posts/getting-started-with-voiceover/"/>
		<updated>2013-01-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-with-voiceover/</id>
		<content type="html">&lt;p&gt;VoiceOver is the assistive software built into macOS. It provides a richer set of keyboard shortcuts for navigating a website and reads sections of the page aloud based on the current focus. It’s a great way to test the accessibility of a project because it’s always readily at-hand: you can toggle VoiceOver on/off by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Toggling it to “on” under “Universal Access” in your system preferences.&lt;/li&gt;
&lt;li&gt;Pressing &lt;kbd&gt;Command&lt;/kbd&gt; + &lt;kbd&gt;F5&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Turning on VoiceOver enables a number of navigational key commands, all of which are performed by pressing Control and Option. This is usually abbreviated to “VO” in Apple’s documentation (so &lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;F1&lt;/kbd&gt; means &lt;kbd&gt;Control&lt;/kbd&gt; + &lt;kbd&gt;Option&lt;/kbd&gt; + &lt;kbd&gt;F1&lt;/kbd&gt;).&lt;/p&gt;
&lt;p&gt;To start out, try turning on VoiceOver with &lt;kbd&gt;Command&lt;/kbd&gt; + &lt;kbd&gt;F5&lt;/kbd&gt;, then use &lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;F8&lt;/kbd&gt; to open VoiceOver’s preferences window—here you can adjust things like the voice used, speaking speed, and under “web”: your navigation method.&lt;/p&gt;
&lt;h2 id=&quot;navigation-modes&quot; tabindex=&quot;-1&quot;&gt;Navigation modes&lt;/h2&gt;
&lt;p&gt;There are two modes you can use when navigating with VoiceOver: by “grouping items” or by “DOM order.” These two methods allow you to interact with a page’s content in slightly different ways.&lt;/p&gt;
&lt;h3 id=&quot;grouping-items&quot; tabindex=&quot;-1&quot;&gt;Grouping items&lt;/h3&gt;
&lt;p&gt;Grouping items will flag that you are currently focused on a list, and you can begin interacting with the items by pressing the down arrow to “drill down” into those items. This mode attempts to group related content based on how the page is being rendered, and navigating by group will allow you to use the arrow keys to move in any direction. We’ll be focusing on this mode.&lt;/p&gt;
&lt;h3 id=&quot;dom-order&quot; tabindex=&quot;-1&quot;&gt;DOM Order&lt;/h3&gt;
&lt;p&gt;DOM Order will flag that you are entering a list of items, and  drill down into those items automatically. This mode is based entirely on the page’s underlying markup. Navigating by DOM order allows you to shift focus between DOM elements with the left and right arrow keys. The up and down arrow keys are based on the last used navigation method in the “Web Item Rotor.”&lt;/p&gt;
&lt;h2 id=&quot;reading-text&quot; tabindex=&quot;-1&quot;&gt;Reading text&lt;/h2&gt;
&lt;p&gt;Here are some basic interaction and navigation commands for VoiceOver.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;Down arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Interact with an item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;Up arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Stop interacting with an item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Spacebar&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Perform the default action for the item in the VoiceOver cursor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;R&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read a row in a table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;C&lt;/kbd&gt; + &lt;kbd&gt;C&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read a column in a table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Up arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Move up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Down arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Move down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Left arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Move to previous&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;Right arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Move to next&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;the-web-item-rotor&quot; tabindex=&quot;-1&quot;&gt;The Web Item rotor&lt;/h2&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;VoiceOver&#39;s Web Rotor.&quot;&gt;
  &lt;img alt=&quot;macOS VoiceOver’s Web Item Rotor showing a list of headings on The A11Y Project&#39;s homepage.&quot; src=&quot;https://a11yproject.com/img/posts/getting-started-with-voiceover/voiceover-rotor.png&quot; /&gt;
  &lt;figcaption&gt;VoiceOver&#39;s Web Item Rotor.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Open the rotor by pressing &lt;kbd&gt;VO&lt;/kbd&gt; + &lt;kbd&gt;U&lt;/kbd&gt; with VoiceOver enabled, and you’ll be presented with a list of navigational elements on the current page. You can use the rotor to jump directly to links, headings, form controls, tables, web spaces, and ARIA landmarks. You can switch between these navigation methods using the left and right arrow keys, navigate through the list using the up and down arrow keys, and select an item using the enter key or the spacebar.&lt;/p&gt;
&lt;p&gt;You can start getting a feel for VoiceOver right here on &lt;a href=&quot;http://a11yproject.com/&quot;&gt;a11yproject.com&lt;/a&gt;. Try it out!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Never use &lt;code&gt;maximum-scale=&#39;1.0&#39;&lt;/code&gt;</title>
		<link href="https://a11yproject.com/posts/never-use-maximum-scale/"/>
		<updated>2013-01-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/never-use-maximum-scale/</id>
		<content type="html">&lt;p&gt;Using the viewport meta tag the wrong way can prevent people with low vision concerns from accessing your website or web app.&lt;/p&gt;
&lt;h2 id=&quot;about-the-maximum-scale-attribute&quot; tabindex=&quot;-1&quot;&gt;About the &lt;code&gt;maximum-scale&lt;/code&gt; attribute&lt;/h2&gt;
&lt;p&gt;By setting &lt;code&gt;maximum-scale=1.0&lt;/code&gt;, you are disabling the functionality to use pinch zoom on certain mobile devices, forcing people to view your page a certain way.&lt;/p&gt;
&lt;h3 id=&quot;the-bad-way&quot; tabindex=&quot;-1&quot;&gt;The bad way&lt;/h3&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;viewport&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;width=device-width, initial-scale=1.0, maximum-scale=1.0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;the-good-way&quot; tabindex=&quot;-1&quot;&gt;The good way&lt;/h3&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;viewport&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;width=device-width, initial-scale=1.0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Avoiding &lt;code&gt;maximum-scale=&amp;quot;1.0&amp;quot;&lt;/code&gt; allows your site to meet users&#39; needs and provide a better experience.&lt;/p&gt;
&lt;p&gt;In iOS 10, &lt;a href=&quot;https://webkit.org/blog/7367/new-interaction-behaviors-in-ios-10/&quot;&gt;Apple changed its handling&lt;/a&gt; of &lt;code&gt;user-scalable&lt;/code&gt;, &lt;code&gt;min-scale&lt;/code&gt;, and &lt;code&gt;max-scale&lt;/code&gt; declarations. Their changes removed the effect on pinch-zooming, making it possible to pinch-zoom regardless of the &lt;code&gt;meta&lt;/code&gt; element&#39;s suggestions.&lt;/p&gt;
&lt;p&gt;However, other effects of the declarations remain, like their effect on whether the browser automatically zooms into focused input elements. And other mobile browsers, &lt;a href=&quot;https://developers.google.com/web/fundamentals/design-and-ux/responsive/#ensure_an_accessible_viewport&quot;&gt;including Chrome on Android&lt;/a&gt;, still forbid user zooming when a &lt;code&gt;maximum-scale=&amp;quot;1.0&amp;quot;&lt;/code&gt; rule is present.&lt;/p&gt;
&lt;h2 id=&quot;about-the-user-scalable-attribute&quot; tabindex=&quot;-1&quot;&gt;About the &lt;code&gt;user-scalable&lt;/code&gt; attribute&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;user-scalable&lt;/code&gt; attribute can also &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#Viewport_scaling&quot;&gt;cause problems&lt;/a&gt; for people who use the built-in zoom functionality of their web browser.&lt;/p&gt;
&lt;p&gt;The attribute is set as &lt;code&gt;user-scalable=&amp;quot;yes&amp;quot;&lt;/code&gt; by default, which means that people are able to control the zoom setting for the page they&#39;re visiting. Changing it to &lt;code&gt;user-scalable=&amp;quot;no&amp;quot;&lt;/code&gt; would prevent zoom settings from working on both mobile and desktop devices.&lt;/p&gt;
&lt;p&gt;Avoid setting &lt;code&gt;user-scalable&lt;/code&gt; to &lt;code&gt;no&lt;/code&gt; to assure better accessibility of your site. Either leave it as default by not referencing the &lt;code&gt;user-scalable&lt;/code&gt; attribute, or set it to &lt;code&gt;yes&lt;/code&gt;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Don&#39;t auto-play video, music and more</title>
		<link href="https://a11yproject.com/posts/never-use-auto-play/"/>
		<updated>2013-01-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/never-use-auto-play/</id>
		<content type="html">&lt;p&gt;Not auto-playing your media will make everyone happy.&lt;/p&gt;
&lt;h2 id=&quot;sound&quot; tabindex=&quot;-1&quot;&gt;Sound&lt;/h2&gt;
&lt;p&gt;People using screen-readers navigate by listening, so any sound playing when the page loads will interfere immensely. It will also be frustrating to any person that may be listening to music or is in a quiet area with their sound on high.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/audio-control.html&quot;&gt;a note on audio control&lt;/a&gt;, the Web Content Accessibility Guidelines (WCAG) suggests:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Therefore, we discourage the practice of automatically starting sounds (especially if they last more than 3 seconds), and encourage that the sound be started by an action initiated by the user after they reach the page, rather than requiring that the sound be stopped by an action of the user after they land on the page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;vision&quot; tabindex=&quot;-1&quot;&gt;Vision&lt;/h2&gt;
&lt;p&gt;Vision includes video and CSS/JavaScript animations like slide-shows and carousels.&lt;/p&gt;
&lt;p&gt;Some groups of people may have a problem with moving content on a web page that starts without warning. This includes people with certain types of learning difficulties who can find it hard to concentrate or focus on tasks when distractions are present.&lt;/p&gt;
&lt;h2 id=&quot;in-html5&quot; tabindex=&quot;-1&quot;&gt;In HTML5&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://w3c.github.io/html/semantics-embedded-content.html#element-attrdef-media-autoplay&quot;&gt;HTML5 specification&lt;/a&gt; includes the &lt;code&gt;autoplay&lt;/code&gt; attribute along with the following provisions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Authors are urged to use the autoplay attribute rather than using script to trigger automatic playback, as this allows the user to override the automatic playback when it is not desired, e.g. when using a screen reader.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even though an &lt;code&gt;autoplay&lt;/code&gt; attribute is included they also suggest:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Authors are also encouraged to consider not using the automatic playback behavior at all, and instead to let the user agent wait for the user to start playback explicitly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;what-if-you-can&#39;t-say-no%3F&quot; tabindex=&quot;-1&quot;&gt;What if you can&#39;t say no?&lt;/h2&gt;
&lt;p&gt;As web developers, we don&#39;t always have the luxury of making business decisions, so there are a couple of recommendations to follow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure media lasts for &lt;a href=&quot;https://www.w3.org/TR/WCAG21/#pause-stop-hide&quot;&gt;five seconds or fewer&lt;/a&gt; before stopping for good.&lt;/li&gt;
&lt;li&gt;If media lasts over five seconds, you must provide the user with an option to &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html&quot;&gt;stop or pause it&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is also considered good practice to indicate a link will navigate to a location that contains auto-playing media. For example, a link to YouTube could be written as, &amp;quot;Beethoven - Moonlight Sonata (YouTube)&amp;quot;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Check contrast with your mobile device</title>
		<link href="https://a11yproject.com/posts/check-contrast-with-mobile-device/"/>
		<updated>2013-01-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/check-contrast-with-mobile-device/</id>
		<content type="html">&lt;p&gt;Having good contrast and readability are an important part of creating an accessible website.&lt;/p&gt;
&lt;p&gt;One trick you can do to test whether or not your contrast is sufficient enough is by using your phone or mobile device.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set the brightness of your mobile device to its lowest setting.&lt;/li&gt;
&lt;li&gt;Open up your website on the device and begin browsing around.&lt;/li&gt;
&lt;li&gt;Optionally, try viewing your site in direct sunlight.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you find something difficult to read, you may have found an accessibility issue! Take measures to check and increase the contrast of your text.&lt;/p&gt;
&lt;h2 id=&quot;available-tools&quot; tabindex=&quot;-1&quot;&gt;Available tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.checkmycolours.com/&quot;&gt;Check My Colours&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://usecontrast.com/&quot;&gt;Contrast for macOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webaim.org/resources/contrastchecker/&quot;&gt;WebAIM: Color Contrast Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.deque.com/axe/&quot;&gt;Axe: Open Source Library for Web Accessibility Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tenon.io/&quot;&gt;Tenon.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.paciellogroup.com/resources/contrastanalyser/&quot;&gt;TPG: Colour Contrast Analyser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Future-proofing your accessibility efforts</title>
		<link href="https://a11yproject.com/posts/future-proof-your-accessibility/"/>
		<updated>2013-01-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/future-proof-your-accessibility/</id>
		<content type="html">&lt;p&gt;Your future self, coworkers, and most importantly customers and clients will thank you for developing with accessibility in mind.&lt;/p&gt;
&lt;h2 id=&quot;tech-debt-goes-down-when-accessibility-goes-up&quot; tabindex=&quot;-1&quot;&gt;Tech debt goes down when accessibility goes up&lt;/h2&gt;
&lt;p&gt;The best way to future proof your accessibility efforts is to ensure websites and applications are built with a foundation in &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML&quot;&gt;proper HTML semantics&lt;/a&gt;. We can help ensure we are future-proofing our project by following two rules from &lt;a href=&quot;https://www.w3.org/TR/WCAG21/#robust&quot;&gt;Web Content Accessibility Guidelines&lt;/a&gt; (WCAG): &lt;strong&gt;Parsing&lt;/strong&gt; and &lt;strong&gt;Name, Role, Value&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Following these rules has the bonus value of better supporting current and future &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/User_agent&quot;&gt;browsers and other user agents&lt;/a&gt;, while additionally ensuring assistive technologies (AT) such as screen readers will be more likely to correctly interpret the content of our projects.&lt;/p&gt;
&lt;h2 id=&quot;breaking-down-the-rules&quot; tabindex=&quot;-1&quot;&gt;Breaking down the rules&lt;/h2&gt;
&lt;p&gt;Let&#39;s define the WCAG rules and look at some quick tips to help follow them.&lt;/p&gt;
&lt;h3 id=&quot;4.1.1-parsing&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/WCAG21/#parsing&quot;&gt;4.1.1 Parsing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Following this rule helps ensure that browsers and AT will be able to correctly interpret your web interface without complications from poorly-structured markup.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://validator.w3.org/nu/&quot;&gt;W3C Nu HTML Checker&lt;/a&gt; can help you locate errors in your source or rendered markup. Any reported validation can be corrected, which will help decrease the likelihood of ATs incorrectly parsing your website.&lt;/li&gt;
&lt;li&gt;Follow the official HTML specifications for guidance on writing correct markup. Some quick tips: make sure to close open tags (&lt;code&gt;&amp;lt;div class=&amp;quot;a-class&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;/code&gt;), use unique &lt;code&gt;id&lt;/code&gt;s, and don&#39;t incorrectly nest HTML elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4.1.2-name%2C-role%2C-value&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/WCAG21/#name-role-value&quot;&gt;4.1.2 Name, role, value&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This rule is related to the components and controls that make up the web interface. It helps to ensure components can have their name and role programmatically determined, and that their states, properties, and values can be set by the individual interacting with them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All standard HTML controls already meet these rules by default.&lt;/strong&gt; The guideline is primarily aimed at developers that heavily redesign or modify the functionality of standard HTML controls, or design and/or script their own interface components and controls from scratch.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot; tabindex=&quot;-1&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;While these are only two of the criteria to follow to make your website more accessible, they should take a prominent spot in every web developer&#39;s workflow.&lt;/p&gt;
&lt;p&gt;Additionally, the use of checklists, such as &lt;a href=&quot;https://a11yproject.com/checklist/&quot;&gt;The A11y Project checklist&lt;/a&gt;, can help you future-proof your accessibility efforts.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>A primer to visual impairment</title>
		<link href="https://a11yproject.com/posts/understanding-visual-impairment/"/>
		<updated>2013-01-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/understanding-visual-impairment/</id>
		<content type="html">&lt;p&gt;Visual impairment is a condition that limits the visual capability of an individual to such a degree that additional support is needed.&lt;/p&gt;
&lt;p&gt;It is the result of trauma, disease, congenital, or degenerative conditions that cannot be corrected by medication, surgery or refractive correction. 90% of the world&#39;s visually impaired live in developing countries and 80% of all visual impairment can be avoided or cured by conventional means.&lt;/p&gt;
&lt;p&gt;According to the &lt;a href=&quot;https://nfb.org/&quot;&gt;National Federation for the Blind&lt;/a&gt;, 7,297,100 people over the age of 16 were reported to have some level of visual impairment, as of a &lt;a href=&quot;https://nfb.org/blindness-statistics&quot;&gt;2015 American Community Survey&lt;/a&gt; interpreted by Cornell University&#39;s Employment and Disability Institute (EDI).&lt;/p&gt;
&lt;p&gt;There are 3 levels of visual impairment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Moderate visual impairment&lt;/li&gt;
&lt;li&gt;Severe visual impairment&lt;/li&gt;
&lt;li&gt;Blindness&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;According to The United States Bureau of the Census:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;The question about “significant vision loss” encompasses both total or near-total blindness and “trouble seeing, even &gt; when wearing glasses or contact lenses.” and [...] There are no generally accepted definitions for “visually impaired,” “low &gt; vision,” or “vision loss.”&lt;/p&gt;
  &lt;footer&gt;
    &lt;cite&gt;&lt;a href=&quot;https://nfb.org/blindness-statistics&quot;&gt;Statistical Facts about Blindness in the United States - National Federation of the Blind&lt;/a&gt;&lt;/cite&gt;
  &lt;/footer&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;who-is-at-risk%3F&quot; tabindex=&quot;-1&quot;&gt;Who is at risk?&lt;/h2&gt;
&lt;p&gt;65% of visually impaired people are over 50 years old. With an ever increasing elderly population in many countries, more people will be at risk of age-related visual impairment.&lt;/p&gt;
&lt;p&gt;An estimated 19,000,000 children under 15 years are visually impaired with 12,000,000 due to refractive errors that have not yet been diagnosed or corrected, while 1,400,000 are irreversibly blind.&lt;/p&gt;
&lt;h2 id=&quot;the-causes&quot; tabindex=&quot;-1&quot;&gt;The causes&lt;/h2&gt;
&lt;p&gt;Disorders of the eye that lead to visual impairments can include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sciencedirect.com/topics/neuroscience/retinal-degeneration&quot;&gt;Retinal degeneration&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Albinism&quot;&gt;Albinism&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Cataract&quot;&gt;Cataracts&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Glaucoma&quot;&gt;Glaucoma&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Muscular problems,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nei.nih.gov/health/cornealdisease/&quot;&gt;Corneal disorders&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Diabetic_retinopathy&quot;&gt;Diabetic retinopathy&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Congenital_disorder&quot;&gt;Congenital disorders&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Infection and &lt;a href=&quot;https://en.wikipedia.org/wiki/Cortical_visual_impairment&quot;&gt;cortical disorders&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refractive errors (&lt;a href=&quot;https://en.wikipedia.org/wiki/Myopia&quot;&gt;myopia&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Hyperopia&quot;&gt;hyperopia&lt;/a&gt; or &lt;a href=&quot;https://www.medicalnewstoday.com/articles/158810.php&quot;&gt;astigmatism&lt;/a&gt;) are typically the result of nature with 43% of visually impaired born with refractive errors that can be corrected with medication, surgery, glasses or contact lenses.&lt;/p&gt;
&lt;h2 id=&quot;the-challenges&quot; tabindex=&quot;-1&quot;&gt;The challenges&lt;/h2&gt;
&lt;p&gt;Equality is the most important challenge that faces those with visual impairments. However, thanks to improved assistive technology, braille, and other specialized tools, the rest of the world is beginning to understand that the visually impaired population are capable of the same things as those with near-perfect vision.&lt;/p&gt;
&lt;p&gt;A greater dependence on what we might take for granted is also very important. Electricity is a huge factor when it comes to content. Without it, a person who relies solely on a screen reader cannot simply browse a book, magazine or newspaper. This, in turn, puts greater demand on media that originated in print to be made available through computers where screen readers can assist.&lt;/p&gt;
&lt;h2 id=&quot;the-future-is-bright&quot; tabindex=&quot;-1&quot;&gt;The future is bright&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Louis_Braille&quot;&gt;Louis Braille&lt;/a&gt; invented the Braille system for reading and writing in 1824, giving access to previously inaccessible literature. Helen Keller overcame the institutionalized education system of the 19th century, becoming the first deafblind person to earn a Bachelor of Arts Degree. Bob Stepp  developed the first Braille editing program in 1980, and in the modern era we hold the key to accessibility for this generation and many more to come.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The challenges of yesterday are the opportunities of today.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	
	<entry>
		<title>Check comprehension level</title>
		<link href="https://a11yproject.com/posts/check-comprehension-level/"/>
		<updated>2013-01-25T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/check-comprehension-level/</id>
		<content type="html">&lt;p&gt;People with cognitive disabilities often struggle with reading text on the Internet. When writing content, it is important to identify your target audience and write accordingly.&lt;/p&gt;
&lt;p&gt;If you don&#39;t know who your audience is, target your content towards a reader between the ages of 12 and 15 years old.&lt;/p&gt;
&lt;p&gt;Here are some tools to test your content:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.webpagefx.com/tools/read-able/&quot;&gt;Read-able.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://juicystudio.com/services/readability.php&quot;&gt;Readability Test - Juicy Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://office.microsoft.com/en-us/word-help/test-your-document-s-readability-HP010148506.aspx&quot;&gt;Test your document&#39;s readability - Microsoft Office&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hemingwayapp.com/&quot;&gt;Hemingway Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://plainlanguage.gov/guidelines/words/&quot;&gt;Choose your words carefully - plainlanguage.gov&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://datayze.com/readability-analyzer.php&quot;&gt;datayze Readability Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://xkcd.com/simplewriter/&quot;&gt;xkcd Simple Writer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If your content isn&#39;t hitting the target audience, take some time and rewrite it.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Never remove CSS outlines</title>
		<link href="https://a11yproject.com/posts/never-remove-css-outlines/"/>
		<updated>2013-01-25T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/never-remove-css-outlines/</id>
		<content type="html">&lt;p&gt;Removing outlines in CSS creates issues for people navigating the web with a keyboard.&lt;/p&gt;
&lt;p&gt;Using the CSS rule &lt;code&gt;:focus { outline: none; }&lt;/code&gt; to remove an outline on an object causes the link or control to be focusable, but removes any visible indication of focus for keyboard users. Methods to remove it such as &lt;code&gt;onfocus=&amp;quot;blur()&amp;quot;&lt;/code&gt; result in keyboard users being unable to interact with the link or control.&lt;/p&gt;
&lt;p&gt;If you do not like the default focus outline that is displayed when a user clicks on an interactive element, you have 3 accessible solutions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Style the outline. Webkit browsers have a more prominent glow so you could try &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/CSS/outline&quot;&gt;styling it&lt;/a&gt; to make it less obtrusive. Consider the use of &lt;code&gt;a:focus { outline: thin dotted; }&lt;/code&gt; to normalize the look of the outline across browsers.&lt;/li&gt;
&lt;li&gt;Style the element itself. You can remove the outline as long as you style the focused element differently (using a combination of &lt;code&gt;color&lt;/code&gt;, &lt;code&gt;background-color&lt;/code&gt;, &lt;code&gt;border&lt;/code&gt; or &lt;code&gt;text-decoration: underline&lt;/code&gt; for example). When using this approach, &lt;a href=&quot;https://www.w3.org/TR/WCAG21/#use-of-color&quot;&gt;avoid using color alone&lt;/a&gt; as the only visual means of determining focus, as colorblind people may not be able to distinguish the focus state from the inactive state.&lt;/li&gt;
&lt;li&gt;Remove outlines for mouse users only, if you truly &lt;em&gt;must&lt;/em&gt; do so. Start without applying any &lt;code&gt;outline: none&lt;/code&gt; rules. If a mouse event is detected apply those rules using JavaScript. Remove the rules again if keyboard interaction is detected. Here are 2 examples of accessible outline removal scripts:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/2470777&quot;&gt;outliner.js&lt;/a&gt;, a cross-lib implementation with event delegation, by &lt;a href=&quot;https://twitter.com/#!/arglazer&quot;&gt;Aireh Glazer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lindsayevans/outline.js&quot;&gt;outline.js&lt;/a&gt;, a similar approach that uses &lt;code&gt;mousedown&lt;/code&gt; instead of &lt;code&gt;mouseover&lt;/code&gt;, by &lt;a href=&quot;https://twitter.com/lindsayevans/&quot;&gt;Lindsay Evans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ten1seven/what-input&quot;&gt;What Input?&lt;/a&gt;, differently from the previous two, adds an attribute to your &lt;code&gt;body&lt;/code&gt; allowing you to write CSS that will be enabled only if the user is using the keyboard to navigate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Consider this third solution as a last resort. Some browser/screen reader combinations fire mouse events, which could cause outlines to disappear while using this method.&lt;/p&gt;
&lt;p&gt;In conclusion, using &lt;code&gt;outline: none&lt;/code&gt; without proper fallbacks makes your site significantly less accessible to any keyboard only user, not only those with reduced vision. Make sure to always give your interactive elements a visible indication of focus.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use &lt;code&gt;role=&#39;application&#39;&lt;/code&gt;</title>
		<link href="https://a11yproject.com/posts/how-to-use-application-role/"/>
		<updated>2013-02-09T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-to-use-application-role/</id>
		<content type="html">&lt;p&gt;&lt;strong&gt;Never&lt;/strong&gt; use &lt;code&gt;role=&amp;quot;application&amp;quot;&lt;/code&gt; on a widely containing element such as &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; if your page consists mostly of traditional widgets or page elements such as links that the user does not have to interact with in focus mode.&lt;/p&gt;
&lt;p&gt;Using &lt;code&gt;role=&amp;quot;application&amp;quot;&lt;/code&gt; unnecessarily can cause huge headaches for any assistive technology user trying to use your site/application. Only put it on the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element if your page consists solely of a widget or set of widgets that all need the focus mode&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://a11yproject.com/posts/how-to-use-application-role/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; to be turned on.&lt;/p&gt;
&lt;h2 id=&quot;do&quot; tabindex=&quot;-1&quot;&gt;Do&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Use sparingly.&lt;/li&gt;
&lt;li&gt;If your page has no resemblance to a classic document in roughly over 90% of its content.&lt;/li&gt;
&lt;li&gt;Use clear labels within your application.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;don&#39;t&quot; tabindex=&quot;-1&quot;&gt;Don&#39;t&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;If a set of controls or user interface only contains these widgets that are all part of standard HTML&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://a11yproject.com/posts/how-to-use-application-role/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;If your widget is dynamic such as a tree view, slider or table.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Unless you take a great deal of care in ensuring that you’ve recreated a lot of native–ish custom navigation, it’s almost always better to let the browser/assistive technology handle things. We only recommend using &lt;code&gt;role=&#39;application&#39;&lt;/code&gt; on a per–widget basis, and even then: very, very carefully.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot; /&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Allows the user to interact with forms and ARIA–enabled HTML elements. &lt;a href=&quot;https://a11yproject.com/posts/how-to-use-application-role/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Standard HTML refers to: text, password, search, tel and other newer input type derivates, &lt;code&gt;textarea&lt;/code&gt;, &lt;code&gt;checkbox&lt;/code&gt;, &lt;code&gt;button&lt;/code&gt;, radio button (usually inside a &lt;code&gt;fieldset&lt;/code&gt;/&lt;code&gt;legend&lt;/code&gt; element wrapper), &lt;code&gt;select&lt;/code&gt; &amp;amp; &lt;code&gt;option&lt;/code&gt;(s), links, paragraphs, headings, and other things that are classic/native to documents on the web. &lt;a href=&quot;https://a11yproject.com/posts/how-to-use-application-role/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
	</entry>
	
	<entry>
		<title>Hide content</title>
		<link href="https://a11yproject.com/posts/how-to-hide-content/"/>
		<updated>2013-02-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-to-hide-content/</id>
		<content type="html">&lt;p&gt;Developers commonly use &lt;code&gt;display: none&lt;/code&gt; to hide content on the page. Unfortunately, this common action can be problematic for people who use screen readers, especially if the hidden content was &lt;em&gt;meant&lt;/em&gt; to be for them to discover...&lt;/p&gt;
&lt;p&gt;There are real world situations where visually hiding content may be appropriate, while the content should remain available to assistive technologies, such as screen readers. For instance, hiding a search field&#39;s &lt;code&gt;label&lt;/code&gt; as a common magnifying glass icon is used in its stead.&lt;/p&gt;
&lt;p&gt;The &amp;quot;clip pattern&amp;quot; accomplishes this task for you; hide the content visually, yet provide the content to screen readers. Unlike CSS positioning and negative text-indent techniques, the &amp;quot;clip pattern&amp;quot; also works with RTL (Right-to-Left) languages for localization. See the article &lt;em&gt;&lt;a href=&quot;https://snook.ca/archives/html_and_css/hiding-content-for-accessibility&quot;&gt;Hiding Content for Accessibility&lt;/a&gt;&lt;/em&gt; for more information on this visually-hidden pattern. Also read &lt;a href=&quot;https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe&quot;&gt;Beware smushed off-screen accessible text&lt;/a&gt; for information on the &lt;em&gt;added line&lt;/em&gt; in the code snippet.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.visually-hidden&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;clip&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;rect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0 0 0 0&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;clip-path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;inset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;50%&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hidden&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;white-space&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; nowrap&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the &lt;code&gt;.visually-hidden&lt;/code&gt; class is applied to natively focusable elements (such as &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;button&lt;/code&gt;, &lt;code&gt;input&lt;/code&gt;, etc) they &lt;strong&gt;must&lt;/strong&gt; become visible when they receive keyboard focus. Otherwise, a sighted keyboard user would have to try and figure out where their visible focus indicator had gone to.&lt;/p&gt;
&lt;p&gt;With modern browsers and IE9 and up, the visually hidden selector can be written like so:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.visually-hidden:not(:focus):not(:active)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;/* ... */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will ensure that if an interactive element receives focus, the styles of the .&lt;code&gt;visually-hidden&lt;/code&gt; class will be undone and the focusable content will be exposed.&lt;/p&gt;
&lt;p&gt;Many popular CSS frameworks provide a &lt;code&gt;.visually-hidden&lt;/code&gt; or &lt;code&gt;.sr-only&lt;/code&gt; class, where &lt;code&gt;sr&lt;/code&gt; stands for &amp;quot;screen readers&amp;quot;.&lt;/p&gt;
&lt;h2 id=&quot;alternatives-to-display%3A-none&quot; tabindex=&quot;-1&quot;&gt;Alternatives to &lt;code&gt;display: none&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;aria-hidden=&amp;quot;true&amp;quot;&lt;/code&gt; attribute produces the opposite effect of the &lt;code&gt;.visually-hidden&lt;/code&gt; class. It hides content from assistive technology, but not visually. This can be helpful in cases where there are visual cues that screen readers do not need to announce, such as decorative icons that accompany text labels.&lt;/p&gt;
&lt;p&gt;There may be instances where content hidden by &lt;code&gt;aria-hidden&lt;/code&gt; may also need to be visually hidden as well. Rather than toggling another class on the element, the &lt;code&gt;aria-hidden&lt;/code&gt; attribute could be used as the selecor:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.my-component[aria-hidden=&quot;true&quot;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Another way to hide content both visually and from assistive technology is the &lt;a href=&quot;https://html.spec.whatwg.org/multipage/interaction.html#the-hidden-attribute&quot;&gt;HTML5 &lt;code&gt;hidden&lt;/code&gt; attribute&lt;/a&gt;. To support older browsers like IE9, and to increase the specificity of the &lt;code&gt;hidden&lt;/code&gt; attribute, you can add the following snippet to your CSS:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;[hidden]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none &lt;span class=&quot;token important&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>People who use screen readers don&#39;t use JavaScript</title>
		<link href="https://a11yproject.com/posts/people-who-use-screen-readers-dont-use-javascript/"/>
		<updated>2013-04-21T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/people-who-use-screen-readers-dont-use-javascript/</id>
		<content type="html">&lt;p&gt;A common misconception among web developers is that screen readers only read the non-JavaScript page. Due to this misconception, we sometimes assume it&#39;s unnecessary to make JavaScript apps and other functionality accessible. &lt;strong&gt;This is categorically false.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;According to a January 2014 survey conducted by WebAIM, &lt;a href=&quot;https://webaim.org/projects/screenreadersurvey5/#javascript&quot;&gt;97.6% of screen reader users have JavaScript enabled&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://chart.apis.google.com/chart?chxt=x%2Cy&amp;amp;chtt=Respondents%20with%20JavaScript%20Enabled&amp;amp;cht=p3&amp;amp;chl=Yes%7CNo&amp;amp;chs=500x200&amp;amp;chd=t:97.6%2C2.4&amp;amp;chco=AD3130&quot; alt=&quot;JavaScript enabled: 97.6% vs. JavaScript disabled: 2.4%&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Be sure to make efforts to ensure that all functionality (apps, custom UI controls, forms, etc) within your site is accessible with  JavaScript enabled as well as provide accessible fallbacks for the 2% of users (globally) with JavaScript disabled. A good starting point might be to use native anchor links and form inputs instead of custom scripted form elements.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use &lt;code&gt;title&lt;/code&gt; attributes</title>
		<link href="https://a11yproject.com/posts/title-attributes/"/>
		<updated>2013-04-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/title-attributes/</id>
		<content type="html">&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Don&#39;t use them, except in special circumstances.&lt;/p&gt;
&lt;p&gt;HTML &lt;code&gt;title&lt;/code&gt; attributes are often perceived as an accessibility (and SEO) bonus, but the opposite is true. For screen reader users the content included inside of the &lt;code&gt;title&lt;/code&gt; attribute is typically unnecessary, redundant, and possibly not even used. Conversely, content being put in the &lt;code&gt;title&lt;/code&gt; attribute is being hidden from the (probable) majority of your users. If information is being hidden from the majority of your users, then it&#39;s likely not necessary.&lt;/p&gt;
&lt;p&gt;There are a few times when using a &lt;code&gt;title&lt;/code&gt; attribute is appropriate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For &lt;code&gt;&amp;lt;frame&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; elements&lt;/li&gt;
&lt;li&gt;For providing a label when a text label would be redundant&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you must use &lt;code&gt;title&lt;/code&gt; on images, keep it the same as the &lt;code&gt;alt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Based on the intended behavior for Text Alternative Computation the precedence for calculating a text alternative should be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aria-labelledby&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aria-label&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;title&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In cases where two or more of the above are used, whatever is highest in that list becomes what gets used. Consider the following example:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/path/to/image.png&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;some stuff that could be useful&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this case, the &lt;code&gt;alt&lt;/code&gt; actually becomes the alternative, because it is higher in precedence. So even though the &lt;code&gt;title&lt;/code&gt; has useful content, it doesn&#39;t get used because the &lt;code&gt;alt&lt;/code&gt; is there. For a universally reliable text alternative for images, the &lt;code&gt;alt&lt;/code&gt; attribute should be the the preferred method. In cases where a &lt;code&gt;title&lt;/code&gt; attribute is provided, it should have the same value as the &lt;code&gt;alt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The long story short? Serve all users equal content.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>A primer to vestibular disorders</title>
		<link href="https://a11yproject.com/posts/understanding-vestibular-disorders/"/>
		<updated>2013-05-05T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/understanding-vestibular-disorders/</id>
		<content type="html">&lt;p&gt;Your Vestibular system is the sensory mechanism in the inner ear that detects movement of the head and helps to control balance.&lt;/p&gt;
&lt;p&gt;Imagine a world where your internal gyroscope is not working properly. Very similar to being intoxicated, things seem to move of their own accord, your feet never quite seem to be stable underneath you, and your senses are moving faster or slower than the rest of your body.&lt;/p&gt;
&lt;p&gt;Your personal steady-cam is broken. Whatever you look at tends to move regardless of if you are moving. Let&#39;s take that feeling and check out that great new website with animations and parallax scrolling. Does your stomach want to jump out of your throat? Well for many people it does.&lt;/p&gt;
&lt;h2 id=&quot;what-is-it%3F&quot; tabindex=&quot;-1&quot;&gt;What is it?&lt;/h2&gt;
&lt;p&gt;People with vestibular disorders have a problem with their inner ear. It affects their balance as well as their visual perception of their world around them.&lt;/p&gt;
&lt;p&gt;Sometimes the sensation lasts only a short while, but others can experience it for years. Walking can become a challenge and they may experience a constant risk of falling. Concentration can be diminished, leaving a person unfocused and consequently unproductive. It is often viewed as a &amp;quot;hidden&amp;quot; disability because it has no outward showing symptoms.&lt;/p&gt;
&lt;h2 id=&quot;who-is-at-risk%3F&quot; tabindex=&quot;-1&quot;&gt;Who is at risk?&lt;/h2&gt;
&lt;p&gt;The cause may be from illness, injury, or a genetic condition, but anyone can suffer from a vestibular disorder. According to &lt;a href=&quot;https://vestibular.org/understanding-vestibular-disorder&quot;&gt;vestibular.org&lt;/a&gt;, a resource for people with vestibular disorders, as many as 35% of adults aged 40 years or older in the United States have experienced some form of vestibular dysfunction.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-consider%3F&quot; tabindex=&quot;-1&quot;&gt;What should you consider?&lt;/h2&gt;
&lt;p&gt;Don&#39;t make animations, sliders, videos, or rapid movement start automatically. Give an indicator of what movement will happen on the site when someone takes action. Allow the option to turn off any animation and movement at any point in the process.&lt;/p&gt;
&lt;p&gt;Also, with the CSS &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion&quot;&gt;&lt;code&gt;prefers-reduced-motion&lt;/code&gt;&lt;/a&gt; media query you can write conditional CSS animations and transitions based on the user&#39;s preference exposed from the browser settings. For example, you can disable all animations and transitions for users who explicitly prefers reduced motion:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;animation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; slidein 3s&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@keyframes&lt;/span&gt; slidein&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 100%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;transition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; transform 1s&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;button:focus,&lt;br /&gt;button:hover&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;transform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;rotate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;360deg&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;prefers-reduced-motion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; reduce&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;*,&lt;br /&gt;  ::before,&lt;br /&gt;  ::after&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;animation-duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.001s &lt;span class=&quot;token important&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;animation-iteration-count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1 &lt;span class=&quot;token important&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;transition-duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.001s &lt;span class=&quot;token important&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that rather than setting &lt;code&gt;animation: none&lt;/code&gt; and &lt;code&gt;transition: none&lt;/code&gt;, we instead set the &lt;code&gt;animation-duration&lt;/code&gt; and &lt;code&gt;transition-duration&lt;/code&gt; properties to a short enough duration that the motion itself is no longer noticable. This is to prevent issues in any case there is a dependency on the animation to run (such as when listening to the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/animationend_event&quot;&gt;&lt;code&gt;animationend&lt;/code&gt; event&lt;/a&gt;).&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use skip navigation links</title>
		<link href="https://a11yproject.com/posts/skip-nav-links/"/>
		<updated>2013-05-11T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/skip-nav-links/</id>
		<content type="html">&lt;p&gt;Use skip nav links in conjunction with a coherent heading outline and &lt;a href=&quot;https://a11yproject.com/posts/aria-landmark-roles/&quot;&gt;ARIA landmarks&lt;/a&gt;. You may need to also implement a JavaScript polyfill for Webkit-based browsers.&lt;/p&gt;
&lt;p&gt;It can be frustrating and fatiguing for folks with limited mobility to have to have to repeatedly tab through navigation links to get to the main content of a page. People who use screen readers face similar frustration when the page outline is not well defined. In order to address this issue, WCAG 2.0 has specified a &lt;a href=&quot;https://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-skip.html&quot;&gt;guideline for bypassing repetitive blocks of content&lt;/a&gt;. One technique &lt;a href=&quot;https://www.w3.org/TR/2012/NOTE-WCAG20-TECHS-20120103/G1&quot;&gt;recommended by the W3C&lt;/a&gt; is to include a skip navigation link at the beginning of the page, that changes focus to the first element after the repeated content.&lt;/p&gt;
&lt;p&gt;Skip nav links are useful for users who use keyboard navigation only, but screen readers now support more sophisticated ways of navigating regions. Specifically, they support &lt;a href=&quot;https://www.w3.org/TR/2012/NOTE-WCAG20-TECHS-20120103/H69&quot;&gt;heading navigation&lt;/a&gt; and &lt;a href=&quot;https://www.w3.org/WAI/intro/aria&quot;&gt;ARIA landmarks&lt;/a&gt;. You should take advantage of these features by using a clear heading outline and defining page regions, as illustrated in &lt;a href=&quot;https://a11yproject.com/posts/aria-landmark-roles/&quot;&gt;Quick Tip: ARIA Landmark Roles&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;example&quot; tabindex=&quot;-1&quot;&gt;Example&lt;/h2&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#main&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Skip to main content&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;nav&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;navigation&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Home&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/about&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;About&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/blog&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Blog&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;main&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;main&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- page specific content --&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: The mechanism by which skip navigation links work had for some time been broken in Webkit-based browsers and has only &lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=37721&quot;&gt;recently been fixed&lt;/a&gt;. Until these browsers release the fixes, you may need to use a JavaScript polyfill to make skip nav links work.&lt;/p&gt;
&lt;h2 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Jim Thatcher pioneered skip navigation links &lt;a href=&quot;https://www.jimthatcher.com/skipnavold.htm&quot;&gt;as early as 1998&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;An example of a &lt;a href=&quot;https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/&quot;&gt;JavaScript polyfill by Nicholas C. Zakas&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;An alternative non-Javascript method would be to add &lt;code&gt;tabindex=&amp;quot;-1&amp;quot;&lt;/code&gt; or &lt;code&gt;0&lt;/code&gt; to elements that don&#39;t normally receive focus. This adds them to the tab order. &lt;a href=&quot;https://code.google.com/p/chromium/issues/detail?id=37721&quot;&gt;The bug in Chrome&lt;/a&gt; looks to apply to anchors as well. However, the tabindex bypasses the issue.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Using captions with HTML&#39;s video element</title>
		<link href="https://a11yproject.com/posts/using-caption-services-with-html5-video/"/>
		<updated>2013-07-17T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/using-caption-services-with-html5-video/</id>
		<content type="html">&lt;p&gt;One of the great things about the internet is the ability to share video.&lt;/p&gt;
&lt;p&gt;With HTML we can now use video without the use of Flash. This makes video more accessible as the controls are located in the DOM. However, to do accessible video right, you need to include captions and transcripts.&lt;/p&gt;
&lt;p&gt;In addition to making video accessible to those with hearing issues, having a transcript on the page can provide you localization of a video not always available in the local language. Transcripts also give all users an alternate way to access the information presented in a video. Additionally, with a transcript on your page, you may increase your search engine rankings by making your content easily indexed by search engine crawl spiders.&lt;/p&gt;
&lt;p&gt;So how do we pull off putting captions into a video after the video has been produced? Fortunately, the video element has a solution for us. We have to provide a transcript file as a track element after the video source files.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;video&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;span12 readable&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;poster&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-video-poster.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;controls&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;My Movie&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;source&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-video.m4v&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;video/mp4; codecs=&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;avc1.42E01E, mp4a.40.2&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;source&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-video.ogg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;application/ogg&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;source&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-video.webm&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;video/webm&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;track&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-video-transcript.vtt&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;English Captions&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;subtitles&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;srclang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;en-us&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;video&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Many frameworks built on top of the video element make it even simpler to add in captions, like &lt;a href=&quot;https://videojs.com/&quot;&gt;Video.js&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But what do these track files look like?&lt;/p&gt;
&lt;h2 id=&quot;webvtt&quot; tabindex=&quot;-1&quot;&gt;WebVTT&lt;/h2&gt;
&lt;p&gt;One of the most commonly-used caption formats is Web Video Text Tracks (WebVTT), which is saved as a file with the extension &lt;code&gt;.vtt&lt;/code&gt;. This is a specially formatted text document. It contains each of the cues numbered, followed by the start time &amp;amp; end time and finally the text. It is recommended to include in the text the name of the person talking. Some styling can be included in the text via basic HTML elements like &lt;code&gt;i&lt;/code&gt; or &lt;code&gt;b&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We start it by declaring it a WEBVTT file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;WEBVTT

1
00:00:09.000 --&amp;gt; 00:00:11.000
&amp;lt;b&amp;gt;Alice:&amp;lt;/b&amp;gt; Curiouser and curiouser.

2
00:00:17.000 --&amp;gt; 00:00:18.000
&amp;lt;b&amp;gt;Rabbit:&amp;lt;/b&amp;gt; I told you she was the right Alice!

3
00:00:19.000 --&amp;gt; 00:00:20.000
&amp;lt;b&amp;gt;Mouse:&amp;lt;/b&amp;gt; I am not convinced.
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;other-formats&quot; tabindex=&quot;-1&quot;&gt;Other formats&lt;/h2&gt;
&lt;p&gt;In addition to the VTT file format, you can also use TTML (Time Text Markup Language) which is a specific XML format that is currently supported in Flash and used by some major properties on the Internet. If you are migrating from Flash, this may be the best choice as you may have the files already.&lt;/p&gt;
&lt;p&gt;TTML files look a bit more complex:&lt;/p&gt;
&lt;pre class=&quot;language-xml&quot;&gt;&lt;code class=&quot;language-xml&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;tt&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;http://www.w3.org/ns/ttml&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;&lt;span class=&quot;token namespace&quot;&gt;xml:&lt;/span&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;en&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;00:00:9.00&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;00:00:11.00&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        Alice: Curiouser and curiouser.&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;00:00:17:00&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;00:00:18:00&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        Rabbit: I told you she was the right Alice!&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;tt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You may also see captions in formats like &lt;code&gt;.srt&lt;/code&gt; or others that may work best for your needs.&lt;/p&gt;
&lt;h2 id=&quot;transcribing&quot; tabindex=&quot;-1&quot;&gt;Transcribing&lt;/h2&gt;
&lt;p&gt;Now that you know how to implement it, you need to transcribe all of your videos. You can watch, and rewatch, and rewatch them to capture all of the talking perfectly timed (I watched that Alice in Wonderland trailer 30 or 40 times and it is only a minute long).&lt;/p&gt;
&lt;p&gt;One way to simplify this process is to use YouTube&#39;s auto-generated captions. Simply upload your video to YouTube (you can set it to private) and choose the auto-caption feature. Once these have been created, it should only take one or two reviews of the video to make sure the captions match and correct things like spelling and proper nouns. YouTube then lets you download the caption file in many different formats, including WebVTT and SRT.&lt;/p&gt;
&lt;p&gt;There are also services that can completely handle the transcription for you. These will typically start at $1 per minute for transcription with a fee of $0.25 per minute for the needed timestamping. Some also have subscription services.&lt;/p&gt;
&lt;p&gt;A few well-reviewed services include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.verbalink.io/&quot;&gt;Verbalink&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.speechpad.com/&quot;&gt;Speechpad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rev.com/transcription&quot;&gt;Rev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.3playmedia.com/&quot;&gt;3PlayMedia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with ARIA</title>
		<link href="https://a11yproject.com/posts/getting-started-aria/"/>
		<updated>2014-05-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-aria/</id>
		<content type="html">&lt;p&gt;ARIA (Accessible Rich Internet Applications), is a specification from the W3C and created to improve accessibility of applications by providing extra information to assistive technologies, such as screen readers, via attributes which could be added to HTML.&lt;/p&gt;
&lt;p&gt;Out of the box, screen readers will interpret HTML that conveys accessibility mapping information (e.g. a &lt;code&gt;button&lt;/code&gt; but not a &lt;code&gt;div&lt;/code&gt;). However, ARIA attributes can provide screen reader users with additional context and greater interactivity with content to correct misused HTML, or to convey information not available in HTML alone.&lt;/p&gt;
&lt;p&gt;ARIA, by design, has no effect on how elements are displayed or behave in browsers. It does not add new functionality and is meant to act only as an extra descriptive layer for screen readers. ARIA is also beholden to its host language and must adhere to the rules of what elements it can, and cannot, be used on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/html-aria/&quot;&gt;ARIA in HTML specification&lt;/a&gt;: Defines how ARIA may be used within HTML.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria/&quot;&gt;ARIA specification&lt;/a&gt;: Defines ARIA.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;aria-attributes&quot; tabindex=&quot;-1&quot;&gt;ARIA attributes&lt;/h2&gt;
&lt;p&gt;ARIA attributes are predefined in the spec and are divided into two categories, roles and states &amp;amp; properties. Both can be added directly in the markup or via JavaScript to progressively enhance markup as necessary. The properties and states should be updated as needed based on user interactions. There are rules behind which elements may receive types of ARIA attributes, as well as design guidelines for how and when these should be updated in common interactive widgets.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria/#roles_categorization&quot;&gt;ARIA Roles&lt;/a&gt;: Section of the specification about roles.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria/#states_and_properties&quot;&gt;ARIA States and Properties&lt;/a&gt;: Section of the specification about states and properties.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices/&quot;&gt;ARIA Authoring Practices note&lt;/a&gt;: Provides guidance on how to use ARIA.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;aria-roles&quot; tabindex=&quot;-1&quot;&gt;ARIA roles&lt;/h2&gt;
&lt;p&gt;An ARIA role is added via a &lt;code&gt;role=&amp;quot;&amp;lt;ROLE TYPE&amp;gt;&amp;quot;&lt;/code&gt; attribute and does not change for an element once set. There are six categories of ARIA roles.&lt;/p&gt;
&lt;h3 id=&quot;landmark&quot; tabindex=&quot;-1&quot;&gt;Landmark&lt;/h3&gt;
&lt;p&gt;Landmark roles identify large content areas and are used by screen readers for navigation. Ideally all content of a document would be placed within a landmark role. Doing so would ensure that all content could be navigated to by use of landmarks. E.g. &lt;code&gt;&amp;lt;footer role=&amp;quot;contentinfo&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;document-structure&quot; tabindex=&quot;-1&quot;&gt;Document Structure&lt;/h3&gt;
&lt;p&gt;Document Structure roles provide a structural description for a section and are typically non-interactive. Some document roles map onto existing HTML tags (E.g. &lt;code&gt;role=&amp;quot;form&amp;quot;&lt;/code&gt;) and are only meant for cases when using the native tag is not possible, or to bridge gaps in support.&lt;/p&gt;
&lt;h3 id=&quot;widget&quot; tabindex=&quot;-1&quot;&gt;Widget&lt;/h3&gt;
&lt;p&gt;Widget roles describe common interactive patterns that currently lack semantic equivalents in HTML, and can be used on their own, or as part of larger, composite widgets. E.g. &lt;code&gt;&amp;lt;div role=&amp;quot;tabpanel&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;window&quot; tabindex=&quot;-1&quot;&gt;Window&lt;/h3&gt;
&lt;p&gt;Window roles, consist of &lt;code&gt;alertdialog&lt;/code&gt; and &lt;code&gt;dialog&lt;/code&gt;.  These roles are meant to be used when creating a sub-window to the primary document.  E.g. a modal dialog.&lt;/p&gt;
&lt;h3 id=&quot;live-regions&quot; tabindex=&quot;-1&quot;&gt;Live Regions&lt;/h3&gt;
&lt;p&gt;Live Region roles inherit the behavior of &lt;code&gt;aria-live&lt;/code&gt; set to either the &lt;code&gt;assertive&lt;/code&gt;, &lt;code&gt;polite&lt;/code&gt; or &lt;code&gt;off&lt;/code&gt; states.  These roles should be used if a live region should promote other important role information, or be given an accessible name, beyond just producing a live announcement.  E.g. &lt;code&gt;&amp;lt;div role=&amp;quot;alert&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;abstract&quot; tabindex=&quot;-1&quot;&gt;Abstract&lt;/h3&gt;
&lt;p&gt;Abstract roles are only used by browsers to help organize and streamline a document, and &lt;strong&gt;never&lt;/strong&gt; by developers to mark up HTML. Using an Abstract role in your markup would likley not produce any meaningful information.&lt;/p&gt;
&lt;h2 id=&quot;states-and-properties&quot; tabindex=&quot;-1&quot;&gt;States and properties&lt;/h2&gt;
&lt;p&gt;ARIA states and properties are often used to support ARIA roles that exist on a page. Properties often describe relationships with other elements and for the most part, do not change once they&#39;re set. States are more dynamic and are typically updated with JavaScript as a user interacts with a page. It&#39;s common to refer to states and properties collectively as just ARIA attributes. Screen readers are notified when attributes change and can announce these changes to users after an interaction takes place.&lt;/p&gt;
&lt;h2 id=&quot;when-to-use-aria&quot; tabindex=&quot;-1&quot;&gt;When to use ARIA&lt;/h2&gt;
&lt;p&gt;Native HTML semantics should still be used whenever possible, but ARIA is useful when certain design patterns or interactions make it impossible to do so. For example, a complex tabbed-interface has no semantic equivalent with HTML, but a &lt;code&gt;role=&amp;quot;tablist&amp;quot;&lt;/code&gt; and its related attributes can be added to provide this detail to screen readers.&lt;/p&gt;
&lt;p&gt;ARIA is also useful to describe newer HTML elements that may not yet have full cross-browser support or be understood by screen readers.&lt;/p&gt;
&lt;p&gt;To create accessible applications, basic principles of semantic HTML, keyboard support, and color contrast should still be the primary focus of developers. ARIA may be used to &amp;quot;fill in the blanks&amp;quot; where web page information isn&#39;t understood or available to a screen reader via HTML alone.&lt;/p&gt;
&lt;h2 id=&quot;aria-examples&quot; tabindex=&quot;-1&quot;&gt;ARIA examples&lt;/h2&gt;
&lt;h3 id=&quot;landmark-role&quot; tabindex=&quot;-1&quot;&gt;Landmark role&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element implicitly has a landmark role of &lt;code&gt;navigation&lt;/code&gt; allowing screen reader users to navigate directly to this element. Review the article &lt;a href=&quot;https://a11yproject.com/posts/aria-landmark-roles/&quot;&gt;Quick Tip: Aria Landmark Roles and HTML5 Implicit Mapping&lt;/a&gt; for more information.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Home&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/contact&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Contact Page&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;aria-labelledby&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;aria-labelledby&lt;/code&gt;&lt;/h2&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;section&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;KittensHeader&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;KittensHeader&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    All Abbout Kittens&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;section&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element includes the ARIA property &lt;code&gt;aria-labelledby&lt;/code&gt; which points to the &lt;code&gt;id&lt;/code&gt; of the heading within the section. Screen readers will announce the heading&#39;s content when they reach the &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element, giving users a sense of the content contained in this portion of the document. Note: adding an accessible name to a &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element promotes it to a &lt;code&gt;role=&amp;quot;region&amp;quot;&lt;/code&gt; landmark.  If this is not desired, then &lt;strong&gt;do not&lt;/strong&gt; provide a &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; with an accessible name.&lt;/p&gt;
&lt;h2 id=&quot;role%2C-state%2C-and-property-together-in-a-tab-control&quot; tabindex=&quot;-1&quot;&gt;Role, state, and property together in a Tab control&lt;/h2&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tablist&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-selected&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-controls&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;panel_1&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Apples&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-selected&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;false&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-controls&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;panel_2&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;tabindex&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;-1&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Oranges&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;panel_1&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-label&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Apples&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tabpanel&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;tabindex&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  ...&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;panel_2&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-label&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Oranges&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tabpanel&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  ...&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each element has an ARIA role and attributes to create a complete Tab Widget.  Note: as of June 2019 no screen readers support &lt;code&gt;aria-controls&lt;/code&gt; by default.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>What is color contrast?</title>
		<link href="https://a11yproject.com/posts/what-is-color-contrast/"/>
		<updated>2015-01-05T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/what-is-color-contrast/</id>
		<content type="html">&lt;p&gt;In color theory, contrasting colors, also known as &lt;a href=&quot;https://en.wikipedia.org/wiki/Complementary_colors&quot;&gt;complementary colors&lt;/a&gt;, are colors from opposing segments of the color wheel. Colors that are directly across from one another on a basic color wheel provide maximum contrast.&lt;/p&gt;
&lt;p&gt;Oftentimes companies implement complementary colors to provide the most contrast in their brand. The IKEA logo uses blue and gold, which are direct opposites on the color wheel, as does the FedEx logo. These allow for maximum recognizability and readability, the latter of which is especially important for web accessibility.&lt;/p&gt;
&lt;h2 id=&quot;what-does-this-mean-for-web-accessibility%3F&quot; tabindex=&quot;-1&quot;&gt;What does this mean for web accessibility?&lt;/h2&gt;
&lt;p&gt;On the web, the use of complementary colors is about finding shades that provide enough contrast between content and the background for anyone with &lt;a href=&quot;https://a11yproject.com/posts/understanding-visual-impairment/&quot;&gt;low vision impairments and color deficiencies&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This doesn&#39;t mean colors should only be limited to contrasting colors, but instead that care should be taken to ensure a level of contrast in body text, logos, and essential diagrams or other pieces of content. There are a number of tools to help designers and developers check color contrast, including these listed below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://contrast-finder.tanaguru.com/&quot;&gt;Tanaguru Contrast Finder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://leaverou.github.io/contrast-ratio/&quot;&gt;Contrast Ratio by Lea Verou&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.paciellogroup.com/resources/contrastanalyser/&quot;&gt;Colour Contrast Analyzer by TPGi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webaim.org/resources/contrastchecker/&quot;&gt;Color Contrast Checker by WebAIM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These tools test your colors against a contrast ratio.&lt;/p&gt;
&lt;p&gt;A contrast ratio of 4.5:1 is the minimum Web Content Accessibility Guideline (WCAG) 2 standard for regular sized text. For more information on how these ratios are calculated, there is a link to an article by W3C called &amp;quot;The Contrast Minimum&amp;quot; included in the Further Reading section following the article.&lt;/p&gt;
&lt;p&gt;The level to which a pair of colors are contrasted is measured with a grade system, known as &amp;quot;levels of conformance&amp;quot;. The highest attainable grade is AAA, which requires a 7:1 contrast ratio. W3C states that because it is not always possible to reach the AAA level of conformance across entire sites, the goal is to get the highest level in crucial areas across a site, such as headlines and body text.&lt;/p&gt;
&lt;h2 id=&quot;what-else-can-we-do%3F&quot; tabindex=&quot;-1&quot;&gt;What else can we do?&lt;/h2&gt;
&lt;p&gt;Aside from using color contrast tools to determine your site&#39;s colors, there are some other ways you can keep your site&#39;s contrast in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The larger the font and wider the stroke, the more legible it will be with lower contrast. Therefore the contrast requirement for larger font is lower. W3C recommends starting at 18pt regular weight or 14pt bold text.&lt;/li&gt;
&lt;li&gt;Provide tools for users to adjust the foreground and background colors of your site on the front end. This is especially helpful for people that need to either switch to a low contrast or a high contrast mode. This gives them more control over the contrast ratio and covers everyone using your site regardless of what kind of vision loss or color deficiency they have.&lt;/li&gt;
&lt;li&gt;Steer clear of text-based images and use text wherever possible. If that&#39;s not possible, consider using a high resolution for text images. Speaking of text images, &lt;a href=&quot;https://a11yproject.com/posts/alt-text/&quot;&gt;don&#39;t forget to fill out the alt text&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Ensure that your placeholders in forms also have valid color contrast.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with NVDA</title>
		<link href="https://a11yproject.com/posts/getting-started-with-nvda/"/>
		<updated>2015-05-29T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-with-nvda/</id>
		<content type="html">&lt;p&gt;NVDA is a free and open source screen reader from &lt;a href=&quot;https://www.nvaccess.org/&quot;&gt;NVAccess&lt;/a&gt;. It is available for the Windows operating system and officially supports Internet Explorer, Firefox, and Chrome web browsers. There is also a ton of &lt;a href=&quot;https://www.nvaccess.org/files/nvda/documentation/userGuide.html?#SupportedBrailleDisplays&quot;&gt;braille display support&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;NVDA is available for download here: &lt;a href=&quot;https://www.nvaccess.org/download/&quot;&gt;nvaccess.org/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After everything is installed you can press &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;n&lt;/kbd&gt; to start NVDA. Quitting NVDA is done by pressing &lt;kbd&gt;NVDA&lt;/kbd&gt; + &lt;kbd&gt;q&lt;/kbd&gt;, then &lt;kbd&gt;Enter&lt;/kbd&gt; at the prompt.&lt;/p&gt;
&lt;h2 id=&quot;the-nvda-modifier-key&quot; tabindex=&quot;-1&quot;&gt;The NVDA modifier key&lt;/h2&gt;
&lt;p&gt;Each screen reader has a special key or key combination to perform tasks. NVDA’s default keyboard modifier key is the &lt;kbd&gt;Insert&lt;/kbd&gt; key. So, for example, to start reading a web page, you could press &lt;kbd&gt;Insert&lt;/kbd&gt; + &lt;kbd&gt;Down Arrow&lt;/kbd&gt;. As an option, if you are using a laptop you can also use the caps lock key as a modifier. This can be set in the &lt;code&gt;Preferences &amp;gt; Keyboard settings...&lt;/code&gt; menu.&lt;/p&gt;
&lt;h2 id=&quot;reading-text&quot; tabindex=&quot;-1&quot;&gt;Reading text&lt;/h2&gt;
&lt;p&gt;Here are some basic shortcuts to read text using NVDA.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Stop reading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;NVDA&lt;/kbd&gt; + &lt;kbd&gt;Down arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Start reading from current position&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;NVDA&lt;/kbd&gt; + &lt;kbd&gt;Up arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read current line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Left/right arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read previous/next word&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Up/down arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read previous/next paragraph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Up&lt;/kbd&gt; / &lt;kbd&gt;Down arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read previous/next line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Left&lt;/kbd&gt; / &lt;kbd&gt;Right arrow&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Read previous/next character&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;shortcut-keys&quot; tabindex=&quot;-1&quot;&gt;Shortcut keys&lt;/h2&gt;
&lt;p&gt;These shortcut keys can be used to quickly jump between specific elements on a page. Elements can be cycled through backwards by holding &lt;code&gt;shift&lt;/code&gt;, then press the shortcut key.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Tab&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Move to next focusable element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;d&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through landmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;k&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;h&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through headings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;1&lt;/kbd&gt; - &lt;kbd&gt;6&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through headings level 1 to 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;f&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through forms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;t&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;Up&lt;/kbd&gt; / &lt;kbd&gt;Down&lt;/kbd&gt; / &lt;kbd&gt;Left&lt;/kbd&gt; / &lt;kbd&gt;Right&lt;/kbd&gt; arrow&lt;/td&gt;
&lt;td&gt;Navigate table content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;b&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through buttons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;l&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through lists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through list items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;g&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate through graphics / images&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;advanced-navigation&quot; tabindex=&quot;-1&quot;&gt;Advanced navigation&lt;/h2&gt;
&lt;p&gt;By pressing &lt;kbd&gt;NVDA&lt;/kbd&gt; + &lt;kbd&gt;F7&lt;/kbd&gt;, NVDA displays a listing of all elements on the page. This is helpful to quickly skip to a specific area or element on the page. It also helps with testing by gaining an understanding of what each element might sound like to the end user. Do those “read more” links give enough context to be useful?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cloud.githubusercontent.com/assets/1392632/7968990/04d5fb78-0a02-11e5-9139-128f05ee9458.png&quot; alt=&quot;NVDA element list being used on a website&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;descriptive-output&quot; tabindex=&quot;-1&quot;&gt;Descriptive output&lt;/h2&gt;
&lt;p&gt;If you’re used to using VoiceOver and miss the on-screen text description output, NVDA also has this available as a feature. To enable descriptive text output, check the &lt;code&gt;Tools &amp;gt; Speech viewer&lt;/code&gt; checkbox. This will open a new, always-on-top, window with a continuous log of text that is being described by NVDA.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cloud.githubusercontent.com/assets/1392632/7968993/0fcd841a-0a02-11e5-9cc7-b316eb509707.png&quot; alt=&quot;NVDA speech viewer being used to help describe a website&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;a-note-on-styling&quot; tabindex=&quot;-1&quot;&gt;A note on styling&lt;/h2&gt;
&lt;p&gt;One feature that other screen readers have that NVDA doesn’t is custom focus styles. Others like Apple’s VoiceOver or Google’s Chromevox have a custom focus style for links or for input controls that aid in navigation. NVDA does not have a custom focus style so it is very important to style page elements with the &lt;code&gt;:focus&lt;/code&gt; pseudo-class. It’s good to make a habit of adding this whenever the &lt;code&gt;:hover&lt;/code&gt; pseudo-class is used. Also, avoid using &lt;code&gt;outline: none&lt;/code&gt; as this removes focus styles completely from view.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use &lt;code&gt;placeholder&lt;/code&gt; attributes</title>
		<link href="https://a11yproject.com/posts/placeholder-input-elements/"/>
		<updated>2016-01-07T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/placeholder-input-elements/</id>
		<content type="html">&lt;p&gt;Don&#39;t replace a &lt;code&gt;label&lt;/code&gt; with a &lt;code&gt;placeholder&lt;/code&gt; attribute. If labels are visually hidden, confirm that placeholders have sufficient contrast.&lt;/p&gt;
&lt;p&gt;Form input &lt;code&gt;placeholder&lt;/code&gt; attributes are helpful for providing hints to (sighted) users in forms. Often times, due to design decisions, a &lt;code&gt;placeholder&lt;/code&gt; is used to replace a more semantic &lt;code&gt;label&lt;/code&gt; element. Unfortunately, accessible &lt;code&gt;placeholder&lt;/code&gt; browser support isn&#39;t complete and placeholders often lack sufficient color contrast by default.&lt;/p&gt;
&lt;p&gt;Now, there&#39;s nothing wrong with using placeholders - they can still be used. However, they should be used in &lt;em&gt;addition&lt;/em&gt; to a label, not as a replacement. What happens when we don&#39;t use a label for an input element, is a screen reader will get to that field, but won&#39;t have any information for the user on what the input element is for. So the screen reader user doesn&#39;t know what information to fill out. Also, a placeholder disappears when the input element is in focus, and can be an issue for people with memory impairments.&lt;/p&gt;
&lt;p&gt;Make your forms accessible by using one of the following methods (in order of preference):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Redesign to include a proper visible &lt;code&gt;label&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt; to provide assistive text&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/how-to-hide-content/&quot;&gt;Visually hide&lt;/a&gt; &lt;code&gt;label&lt;/code&gt; elements (in an accessible manner)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While we&#39;re paying attention to our placeholder text, let&#39;s review how to add better contrast:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;::-webkit-input-placeholder&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #626262&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;::-moz-placeholder&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #626262&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:-moz-placeholder&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/* Older versions of Firefox */&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #626262&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:-ms-input-placeholder&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #626262&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above CSS assumes that the background for the form controls are &lt;code&gt;#fff&lt;/code&gt;. If we test &lt;code&gt;#fff&lt;/code&gt; and &lt;code&gt;#626262&lt;/code&gt; in a color contrast tool like &lt;a href=&quot;http://contrast-finder.tanaguru.com/result.html;jsessionid=57DFFB6E8E217E7C92C55B7CE2629CF6?foreground=%23626262&amp;amp;background=%23ffffff&amp;amp;isBackgroundTested=false&amp;amp;ratio=4.5&amp;amp;algo=HSV&quot;&gt;Tanaguru Contrast-Finder&lt;/a&gt;, the results will approve these colors for valid contrast. You can use your own color for this, but be sure to read about &lt;a href=&quot;https://www.w3.org/TR/UNDERSTANDING-WCAG20/conformance.html#uc-levels-head&quot;&gt;how conformance levels work&lt;/a&gt;, and use a color contrast tool to confirm.&lt;/p&gt;
&lt;p&gt;In the above CSS, each selector for placeholder text needs to be seperate in their own declaration blocks. The reason for this is due to the prefixes needed for placeholder styles to apply. The browser will read the first selector, and if it&#39;s not the prefix for that browser, instead of reading through the rest until one applies, it will ignore the rest. To ensure each browser can find it&#39;s own prefixed placeholder text styles, it&#39;s necessary to write them each separate as we did above.&lt;/p&gt;
&lt;p&gt;Once we have sufficient color contrast in our placeholders, placeholders can be used in addition to labels. Here are two examples of forms where placeholders are used with labels to maintain accessibility.&lt;/p&gt;
&lt;h2 id=&quot;labeling&quot; tabindex=&quot;-1&quot;&gt;Labeling&lt;/h2&gt;
&lt;h3 id=&quot;explicit-labeling&quot; tabindex=&quot;-1&quot;&gt;Explicit labeling&lt;/h3&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Your Name:&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;placeholder&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;What&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;s your name?&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;submit&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Submit Name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;implicit-%26-explicit-labeling-combined&quot; tabindex=&quot;-1&quot;&gt;Implicit &amp;amp; explicit labeling combined&lt;/h3&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Your Name:&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;your-name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;placeholder&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;What&lt;span class=&quot;token punctuation&quot;&gt;&#39;&lt;/span&gt;s your name?&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;submit&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Submit Name&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that in the second example above, omitting the &lt;code&gt;for&lt;/code&gt; attribute on the label is still valid, but still best practice to include. By keeping the &lt;code&gt;for&lt;/code&gt; attribute in place, we&#39;re combining both explicit and implicit techniques.&lt;/p&gt;
&lt;p&gt;For more about explicit and implicit labeling, check out &lt;a href=&quot;https://www.aaron-gustafson.com/notebook/labeled-with-love/&quot;&gt;&amp;quot;Labeled with Love&amp;quot;&lt;/a&gt;. By adding the &lt;code&gt;for&lt;/code&gt; attribute to a label with the same value as the ID for the input element it corresponds to, the label becomes &lt;em&gt;explicitly&lt;/em&gt; associated with that input element. Explicit labeling is great for screen reader users and when clicking/focusing that label, it will automatically focus the associated input element.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Create accessible data tables</title>
		<link href="https://a11yproject.com/posts/accessible-data-tables/"/>
		<updated>2016-03-05T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/accessible-data-tables/</id>
		<content type="html">&lt;p&gt;The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen reader goes through line by line. Proper markup must be added to help the screen reader make the correct associations that a sighted user would.&lt;/p&gt;
&lt;h2 id=&quot;example-of-an-accessible-data-table&quot; tabindex=&quot;-1&quot;&gt;Example of an accessible data table&lt;/h2&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;table&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;caption&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Monthly Budget&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;caption&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;thead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;col&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Month&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;col&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Amount Earned&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;col&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Amount Spent&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;col&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Amount Saved&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;thead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;tbody&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;row&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;January&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$2500&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$1500&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$500&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;row&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;February&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$2700&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$1500&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;$700&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;tr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;tbody&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;table&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Making an accessible table isn’t hard and can be broken down into two main things.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a table caption.&lt;/li&gt;
&lt;li&gt;Mark row and column headings using the &#39;scope&#39; attribute&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;table-captions&quot; tabindex=&quot;-1&quot;&gt;Table captions&lt;/h2&gt;
&lt;p&gt;Table captions are added right after the opening &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; tag with &lt;code&gt;&amp;lt;caption&amp;gt;Your caption goes here&amp;lt;/caption&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The screen reader will then say “Table with 3 rows and 4 columns, Monthly Budget” or something to that effect. Without this, the screen reader will just start reading off the values inside the table, which is going to be frustrating and not super useful. Imagine reading an entire table cell by cell and then piecing together what the table is trying to tell you.&lt;/p&gt;
&lt;p class=&quot;u-hide-visually&quot;&gt;
	&lt;a href=&quot;https://a11yproject.com/posts/accessible-data-tables/#row-and-column-headings&quot;&gt;Skip CodePen embed.&lt;/a&gt;
&lt;/p&gt;
&lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Accessible Data Tables - CodePen&quot; src=&quot;https://codepen.io/franklynroth/embed/zqOKvY?height=300&amp;theme-id=25574&amp;default-tab=html,result&amp;editable=true&quot; frameborder=&quot;no&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
  See the Pen &lt;a href=&quot;https://codepen.io/franklynroth/pen/zqOKvY&quot;&gt;Accessible Data Tables&lt;/a&gt; by Franklyn
  (&lt;a href=&quot;https://codepen.io/franklynroth&quot;&gt;@franklynroth&lt;/a&gt;) on &lt;a href=&quot;https://codepen.io/&quot;&gt;CodePen&lt;/a&gt;.
&lt;/iframe&gt;
&lt;h2 id=&quot;row-and-column-headings&quot; tabindex=&quot;-1&quot;&gt;Row and column headings&lt;/h2&gt;
&lt;p&gt;For sighted users, row and column headings of tables are often highlighted visually. The screen reader will need this information coded into the markup.&lt;/p&gt;
&lt;p&gt;Column headers should be marked using &lt;code&gt;scope=&amp;quot;col&amp;quot;&lt;/code&gt;. The &lt;code&gt;scope=&amp;quot;col&amp;quot;&lt;/code&gt; typically goes on the &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt; element. If the &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt; is a column like the &lt;strong&gt;&amp;quot;Amount Earned&amp;quot;, &amp;quot;Amount Spent&amp;quot; and &amp;quot;Amount Saved&amp;quot;&lt;/strong&gt; in my example, you would put them all as &lt;code&gt;scope=&amp;quot;col&amp;quot;&lt;/code&gt;. This lets the screen reader know that the &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt;’s are column headers for that entire column. Column headers should be unique.&lt;/p&gt;
&lt;p&gt;Row headers should be marked up using &lt;code&gt;scope=&amp;quot;row&amp;quot;&lt;/code&gt;. The &lt;code&gt;scope=&amp;quot;row&amp;quot;&lt;/code&gt; is typically put on the first &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt; in the row. In this case &lt;strong&gt;&amp;quot;January&amp;quot; and &amp;quot;February&amp;quot;&lt;/strong&gt; would get them. For optimal usability, the row header selected should be sufficiently unique and readable to identify the row.&lt;/p&gt;
&lt;p&gt;The screen reader will most likely be able to figure out what is a column header and row header, but assigning this makes it unambiguous to the screen reader on what is a row or column header and how to proceed.&lt;/p&gt;
&lt;p&gt;That’s pretty much it on how to make an accessible table. Use them for tabular data, assign a caption and use &lt;code&gt;scope=&amp;quot;col&amp;quot;&lt;/code&gt; or &lt;code&gt;scope=&amp;quot;row&amp;quot;&lt;/code&gt;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>a11y and a brief numeronyms primer</title>
		<link href="https://a11yproject.com/posts/a11y-and-other-numeronyms/"/>
		<updated>2017-08-26T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/a11y-and-other-numeronyms/</id>
		<content type="html">&lt;p&gt;If you&#39;re unfamiliar with the term &amp;quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/Numeronym&quot;&gt;numeronym&lt;/a&gt;&amp;quot;, you may not have realized that a11y isn&#39;t just a hash tag, nor is it a hip way to spell &lt;em&gt;ally&lt;/em&gt;. Rather a11y is a shorthand for &lt;em&gt;accessibility&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;You may have seen &amp;quot;a11y&amp;quot; used as a &lt;a href=&quot;https://twitter.com/search?q=%23a11y&quot;&gt;hash tag on Twitter&lt;/a&gt;, or used in a comment, article, used in a comment thread, or written in an article. Since you&#39;re reading this right now, you&#39;ve likely seen it in the name of a certain website about accessibility. Ahem...&lt;/p&gt;
&lt;h2 id=&quot;how-numeronyms-work&quot; tabindex=&quot;-1&quot;&gt;How numeronyms work&lt;/h2&gt;
&lt;p&gt;Unlike &lt;a href=&quot;https://en.wikipedia.org/wiki/Abbreviation&quot;&gt;abbreviations&lt;/a&gt; like FYI (&lt;i&gt;for your information&lt;/i&gt;), and PC (&lt;i&gt;personal computer&lt;/i&gt;), or &lt;a href=&quot;https://en.wikipedia.org/wiki/Acronym&quot;&gt;acronyms&lt;/a&gt; like HTML (&lt;i&gt;hypertext markup language&lt;/i&gt;), and JAWS (&lt;i&gt;Job Access With Speech&lt;/i&gt;), numeronyms are number-based words. And while you may not be familiar with the term &amp;quot;numeronym&amp;quot; itself, you&#39;ve likely used them throughout your life.&lt;/p&gt;
&lt;p&gt;For instance, &amp;quot;9-1-1&amp;quot; is synonymous with &amp;quot;help&amp;quot;, &amp;quot;24/7&amp;quot; means &amp;quot;24 hours a day, 7 days a week&amp;quot;, and Y2K is for &amp;quot;year 2000&amp;quot; or &amp;quot;the year 2000 problem.&amp;quot; These are all examples of numeronyms.&lt;/p&gt;
&lt;p&gt;As illustrated by the previous numeronyms, sometimes they&#39;re used to replace entire words with numbers, or they use a combination of letters and numbers to combine words. In the case of a11y, &lt;a href=&quot;https://twitter.com/aardrian&quot;&gt;Adrian Roselli&lt;/a&gt; explains:&lt;/p&gt;
&lt;p class=&quot;u-hide-visually&quot;&gt;
	&lt;a href=&quot;https://a11yproject.com/posts/a11y-and-other-numeronyms/#other-numeronyms&quot;&gt;Skip embedded Tweet.&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Tip: “a11y” is a numeronym for accessibility. Keep first &amp;amp; last letter, between them put the count of letters removed — in this case eleven.&lt;/p&gt;&amp;mdash; aardrian (@aardrian) &lt;a href=&quot;https://twitter.com/aardrian/status/801084161368920064?ref_src=twsrc%5Etfw&quot;&gt;November 22, 2016&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;h3 id=&quot;other-numeronyms&quot; tabindex=&quot;-1&quot;&gt;Other numeronyms&lt;/h3&gt;
&lt;p&gt;The following is a short list of numeronyms you may have seen, or even used, but didn&#39;t know what they were called.&lt;/p&gt;
&lt;dl&gt;
  &lt;dt&gt;i11l&lt;/dt&gt;
  &lt;dd&gt;international&lt;/dd&gt;
  &lt;dt&gt;i18n&lt;/dt&gt;
  &lt;dd&gt;internationalization&lt;/dd&gt;
  &lt;dt&gt;l10n&lt;/dt&gt;
  &lt;dd&gt;localization&lt;/dd&gt;
  &lt;dt&gt;n7m&lt;/dt&gt;
  &lt;dd&gt;Numeronym&lt;/dd&gt;
  &lt;dt&gt;v12n&lt;/dt&gt;
  &lt;dd&gt;Virtualization&lt;/dd&gt;
  &lt;dt&gt;W3&lt;/dt&gt;
  &lt;dd&gt;World Wide Web&lt;/dd&gt;
  &lt;dt&gt;W12t&lt;/dt&gt;
  &lt;dd&gt;Web Development&lt;/dd&gt;
  &lt;dt&gt;W3C&lt;/dt&gt;
  &lt;dd&gt;World Wide Web Consortium&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&quot;back-to-a11y&quot; tabindex=&quot;-1&quot;&gt;Back to a11y&lt;/h2&gt;
&lt;p&gt;While numeronyms have been around for quite some time, they&#39;re not always immediately understandable. As a defining trait of accessibility is about being inclusive, one should keep the following in mind when using a11y:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If you can say or write &amp;quot;accessibility&amp;quot;, do so! A11y (often pronounced &amp;quot;A-one-one-Y&amp;quot;, &amp;quot;A-eleven-Y&amp;quot;, and liberally as &amp;quot;ally&amp;quot;) is meant as shorthand for &amp;quot;accessibility&amp;quot;. So whenever possible, say &amp;quot;accessibility&amp;quot;, even if written as a11y. The best place to use the numeronym are platforms like Twitter where space is limited and every character counts.&lt;/li&gt;
&lt;li&gt;A numeronym will be easier to understand the more it is used in context with its true spelling. So if writing, or giving a presentation, be sure to make your audience aware a11y = accessibility as soon as it&#39;s introduced. Sure, people will likely be able to piece it together over time, but no reason not to make it immediately clear.&lt;/li&gt;
&lt;li&gt;Typefaces can exacerbate the a11y/ally confusion if &lt;em&gt;1&lt;/em&gt; looks like a lower-case &lt;em&gt;l&lt;/em&gt;. Much like &amp;quot;I11l&amp;quot; (a series of Ls?) and &amp;quot;I10n&amp;quot; (lion?). These are other numeronyms that may not be visually optimal with certain typefaces.&lt;/li&gt;
&lt;li&gt;Spell checkers and auto-correctors may not know what a11y is and may try to autocorrect it, while mobile keyboards will require switching between alpha and numeric keys to type it out. All minor obstacles, but things to keep in mind when typing it out. Don&#39;t want an accidental auto correct or incorrect key press to further muddy the waters.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With all that said, I wouldn&#39;t lose any sleep over mispronouncing a11y, or using it as a hash tag without prefacing it with &amp;quot;when I say a11y, I mean accessibility.&amp;quot; As mentioned, using &amp;quot;#a11y&amp;quot; to increase awareness on platforms like Twitter, is a good thing!&lt;/p&gt;
&lt;p&gt;There are a lot of projects and sites out that that use &amp;quot;a11y&amp;quot; in their name. Obviously there&#39;s The A11Y Project, but also &lt;a href=&quot;http://pa11y.org/&quot;&gt;Pa11y&lt;/a&gt;, &lt;a href=&quot;https://khan.github.io/tota11y/&quot;&gt;Tota11y&lt;/a&gt;, and &lt;a href=&quot;https://www.youtube.com/watch?v=HtTyRajRuyY&quot;&gt;A11ycasts&lt;/a&gt;, among many others. All of these different projects don&#39;t overtly say &amp;quot;accessibility&amp;quot; in their names, but they make it immediately clear that accessibility is their focus, thus indirectly connecting the numeronym to the concept.&lt;/p&gt;
&lt;p&gt;As long as we do our best to make people aware of what numeronyms stand for, and use them appropriately, then their usage and accepted understanding will only grow.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Understanding color blindness</title>
		<link href="https://a11yproject.com/posts/understanding-colourblindness/"/>
		<updated>2017-10-18T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/understanding-colourblindness/</id>
		<content type="html">&lt;p&gt;Color blindness is a common genetic condition in which some peoples&#39; eyes can&#39;t tell the difference between certain colors. That&#39;s not to say these people see the world in greyscale— just that many colors seem identical to one another. Total color blindness is very rare in humans.&lt;/p&gt;
&lt;p&gt;Color vision deficiencies (typically grouped together as &amp;quot;color blindness&amp;quot;) are not rare. Some form of color blindness affects at least one in twenty people. &lt;a href=&quot;https://en.wikipedia.org/wiki/Color_blindness#Epidemiology&quot;&gt;Wikipedia has a helpful table&lt;/a&gt;, based on &lt;a href=&quot;https://apfmj.biomedcentral.com/articles/10.1186/s12930-014-0010-3&quot;&gt;a journal article from biomedcentral.com&lt;/a&gt;. There are &lt;a href=&quot;http://www.colourblindawareness.org/colour-blindness/types-of-colour-blindness/&quot;&gt;several different forms of color blindness&lt;/a&gt;. The most common, red-green color blindness, affects around one in twelve men.&lt;/p&gt;
&lt;p&gt;Color blindness is less profound than many impairments, but people with color vision problems often face restrictions on certain activities, which vary around the world. For example, Romania prohibits residents who are color blind from driving. The USA doesn&#39;t consider color blindness a disability because of workplace discrimination purposes.&lt;/p&gt;
&lt;p&gt;Though there are multiple types of color blindness, they are the same in principle. For more information, check out &lt;a href=&quot;https://en.wikipedia.org/wiki/Color_blindness&quot;&gt;Wikipedia&#39;s article on color blindness&lt;/a&gt;, which has some excellent descriptions.&lt;/p&gt;
&lt;h2 id=&quot;what-does-this-mean-for-accessibility-on-the-web%3F&quot; tabindex=&quot;-1&quot;&gt;What does this mean for accessibility on the web?&lt;/h2&gt;
&lt;p&gt;To make sure your site is readable for individuals with color blindness, avoid relying on color alone to communicate.&lt;/p&gt;
&lt;p&gt;These guidelines are compliant with the WCAG; guideline &lt;a href=&quot;https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-without-color.html&quot;&gt;1.4.1 covers making content distinguishable using color&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In practice, you can achieve this by choosing colors that are easily distinguished from one another, and by adding secondary visualizations for icons and tasks. For example, say you&#39;re using red and green buttons to represent tasks a user has outstanding. It might seem logical to show items that need attention in red, and those that are good in green. One small change, such as overlaying a check mark icon over the &amp;quot;good&amp;quot; or &amp;quot;completed&amp;quot; items, will help communicate which items are approved and those that need attention.&lt;/p&gt;
&lt;p&gt;There are cases where this isn&#39;t possible. The periodic table, for example, often color-codes the chemical symbols of the elements. When working with tables or other standardised layouts, adding more text or symbols might not be practical.&lt;/p&gt;
&lt;h2 id=&quot;available-tools&quot; tabindex=&quot;-1&quot;&gt;Available tools&lt;/h2&gt;
&lt;p&gt;There are a number of online tools to help those without color blindness visualize how accessible their designs are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://colorsafe.co/&quot;&gt;Color Safe: accessible color palettes based on WCAG Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.toptal.com/designers/colorfilter&quot;&gt;Colorblind web page filter by Toptal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/colorblindly/floniaahmccleoclneebhhmnjgdfijgg&quot;&gt;Colorblindly Chrome extension&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These tools are free, simple to use, and can quickly help you make color-accessible choices.&lt;/p&gt;
&lt;h2 id=&quot;terminology&quot; tabindex=&quot;-1&quot;&gt;Terminology&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://opticiancertification.org/&quot;&gt;OpticianCertification.org&lt;/a&gt; maintains &lt;a href=&quot;https://opticiancertification.org/glossary/&quot;&gt;a list of eye-related terminology&lt;/a&gt;, including links to additional resources.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Browser keyboard navigation in macOS</title>
		<link href="https://a11yproject.com/posts/macos-browser-keyboard-navigation/"/>
		<updated>2017-12-29T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/macos-browser-keyboard-navigation/</id>
		<content type="html">&lt;p&gt;In order to allow for full keyboard navigation of all focusable interactive elements in macOS Safari and Firefox, you&#39;ll need to make sure the following keyboard settings are adjusted.&lt;/p&gt;
&lt;p&gt;By default, Apple computers have an operating system (OS) level setting that limits the &lt;kbd&gt;Tab&lt;/kbd&gt; key to &amp;quot;Text boxes and lists only&amp;quot;. This can be confusing, if not frustrating, for those unaware of this setting and expect keyboard focus to be similar to navigating on a Windows machine.&lt;/p&gt;
&lt;h2 id=&quot;%22all-controls%22-in-macos&quot; tabindex=&quot;-1&quot;&gt;&amp;quot;All Controls&amp;quot; in macOS&lt;/h2&gt;
&lt;h3 id=&quot;enable-%22all-controls%22-in-macos-settings&quot; tabindex=&quot;-1&quot;&gt;Enable &amp;quot;All Controls&amp;quot; in macOS Settings&lt;/h3&gt;
&lt;p&gt;In the macOS settings, the &lt;strong&gt;&amp;quot;All Controls&amp;quot;&lt;/strong&gt; setting must be enabled for all focusable interactive elements (for instance, links) to be keyboard accessible via the &lt;kbd&gt;Tab&lt;/kbd&gt; key alone. Enable this feature by going to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;System Preferences&lt;/li&gt;
&lt;li&gt;Keyboard&lt;/li&gt;
&lt;li&gt;Shortcuts (tab)&lt;/li&gt;
&lt;li&gt;macOS Catalina: Select &amp;quot;Use keyboard navigation to move focus between controls&amp;quot; (check box). macOS pre-Catalina: Select &amp;quot;All controls&amp;quot; (radio button). Alternatively, in any macOS version, press &lt;kbd&gt;Control&lt;/kbd&gt; + &lt;kbd&gt;F7&lt;/kbd&gt; (if you&#39;re on a laptop you may also need to press the &lt;kbd&gt;fn&lt;/kbd&gt; key).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/macos-catalina-settings-keyboard-shortcuts.png&quot; alt=&quot;The macOS (Catalina) Settings window. The screenshot is highlighting the selection of the &#39;Use keyboard navigation to move focus between controls&#39; check box.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/macos-catalina-settings-keyboard-all-controls.png&quot; alt=&quot;The macOS Settings window pre-Catalina. The screenshot is highlighting the selection of the &#39;All controls&#39; radio button.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After updating this setting you will need to quit and restart your browsers to have the update take effect.&lt;/p&gt;
&lt;h3 id=&quot;enable-all-controls-via-terminal&quot; tabindex=&quot;-1&quot;&gt;Enable All Controls via Terminal&lt;/h3&gt;
&lt;p&gt;Run the following command in &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Terminal_(macOS)&quot;&gt;Terminal&lt;/a&gt; to enable keyboard control at the macOS level. This command can be helpful if your organization uses a config script for new employee machines!&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; NSGlobalDomain AppleKeyboardUIMode -int &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;browser-settings-to-enable-full-keyboard-navigation&quot; tabindex=&quot;-1&quot;&gt;Browser settings to enable full keyboard navigation&lt;/h2&gt;
&lt;h3 id=&quot;highlight-each-item-in-safari&quot; tabindex=&quot;-1&quot;&gt;Highlight each item in Safari&lt;/h3&gt;
&lt;p&gt;Additionally for Safari, you can enable the &lt;strong&gt;&amp;quot;highlighting of each item&amp;quot;&lt;/strong&gt; setting in order to use the &lt;kbd&gt;Tab&lt;/kbd&gt; key to navigate page controls. Enable this feature by going to Safari&#39;s:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Preferences&lt;/li&gt;
&lt;li&gt;Advanced (tab)&lt;/li&gt;
&lt;li&gt;Check &amp;quot;Press Tab to highlight each item on a webpage&amp;quot; (checkbox)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/safari-tab-to-highlight-each-item.png&quot; alt=&quot;The Safari Preferences window. The screenshot is highlighting the selection of the &#39;Press Tab to highlight each item on a webpage&#39; checkbox.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With these changed settings in place you should now be able to use the &lt;kbd&gt;Tab&lt;/kbd&gt; key to navigate around web pages as expected.&lt;/p&gt;
&lt;h3 id=&quot;highlight-each-item-in-chrome&quot; tabindex=&quot;-1&quot;&gt;Highlight each item in Chrome&lt;/h3&gt;
&lt;p&gt;Just like in Safari, a similar setting is available in Chrome. Verify that this feature is enabled by going to Chrome&#39;s:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Settings&lt;/li&gt;
&lt;li&gt;Appearance&lt;/li&gt;
&lt;li&gt;Check &amp;quot;Pressing Tab on a webpage highlights links, as well as form fields&amp;quot; (switch)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/chrome-pressing-tab.png&quot; alt=&quot;The Chrome Settings page. The screenshot is highlighting the selection of the &#39;Pressing Tab on a webpage highlights links, as well as form fields&#39; switch.&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;highlight-each-item-in-firefox&quot; tabindex=&quot;-1&quot;&gt;Highlight each item in Firefox&lt;/h3&gt;
&lt;p&gt;Unlike Safari and Chrome, Firefox does not have an option in the settings page for enabling full keyboard control. However, when the &amp;quot;All Controls&amp;quot; setting is enabled in macOS, Firefox may still not send focus to links using the tab key. There is a way to enable keyboard focus of links using advanced configuration options.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When &lt;code&gt;accessibility.tabfocus&lt;/code&gt; is set, some forms created with non-semantic HTML elements can behave oddly. For example, the GitHub Gist code editor. If non-semantic HTML elements are inexplicably inaccessible, try resetting this option.&lt;/p&gt;
&lt;h4 id=&quot;to-enable&quot; tabindex=&quot;-1&quot;&gt;To enable&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Open a new tab and go to &lt;code&gt;about:config&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Right Click and select New &gt; Integer
	&lt;img alt=&quot;The Firefox about:config add config menu. The screenshot is highlighting the selection of the New Integer configuration.&quot; src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/firefox-add-config.png&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;Enter the preference name &lt;code&gt;accessibility.tabfocus&lt;/code&gt;. Click OK.
	&lt;img alt=&quot;The Firefox about:config add config menu. The screenshot is highlighting entering accessibility.tabfocus as a preference name.&quot; src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/firefox-config-name.png&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;Enter the number &lt;code&gt;7&lt;/code&gt;. Click OK.
	&lt;img alt=&quot;The Firefox about:config add config dialog. The screenshot is highlighting entering 7 as a preference value.&quot; src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/firefox-config-value.png&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;to-reset&quot; tabindex=&quot;-1&quot;&gt;To reset&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Open a new tab and go to &lt;code&gt;about:config&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Find the &lt;code&gt;accessibility.tabfocus&lt;/code&gt; preference row. (tip: use search field at top of page)&lt;/li&gt;
	&lt;li&gt;Right Click on the row and select Reset
	&lt;img alt=&quot;The Firefox about:config right click menu. The screenshot is highlighting the selection of the Reset menu item.&quot; src=&quot;https://a11yproject.com/img/posts/macos-browser-keyboard-navigation/firefox-config-reset.png&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;Restart Firefox&lt;/li&gt;
&lt;/ol&gt;
</content>
	</entry>
	
	<entry>
		<title>ARIA properties</title>
		<link href="https://a11yproject.com/posts/aria-properties/"/>
		<updated>2018-07-30T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/aria-properties/</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://www.w3.org/WAI/PF/aria-1.1/states_and_properties&quot;&gt;ARIA 1.1 defines multiple &amp;quot;properties&amp;quot;&lt;/a&gt; that can be applied to elements. Unlike ARIA states, most properties are likely to stay static when a page is loaded instead of changing with user interaction.&lt;/p&gt;
&lt;p&gt;Properties are inserted into elements as follows: &lt;code&gt;&amp;lt;element aria-property=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;/element&amp;gt;&lt;/code&gt; . Example:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-haspopup&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  Options.&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A screenreader will announce this button with &#39;Options, button menu&#39; or something similar.&lt;/p&gt;
&lt;p&gt;There are 38 properties that can be used in ARIA. They fall into 4 categories as defined by the W3C. The categories are:&lt;/p&gt;
&lt;dl&gt;
  &lt;dt&gt;Widget Attributes&lt;/dt&gt;
  &lt;dd&gt;Properties that give information about user input elements.&lt;/dd&gt;
  &lt;dt&gt;Live Region Attributes&lt;/dt&gt;
  &lt;dd&gt;Properties that are specific to regions that will update while the page is being viewed.&lt;/dd&gt;
  &lt;dt&gt;Drag-and-Drop Attributes&lt;/dt&gt;
  &lt;dd&gt;Properties of drag-and-drop input elements.&lt;/dd&gt;
  &lt;dt&gt;Relationship Attributes&lt;/dt&gt;
  &lt;dd&gt;Properties that give information about elements&#39; relationships to other elements.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Note: ARIA is constantly being updated by the W3C. &lt;a href=&quot;https://w3c.github.io/aria/&quot;&gt;Read the latest working draft&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The properties are given below, along with their category, brief description, and allowed value lists or type of input allowed.&lt;/p&gt;
&lt;h2 id=&quot;list-of-aria-properties&quot; tabindex=&quot;-1&quot;&gt;List of ARIA properties&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property (links to WAI-ARIA 1.1 specs)&lt;/th&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Allowed Values (&lt;strong&gt;default values bolded&lt;/strong&gt;)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant&quot;&gt;aria-activedescendant&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Currently active descendant of a composite widget&lt;/td&gt;
&lt;td&gt;String - ID of descendant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-atomic&quot;&gt;aria-atomic&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Live region attributes&lt;/td&gt;
&lt;td&gt;Indicates whether assistive technologies will present the entire element (or only parts of it) when the element is changed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete&quot;&gt;aria-autocomplete&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Defines if and how autocomplete suggestions are shown&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;none&lt;/strong&gt;, both, inline, list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-colcount&quot;&gt;aria-colcount&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines the total number of columns in a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-colindex&quot;&gt;aria-colindex&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines an element&#39;s column index or position with respect to the total number of columns within a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-colspan&quot;&gt;aria-colspan&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-controls&quot;&gt;aria-controls&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Element(s) controlled by current element&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-describedby&quot;&gt;aria-describedby&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Element(s) that describe the current element&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-details&quot;&gt;aria-details&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Identifies the element that provides a detailed, extended description for the object&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect&quot;&gt;aria-dropeffect&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Drag-and-drop attributes&lt;/td&gt;
&lt;td&gt;* DEPRECATED * Defines what functions can be performed when a dragged object is released on the target&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;none&lt;/strong&gt;, copy, execute, link, move, popup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage&quot;&gt;aria-errormessage&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Identifies the element that provides an error message for the object&lt;/td&gt;
&lt;td&gt;ID reference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-flowto&quot;&gt;aria-flowto&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Next element(s) in alternate reading order&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup&quot;&gt;aria-haspopup&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element can trigger a popup context menu&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-keyshortcuts&quot;&gt;aria-keyshortcuts&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-label&quot;&gt;aria-label&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Defines a label for the element (only used when label text not visible on screen)&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby&quot;&gt;aria-labelledby&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Element(s) that label the current element&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-level&quot;&gt;aria-level&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Gives hierarchical level of the element within a structure such as a tree or nested items&lt;/td&gt;
&lt;td&gt;Integer greater than or equal to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-live&quot;&gt;aria-live&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Live region attributes&lt;/td&gt;
&lt;td&gt;Indicates an element will be updated and gives the type of updates the user can expect&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;off&lt;/strong&gt;, assertive, polite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-modal&quot;&gt;aria-modal&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Indicates whether an element is modal when displayed&lt;/td&gt;
&lt;td&gt;false, *&lt;em&gt;true&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-multiline&quot;&gt;aria-multiline&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Text box accepts multiple lines of input, not just a single line&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable&quot;&gt;aria-multiselectable&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;User can select more than one item in a list&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-orientation&quot;&gt;aria-orientation&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Defines the element orientation&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;horizontal&lt;/strong&gt;, vertical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-owns&quot;&gt;aria-owns&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Element(s) that are owned by the current element (and not denoted as such by the DOM)&lt;/td&gt;
&lt;td&gt;String/list - ID(s) of element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder&quot;&gt;aria-placeholder&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-posinset&quot;&gt;aria-posinset&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Element&#39;s position in a set of items&lt;/td&gt;
&lt;td&gt;Integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-readonly&quot;&gt;aria-readonly&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Element is not editable but is still readable&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-relevant&quot;&gt;aria-relevant&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Live region attributes&lt;/td&gt;
&lt;td&gt;Defines what constitutes a update requiring notification in a live region&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;additions text&lt;/strong&gt;, additions, all, removals, text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-required&quot;&gt;aria-required&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;User input is required&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription&quot;&gt;aria-roledescription&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Defines a human-readable description for the role of an element&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount&quot;&gt;aria-rowcount&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines the total number of rows in a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex&quot;&gt;aria-rowindex&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines an element&#39;s row index or position with respect to the total number of rows within a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan&quot;&gt;aria-rowspan&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-setsize&quot;&gt;aria-setsize&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Relationship attributes&lt;/td&gt;
&lt;td&gt;Number of items in current set&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-sort&quot;&gt;aria-sort&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Gives the direction that items are sorted in a table or grid column&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;none&lt;/strong&gt;, ascending, descending, other&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax&quot;&gt;aria-valuemax&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Maximum allowed value for a range selector&lt;/td&gt;
&lt;td&gt;Number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin&quot;&gt;aria-valuemin&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Minimum allowed value for a range selector&lt;/td&gt;
&lt;td&gt;Number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow&quot;&gt;aria-valuenow&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Current value for a range selector&lt;/td&gt;
&lt;td&gt;Number (between aria-valuemin and aria-valuemax)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext&quot;&gt;aria-valuetext&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Human readable text alternative to a value for a range selector&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content>
	</entry>
	
	<entry>
		<title>ARIA states</title>
		<link href="https://a11yproject.com/posts/aria-states/"/>
		<updated>2018-07-30T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/aria-states/</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://www.w3.org/WAI/PF/aria-1.1/states_and_properties&quot;&gt;ARIA 1.1 defines multiple &amp;quot;states&amp;quot;&lt;/a&gt; that can be applied to elements. States are likely to change as the user interacts with the page.&lt;/p&gt;
&lt;p&gt;States are inserted into elements as follows: &lt;code&gt;&amp;lt;element aria-state=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;/element&amp;gt;&lt;/code&gt;. Example:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;span&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-busy&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  This element is currently being updated.&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;span&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are 10 states that can be used in ARIA. They fall into 3 categories as defined by the W3C. The categories are:&lt;/p&gt;
&lt;dl&gt;
  &lt;dt&gt;Widget attributes&lt;/dt&gt;
  &lt;dd&gt;States that give information about user input elements.&lt;/dd&gt;
  &lt;dt&gt;Live region attributes&lt;/dt&gt;
  &lt;dd&gt;States that are specific to regions that will update while the page is being viewed.&lt;/dd&gt;
  &lt;dt&gt;Drag-and-drop attributes&lt;/dt&gt;
  &lt;dd&gt;States of drag-and-drop input elements.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Note: ARIA is constantly being updated by the W3C. &lt;a href=&quot;https://w3c.github.io/aria/&quot;&gt;Read the latest working draft&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The states are given below, along with their category, brief description, and allowed value lists. Many states allow for either true or false, and when &amp;quot;undefined&amp;quot; is chosen it means the state is not applicable to the current element.&lt;/p&gt;
&lt;h2 id=&quot;list-of-aria-states&quot; tabindex=&quot;-1&quot;&gt;List of ARIA states&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;State (links to WAI-ARIA 1.1 specs)&lt;/th&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Allowed Values (&lt;strong&gt;default values bolded&lt;/strong&gt;)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-busy&quot;&gt;aria-busy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Live region attributes&lt;/td&gt;
&lt;td&gt;The element is currently being updated&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-checked&quot;&gt;aria-checked&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The input item is checked&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;undefined&lt;/strong&gt;, false, mixed, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-current&quot;&gt;aria-current&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;Indicates the element that represents the current item within a container or set of related elements&lt;/td&gt;
&lt;td&gt;page, step, location, date, time, true, &lt;strong&gt;false&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-disabled&quot;&gt;aria-disabled&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element is visible but not interactive&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-expanded&quot;&gt;aria-expanded&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element is expanded&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;undefined&lt;/strong&gt;, false, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed&quot;&gt;aria-grabbed&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Drag-and-Drop attributes&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Deprecated&lt;/em&gt; The element is selected for dragging&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;undefined&lt;/strong&gt;, false, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-hidden&quot;&gt;aria-hidden&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element is invisible to all users (including assistive technologies)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-invalid&quot;&gt;aria-invalid&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element contains a value that doesn&#39;t match the expected format&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;false&lt;/strong&gt;, grammar, spelling, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-pressed&quot;&gt;aria-pressed&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The button is pressed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;undefined&lt;/strong&gt;, false, mixed, true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#aria-selected&quot;&gt;aria-selected&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Widget attributes&lt;/td&gt;
&lt;td&gt;The element is selected&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;undefined&lt;/strong&gt;, false, true&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content>
	</entry>
	
	<entry>
		<title>Large touch targets</title>
		<link href="https://a11yproject.com/posts/large-touch-targets/"/>
		<updated>2018-11-21T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/large-touch-targets/</id>
		<content type="html">&lt;p&gt;A touch target is the total area a person can click or tap on to activate an interactive element such as a link, input, or button.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;Ensuring that interactive elements have sufficiently large touch targets helps people with &lt;a href=&quot;https://webaim.org/articles/motor/motordisabilities&quot;&gt;motor control issues&lt;/a&gt; use your website or application. Providing a too-small touch target may make it difficult or impossible for some people to be able to reliably reach the area required to activate the element. Think of it like trying to thread a needle.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/target-size.html&quot;&gt;Web Content Accessibility Guidelines (WCAG) specify a minimum size of 44 by 44 CSS pixels&lt;/a&gt; for all interactive elements. The exceptions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the interactive element&#39;s functionality can be activated by another element of acceptable size on the same page.&lt;/li&gt;
&lt;li&gt;If the interactive element is rendered inline within a block of text, such as a link.&lt;/li&gt;
&lt;li&gt;If the interactive element&#39;s size is controlled by the browser or operating system&#39;s UI.&lt;/li&gt;
&lt;li&gt;If the interactive element has a design whose presentation requires a certain size or shape.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only the inline element exception case typically applies to web design. Even then, a recommended &lt;a href=&quot;https://blog.marvelapp.com/body-text-small/&quot;&gt;larger body type size&lt;/a&gt; will help both increase inline touch target size and help accommodate people with low vision.&lt;/p&gt;
&lt;p&gt;Small touch targets such as icon buttons can use &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/padding&quot;&gt;padding&lt;/a&gt; to expand their interactive area without increasing the visible size:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/large-touch-targets/touch-target-padding.svg&quot; alt=&quot;A translate button with a square purple area surrounding it. The button is labeled, &amp;quot;Button, 32 CSS pixels. The purple area is labeled, &amp;quot;Interactive area, 44 CSS pixels.&amp;quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It is also recommended that you &lt;a href=&quot;https://axesslab.com/hand-tremors/&quot;&gt;add space between large interactive elements&lt;/a&gt;, to help prevent people from accidentally clicking or tapping the wrong one.&lt;/p&gt;
&lt;h2 id=&quot;how-to-test&quot; tabindex=&quot;-1&quot;&gt;How to test&lt;/h2&gt;
&lt;p&gt;To determine the CSS pixel size of an interactive element, use a browser&#39;s Inspector feature to check it&#39;s computed value.&lt;/p&gt;
&lt;p&gt;Two common methods to open a browser&#39;s Inspector panel are typing &lt;kbd&gt;Command/Control&lt;/kbd&gt; + &lt;kbd&gt;Option&lt;/kbd&gt; + &lt;kbd&gt;i&lt;/kbd&gt; on your keyboard, or by right clicking on an element on your page and choosing the Inspect option.&lt;/p&gt;
&lt;p&gt;If you right click on the interactive element you want to test, it will automatically be highlighted when you choose the Inspect option in the right click menu. For most browsers, this method of selecting an element will also display its CSS pixel height and width:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/large-touch-targets/touch-target-inspector.png&quot; alt=&quot;Chrome&#39;s inspector highlighting the height and width of Wikipedia&#39;s logo, which serves as a link back to the Wikipedia homepage. The logo&#39;s computed size is 160 by 160 CSS pixels. The inspector also has the code for the logo highlighted, as well as its computed properties. Screenshot.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The inspector also has a Computed panel. It will display the selected element&#39;s &lt;code&gt;height&lt;/code&gt; and &lt;code&gt;width&lt;/code&gt; values, as well as an alphabetical list of the other computed CSS properties. This can be good for checking how the browser ultimately renders your site&#39;s CSS.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Resize text</title>
		<link href="https://a11yproject.com/posts/resize-text/"/>
		<updated>2018-11-26T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/resize-text/</id>
		<content type="html">&lt;p&gt;Resize text and make sure everything on the page works. Repeat until you get to 200% zoom. Seems simple? It is.&lt;/p&gt;
&lt;h2 id=&quot;essential-abilities&quot; tabindex=&quot;-1&quot;&gt;Essential abilities&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sight&lt;/strong&gt;: This method tests the visual appearance of content on the page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interact with content via a pointer&lt;/strong&gt;: This method tests mouse interactions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you know of a method that doesn&#39;t require either of these abilities, please update this Quick Test.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;People with low vision may need to increase the size of text in order to use the page.&lt;/p&gt;
&lt;p&gt;When someone resizes text, any of the following can break the page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Text on the page is no longer readable.&lt;/li&gt;
&lt;li&gt;Content is lost or truncated.&lt;/li&gt;
&lt;li&gt;Interactive elements overlapping each other.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The importance is that &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/length#Units&quot;&gt;relative length units&lt;/a&gt; (&lt;code&gt;em&lt;/code&gt;, &lt;code&gt;ex&lt;/code&gt;, &lt;code&gt;rem&lt;/code&gt;, &lt;code&gt;%&lt;/code&gt;, &lt;code&gt;vw&lt;/code&gt;) are used for text.&lt;/p&gt;
&lt;h2 id=&quot;how-to-test&quot; tabindex=&quot;-1&quot;&gt;How to test&lt;/h2&gt;
&lt;p&gt;Testing is pretty straightforward.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Initial test in multiple browsers&lt;/li&gt;
&lt;li&gt;Resize text&lt;/li&gt;
&lt;li&gt;Confirm relative font usage&lt;/li&gt;
&lt;li&gt;Choose a browser to do further testing in&lt;/li&gt;
&lt;li&gt;Resize text&lt;/li&gt;
&lt;li&gt;Check everything&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;choosing-a-browser&quot; tabindex=&quot;-1&quot;&gt;Choosing a browser&lt;/h3&gt;
&lt;p&gt;Testing text-resize needs initial testing in multiple browsers to confirm that relative units are used correctly in order to conform with &lt;a href=&quot;https://www.w3.org/WAI/WCAG22/Understanding/resize-text.html&quot;&gt;WCAG Resize Text (Success Criterion 1.4.4)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that you can by mistake give text-resize a pass when testing in Firefox. Text-zoom in Firefox resizes regardless of usage of relative units. Suggested setup is to use two different browsers in initial testing.&lt;/p&gt;
&lt;p&gt;Chrome works best, allthough:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ability to resize text is not obvious.&lt;/li&gt;
&lt;li&gt;Does not display the current zoom level.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Edge works well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has a smiliar functionality as Chrome.&lt;/li&gt;
&lt;li&gt;Increase text size used to only support text-only resize in Reading view but has since improved.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Safari, works but not as well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ability to resize text is not obvious.&lt;/li&gt;
&lt;li&gt;Does not display the current zoom level.&lt;/li&gt;
&lt;li&gt;Safari is only available on macOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Firefox is an easy browser for testing further:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It makes resizing text really easy.&lt;/li&gt;
&lt;li&gt;It informs you of the current zoom level.&lt;/li&gt;
&lt;li&gt;It&#39;s available on all popular Operating Systems.&lt;/li&gt;
&lt;li&gt;Text-zoom in Firefox resizes regardless of usage of relative units.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;resizing-text-in-chrome&quot; tabindex=&quot;-1&quot;&gt;Resizing text in Chrome&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Copy &lt;code&gt;chrome://settings/fonts&lt;/code&gt; to the address bar and then return on your keyboard.&lt;/li&gt;
&lt;li&gt;Increase the &lt;strong&gt;font size&lt;/strong&gt; to 32px (default is 16px).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;resizing-text-in-edge&quot; tabindex=&quot;-1&quot;&gt;Resizing text in Edge&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Copy &lt;code&gt;edge://settings/appearance&lt;/code&gt; to the address bar and then return on your keyboard.&lt;/li&gt;
&lt;li&gt;Go to section &amp;quot;Fonts&amp;quot; and the option &amp;quot;Customize fonts&amp;quot;.&lt;/li&gt;
&lt;li&gt;Increase the &lt;strong&gt;font size&lt;/strong&gt; to 32px (default is 16px).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;resizing-text-in-safari&quot; tabindex=&quot;-1&quot;&gt;Resizing text in Safari&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;To increase the font size, press &lt;kbd&gt;Option&lt;/kbd&gt; + &lt;kbd&gt;Command&lt;/kbd&gt; + &lt;kbd&gt;+&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;To decrease the font size, press &lt;kbd&gt;Option&lt;/kbd&gt; + &lt;kbd&gt;Command&lt;/kbd&gt; + &lt;kbd&gt;-&lt;/kbd&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;resizing-text-in-firefox&quot; tabindex=&quot;-1&quot;&gt;Resizing text in Firefox&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;View &amp;gt; Zoom&lt;/strong&gt; and select &lt;strong&gt;Zoom Text Only&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Zoom to 200%.
&lt;ul&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;+&lt;/kbd&gt;.&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + Scroll Up.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;checking-everything&quot; tabindex=&quot;-1&quot;&gt;Checking everything&lt;/h3&gt;
&lt;p&gt;After doubling the size of text, verify the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All content on the page should still be readable.
&lt;ul&gt;
&lt;li&gt;Text shouldn&#39;t be too cut off.&lt;/li&gt;
&lt;li&gt;Text needed for understanding shouldn&#39;t be truncated.&lt;/li&gt;
&lt;li&gt;Text shouldn&#39;t overlap too much.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Interactions still work.
&lt;ul&gt;
&lt;li&gt;Buttons, links, and inputs are still usable with mouse, touch, or similar.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;thorough-check&quot; tabindex=&quot;-1&quot;&gt;Thorough check&lt;/h4&gt;
&lt;p&gt;Some people might not need to zoom text up to 200%. And there might be a level of zoom below 200% where content doesn&#39;t work.&lt;/p&gt;
&lt;p&gt;To do a more thorough job, you should check the page at each of the zoom steps the browser makes to see if there are any odd breakpoints.&lt;/p&gt;
&lt;h3 id=&quot;exceptions&quot; tabindex=&quot;-1&quot;&gt;Exceptions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Images of text won&#39;t resize.&lt;/li&gt;
&lt;li&gt;Captions over videos likely won&#39;t resize.&lt;/li&gt;
&lt;li&gt;Using the incorrect html &lt;code&gt;lang&lt;/code&gt; code might result in no text-zoom.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;can-i-zoom-everything-instead-of-resizing-text-only%3F&quot; tabindex=&quot;-1&quot;&gt;Can I zoom everything instead of resizing text only?&lt;/h2&gt;
&lt;p&gt;It depends on which legislation you have to follow. It&#39;s still a good idea to make sure that pages work well with text-only zoom since some people want only the text to be bigger. The usage has increased especially on mobile devices, and statistics from &lt;a href=&quot;https://appt.org/en/stats/font-size&quot;&gt;appt.org&lt;/a&gt; (2024) show that more than a third of users on Android and iOS devices use this setting.&lt;/p&gt;
&lt;h3 id=&quot;if-you-have-to-conform-with-the-en-301-549-standard&quot; tabindex=&quot;-1&quot;&gt;If you have to conform with the EN-301 549 standard&lt;/h3&gt;
&lt;p&gt;In the EN-standard 301 459 which the accessibility laws in the EU and Canada points to there&#39;s the section &lt;a href=&quot;https://accessible.canada.ca/en-301-549-accessibility-requirements-ict-products-and-services-11-software#_Toc66969652&quot;&gt;11.7 User preferences&lt;/a&gt; which explicitly points out color and font settings to be respected. This means that such things as Dark mode and text-resize is mandated by law.&lt;/p&gt;
&lt;h3 id=&quot;if-you-do-not-have-to-comply-with-the-en-301-549-standard&quot; tabindex=&quot;-1&quot;&gt;If you do not have to comply with the EN-301 549 standard&lt;/h3&gt;
&lt;p&gt;Without going too deep into the &lt;a href=&quot;https://www.w3.org/WAI/WCAG22/Understanding/resize-text.html&quot;&gt;Success Criterion 1.4.4&lt;/a&gt; in WCAG, the Success Criterion does not require you to use text-only zoom.&lt;/p&gt;
&lt;p&gt;There is even a &lt;a href=&quot;https://www.w3.org/WAI/WCAG22/Techniques/general/G142&quot;&gt;Success Technique (G142)&lt;/a&gt; that says you can pass the Success Criterion by zooming everything.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Creating valid and accessible links</title>
		<link href="https://a11yproject.com/posts/creating-valid-and-accessible-links/"/>
		<updated>2019-02-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/creating-valid-and-accessible-links/</id>
		<content type="html">&lt;p&gt;The anchor element is often cited as the main building block of the World Wide Web. It is used to create a link to other pages, to anchors within the same page, to other resources (such as a PDF) or to an email address. How can we make sure they are accessible to everyone?&lt;/p&gt;
&lt;h2 id=&quot;start-with-valid-html&quot; tabindex=&quot;-1&quot;&gt;Start with valid HTML&lt;/h2&gt;
&lt;p&gt;To be a valid link it must have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;href&lt;/code&gt; attribute:&lt;/strong&gt; The location of the anchor, page or resource.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link content&lt;/strong&gt; Text describing where the link is going, this could be plain text or the &lt;a href=&quot;https://a11yproject.com/posts/alt-text/&quot;&gt;&lt;code&gt;alt&lt;/code&gt; attribute&lt;/a&gt; of an image.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opening and closing tags&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;write-helpful-link-text&quot; tabindex=&quot;-1&quot;&gt;Write helpful link text&lt;/h2&gt;
&lt;p&gt;Common unhelpful link texts are &#39;click here&#39;, &#39;read more&#39; and &#39;link&#39;. These are problematic because when a person using a screen reader is navigating using links alone these will be read out of context. Where would you expect any of those three links to go if you heard them? It&#39;s impossible to know.&lt;/p&gt;
&lt;p&gt;Think about restructuring your sentence to remove &#39;click here&#39; or &#39;link&#39; and then surround the meaningful part with the link:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- bad --&gt;&lt;/span&gt;&lt;br /&gt;To see our documentation &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/README.md&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;click here&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- better --&gt;&lt;/span&gt;&lt;br /&gt;We have made our &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/README.md&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;documentation&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt; available.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;quot;Read more&amp;quot; can be fixed by including what we will be reading more about:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- bad --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/full-article&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Read more&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- better --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/full-article&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Read more - Accessible Landmarks&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;what-about-the-title-attribute%3F&quot; tabindex=&quot;-1&quot;&gt;What about the &lt;code&gt;title&lt;/code&gt; attribute?&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;title&lt;/code&gt; attribute is not exposed by all browsers in an accessible way meaning that people using keyboards and touch-only devices will likely never see that information.&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;If you want to hide content from mobile and tablet users as well as assistive tech users and keyboard only users, use the title attribute.&lt;/p&gt;
	&lt;footer&gt;
		&lt;cite&gt;&lt;a href=&quot;https://developer.paciellogroup.com/blog/2010/11/using-the-html-title-attribute/&quot;&gt;Using the HTML title attribute - TTPGi&lt;/a&gt;&lt;/cite&gt;
	&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is therefore not recommended to use the &lt;code&gt;title&lt;/code&gt; attribute on &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; elements. If you do use it don&#39;t double up on the accessible name of the link, this can produce unnecessary duplicate announcements to some screen readers.&lt;/p&gt;
&lt;h2 id=&quot;focus-state-and-keyboard&quot; tabindex=&quot;-1&quot;&gt;Focus state and keyboard&lt;/h2&gt;
&lt;p&gt;Some developers/designers see the focus outline of links as ugly and remove them. People navigating using the keyboard require this focus state to keep track of where they are. Best practice is to never remove focus outlines but there are accessible solutions to styling, which are set out in the &lt;a href=&quot;https://a11yproject.com/posts/never-remove-css-outlines/&quot;&gt;Quick tip: Never remove CSS outlines&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By default an &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element with an &lt;code&gt;href&lt;/code&gt; attribute can be activated by the &lt;kbd&gt;Enter&lt;/kbd&gt; key. Be mindful to not override this functionality if attaching other custom scripting.  Additionally, it is &lt;strong&gt;not&lt;/strong&gt; expected for the &lt;kbd&gt;Space&lt;/kbd&gt; key to activate links.&lt;/p&gt;
&lt;h2 id=&quot;when-should-you-use-a-button-instead%3F&quot; tabindex=&quot;-1&quot;&gt;When should you use a &lt;code&gt;button&lt;/code&gt; instead?&lt;/h2&gt;
&lt;p&gt;If you have an &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element that has:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An empty or no &lt;code&gt;href&lt;/code&gt; attribute&lt;/li&gt;
&lt;li&gt;Scripting attached via the &lt;code&gt;onClick&lt;/code&gt; attribute or listeners.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will probably be triggering an action on the same page, such as opening a menu or toggling content and as such is a much better candidate for the &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; element.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Operating System and Browser Accessibility Display Modes</title>
		<link href="https://a11yproject.com/posts/operating-system-and-browser-accessibility-display-modes/"/>
		<updated>2020-01-23T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/operating-system-and-browser-accessibility-display-modes/</id>
		<content type="html">&lt;p&gt;Most computers, laptops, tablets, smartphones, and web browsers have specialized tools to help people read and take action on the content they display. Some of these tools are display modes, which are pre-defined visual configurations you can tell your device to use.&lt;/p&gt;
&lt;p&gt;Five such modes are Dark Mode, Increased Contrast Mode, Inverted Colors Mode, Reduced Motion Mode, and High Contrast Mode. Following is an explanation of each of these mode, who can benefit from it, how to enable it on your device or browser (if supported), and how to work with it in code.&lt;/p&gt;
&lt;h2 id=&quot;dark-mode&quot; tabindex=&quot;-1&quot;&gt;Dark Mode&lt;/h2&gt;
&lt;p&gt;The User Interfaces (&lt;abbr&gt;UI&lt;/abbr&gt;) that make up most Operating Systems (&lt;abbr&gt;OS&lt;/abbr&gt;es) traditionally use lighter colors like white and light grays. Dark Mode is a toggle that instructs this UI to use darker colors, typically black and dark grays.&lt;/p&gt;
&lt;p&gt;It is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who want to reduce eye strain in a low or no light environment,&lt;/li&gt;
&lt;li&gt;and/or who have certain &lt;a href=&quot;https://webaim.org/articles/visual/lowvision&quot;&gt;low vision&lt;/a&gt; or photosensitive conditions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of a situation where Dark Mode could be useful is checking your phone in bed with the lights off.&lt;/p&gt;
&lt;h3 id=&quot;what-it-affects&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;Dark Mode will update &lt;strong&gt;all&lt;/strong&gt; UI of the OS that supports it. &lt;strong&gt;Most&lt;/strong&gt; apps developed by the company that creates the operating system will also support Dark Mode. Third party apps, websites, and web apps support Dark Mode &lt;strong&gt;only&lt;/strong&gt; if the people who write the necessary code to enable it.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;daverupert.com has support for Dark Mode.&quot;&gt;
  &lt;img alt=&quot;A side-by-side comparison of light and dark themes for the home page daverupert.com. The navigation, text, background, and link colors update, but the logo and illustration of Dave as a fantasy warrior remain the same.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/dark-mode.png&quot; /&gt;
  &lt;figcaption&gt;&lt;a href=&quot;https://daverupert.com/&quot;&gt;daverupert.com&lt;/a&gt; has support for Dark Mode.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;how-to-enable-it&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h3&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;android&quot; tabindex=&quot;-1&quot;&gt;Android&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Dark Theme&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;ios&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display and Brightness&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Dark&lt;/strong&gt; option for &lt;strong&gt;Appearance&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;macos&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;General&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Dark&lt;/strong&gt; option for &lt;strong&gt;Appearance&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;windows&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Personalization&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Colors&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Dark&lt;/strong&gt; option for &lt;strong&gt;Choose your default app mode&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;how-to-target-it-in-code&quot; tabindex=&quot;-1&quot;&gt;How to target it in code&lt;/h3&gt;
&lt;p&gt;You can use the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme&quot;&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; media feature&lt;/a&gt; to to target Dark Mode in CSS. In the following example, we set our web page to default to black text on a white background, but update to be white text on a black background when Dark Mode is enabled:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #ffffff&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #000000&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;prefers-color-scheme&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; dark&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #000000&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #ffffff&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;filtered-display-mode&quot; tabindex=&quot;-1&quot;&gt;Filtered Display Mode&lt;/h2&gt;
&lt;p&gt;These modes are used to adjust the colors that come out of a device&#39;s display. There are two types of Filtered Display Mode: Night Mode and Filtered Colors Mode.&lt;/p&gt;
&lt;h3 id=&quot;night-mode&quot; tabindex=&quot;-1&quot;&gt;Night Mode&lt;/h3&gt;
&lt;p&gt;One mode is commonly known as Night Mode. It swaps the intense blue light frequencies with warmer, dimmer colors when activated.&lt;/p&gt;
&lt;p&gt;Some people report that removing these frequencies at night helps them sleep because the blue light frequencies mimic the light of the sun. Other people find the colors more relaxing and cause less strain on their eyes. However, it is important to note that the scientific benefits of this kind of mode are &lt;a href=&quot;https://www.theguardian.com/technology/shortcuts/2019/dec/17/not-such-a-bright-idea-why-your-phones-night-mode-may-be-keeping-you-awake&quot;&gt;still being researched&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It may be helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who want to reduce eye strain,&lt;/li&gt;
&lt;li&gt;and/or who have difficulty sleeping.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of a situation where Night Mode could be useful is checking your email while walking home at night.&lt;/p&gt;
&lt;h4 id=&quot;what-it-affects-1&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h4&gt;
&lt;p&gt;Night Mode will update &lt;strong&gt;all&lt;/strong&gt; UI of the OS that supports it.&lt;/p&gt;
&lt;h4 id=&quot;how-to-enable-it-1&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h4&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h5 id=&quot;android-1&quot; tabindex=&quot;-1&quot;&gt;Android&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Night Light&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;ios-1&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display and Brightness&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Night Shift&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Manually Enable Until Tomorrow&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;macos-1&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Displays&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;Night Shift&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;Turn on until tomorrow&lt;/strong&gt; checkbox.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;windows-1&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Night Light&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;other-alternatives&quot; tabindex=&quot;-1&quot;&gt;Other alternatives&lt;/h5&gt;
&lt;p&gt;&lt;a href=&quot;https://justgetflux.com/&quot;&gt;f.lux&lt;/a&gt; is a third party program available for Windows, Linux, iOS, macOS, and Android.&lt;/p&gt;
&lt;h3 id=&quot;filtered-colors-mode&quot; tabindex=&quot;-1&quot;&gt;Filtered Colors Mode&lt;/h3&gt;
&lt;p&gt;Filtered Colors Mode changes the colors output by the device&#39;s display. Colors can be shifted to use different palettes or removed entirely.&lt;/p&gt;
&lt;p&gt;It is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who are colorblind,&lt;/li&gt;
&lt;li&gt;and/or who have difficulty reading text on the display,&lt;/li&gt;
&lt;li&gt;and/or who want to reduce eye strain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of a situation where Filtered Colors Mode could be useful is writing late at night.&lt;/p&gt;
&lt;h4 id=&quot;what-it-affects-2&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h4&gt;
&lt;p&gt;Filtered Colors Mode will update &lt;strong&gt;all&lt;/strong&gt; UI of the OS that supports it.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;iOS set to a grayscale Filtered Colors Mode.&quot;&gt;
  &lt;img alt=&quot;iOS Safari showing a search for food art on Pinterest.com. All color has been removed from the display. Screenshot.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/filtered-colors-mode.png&quot; /&gt;
  &lt;figcaption&gt;iOS set to a grayscale Filtered Colors Mode.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h4 id=&quot;how-to-enable-it-2&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h4&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h5 id=&quot;android-2&quot; tabindex=&quot;-1&quot;&gt;Android&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Color Correction&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Use color correction&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;li&gt;Select a color filter option from the list that appears.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;ios-2&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display &amp;amp; Text Size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Color Filters&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Color Filters&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;li&gt;Select a color filter option from the list that appears.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;macos-2&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;Color Filters&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;Enable Color Filters&lt;/strong&gt; checkbox.&lt;/li&gt;
&lt;li&gt;Select a color filter option from the select box.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;windows-2&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Ease of Access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Color Filters&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Turn on color filters&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;li&gt;Select a color filter option from the select box.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;increased-contrast-mode&quot; tabindex=&quot;-1&quot;&gt;Increased Contrast Mode&lt;/h2&gt;
&lt;p&gt;This mode is only available on macOS and iOS. It will increase the difference in color values between the gray colors used for the OS visuals, as well as drawing more obvious borders between different UI elements.&lt;/p&gt;
&lt;p&gt;This is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People experiencing low vision conditions,&lt;/li&gt;
&lt;li&gt;and/or who have lower quality displays,&lt;/li&gt;
&lt;li&gt;and/or people who may need the difference between different parts of the OS visuals to be more obvious.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of one of these conditions could be vision-related issues caused by Glaucoma. Here, the increased contrast and borders may help a person who has blurry central vision and a loss of peripheral vision understand the boundaries of different parts of the interface.&lt;/p&gt;
&lt;h3 id=&quot;what-it-affects-3&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;Increased Contrast Mode will update &lt;strong&gt;all&lt;/strong&gt; UI elements for macOS and iOS. &lt;strong&gt;Most&lt;/strong&gt; apps developed by Apple will also support this mode. Third party apps that use Apple’s interface library will also support this mode, but custom, nonstandard UI elements will &lt;strong&gt;not&lt;/strong&gt; be supported. Websites and web apps do &lt;strong&gt;not&lt;/strong&gt; support this mode.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Preview.app comparing regular and Increased Contrast Mode.&quot;&gt;
  &lt;img alt=&quot;A comparison of regular and Increased Contrast Mode UI. The bottom screenshot is Preview in regular mode. The buttons on the app’s toolbar are light gray gradient on a medium gray background. The top screenshot is Preview in Increased Contrast Mode. The buttons on the app’s toolbar are solid white with a black outline. A black outline has also been applied to the overall app window border. Preview is displaying a photo of a Mallard duck.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/increased-contrast-mode.png&quot; /&gt;
  &lt;figcaption&gt;Preview.app comparing regular and Increased Contrast Mode.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;how-to-enable-it-3&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h3&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;ios-3&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display &amp;amp; Text Size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Increase Contrast&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;macos-3&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;Increase contrast&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;inverted-colors-mode&quot; tabindex=&quot;-1&quot;&gt;Inverted Colors Mode&lt;/h2&gt;
&lt;p&gt;When Inverted Colors Mode is activated, the color of every pixel on the screen is reversed. Black becomes white, red becomes turquoise, green becomes purple, etc.&lt;/p&gt;
&lt;p&gt;Because it affects all content displayed on the screen, Inverted Colors Mode can be very helpful in situations where a light-colored interface does not provide Dark Mode support. Here, Inverted Colors Mode can force a bright UI into kind of jury-rigged Dark Mode. Keep in mind that the opposite also applies: A dark UI will turn light if Inverted Colors Mode is active.&lt;/p&gt;
&lt;p&gt;This is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who want to reduce eye strain in a low or no light environment,&lt;/li&gt;
&lt;li&gt;and/or who have certain &lt;a href=&quot;https://webaim.org/articles/visual/lowvision&quot;&gt;low vision&lt;/a&gt; or photosensitive conditions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of one of these conditions could be someone avoiding triggering a migraine by using Inverted Colors Mode to turn a brightly-colored application they need to use for work dark.&lt;/p&gt;
&lt;h3 id=&quot;what-it-affects-4&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;Inverted Colors Mode affects &lt;strong&gt;all&lt;/strong&gt; content displayed on the screen: Operating System UI, first and third party apps, and web content.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Safari will automatically invert images when Inverted Color Mode is activate.&quot;&gt;
  &lt;img alt=&quot;A side-by-side comparison of regular and Inverted Colors Mode. The left screenshot is a Washington Post review of a Hokusai exhibit, including a headline, feature image of Mount Fuji, author photo and intro paragraph. The article’s design uses black text on a white background. The right screenshot is the same article, but with Inverted Colors Mode activated. The article is now white text on a black background.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/inverted-colors.png&quot; /&gt;
  &lt;figcaption&gt;Safari will automatically invert images when Inverted Color Mode is activate.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h4 id=&quot;how-to-enable-it-4&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h4&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;android-3&quot; tabindex=&quot;-1&quot;&gt;Android&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Color Inversion&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;ios-4&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display &amp;amp; Text Size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Smart Invert&lt;/strong&gt; or &lt;strong&gt;Classic Invert&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;macos-4&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;Invert colors&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;windows-3&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Ease of Access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Magnifier&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Invert colors&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Magnifier&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;how-to-target-it-in-code-1&quot; tabindex=&quot;-1&quot;&gt;How to target it in code&lt;/h3&gt;
&lt;p&gt;You can use the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/inverted-colors&quot;&gt;&lt;code&gt;inverted-colors&lt;/code&gt; media feature&lt;/a&gt; to target Inverted Colors Mode in CSS. In the following example, we invert images and video when Inverted Colors Mode is active. This keeps them looking the way they were intended, while allowing the rest of the UI to change:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;inverted-colors&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inverted&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;img,&lt;br /&gt;  video&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;invert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;100%&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;reader-mode&quot; tabindex=&quot;-1&quot;&gt;Reader Mode&lt;/h2&gt;
&lt;p&gt;This mode is a feature found in most web browsers. When activated, it takes the content identified as the primary content of a web page and converts it into a format that is easier to read.&lt;/p&gt;
&lt;p&gt;Part of this easier reading experience involves removing most, if not all the surrounding content. This includes things like headers, footers, sidebars, comments, etc.&lt;/p&gt;
&lt;p&gt;Many Reader Modes also allow the person using it to configure how this content is presented, including preferences for things like background color, text color, font, line height, and line spacing.&lt;/p&gt;
&lt;p&gt;This is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who have certain low vision or photosensitive conditions,&lt;/li&gt;
&lt;li&gt;and/or people who have &lt;a href=&quot;https://webaim.org/articles/motor/&quot;&gt;motor disabilities&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;and/or who have a &lt;a href=&quot;https://webaim.org/articles/cognitive/&quot;&gt;cognitive disability&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;and/or who want a pleasant reading experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of one of these conditions could be someone who has Attention-Deficit/Hyperactivity Disorder (&lt;abbr&gt;ADHD&lt;/abbr&gt;) using Reader Mode to remove distracting animated sidebar features from a news article.&lt;/p&gt;
&lt;h3 id=&quot;what-it-affects-5&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;Reader Mode is only available in certain web browsers, and &lt;strong&gt;may not&lt;/strong&gt; work on every web page you visit. Each version has its own set of specialized checks it uses to determine what the main content of the page is, and if it can be presented.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Firefox’s Reader Mode applied to a blog post.&quot;&gt;
  &lt;img alt=&quot;A side-by-side comparison of regular and Reader Mode. The left screenshot is a blog post from the website Damn Interesting about the Mystery Lake of the Himalayas. It features a headline, author, publish date, feature image of the lake, and intro paragraph. The right screenshot is the same blog post, only viewed in Firefox’s Reader Mode. Damn Interesting’s design has been removed in favor of a simple text presentation.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/reader-mode.png&quot; /&gt;
  &lt;figcaption&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages&quot;&gt;Firefox’s Reader Mode&lt;/a&gt; applied to a blog post.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;how-to-enable-it-5&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h3&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;android-chrome&quot; tabindex=&quot;-1&quot;&gt;Android Chrome&lt;/h4&gt;
&lt;p&gt;Install a &lt;a href=&quot;https://play.google.com/store/apps/collection/cluster?clp=ogosCBEqAggIMiQKHmNvbS5pZGVhc2hvd2VyLnJlYWRpdGxhdGVyLnBybxABGAM%3D:S:ANO1ljK-5Rk&amp;amp;gsr=Ci-iCiwIESoCCAgyJAoeY29tLmlkZWFzaG93ZXIucmVhZGl0bGF0ZXIucHJvEAEYAw%3D%3D:S:ANO1ljIoeUw&amp;amp;hl=en_US&quot;&gt;reading app&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;desktop-chrome&quot; tabindex=&quot;-1&quot;&gt;Desktop Chrome&lt;/h4&gt;
&lt;p&gt;Install a &lt;a href=&quot;https://chrome.google.com/webstore/search/reader%20view&quot;&gt;reader view extension&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;edge&quot; tabindex=&quot;-1&quot;&gt;Edge&lt;/h4&gt;
&lt;p&gt;In the browser’s &lt;strong&gt;Address Bar&lt;/strong&gt;, activate the &lt;strong&gt;Enter Immersive Reader&lt;/strong&gt; button.&lt;/p&gt;
&lt;h4 id=&quot;firefox&quot; tabindex=&quot;-1&quot;&gt;Firefox&lt;/h4&gt;
&lt;p&gt;In the browser’s &lt;strong&gt;Address Bar&lt;/strong&gt;, activate the &lt;strong&gt;Toggle reader view&lt;/strong&gt; button.&lt;/p&gt;
&lt;h4 id=&quot;internet-explorer-11-(windows-8.1-and-up)&quot; tabindex=&quot;-1&quot;&gt;Internet Explorer 11 (Windows 8.1 and up)&lt;/h4&gt;
&lt;p&gt;In the browser’s &lt;strong&gt;Address Bar&lt;/strong&gt;, activate the &lt;strong&gt;Read&lt;/strong&gt; button.&lt;/p&gt;
&lt;h4 id=&quot;ios-safari&quot; tabindex=&quot;-1&quot;&gt;iOS Safari&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;In the browser’s &lt;strong&gt;Address Bar&lt;/strong&gt;, activate the &lt;strong&gt;Text Resizing&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Show Reader View&lt;/strong&gt; option.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;macos-safari&quot; tabindex=&quot;-1&quot;&gt;macOS Safari&lt;/h4&gt;
&lt;p&gt;In the browser’s &lt;strong&gt;Address Bar&lt;/strong&gt;, activate the &lt;strong&gt;Show Reader View&lt;/strong&gt; button.&lt;/p&gt;
&lt;h3 id=&quot;how-to-target-it-in-code-2&quot; tabindex=&quot;-1&quot;&gt;How to target it in code&lt;/h3&gt;
&lt;p&gt;You can use a combination of &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;HTML elements and attributes&lt;/a&gt;, as well as &lt;a href=&quot;https://schema.org/&quot;&gt;Schema.org microdata&lt;/a&gt; to semantically describe the main content of your page. Front end developer Mandy Michael explains this in more detail in her article, &lt;a href=&quot;https://medium.com/@mandy.michael/building-websites-for-safari-reader-mode-and-other-reading-apps-1562913c86c9&quot;&gt;&lt;cite&gt;Building websites for Safari Reader Mode and other reading apps&lt;/cite&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;reduced-motion-mode&quot; tabindex=&quot;-1&quot;&gt;Reduced Motion Mode&lt;/h2&gt;
&lt;p&gt;With this mode, a person can express a preference for animation to be slowed down, or removed entirely.&lt;/p&gt;
&lt;p&gt;It is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who have certain photosensitive conditions,&lt;/li&gt;
&lt;li&gt;and/or who have a cognitive or vestibular disability,&lt;/li&gt;
&lt;li&gt;and/or who want a distraction-free reading experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of one of these conditions could be someone avoiding animations that trigger vertigo.&lt;/p&gt;
&lt;h3 id=&quot;what-it-affects-6&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;Reduced Motion mode affect &lt;strong&gt;all&lt;/strong&gt; OS animations that support it. &lt;strong&gt;Most&lt;/strong&gt; apps developed by the company that creates the operating system will also support Reduced Motion mode. Third party apps, websites, and web apps support this mode &lt;strong&gt;only&lt;/strong&gt; if the people who make it elect to use the special code required to enable it.&lt;/p&gt;
&lt;h3 id=&quot;how-to-enable-it-6&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h3&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;android-4&quot; tabindex=&quot;-1&quot;&gt;Android&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Remove animations&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;ios-5&quot; tabindex=&quot;-1&quot;&gt;iOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Motion&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Reduce Motion&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;macos-5&quot; tabindex=&quot;-1&quot;&gt;macOS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;System Preferences&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;Reduce motion&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;windows-4&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Ease of Access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Display&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Show animations in Windows&lt;/strong&gt; toggle to the &lt;strong&gt;on&lt;/strong&gt; position.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;web-browsers&quot; tabindex=&quot;-1&quot;&gt;Web browsers&lt;/h4&gt;
&lt;p&gt;It is also possible to force most browser-based animations to stop playing via installing specialized browser extensions or JavaScript &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Bookmarklet&quot;&gt;bookmarklets&lt;/a&gt;. Front end developer Scott Vinkle’s &lt;a href=&quot;https://svinkle.github.io/togglific/&quot;&gt;Togglific&lt;/a&gt; is one such way to go about doing this.&lt;/p&gt;
&lt;h3 id=&quot;how-to-target-it-in-code-3&quot; tabindex=&quot;-1&quot;&gt;How to target it in code&lt;/h3&gt;
&lt;p&gt;You can use the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion&quot;&gt;&lt;code&gt;prefers-reduced-motion&lt;/code&gt; media feature&lt;/a&gt; to to target Reduced Motion Mode in CSS. In the following example, we remove CSS animation when Reduced Motion Mode is active:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.my-animated-component&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;animation-duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 250ms&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;animation-iteration-count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; infinite&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;animation-name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; jump-and-bounce&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;prefers-reduced-motion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; reduce&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;.my-animated-component&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;animation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;high-contrast-mode&quot; tabindex=&quot;-1&quot;&gt;High Contrast Mode&lt;/h2&gt;
&lt;p&gt;This mode prioritizes legibility of content above all else. When activated, it maximizes the contrast between OS content and the background it is placed on top of, even at the expense of the appearance of the UI. High Contrast Mode comes with preset color themes, and also allows you to create your own. This allows someone to select combinations of colors that work best for them.&lt;/p&gt;
&lt;p&gt;It is helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who have low vision or photosensitive conditions,&lt;/li&gt;
&lt;li&gt;and/or who are using their device in an environment with very bright light and glare.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example of one of these conditions could be someone with cataracts who wants to stay up to date on social media.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;High Contrast Mode #1 theme.&quot;&gt;
  &lt;img alt=&quot;Screenshot of High Contrast Mode running on Windows 10. A Wikipedia page for Bodiam Castle is in the background, displayed in Internet Explorer 11. In the foreground is a window showing Window’s File Explorer. Content for both the Operating System UI and web content have been updated to display high contrast color values.&quot; src=&quot;https://a11yproject.com/img/posts/operating-system-and-browser-accessibility-display-modes/high-contrast-mode.png&quot; /&gt;
  &lt;figcaption&gt;High Contrast Mode #1 theme.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;what-it-affects-7&quot; tabindex=&quot;-1&quot;&gt;What it affects&lt;/h3&gt;
&lt;p&gt;High Contrast Mode support is a little bit complicated. It is &lt;strong&gt;only&lt;/strong&gt; available for Windows (versions 7 and up). It affects &lt;strong&gt;all&lt;/strong&gt; UI elements of Windows, as well as apps developed by Microsoft. It will also work for &lt;strong&gt;most&lt;/strong&gt; third party apps.&lt;/p&gt;
&lt;p&gt;For web content, High Contrast Mode will &lt;strong&gt;only&lt;/strong&gt; work with Internet Explorer (versions 10 and 11) and Edge (any version) for Windows 7, 8, and 8.1. For Windows 10, High Contrast Mode will work with web content on Internet Explorer and non-Chromium versions of Edge (versions 44.19041 and earlier).&lt;/p&gt;
&lt;p&gt;Most websites will have at least &lt;strong&gt;partial&lt;/strong&gt; support for High Contrast Mode, with support depending on how they are coded.&lt;/p&gt;
&lt;h3 id=&quot;how-to-enable-it-7&quot; tabindex=&quot;-1&quot;&gt;How to enable it&lt;/h3&gt;
&lt;p&gt;Assumes the latest version of each Operating System or browser.&lt;/p&gt;
&lt;h4 id=&quot;windows-5&quot; tabindex=&quot;-1&quot;&gt;Windows&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Ease of Access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;High Contrast&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select a theme from the &lt;strong&gt;Choose a theme&lt;/strong&gt; dropdown and then activate the &lt;strong&gt;Apply&lt;/strong&gt; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;how-to-target-it-in-code-4&quot; tabindex=&quot;-1&quot;&gt;How to target it in code&lt;/h3&gt;
&lt;p&gt;High Contrast Mode will automatically be applied to web content described semantically in HTML. For example, paragraphs of text described using the &lt;code&gt;p&lt;/code&gt; element will automatically update when High Contrast Mode is activated. It will also update the same way if you use the &lt;code&gt;a&lt;/code&gt; element for links, the &lt;code&gt;button&lt;/code&gt; element for actions, the &lt;code&gt;input&lt;/code&gt; element for form controls, etc.&lt;/p&gt;
&lt;p&gt;In situations where the HTML cannot be modified, High Contrast Mode styling can be tweaked. For Internet Explorer versions 10 and 11, you can use the the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/-ms-high-contrast&quot;&gt;&lt;code&gt;-ms-high-contrast&lt;/code&gt; media feature&lt;/a&gt; in CSS. In these situations, you should use a specialized subset of &lt;a href=&quot;https://www.w3.org/TR/2018/REC-css-color-3-20180619/#css2-system&quot;&gt;CSS2 system color keywords&lt;/a&gt;, as High Contrast Mode theme colors are dynamic.&lt;/p&gt;
&lt;p&gt;Edge does not fully support &lt;code&gt;-ms-high-contrast&lt;/code&gt;. Instead, new &lt;a href=&quot;https://www.chromium.org/&quot;&gt;Chromium&lt;/a&gt;-based versions of Edge support the &lt;a href=&quot;https://www.w3.org/TR/css-color-adjust-1/#forced-colors-mode&quot;&gt;&lt;code&gt;forced-colors&lt;/code&gt; media query&lt;/a&gt;. Because of this, it is important to test using both Internet Explorer and Edge to make sure your High Contrast Mode styling work looks the way it is intended to.&lt;/p&gt;
&lt;h2 id=&quot;multiple-modes&quot; tabindex=&quot;-1&quot;&gt;Multiple modes&lt;/h2&gt;
&lt;p&gt;It is possible to have more than one display mode active at the same time. For example, a device could be set to have Reduced Motion Mode, Increased Contrast Mode, and Dark Mode all working in coordination. This is by design, as it lets a person make their device work in a way that is easy and comfortable for them to operate.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>ARIA has perfect support</title>
		<link href="https://a11yproject.com/posts/aria-has-perfect-support/"/>
		<updated>2020-05-13T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/aria-has-perfect-support/</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://a11yproject.com/posts/getting-started-aria/&quot;&gt;Accessible Rich Internet Applications (ARIA)&lt;/a&gt; is an extension of HTML. It is a technology that adds roles, states, and properties that are designed to help with the accessibility of websites and web apps.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;ARIA works by supplementing, adding, removing, or overriding information the browser uses to communicate with assistive technology. For example, adding &lt;code&gt;aria-hidden=&amp;quot;true&amp;quot;&lt;/code&gt; to a HTML element will tell the browser not to report the element, or any of its children to assistive technology.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aria-hidden=&amp;quot;true&amp;quot;&lt;/code&gt; can be useful for situations where you want to remove something that might normally get reported, such as a SVG icon inside a button. If the button already has a text label, removing the icon helps make sure that the experience is easy to understand by removing unnecessary information that would otherwise be exposed by the decorative icon:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;button&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;svg&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-hidden&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;focusable&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;false&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- SVG code --&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;svg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  Save&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ARIA can also be used for interactive controls such as an accordions, tabs, and modals. A thoughtful, skilled application of ARIA can help communicate things like if an accordion panel is in an expanded state, which tab&#39;s corresponding tab panel is currently visible, or what is and is not modal content.&lt;/p&gt;
&lt;p&gt;Nearly all ARIA should be inserted and updated dynamically via JavaScript. Very little of it is “hard coded” into the HTML it is manipulating.&lt;/p&gt;
&lt;p&gt;There are many ways to add ARIA to your website or web app using JavaScript. You can use “vanilla” JavaScript, or specialized frameworks such as &lt;a href=&quot;https://emberjs.com/&quot;&gt;Ember&lt;/a&gt;, &lt;a href=&quot;https://angular.io/&quot;&gt;Angular&lt;/a&gt;, &lt;a href=&quot;https://reactjs.org/&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://vuejs.org/&quot;&gt;Vue&lt;/a&gt;, &lt;a href=&quot;https://svelte.dev/&quot;&gt;Svelte&lt;/a&gt;, etc. ARIA is compatible with all these frameworks because &lt;a href=&quot;https://w3c.github.io/aria/&quot;&gt;it is a standard&lt;/a&gt; they observe.&lt;/p&gt;
&lt;h2 id=&quot;compatibility-issues&quot; tabindex=&quot;-1&quot;&gt;Compatibility issues&lt;/h2&gt;
&lt;p&gt;All web technology has compatibility issues. Compatibility issues are created when there is an interaction between:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The kind of operating system,&lt;/li&gt;
&lt;li&gt;The version of the operating system,&lt;/li&gt;
&lt;li&gt;The kind of browser running on the operating system,&lt;/li&gt;
&lt;li&gt;The version of browser running on the operating system,&lt;/li&gt;
&lt;li&gt;Any modifications a person has made to any of the preceding.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Compatibility issues means there might be discrepancies in how web technology is understood and shown to the person using it. In many cases, it won’t be shown at all.&lt;/p&gt;
&lt;p&gt;ARIA is a web technology. In addition to the issues listed previously, it can also have compatibility issues that come from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The kind of assistive technology being used,&lt;/li&gt;
&lt;li&gt;The version of the assistive technology being used.&lt;/li&gt;
&lt;li&gt;Any modifications a person has made.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Just because you write code that uses ARIA does not mean the ARIA declarations will work as intended. This is the same as expecting modern JavaScript to work on an older browser such as Internet Explorer 11.&lt;/p&gt;
&lt;p&gt;This problem is further complicated in situations where parts of your website or web app use ARIA that relies on different parts of your website or web app that also use ARIA. It can also be affected by &lt;a href=&quot;https://w3c.github.io/aria/#substantive-changes-since-the-last-public-working-draft&quot;&gt;newer ARIA features&lt;/a&gt; interacting with older features.&lt;/p&gt;
&lt;p&gt;Another thing to keep in mind is that many people who use assistive technology &lt;a href=&quot;https://www.nfb.org/blog/firefox-57-and-screen-reader-compatibility&quot;&gt;specifically use older versions of it&lt;/a&gt;. This helps to ensure compatibility issues are kept to a minimum.&lt;/p&gt;
&lt;p&gt;Unlike many other other forms of compatibility issues, assistive technology-related compatibility can completely lock a person out of a digital experience, instead of just annoying them.&lt;/p&gt;
&lt;h2 id=&quot;what-you-can-do-about-it&quot; tabindex=&quot;-1&quot;&gt;What you can do about it&lt;/h2&gt;
&lt;h3 id=&quot;before-you-write-any-code&quot; tabindex=&quot;-1&quot;&gt;Before you write any code&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Check if a complicated interaction can be broken down into simpler parts.&lt;/li&gt;
&lt;li&gt;Observe the &lt;a href=&quot;https://www.w3.org/TR/using-aria/#rule1&quot;&gt;First Rule of ARIA&lt;/a&gt;: If there is an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;existing, relevant HTML element&lt;/a&gt;, use that instead.&lt;/li&gt;
&lt;li&gt;Familiarize yourself with &lt;a href=&quot;https://www.w3.org/TR/using-aria/#second&quot;&gt;the other four rules of ARIA&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;when-writing-code&quot; tabindex=&quot;-1&quot;&gt;When writing code&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;If you have to write ARIA, &lt;a href=&quot;https://a11ysupport.io/&quot;&gt;check its known support&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Use an automated accessibility analysis tool such as &lt;a href=&quot;https://wave.webaim.org/extension/&quot;&gt;WAVE&lt;/a&gt;, &lt;a href=&quot;https://www.deque.com/axe/axe-for-web/&quot;&gt;Axe&lt;/a&gt;, or &lt;a href=&quot;https://www.paciellogroup.com/toolkit/&quot;&gt;ARC&lt;/a&gt; to check for common implementation issues. Be sure to run the analysis with all relevant states (expanded, collapsed, disabled, etc.) triggered.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;after-you-write-code&quot; tabindex=&quot;-1&quot;&gt;After you write code&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Verify that the ARIA you wrote works as intended with a few different kinds of assistive technology.&lt;/li&gt;
&lt;li&gt;Verify that the ARIA you wrote makes sense to &lt;a href=&quot;https://www.makeitfable.com/&quot;&gt;daily assistive technology users&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;should-you-avoid-aria-all-together%3F&quot; tabindex=&quot;-1&quot;&gt;Should you avoid ARIA all together?&lt;/h2&gt;
&lt;p&gt;No. When used responsibly, ARIA helps people who use assistive technology understand the same experiences people browsing without assistive technology do.&lt;/p&gt;
&lt;p&gt;ARIA should be the last tool you pull out of your toolbox, not your first.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Learning common keyboard shortcuts for screen readers</title>
		<link href="https://a11yproject.com/posts/learning-common-keyboard-shortcuts-for-screen-readers/"/>
		<updated>2020-07-24T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/learning-common-keyboard-shortcuts-for-screen-readers/</id>
		<content type="html">&lt;p&gt;Keyboard shortcuts are often presented to us in a list or a table. Lists and tables are great for some people, while others may be overwhelmed from the sheer number of commands to learn. Sometimes a more visual approach could help some people learn these commands.&lt;/p&gt;
&lt;h2 id=&quot;learning-with-a-mind-map&quot; tabindex=&quot;-1&quot;&gt;Learning with a mind map&lt;/h2&gt;
&lt;p&gt;Creating a mind map of keyboard shortcuts can help people to learn those shortcuts easier than in lists and tables.&lt;/p&gt;
&lt;p&gt;A mind map is a diagram that visually organizes information into groups. Shortcuts that belong to one screen reader for example would be visually branched off into a smaller group. Learning groups of shortcuts can be easier than learning individual shortcuts.&lt;/p&gt;
&lt;p&gt;Here&#39;s a mind map of the common keyboard shortcuts in popular screen readers:&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Mindmap of common screenreader commands.&quot;&gt;
  &lt;img alt=&quot;A mind map of common screen reader commands, such as quick keys to navigate by elements, keys for reading content, and reviewing listings of certain elements.&quot; src=&quot;https://a11yproject.com/img/posts/learning-common-keyboard-shortcuts-for-screen-readers/common-keyboard-shortcuts-mindmap.png&quot; /&gt;
  &lt;figcaption&gt;Mindmap of common screenreader commands. &lt;a href=&quot;https://a11yproject.com/img/posts/learning-common-keyboard-shortcuts-for-screen-readers/common-keyboard-shortcuts-mindmap.png&quot;&gt;Larger version.&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The mind map is not an exhaustive listing of screen reader functionality, but shows many of the common commands to help you get a handle on starting out. For example, to learn more about how to &#39;list all landmarks&#39;, you can follow the mapping of branches to the different screen reader software, where the commands will be listed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;List all landmarks -&amp;gt; JAWS -&amp;gt; &lt;kbd&gt;R&lt;/kbd&gt; or ;&lt;/li&gt;
&lt;li&gt;List all landmarks -&amp;gt; NVDA -&amp;gt; &lt;kbd&gt;D&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;List all landmarks -&amp;gt; Narrator -&amp;gt; &lt;kbd&gt;D&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;List all landmarks -&amp;gt; VoiceOver iOS -&amp;gt; Two finger twist (the rotor menu)&lt;/li&gt;
&lt;li&gt;List all landmarks -&amp;gt; TalkBack -&amp;gt; Swipe up then right (the local context menu)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The shortcuts are taken from &lt;a href=&quot;https://dequeuniversity.com/screenreaders/&quot;&gt;Deque on shortcuts and gestures&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;watching-other-people&quot; tabindex=&quot;-1&quot;&gt;Watching other people&lt;/h2&gt;
&lt;p&gt;Looking up videos on how to do those shortcuts can reinforce that learning and trying them out yourself is even better.&lt;/p&gt;
&lt;p&gt;An example of using the &#39;rotor&#39; menu with VoiceOver on iOS is illustrated the following YouTube video: &lt;a href=&quot;https://www.youtube.com/watch?v=yzVHVJoIyKM&quot;&gt;VoiceOver Rotor Gestures - Ballyland Rotor app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The presenter demonstrates the common hand movements to bring up the rotor menu, as well as other interesting ways. &lt;a href=&quot;https://support.apple.com/en-gb/guide/iphone/iph3e2e3a6d/ios#iphaeb063ca0&quot;&gt;Apple recommends&lt;/a&gt; placing two fingers on your device and then rotating them to show the rotor menu, but by watching the video we learn that you can also use other gestures that best suit you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Touching the screen with your thumb and then flicking with your index finger of the same hand, seen at [0:13] until [0:16] in the video&lt;/li&gt;
&lt;li&gt;Touching the screen with one finger on one hand and then using a finger from the other hand to make a dialing movement, seen at [0:17] until [0:24] in the video&lt;/li&gt;
&lt;li&gt;Touching the screen with one finger from each hand and making a virtual dialing movement with both fingers rotating in the same direction, seen at [0:25] until [0:30] in the video&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;learning-with-a-quiz&quot; tabindex=&quot;-1&quot;&gt;Learning with a quiz&lt;/h2&gt;
&lt;p&gt;Other individuals may learn better testing their memory through a quiz. If creating a quiz may be too time consuming, there is a bookmark available on &lt;a href=&quot;https://codepen.io/anevins12/details/xxwwdya&quot;&gt;CodePen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This quiz bookmarklet works on the &lt;a href=&quot;https://dequeuniversity.com/screenreaders/jaws-keyboard-shortcuts&quot;&gt;Deque screen reader shortcut pages&lt;/a&gt;. It replaces shortcuts inside tables into input fields that are ready to fill in. There is no way to submit the quiz to find out the answers, but opening the same page in a new tab can help validate your answers. This bookmarklet can be used on the following pages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dequeuniversity.com/screenreaders/jaws-keyboard-shortcuts&quot;&gt;JAWS Deque screen reader shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dequeuniversity.com/screenreaders/nvda-keyboard-shortcuts&quot;&gt;NVDA Deque screen reader shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dequeuniversity.com/screenreaders/narrator-keyboard-shortcuts&quot;&gt;Narrator Deque screen reader shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dequeuniversity.com/screenreaders/voiceover-keyboard-shortcuts&quot;&gt;VoiceOver Deque screen reader shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Demonstrating the quiz bookmarklet on the &lt;a href=&quot;https://dequeuniversity.com/screenreaders/jaws-keyboard-shortcuts&quot;&gt;JAWS Deque screen reader shortcuts&lt;/a&gt; page:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/learning-common-keyboard-shortcuts-for-screen-readers/quiz-bookmarklet-on-deque-with-jaws-shortcuts.png&quot; alt=&quot;The quiz bookmarklet testing common shortcuts such as, &#39;Stop Reading&#39; and &#39;Start reading continuously from this point.&#39;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In an ideal world we would be using common screen readers daily to help us learn through experience. While these learning techniques can be helpful, they may not be right for everyone.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>An in-depth guide to ARIA roles</title>
		<link href="https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/"/>
		<updated>2020-08-20T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/</id>
		<content type="html">&lt;p&gt;The &lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/&quot;&gt;ARIA specification&lt;/a&gt; is divided into categories of attributes, one of which is Roles, and the other being States &amp;amp; Properties. ARIA roles, which are covered in this article, are generally used to describe elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;that may not exist within HTML,&lt;/li&gt;
&lt;li&gt;which may not have full cross-browser support,&lt;/li&gt;
&lt;li&gt;which may have implementation gaps in screen readers and other assistive technologies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For instance, ARIA roles can be useful in situations where native HTML semantics are not understood in legacy user agents (e.g., browsers).&lt;/p&gt;
&lt;h2 id=&quot;usage&quot; tabindex=&quot;-1&quot;&gt;Usage&lt;/h2&gt;
&lt;p&gt;ARIA roles are added to elements using the &lt;code&gt;role=&amp;quot;&amp;lt;ROLE_TYPE&amp;gt;&amp;quot;&lt;/code&gt; attribute, where &lt;code&gt;ROLE_TYPE&lt;/code&gt; represents the specific role being added. Once an ARIA role is set on an element, it should not be changed, regardless of the state of the element. In some cases, roles have to be paired with the appropriate ARIA state or property. However, this article&#39;s examples have reduced markup to limit the scope to just ARIA roles.&lt;/p&gt;
&lt;p&gt;ARIA roles are broken down into six categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Abstract-roles&quot;&gt;Abstract Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Document-Structure-roles&quot;&gt;Document Structure Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Landmark-Roles&quot;&gt;Landmark Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Live-Region-Roles&quot;&gt;Live Region Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Widget-Roles&quot;&gt;Widget Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11yproject.com/posts/an-indepth-guide-to-aria-roles/#toc_Window-Roles&quot;&gt;Window Roles&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;abstract-roles&quot; tabindex=&quot;-1&quot;&gt;Abstract roles&lt;/h3&gt;
&lt;p&gt;Abstract roles are only intended for use by browsers to help organize and streamline a document. They should not be used by developers writing HTML markup. Doing so will not result in any meaningful information being conveyed to assistive technologies or to users.&lt;/p&gt;
&lt;h3 id=&quot;document-structure-roles&quot; tabindex=&quot;-1&quot;&gt;Document Structure roles&lt;/h3&gt;
&lt;p&gt;Document roles are used to provide a structural description for a section of content. A majority of the available roles in this category resemble available semantic HTML tags and it is recommended to only use them when an appropriate native tag is not available. The roles in this category are also not typically interactive in nature. However, they may be used to contain other roles that are interactive. The following examples of &lt;code&gt;toolbar&lt;/code&gt; and &lt;code&gt;tooltip&lt;/code&gt; roles, serve as good examples of when to use Document Structure roles to provide information to assistive technologies when the equivalent native HTML tag is not available.&lt;/p&gt;
&lt;h4 id=&quot;toolbar-example&quot; tabindex=&quot;-1&quot;&gt;Toolbar example&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;toolbar&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-characteristics&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Bold&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Italic&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Underline&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-alignment&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Left&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Middle&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Right&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;tooltip-example&quot; tabindex=&quot;-1&quot;&gt;Tooltip example&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-describedby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;notifications-desc&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Notifications&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tooltip&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;notifications-desc&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;View and manage notifications&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;View the &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#document_structure_roles&quot;&gt;full list of available Document Structure roles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;landmark-roles&quot; tabindex=&quot;-1&quot;&gt;Landmark Roles&lt;/h3&gt;
&lt;p&gt;Landmark roles identify content areas within a page. They serve as navigational landmarks for the types of content areas that users may be interested in. These content areas include the page&#39;s primary content, collections of navigation links, and search functions to name a few.&lt;/p&gt;
&lt;p&gt;Most Landmark roles are also implicitly exposed via specific Grouping and Sectioning HTML elements. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;banner&lt;/code&gt; role can be associated with the &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; element&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;complementary&lt;/code&gt; role can be associated with the &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt; element&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;contentinfo&lt;/code&gt; role can be associated with the &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to &lt;a href=&quot;https://www.a11yproject.com/posts/aria-landmark-roles/#toc_HTML5-implicit-mappings-of-Landmark-roles&quot;&gt;Quick Tip: ARIA Landmark roles and HTML5 implicit mapping&lt;/a&gt; for more details on the above mappings and browser support for them.&lt;/p&gt;
&lt;h4 id=&quot;navigation-role-example&quot; tabindex=&quot;-1&quot;&gt;Navigation role example&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;nav&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;navigation&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#a&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Dexter&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#b&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Doctor Who&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#c&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Futurama&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;search-role-example&quot; tabindex=&quot;-1&quot;&gt;Search role example&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;search-input&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Search this site&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;search-input&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;submit&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;submit-btn&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;footer-role-example&quot; tabindex=&quot;-1&quot;&gt;Footer role example&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;footer&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;contentinfo&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token entity named-entity&quot; title=&quot;&amp;copy;&quot;&gt;&amp;amp;copy;&lt;/span&gt; 2020 Small Business Ltd. All rights reserved.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;footer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;View the &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#landmark_roles&quot;&gt;full list of available Landmark roles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;live-region-roles&quot; tabindex=&quot;-1&quot;&gt;Live Region Roles&lt;/h3&gt;
&lt;p&gt;Live Region roles are used to inform assistive technologies, such as screen readers, of dynamic changes to page content, so that they can be announced to users. The reason for this is that dynamic changes may be visually noticeable, but likely will be missed by users with low or no vision.&lt;/p&gt;
&lt;h4 id=&quot;alert-role-example&quot; tabindex=&quot;-1&quot;&gt;Alert role example&lt;/h4&gt;
&lt;p&gt;The most commonly used Live Region role is the &lt;code&gt;alert&lt;/code&gt; role.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;alert&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Autosave failed.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When using the &lt;code&gt;alert&lt;/code&gt; role, keep in mind that it should not be a focusable element and it should not require users to close it.&lt;/p&gt;
&lt;p&gt;View the &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#live_region_roles&quot;&gt;full list of available Live Region roles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;widget-roles&quot; tabindex=&quot;-1&quot;&gt;Widget Roles&lt;/h3&gt;
&lt;p&gt;Widget roles are used to describe common interactive patterns or those that currently lack semantic equivalents in HTML. In most cases, these interactive patterns will be JavaScript-driven. Widget roles should not be confused with &lt;code&gt;role=&amp;quot;widget&amp;quot;&lt;/code&gt; which is itself an &lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#isAbstract&quot;&gt;abstract role&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;tabs-role-example&quot; tabindex=&quot;-1&quot;&gt;Tabs role example&lt;/h4&gt;
&lt;p&gt;A common interactive pattern that relies on Widget roles is the very familiar Tabs pattern. Tabs rely on three Widget roles, namely &lt;code&gt;tab&lt;/code&gt;, &lt;code&gt;tabpanel&lt;/code&gt;, and &lt;code&gt;tablist&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tablist&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-label&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Fruits&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-selected&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-controls&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;apples-tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;apples&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Apples&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-selected&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;false&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-controls&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;oranges-tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;oranges&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Oranges&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tabpanel&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;apples-tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;apples&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Apples tab content&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tabpanel&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;oranges-tab&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;oranges&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Oranges tab content&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;tablist&lt;/code&gt; role is a composite Widget role, which means it is a container used to manage other contained widgets. It is used to contain the list of &lt;code&gt;tab&lt;/code&gt; elements, each of which is an interactive element. When a &lt;code&gt;tab&lt;/code&gt; element is activated, it will cause its associated &lt;code&gt;tabpanel&lt;/code&gt; container to display.&lt;/p&gt;
&lt;p&gt;View the &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#widget_roles&quot;&gt;full list of available Widget roles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;window-roles&quot; tabindex=&quot;-1&quot;&gt;Window Roles&lt;/h3&gt;
&lt;p&gt;Window roles are used when creating sub-windows to the primary application or document. A typical example is a modal dialog. The available Window roles are &lt;code&gt;alertdialog&lt;/code&gt; and &lt;code&gt;dialog&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&quot;alertdialog-role-example&quot; tabindex=&quot;-1&quot;&gt;Alertdialog role example&lt;/h4&gt;
&lt;p&gt;An &lt;code&gt;alertdialog&lt;/code&gt; is a dialog that contains an alert message and focus is initially set to an element within the dialog. While the dialog is visible, keyboard and mouse interactions are limited to the elements within the dialog.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;alertdialog&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Confirmation&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Are you sure you want to discard all of your notes?&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;button&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;No&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;button&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Yes&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;dialog-role-example&quot; tabindex=&quot;-1&quot;&gt;Dialog role example&lt;/h4&gt;
&lt;p&gt;A &lt;code&gt;dialog&lt;/code&gt; is a window that separates certain content or UI from the rest of the page. Like the &lt;code&gt;alertdialog&lt;/code&gt; role, elements within the &lt;code&gt;dialog&lt;/code&gt; can receive focus. While &lt;code&gt;alertdialog&lt;/code&gt;s are more often than not modal (confining a user&#39;s interaction to the contents of the alert dialog until it is dismissed), a standard &lt;code&gt;dialog&lt;/code&gt; can be modal or not.  When not modal, people may be able to interact with the contents of the dialog, as well as the primary content of the page, freely.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;dialog&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;dialog-label&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;dialog-label&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Dialog Title&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;This is the dialog content.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Close Dialog&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;View the &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#window_roles&quot;&gt;full list of available Window roles&lt;/a&gt;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Create accessible forms</title>
		<link href="https://a11yproject.com/posts/how-to-write-accessible-forms/"/>
		<updated>2020-09-16T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-to-write-accessible-forms/</id>
		<content type="html">&lt;p&gt;With the world becoming data reliant, it&#39;s no surprise how data is the new gold. With the right data, you can improve peoples&#39; lives, find solutions to problems and so on. There are many ways to capture peoples&#39; data but on the web, forms are your go-to solution.&lt;/p&gt;
&lt;p&gt;Here are some  practical tips on how to write accessible forms.&lt;/p&gt;
&lt;h2 id=&quot;always-label-your-form-inputs&quot; tabindex=&quot;-1&quot;&gt;Always label your form inputs&lt;/h2&gt;
&lt;p&gt;Labels are a great way to get started with writing accessible forms. They are vital for helping people who use &lt;a href=&quot;https://en.wikipedia.org/wiki/Screen_reader&quot;&gt;screen readers&lt;/a&gt; and other kinds of assistive technology determine what label text go with what input field.&lt;/p&gt;
&lt;p&gt;To associate a &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; with an &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, set the identifier(ID) in the &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; to correspond with the &lt;code&gt;for&lt;/code&gt; attribute of the &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;. This is the generally accepted approach.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;firstName&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;First Name&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;firstName&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;firstName&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Do not to nest &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; inside of &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; because some assistive technology (such as &lt;a href=&quot;https://en.wikipedia.org/wiki/Dragon_NaturallySpeaking&quot;&gt;Dragon NaturallySpeaking&lt;/a&gt;) do not support it.&lt;/p&gt;
&lt;h2 id=&quot;highlight-input-element-on-focus&quot; tabindex=&quot;-1&quot;&gt;Highlight input element on focus&lt;/h2&gt;
&lt;p&gt;Form insertion &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/caret#:~:text=A%20caret%20sometimes%20called%20a,is%20called%20the%20insertion%20point.&quot;&gt;carets&lt;/a&gt; can be difficult to track. A simple solution is to highlight &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; on &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:focus&quot;&gt;focus&lt;/a&gt;. This way, people do not have to guess where they are on the form.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-write-accessible-forms/form-field-on-focus.png&quot; alt=&quot;A form with an input field highlighted in blue.&quot; /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;input:focus&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;outline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2px solid royalblue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1px 1px 8px 1px royalblue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;break-long-forms-into-smaller-sections&quot; tabindex=&quot;-1&quot;&gt;Break long forms into smaller sections&lt;/h2&gt;
&lt;p&gt;Filling long forms can be stressful. This is largely true for almost everyone but particularity for people  with &lt;a href=&quot;https://www.cdc.gov/ncbddd/adhd/facts.html&quot;&gt;AD/HD&lt;/a&gt;. Such forms can lead to an increase in &lt;a href=&quot;https://en.wikipedia.org/wiki/Bounce_rate&quot;&gt;Bounce rate&lt;/a&gt; which isn&#39;t what anyone wants. A simple solution is to break them into smaller sections. This helps make long forms less daunting and easier to understand as it is provided in bits.&lt;/p&gt;
&lt;p&gt;The following principles apply for multi-step forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Repeat overall instruction on every page.&lt;/li&gt;
&lt;li&gt;The forms should be split into logical groups.&lt;/li&gt;
&lt;li&gt;The forms should inform the person about the progress thay are making.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; There are no hard rules that defines a long form. However, you should consider if the form can be broken down into different logical sections.&lt;/p&gt;
&lt;h2 id=&quot;provide-error-messages&quot; tabindex=&quot;-1&quot;&gt;Provide error messages&lt;/h2&gt;
&lt;p&gt;When people encounter errors, they may need help to determine what&#39;s wrong and why. A common way forms indicate invalid fields is to change the &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; border color to red which is not ideal. The reason for this is because a change in color alone is not exposed to assistive technologies, so indicating errors in such ways will not inform the person of the error. Also, relying on color alone may also not work for someone who is red/green colorblind.&lt;/p&gt;
&lt;p&gt;The following are ways to effectively and accessibly communicate form errors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Let the person know there is an error.&lt;/li&gt;
&lt;li&gt;Let the person access the error, and provide instructions on how to fix it.&lt;/li&gt;
&lt;li&gt;Allow the person re-submit the form.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the code below, there is an empty &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions&quot;&gt;live region&lt;/a&gt; which report errors to assistive technologies. Additionally, each field is followed by a &lt;em&gt;hint&lt;/em&gt; which is hidden by default but shown if that field does not validate.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;username&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Enter a username&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;username&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;hint hidden&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;usernameHint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Your username cannot contain punctuation&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;email&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Enter your email address&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;email&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;hint hidden&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;emailHint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Please enter a valid email address&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;password&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Enter a password&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;password&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;password&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;hint hidden&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;passwordHint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Your password must be at least 6 characters&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-live&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;assertive&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;message&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;button&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;submit&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Submit&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.hidden&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;.hint&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; red&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If validation errors occur, two things happen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions&quot;&gt;live region&lt;/a&gt; is populated upon form submission, announcing to assistive devices that there are errors.&lt;/li&gt;
&lt;li&gt;Each invalid &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; is given an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-invalid&quot;&gt;&lt;code&gt;aria-invalid=&amp;quot;true&amp;quot;&lt;/code&gt;&lt;/a&gt; attribute and connected to a &lt;strong&gt;hint&lt;/strong&gt; using  an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby&quot;&gt;&lt;code&gt;aria-describedby&lt;/code&gt;&lt;/a&gt; attribute.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&#39;s the markup for the email field in its invalid state:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;label&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;email&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Your email&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;email&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-invalid&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;true&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-describedby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;emailHint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;hint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;emailHint&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Invalid email address.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;avoid-horizontal-form-layout-unless-necessary&quot; tabindex=&quot;-1&quot;&gt;Avoid horizontal form layout unless necessary&lt;/h2&gt;
&lt;p&gt;Layout attributes a great deal  to the usability of a site. With CSS, changing a form&#39;s visual layout is possible. However, changing the visual layout create problems for people who rely on the structural layout of the page. Because of this, your forms should have a meaningful and logical sequence. If possible, avoid making your form inputs next to each other. This is because people have to spend a little more time correlating the labels with their elements, resulting in slower form completion.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;Accessible forms are important because they help both individuals and businesses thrive by making sure they collect data from the widest possible audience. This, in the long run, leads to growth.&lt;/p&gt;
&lt;p&gt;The following are tips on how to create accessible forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Always label your inputs.&lt;/li&gt;
&lt;li&gt;Highlight input element on focus.&lt;/li&gt;
&lt;li&gt;Break long forms into smaller sections.&lt;/li&gt;
&lt;li&gt;Provide error messages.&lt;/li&gt;
&lt;li&gt;Avoid horizontal layout forms unless necessary.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Introduction to the Web Accessibility Initiative</title>
		<link href="https://a11yproject.com/posts/introduction-to-wai/"/>
		<updated>2020-10-02T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/introduction-to-wai/</id>
		<content type="html">&lt;p&gt;The advent of the web brought infinite possibilities. It changed the way we learn, work and socialize because we were no longer limited by real or imagined borders. However there was a problem: Lack of standard guidelines and proper structure. Due to the divergence of individual initiatives the &lt;a href=&quot;https://www.w3.org/WAI/&quot;&gt;Web Accessibility Initiative (&lt;abbr&gt;WAI&lt;/abbr&gt;)&lt;/a&gt; was created.&lt;/p&gt;
&lt;h2 id=&quot;introduction&quot; tabindex=&quot;-1&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;WAI is one of the initiatives created by the &lt;a href=&quot;https://www.w3.org/Consortium/&quot;&gt;World Wide Web Consortium (&lt;abbr&gt;W3C&lt;/abbr&gt;)&lt;/a&gt; as an effort to improve accessibility on the web.&lt;/p&gt;
&lt;p&gt;According to Tim Bernes-Lee, Director of the W3C and inventor of the World Wide Web:&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;Worldwide, there are more than 750 million people with disabilities. As we move towards a highly connected world, it is critical that the web be usable by anyone, regardless of individual capabilities and disabilities.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;abbr&gt;WAI&lt;/abbr&gt; pursues accessibility through the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensuring that web technologies support accessibility.&lt;/li&gt;
&lt;li&gt;Developing guidelines for web content, applications, browsers, and authoring tools.&lt;/li&gt;
&lt;li&gt;Developing tools to evaluate and facilitate accessibility.&lt;/li&gt;
&lt;li&gt;Supporting education and outreach on web accessibility.&lt;/li&gt;
&lt;li&gt;Co-ordinating with research and development that may impact the future of accessibility on the web.&lt;/li&gt;
&lt;li&gt;Promoting harmonized international uptake of web accessibility standards.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;organization&quot; tabindex=&quot;-1&quot;&gt;Organization&lt;/h2&gt;
&lt;p&gt;WAI consists of several &lt;a href=&quot;https://en.wikipedia.org/wiki/Working_group&quot;&gt;working groups&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Special_Interest_Group&quot;&gt;special interest groups&lt;/a&gt;. Each group works on a specific subject, but they are all in the pursuit of a common goal: improving accessibility on the web. The following are the working and special interest groups :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/GL/&quot;&gt;Accessibility Guideline Working Group (formerly the Web Content Accessibility Guidelines Working Group)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/APA/&quot;&gt;Accessible Platform Architectures (APA) Working Group&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/ARIA/&quot;&gt;Accessible Rich Internet Applications (ARIA) Working Group&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/about/groups/eowg/&quot;&gt;Education and Outreach Working Group (EOWG)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/about/groups/waiig/&quot;&gt;WAI Interest Group (WAI IG)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;WAI was created by the &lt;a href=&quot;https://www.w3.org/Consortium/&quot;&gt;W3C&lt;/a&gt; as an effort to improve accessibility on the web. They develop accessibility standards and offer implementation guidance. WAI is made up of several working groups and special interest groups working together for a common goal: improving accessibility for disabled people.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Introduction to WCAG 2.x</title>
		<link href="https://a11yproject.com/posts/wcag2-documents/"/>
		<updated>2020-10-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/wcag2-documents/</id>
		<content type="html">&lt;p&gt;The &lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/wcag/&quot;&gt;&lt;strong&gt;Web Content Accessibility Guidelines&lt;/strong&gt;&lt;/a&gt; (&lt;abbr&gt;WCAG&lt;/abbr&gt;) are web accessibility guidelines published by the &lt;a href=&quot;https://www.w3.org/WAI/about/&quot;&gt;&lt;strong&gt;Web Accessibility Initiative&lt;/strong&gt;&lt;/a&gt; (&lt;abbr&gt;WAI&lt;/abbr&gt;).&lt;/p&gt;
&lt;p&gt;The WCAG&#39;s goal is to provide a single shared standard for web content accessibility that meets the needs of individuals, organizations and governments internationally. Over time, WCAG has produced various versions of the &lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/wcag/&quot;&gt;&lt;strong&gt;Web Content Accessibility Guidelines&lt;/strong&gt;&lt;/a&gt;. WCAG 2.0 was published on 11 December 2008, WCAG 2.1 was published on 5 June 2018. WCAG 2.2 is a W3C working draft as of 5 June 2020.&lt;/p&gt;
&lt;h2 id=&quot;wcag-2.x&quot; tabindex=&quot;-1&quot;&gt;WCAG 2.x&lt;/h2&gt;
&lt;p&gt;WCAG 2.x consists of 12 guidelines. It is organized around four principles which form the acronym &amp;quot;POUR&amp;quot;. They include, but are not limited to:&lt;/p&gt;
&lt;h3 id=&quot;1.-content-must-be-perceivable-(p).&quot; tabindex=&quot;-1&quot;&gt;1. Content must be Perceivable (P).&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Provide a text alternative for all non-text content.&lt;/li&gt;
&lt;li&gt;Provide synchronized alternatives for multimedia (such as captioned video, audio descriptions etc).&lt;/li&gt;
&lt;li&gt;Information and structure must be separate from presentation.&lt;/li&gt;
&lt;li&gt;Make it easy to distinguish foreground information from the background (for example: good color contrast).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2.-interfaces-must-be-operable-(o).&quot; tabindex=&quot;-1&quot;&gt;2. Interfaces must be Operable (O).&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;All functionality must be operable via keyboard.&lt;/li&gt;
&lt;li&gt;Provide users enough time to read and use content.&lt;/li&gt;
&lt;li&gt;Do not design content in a way that is known to cause seizures.&lt;/li&gt;
&lt;li&gt;Provide mechanisms for users to find content, orientate themselves and navigate through it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.-content-and-controls-must-be-understandable-(u).&quot; tabindex=&quot;-1&quot;&gt;3. Content and controls must be Understandable (U).&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Make text content readable and understandable.&lt;/li&gt;
&lt;li&gt;Make the placement and functionality of content predictable.&lt;/li&gt;
&lt;li&gt;Help users avoid and correct mistakes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4.-content-must-be-robust-(r).&quot; tabindex=&quot;-1&quot;&gt;4. Content must be Robust (R).&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support compatibility with current and future user agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;layers-of-guidance&quot; tabindex=&quot;-1&quot;&gt;Layers of guidance&lt;/h2&gt;
&lt;p&gt;The WCAG provides various ways to help authors meet its standard called &lt;a href=&quot;https://www.w3.org/TR/WCAG21/#wcag-2-layers-of-guidance&quot;&gt;&amp;quot;layers of guidance&amp;quot;&lt;/a&gt;. They include the following :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/#text-alternatives&quot;&gt;Guidelines&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/#audio-only-and-video-only-prerecorded&quot;&gt;Success criteria&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;hhttps://www.w3.org/WAI/WCAG21/Understanding/understanding-techniques&quot;&gt;Techniques&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/understanding-techniques#failures&quot;&gt;Common failures&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;guidelines&quot; tabindex=&quot;-1&quot;&gt;Guidelines&lt;/h2&gt;
&lt;p&gt;WCAG 2.x guidelines are categorized into &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/conformance#levels&quot;&gt;3 levels of conformance&lt;/a&gt; in order to meet the needs of different groups and situations. Under each principle, there is a &lt;a href=&quot;https://w3c.github.io/wcag/21/guidelines/&quot;&gt;list of guidelines&lt;/a&gt; that addresses the principles.&lt;/p&gt;
&lt;h2 id=&quot;success-criteria&quot; tabindex=&quot;-1&quot;&gt;Success criteria&lt;/h2&gt;
&lt;p&gt;Under each guideline, there are success criteria that describe specifically what is to be done in order to conform to the standard.  Each success criteria is written as a statement that will be either true or false when specific web content is tested against it.  A convenient &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/&quot;&gt;list of the success criteria&lt;/a&gt; is also provided.&lt;/p&gt;
&lt;h2 id=&quot;techniques&quot; tabindex=&quot;-1&quot;&gt;Techniques&lt;/h2&gt;
&lt;p&gt;The techniques document provides guidance for web authors and evaluators on meeting WCAG 2.1 success criteria. A convenient &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Techniques/&quot;&gt;list of the WCAG 2.1 techniques&lt;/a&gt; can be found here.&lt;/p&gt;
&lt;h2 id=&quot;common-failures&quot; tabindex=&quot;-1&quot;&gt;Common failures&lt;/h2&gt;
&lt;p&gt;These are common mistakes that are considered failures of Success Criteria of WCAG 2.x. A &lt;a href=&quot;https://www.w3.org/TR/WCAG20-TECHS/failures&quot;&gt;comprehensive list of  WCAG 2.x common failures&lt;/a&gt; is also provided.&lt;/p&gt;
&lt;h2 id=&quot;what&#39;s-new%3F&quot; tabindex=&quot;-1&quot;&gt;What&#39;s new?&lt;/h2&gt;
&lt;p&gt;WCAG 2.1 is the current standard. It was initiated with the aim of improving accessibility guidance for three major groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People with cognitive or learning disabilities,&lt;/li&gt;
&lt;li&gt;People with low vision, and&lt;/li&gt;
&lt;li&gt;People with disabilities on mobile devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are additional success criteria in WCAG 2.1 that are not in WCAG 2.0. They are introduced in &lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/wcag/new-in-21/&quot;&gt;What’s New in WCAG 2.1&lt;/a&gt;. For a detailed  review of WCAG 2.1 , see &lt;a href=&quot;https://www.w3.org/TR/WCAG21/&quot;&gt;Web Content Accessibility Guidelines (WCAG) 2.1&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;While WCAG 2.0 remains a W3C recommendation, the W3C advises the use of WCAG 2.1 in order to maximize future applicability of accessibility efforts.&lt;/p&gt;
	&lt;footer&gt;
		&lt;cite&gt;&lt;a href=&quot;https://www.w3.org/TR/WCAG21/#abstract/&quot;&gt;Web Content Accessibility Guidelines (WCAG) 2.1 - W3C&lt;/a&gt;&lt;/cite&gt;
	&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;In effect, the  publication of WCAG 2.1 does not nullify WCAG 2.0 as content that conforms to WCAG 2.0 also conforms to WCAG 2.1.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;The following are important points to remember:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WCAG is a set of accessibility guidelines published by WAI.&lt;/li&gt;
&lt;li&gt;WCAG 2.0 and WCAG 2.1 are stable, referenceable technical standards.&lt;/li&gt;
&lt;li&gt;They have 12-13 guidelines that are organized under 4 principles: perceivable, operable, understandable, and robust.&lt;/li&gt;
&lt;li&gt;Content that conforms to WCAG 2.0  is also compatible with  WCAG 2.1.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Enabling keyboard culture with No Mouse Days</title>
		<link href="https://a11yproject.com/posts/no-mouse-days/"/>
		<updated>2020-10-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/no-mouse-days/</id>
		<content type="html">&lt;p&gt;Wouldn’t it be great if designers and developers tested their digital experiences for keyboard accessibility on the regular? And by extension, screen reader accessibility? That’s where the #NoMouse challenge and No Mouse Days come in.&lt;/p&gt;
&lt;p&gt;The DO-IT Center at University of Washington originally started the &lt;a href=&quot;https://nomouse.org/&quot;&gt;No Mouse challenge&lt;/a&gt;, complete with its own website, logo, and &lt;a href=&quot;https://twitter.com/hashtag/nomouse&quot;&gt;hashtag&lt;/a&gt; to spread awareness about the need for keyboard-accessible websites and applications.&lt;/p&gt;
&lt;p&gt;The challenge is pretty straight-forward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Step 1. Use the Web without a mouse.&lt;/strong&gt;&lt;br /&gt;
Can you access all features? Can you reach and operate all interactive controls? Can you easily tell where you are on the page?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 2. Learn more about accessible web design.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 3. Spread the Word!&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Building on that initiative came &lt;a href=&quot;https://npmjs.com/package/no-mouse-days&quot;&gt;No Mouse Days&lt;/a&gt;, an npm package that disables the mouse cursor on web pages with CSS. It started as a cheeky joke, and then it actually became &lt;a href=&quot;https://twitter.com/MiriSuzanne/status/1184142272968953856&quot;&gt;popular&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea of No Mouse Days was to make it easy to hide the mouse cursor so it would become extremely obvious when a user interface didn’t support the keyboard, perhaps disabling it automatically for front-end development one day a week. If you have further ideas for No Mouse Days or other culture-changing techniques, contributions are always welcome on &lt;a href=&quot;https://github.com/marcysutton/no-mouse-days&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/marcysutton&quot;&gt;Twitter&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;No matter how you go about it, establishing a mouse-free development day at least once a week could work wonders for people who can’t use a mouse at all. You might find interactive controls that aren’t actually interactive for large segments of the population and lacking visible focus outlines which make keyboard navigation difficult.&lt;/p&gt;
&lt;p&gt;Surfacing issues with keyboard-support early and often will give teams something to react to, and hopefully dedicated tooling and processes can make it second nature through more inclusive design and development.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with VoiceOver on iOS</title>
		<link href="https://a11yproject.com/posts/getting-started-with-voiceover-ios/"/>
		<updated>2020-11-23T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-with-voiceover-ios/</id>
		<content type="html">&lt;p&gt;VoiceOver is a screen-reading tool built into Apple Inc.&#39;s iOS. It helps people navigate and use their iPhone without needing to see the screen. First introduced in 2009 with the iPod Shuffle and iPhone 3GS, VoiceOver has been in the picture in every Apple&#39;s iOS release ever since.&lt;/p&gt;
&lt;p&gt;For developers, it is always a good idea to test out VoiceOver with your project on your chosen testing device.&lt;/p&gt;
&lt;p&gt;There is also VoiceOver for macOS - a separate screen reader from VoiceOver iOS. If interested, you can check out &lt;a href=&quot;https://www.a11yproject.com/posts/getting-started-with-voiceover/&quot;&gt;Mat Marquis&#39;s detailed guide to macOS VoiceOver&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id=&quot;how-does-voiceover-work%3F&quot; tabindex=&quot;-1&quot;&gt;How does VoiceOver work?&lt;/h2&gt;
&lt;p&gt;On an iPhone, VoiceOver responds to gestures (single tap, double tap, et cetera) and audibly communicates to us all the information we need to know (for example, what we have selected or done, the hints, values and traits of the items).&lt;/p&gt;
&lt;h2 id=&quot;how-to-start-using-voiceover-on-ios&quot; tabindex=&quot;-1&quot;&gt;How to start using VoiceOver on iOS&lt;/h2&gt;
&lt;p&gt;The easiest way to turn on VoiceOver on your iPhone is to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings app on your iPhone.&lt;/li&gt;
&lt;li&gt;Select Accessibility.&lt;/li&gt;
&lt;li&gt;Under Vision, select VoiceOver.&lt;/li&gt;
&lt;li&gt;Turn on VoiceOver.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can also make it easier to activate/deactivate VoiceOver and use it frequently, by adding an Accessibility Shortcut:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings app on your iPhone.&lt;/li&gt;
&lt;li&gt;Select Accessibility.&lt;/li&gt;
&lt;li&gt;Under General, select Accessibility Shortcut.&lt;/li&gt;
&lt;li&gt;Select VoiceOver.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then you can toggle VoiceOver feature on or off by triple clicking the side button (on iPhone X or later). If it is an earlier version of iPhone, triple click the Home button.&lt;/p&gt;
&lt;p&gt;You can also ask Siri to turn on VoiceOver on or off instantly by saying &amp;quot;Hey Siri, turn on VoiceOver!&amp;quot; or &amp;quot;Hey Siri, turn off VoiceOver!&amp;quot;.&lt;/p&gt;
&lt;h2 id=&quot;basic-voiceover-gestures&quot; tabindex=&quot;-1&quot;&gt;Basic VoiceOver gestures&lt;/h2&gt;
&lt;p&gt;Here are some common gestures you can use to navigate our iPhone with VoiceOver:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gesture&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Touch the screen anywhere&lt;/td&gt;
&lt;td&gt;Hear an item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drag finger on screen&lt;/td&gt;
&lt;td&gt;Explore items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quickly flick left or right with one finger&lt;/td&gt;
&lt;td&gt;Locate items or apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double tap&lt;/td&gt;
&lt;td&gt;Select and activate app, link or button&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Triple tap&lt;/td&gt;
&lt;td&gt;Double tap items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tap once with two fingers&lt;/td&gt;
&lt;td&gt;Pause VoiceOver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swipe up from bottom edge (ends with a haptic response and sound)&lt;/td&gt;
&lt;td&gt;Return to Home&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swipe up from bottom edge and keep dragging upward (ends with a second haptic response and higher pitched sound)&lt;/td&gt;
&lt;td&gt;Bring up App Switcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flick left or right with three fingers&lt;/td&gt;
&lt;td&gt;Move through pages in App Switcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flick up with three fingers&lt;/td&gt;
&lt;td&gt;Force close an app while in App Switcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swipe down from top edge of screen&lt;/td&gt;
&lt;td&gt;Open Control Center&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swipe up from bottom edge of screen&lt;/td&gt;
&lt;td&gt;Quit Control Center&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For a more comprehensive list of gestures, check out &lt;a href=&quot;https://support.apple.com/en-ca/guide/iphone/iph3e2e2281/ios&quot;&gt;Apple&#39;s official VoiceOver guide&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id=&quot;voiceover-rotor&quot; tabindex=&quot;-1&quot;&gt;VoiceOver Rotor&lt;/h2&gt;
&lt;p&gt;VoiceOver Rotor helps us change how VoiceOver works to suit our needs, whether it is adjusting the volume or speaking rate, selecting Braille Screen Input or more.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;VoiceOver Rotor on iOS&quot;&gt;
  &lt;img alt=&quot;iOS VoiceOver Rotor showing a list of settings on The A11Y Project&#39;s homepage on mobile.&quot; src=&quot;https://a11yproject.com/img/posts/getting-started-with-voiceover-ios/voiceover-ios-rotor.jpg&quot; /&gt;
  &lt;figcaption&gt;VoiceOver Rotor on iOS&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ol&gt;
&lt;li&gt;When VoiceOver is on, you can open VoiceOver Rotor by rotating two fingers on the screen as if you are turning a dial. Alternatively, you can drag up one finger from one hand and drag down another finger from the other hand.&lt;/li&gt;
&lt;li&gt;Keep rotating the Rotor and hear the settings being read aloud until you get the one you want.&lt;/li&gt;
&lt;li&gt;Finally, swipe one finger up or down to use the setting.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, you can read The A11Y Project&#39;s webpage on mobile via headings. First, you rotate the Rotor and stop at Headings setting. Then you swipe one finger up and down to read the webpage headings by headings.&lt;/p&gt;
&lt;p&gt;Have fun trying out VoiceOver!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Designing accessible animation</title>
		<link href="https://a11yproject.com/posts/design-accessible-animation/"/>
		<updated>2020-12-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/design-accessible-animation/</id>
		<content type="html">&lt;p&gt;Animation is used in digital products in many ways, such as drawing a user’s focus to a particular area on the screen, providing another layer to a brand’s style with unique and ownable motion design, and adding a spark of unexpected fun to an otherwise robotic interaction.&lt;/p&gt;
&lt;p&gt;But designing animation that surprises and delights accessibly is trickier than it sounds.&lt;/p&gt;
&lt;p&gt;Dizziness, nausea, disorientation, migraines, and even seizures can all be caused by well-executed yet inaccessible motion design. Because of this, it is critical to design your animation with both aesthetics and accessibility in mind.&lt;/p&gt;
&lt;p&gt;Consider parallaxing—large-scale animation where the foreground and background slide past each other at different speeds—and primary navigation based on horizontal scrolling. These effects, especially when dramatic, can trigger the symptoms mentioned earlier.&lt;/p&gt;
&lt;p&gt;Animations inherently carry a lot of visual and cognitive weight, so always take into account how the user will be viewing it. Desktop screens are interacted with at a greater distance than handheld devices, therefore any animation should be responsive to avoid overwhelming or distracting users from anything essential. Users with cognitive and learning disabilities may especially appreciate this.&lt;/p&gt;
&lt;p&gt;Next, rein in the animations. Endlessly looping animations at any size can be more disorienting than delightful. Specifying the number of cycles it will play, limiting the duration that it plays, or having the animation paused by default will ensure its accessibility. Another way to handle this is by designing controllers that allow the user to &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html&quot;&gt;pause, stop, or hide&lt;/a&gt; the animation altogether.&lt;/p&gt;
&lt;p&gt;While it’s essential that accessible animation starts at the design level, there are additional ways developers can implement these tips behind the scenes. We’ve included some links to help show you how.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use the &lt;code&gt;tabindex&lt;/code&gt; attribute</title>
		<link href="https://a11yproject.com/posts/how-to-use-the-tabindex-attribute/"/>
		<updated>2021-01-28T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-to-use-the-tabindex-attribute/</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex&quot;&gt;&lt;code&gt;tabindex&lt;/code&gt; is a global attribute&lt;/a&gt; that allows an HTML element to receive focus. It needs a value of zero or a negative number in order to work in an accessible way.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;tabindex&lt;/code&gt;’s value is set to zero or a positive number, the element can be navigated to via the keyboard’s &lt;kbd&gt;Tab&lt;/kbd&gt; key. When it is set to a negative number, its element can be programmatically focused via JavaScript.&lt;/p&gt;
&lt;h2 id=&quot;common-mistakes&quot; tabindex=&quot;-1&quot;&gt;Common mistakes&lt;/h2&gt;
&lt;p&gt;Unfortunately, the &lt;code&gt;tabindex&lt;/code&gt;  attribute is often misunderstood and consequently misused. Following are some common examples of &lt;code&gt;tabindex&lt;/code&gt; use that have a negative impact on accessibility:&lt;/p&gt;
&lt;h3 id=&quot;using-a-positive-tabindex-value&quot; tabindex=&quot;-1&quot;&gt;Using a positive &lt;code&gt;tabindex&lt;/code&gt; value&lt;/h3&gt;
&lt;p&gt;Using &lt;code&gt;tabindex&lt;/code&gt; with a value of &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, etc. places the element the &lt;code&gt;tabindex&lt;/code&gt; is applied first in the keyboard tabbing order. This can &lt;a href=&quot;https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html&quot;&gt;create a confusing experience&lt;/a&gt; for anyone who relies on the keyboard’s &lt;kbd&gt;Tab&lt;/kbd&gt; key to navigate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/positive-value.png&quot; alt=&quot;Two code examples, one labeled “don&#39;t,” the other labeled “do.” The example labeled “don&#39;t” shows using a declaration of tabindex=&#39;16&#39; on a paragraph containing 3 links. The example labeled “do” removes the tabindex declaration.&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;setting-a-manual-tab-order&quot; tabindex=&quot;-1&quot;&gt;Setting a manual tab order&lt;/h3&gt;
&lt;p&gt;You don’t need to manually set tab order for every page or view on a website or web app. Not only is this extra, unnecessary work that is difficult to maintain, it may deviate from someone’s expected or desired way to navigate. This results an annoying, confusing, and potentially inaccessible experience.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/manual-tab-order.png&quot; alt=&quot;Two code examples, one labeled “don&#39;t,” the other labeled “do.” The example labeled “don&#39;t” shows three button elements labeled “Save,” “Cancel,” and “Discard.” Each button has a tabindex declared on it, with a tabindex value of 1 for Save, a tabindex value of 2 for Cancel, and a tabindex value of 3 for Discard. The example labeled “do” removes the tabindex declarations.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Instead, use appropriate interactive elements (&lt;code&gt;a&lt;/code&gt; for links, &lt;code&gt;button&lt;/code&gt; for buttons, etc.) and put them in the reading order of the document. Interactive elements come with native browser behavior already built in that allows them to be navigated to via &lt;kbd&gt;Tab&lt;/kbd&gt; without the need for a &lt;code&gt;tabindex&lt;/code&gt; declaration.&lt;/p&gt;
&lt;h3 id=&quot;making-non-interactive-elements-focusable&quot; tabindex=&quot;-1&quot;&gt;Making non-interactive elements focusable&lt;/h3&gt;
&lt;p&gt;There is a myth that applying &lt;code&gt;tabindex=&amp;quot;0&amp;quot;&lt;/code&gt; to non-interactive elements (paragraphs, headings, lists, etc.) helps “improve” accessibility by providing a way for a person who uses a screen reader to focus on all the content present in a webpage or web app. Unfortunately, this well-intentioned idea actually does not create a good assistive technology experience.&lt;/p&gt;
&lt;p&gt;In the same way that you don’t need to add a &lt;code&gt;tabindex&lt;/code&gt; attribute declaration to native interactive elements, you also don’t need to add a &lt;code&gt;tabindex&lt;/code&gt; attribute to non-interactive elements for them to work with assistive technologies.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/non-interactive-interactive.png&quot; alt=&quot;Two code examples, one labeled “don&#39;t,” the other labeled “do.” The example labeled “don&#39;t” shows using a declaration of tabindex=&#39;0&#39; on a paragraph element. The example labeled “do” removes the tabindex declaration.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The reason for this is that assistive technologies such as screen readers have other, expected ways of &lt;a href=&quot;https://tink.uk/the-difference-between-keyboard-and-screen-reader-navigation/&quot;&gt;navigating through, and consuming this content&lt;/a&gt;. Because of this, adding a &lt;code&gt;tabindex&lt;/code&gt; attribute to non-interactive elements creates a few problems. It:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds confusion about what is and what is not actually interactive, especially if you cannot see the screen.&lt;/li&gt;
&lt;li&gt;Requires extra work for people using keyboards to navigate (and in particular, people who use keyboards who are &lt;strong&gt;not&lt;/strong&gt; using assistive technologies), especially those who have have a &lt;a href=&quot;https://webaim.org/articles/motor/motordisabilities&quot;&gt;motor control disability&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;May not announce the element’s &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html&quot;&gt;name and role&lt;/a&gt;, which creates additional confusion about what the element is, how it is supposed to work, and whether or not it has been coded properly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;tabindex-declared-on-a-non-interactive-element-nested-inside-of-an-interactive-element&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;tabindex&lt;/code&gt; declared on a non-interactive element nested inside of an interactive element&lt;/h3&gt;
&lt;p&gt;You do not need to declare &lt;code&gt;tabindex&lt;/code&gt; on a child element, provided its parent element is an interactive element. An example of this would be a &lt;code&gt;span&lt;/code&gt; element nested inside of a &lt;code&gt;button&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/nested-tab-stop.png&quot; alt=&quot;Two code examples, one labeled “don&#39;t,” the other labeled “do.” The example labeled “don&#39;t” shows a button element that contains two span elements. The first span element wraps the text, “Submit order” and has a declaration of tabindex=&#39;0&#39; applied to it. The second span element wraps the text, “Your order will be securely processed.” The example labeled “do” removes the tabindex declaration.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The presence of the &lt;code&gt;tabindex&lt;/code&gt; attribute in this code example would affect the order of interactive elements in an illogical way. This creates an annoying and potentially confusing experience for people using keyboards or assistive technology.&lt;/p&gt;
&lt;h2 id=&quot;acceptable-uses-for-tabindex&quot; tabindex=&quot;-1&quot;&gt;Acceptable uses for &lt;code&gt;tabindex&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following are some of the more common cases where you do need to use &lt;code&gt;tabindex&lt;/code&gt;. In these scenarios it enables the content to be accessible.&lt;/p&gt;
&lt;h3 id=&quot;interactive-javascript-widgets-and-charts&quot; tabindex=&quot;-1&quot;&gt;Interactive JavaScript widgets and charts&lt;/h3&gt;
&lt;p&gt;Declarations of &lt;code&gt;tabindex=&amp;quot;-1&amp;quot;&lt;/code&gt; can sometimes be found on interactive widgets and &lt;a href=&quot;https://w3c.github.io/aria/#managingfocus&quot;&gt;components that manage focus internally&lt;/a&gt;, such as &lt;a href=&quot;https://www.w3.org/TR/2017/REC-wai-aria-1.1-20171214/#combobox&quot;&gt;comboboxes&lt;/a&gt; or &lt;a href=&quot;https://www.w3.org/TR/wai-aria/#tree&quot;&gt;trees&lt;/a&gt;, as it allows JavaScript to focus on the element via &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus&quot;&gt;the &lt;code&gt;focus()&lt;/code&gt; method&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/interactive-chart.png&quot; alt=&quot;A basic line graph with a small circle to indicate each data point. One of the points has a larger circle and a label of “82.76%.”&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;scrollable-overflow-containers&quot; tabindex=&quot;-1&quot;&gt;Scrollable overflow containers&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;tabindex=&amp;quot;0&amp;quot;&lt;/code&gt; should be applied to any non-interactive element that has had &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/overflow&quot;&gt;CSS’ &lt;code&gt;overflow&lt;/code&gt; property&lt;/a&gt; applied to it. This will allow people using a keyboard to navigate to, and scroll around the overflowed content.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/scrollable-overflow-container.png&quot; alt=&quot;A basic overflow container embedded in a webpage about creating an account. The container is titled “Terms of Service” and contains boilerplate terms of service information. A basic scrollbar is also present, indicating overflow content.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You will also need to provide:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A label that concisely describes the contents placed within the non-interactive element. The label can either be provided by:
&lt;ol&gt;
&lt;li&gt;An &lt;code&gt;id&lt;/code&gt;/&lt;code&gt;aria-labelledby&lt;/code&gt; association if it has a visible heading, or&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;aria-label&lt;/code&gt;, if not.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;A way to specify what the content contains semantically. This can be provided by:
&lt;ol&gt;
&lt;li&gt;An applicable &lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices/examples/landmarks/HTML5.html&quot;&gt;sectioning element&lt;/a&gt;, or&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;https://www.a11yproject.com/posts/aria-landmark-roles/&quot;&gt;Landmark Role&lt;/a&gt; if the content is important enough that people need a quick and easy way to return to it.&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#group&quot;&gt;&lt;code&gt;group&lt;/code&gt; role&lt;/a&gt; can also be used if there isn’t a need for quick access.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;terms-of-service&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;group&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;tabindex&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token special-attr&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token value css language-css&quot;&gt;&lt;span class=&quot;token property&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; auto&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 15rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;terms-of-service&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Terms of Service&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  …&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This satisfies &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/name-role-value&quot;&gt;WCAG criterion 4.1.2: Name, Role, Value&lt;/a&gt;. It allows people to scroll using a keyboard, as well as providing an indication on why they should scroll, and what content they can expect to find within.&lt;/p&gt;
&lt;h3 id=&quot;when-there-is-not-an-applicable-html-element&quot; tabindex=&quot;-1&quot;&gt;When there is not an applicable HTML element&lt;/h3&gt;
&lt;p&gt;Interactive controls that don’t have a relevant HTML element need a declaration of &lt;code&gt;tabindex=&amp;quot;0&amp;quot;&lt;/code&gt;. An example of this would be a &lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices-1.2/examples/listbox/listbox-grouped.html&quot;&gt;listbox&lt;/a&gt;, a widget that “&lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices-1.2/#Listbox&quot;&gt;presents a list of options and allows a user to select one or more of them&lt;/a&gt;.”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-use-the-tabindex-attribute/listbox.png&quot; alt=&quot;A basic listbox with a label that reads “Choose your favorite avocado.” There are two categories displayed for the listbox, “A Cultivars” and “B Cultivars.” Each category contains specific avocado cultivar names, with the last option partially obscured to indicate more content is present. A basic scrollbar is present, indicating overflow content.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Hopefully this provides enough information to treat &lt;code&gt;tabindex&lt;/code&gt; in a responsible, accessible way.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Text resizing in iOS and Android</title>
		<link href="https://a11yproject.com/posts/text-resizing-in-ios-and-android/"/>
		<updated>2021-01-28T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/text-resizing-in-ios-and-android/</id>
		<content type="html">&lt;p&gt;When you&#39;re designing for mobile, it&#39;s important to remember that some people will need to change the size of the content to read it easily.&lt;/p&gt;
&lt;p&gt;There are so many ways to view content on mobile devices, from zooming in to orienting the screen differently, so a failure to design in a dynamic environment can lead to accessibility issues. There are different ways you can attend to this, whether you&#39;re writing an app for iOS or Android.&lt;/p&gt;
&lt;h2 id=&quot;considerations-for-ios&quot; tabindex=&quot;-1&quot;&gt;Considerations for iOS&lt;/h2&gt;
&lt;p&gt;In iOS, users can use &lt;a href=&quot;https://support.apple.com/guide/iphone/zoom-iph3e2e367e/ios&quot;&gt;Full Screen Zoom or Window Zoom&lt;/a&gt; to magnify parts of the screen. To allow them to resize the type, use &lt;a href=&quot;https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/typography/#dynamic-type-sizes&quot;&gt;dynamic type&lt;/a&gt;, which enables your app&#39;s type to be resized.&lt;/p&gt;
&lt;p&gt;If you manually limit how large your text scales it may cause issues for people who need a bigger font. You want the text to scale dynamically instead of stopping at the point you set, because that size may still not be visible to all people.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://uxdesign.cc/guide-for-designing-better-mobile-apps-typography-5796495ef86f&quot;&gt;Minimum font-size&lt;/a&gt; for body text should be 17pt.&lt;/p&gt;
&lt;h2 id=&quot;considerations-for-android&quot; tabindex=&quot;-1&quot;&gt;Considerations for Android&lt;/h2&gt;
&lt;p&gt;You can use a &lt;a href=&quot;https://developer.android.com/studio/run/emulator&quot;&gt;tool called the Android Emulator&lt;/a&gt; to preview how your app works in the context of different android devices. This can help you stay aware of how people who use different types of androids experience your app.&lt;/p&gt;
&lt;p&gt;Again, users can only zoom in on specified areas, so you&#39;ll need to use &lt;a href=&quot;https://web.archive.org/web/20160507221349/https://www.pixel-ruler.net/android-scale-independent-pixel&quot;&gt;scale-independent pixels&lt;/a&gt; to determine the size of your text.&lt;/p&gt;
&lt;p&gt;There isn&#39;t a tool like Dynamic Type in Android, so you&#39;ll need to scale the text at different sizes yourself. Material design &lt;a href=&quot;https://material.io/design/typography/the-type-system.html#type-scale&quot;&gt;has a resource&lt;/a&gt; that makes a good starting point.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://uxdesign.cc/guide-for-designing-better-mobile-apps-typography-5796495ef86f&quot;&gt;Minimum font-size&lt;/a&gt; for body text should be 16sp:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;android: textSize=16sp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You&#39;ll also want to remember to make your &lt;a href=&quot;https://medium.com/mesmerhq/designing-accessible-text-for-android-variable-font-and-screen-sizes-392fd386aea5&quot;&gt;content container scrollable&lt;/a&gt;. If it&#39;s not, you&#39;ll just cut off the extra content when a person zooms in.&lt;/p&gt;
&lt;p&gt;Also consider that apps may contain HTML views. There are a couple things to keep in mind here for accessibility as well.&lt;/p&gt;
&lt;h2 id=&quot;html&quot; tabindex=&quot;-1&quot;&gt;HTML&lt;/h2&gt;
&lt;p&gt;In your HTML, make sure to use relative units for responsive design. Here&#39;s &lt;a href=&quot;https://thecssworkshop.com/lessons/relative-units&quot;&gt;a resource from The CSS Layout Workshop&lt;/a&gt; for applying them to your HTML via CSS. If you don&#39;t use relative units, people could end up having to use horizontal and vertical scrolling to view content, &lt;a href=&quot;https://www.w3.org/TR/WCAG21/#reflow&quot;&gt;which violates WCAG 1.4.10&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that a person&#39;s pinch-to-zoom capability will be frustrated on mobile &amp;lt; iOS10 if you add &lt;code&gt;maximum-scale=1.0&lt;/code&gt; to the &lt;code&gt;meta&lt;/code&gt; element. This could &lt;a href=&quot;https://www.a11yproject.com/posts/never-use-maximum-scale/&quot;&gt;force a person to view your content without zooming&lt;/a&gt;, which could make that content unviewable to them.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Dyslexia fonts</title>
		<link href="https://a11yproject.com/posts/dyslexia-fonts/"/>
		<updated>2021-02-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/dyslexia-fonts/</id>
		<content type="html">&lt;p&gt;Dyslexia is a &lt;a href=&quot;https://www.nicklauschildrens.org/conditions/phonological-process-disorders&quot;&gt;Phonological Processing disorder&lt;/a&gt;. This means it is an issue with language processing, not vision.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    Dyslexia is a slight disorder of the brain that causes difficulty in reading and spelling, for example, but does not affect intelligence.
  &lt;/p&gt;
    &lt;footer&gt;
    &lt;cite&gt;&lt;a href=&quot;https://www.oxfordlearnersdictionaries.com/definition/english/dyslexia?q=dyslexia&quot;&gt;Dyslexia - Oxford Advanced Learner&#39;s Dictionary&lt;/a&gt;&lt;/cite&gt;
	&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dyslexia affects about 1 in 5 people worldwide. Its symptoms range in severity from mild to extreme. It causes your brain to transpose letters, numbers, punctuation, and other characters, which affects your ability to read. This means that making Dyslexic-friendly fonts and typography choices are important things to consider.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;When designing fonts, some typographers flip and rotate one character to form other characters. Letters b, p, d and q are usually created using this method. This is because it makes it easier to make the font.&lt;/p&gt;
&lt;p&gt;However, this practice may cause problems for people with Dyslexia. It can make some letters, numbers, punctuation, and other characters become indistinguishable. This can make it easy to confuse one character for another. As a result, people with Dyslexia may prefer fonts where all the characters are unique.&lt;/p&gt;
&lt;h2 id=&quot;the-questionable-utility-of-dyslexic-fonts%3F&quot; tabindex=&quot;-1&quot;&gt;The questionable utility of Dyslexic fonts?&lt;/h2&gt;
&lt;p&gt;Dyslexia fonts are typefaces designed so that each character is unique and distinguishable. Dyslexia fonts also make each character unique by using thicker lines in some parts of the letters, as well as slanting them a bit. They are intended to help people with Dyslexia.&lt;/p&gt;
&lt;p&gt;According to recent studies, it has been proven that Dyslexia fonts do &lt;strong&gt;not&lt;/strong&gt; help people &lt;strong&gt;read faster and make fewer mistakes&lt;/strong&gt;. In fact, most people with Dyslexia prefer Comic Sans, Verdana, and Helvetica to other fonts. For a detailed  review of the research, see &lt;a href=&quot;http://dyslexiahelp.umich.edu/sites/default/files/good_fonts_for_dyslexia_study.pdf&quot;&gt;Good Fonts for Dyslexia (PDF)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;general-font-tips&quot; tabindex=&quot;-1&quot;&gt;General font tips&lt;/h2&gt;
&lt;p&gt;The following are general tips that improve the overall quality of your website&#39;s typography:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Font size should be at least 12-14pt or its equivalent. This help people with cognitive disabilities, language and learning disabilities, as well as people with low vision who may not be able to perceive the text.&lt;/li&gt;
&lt;li&gt;Larger line spacing improves readability. Proper line spacing makes &lt;a href=&quot;https://en.wikipedia.org/wiki/Web_content&quot;&gt;web content&lt;/a&gt; flow smoothly, and ensures that the visually rendered text is presented in such a manner that is perceived without its layout interfering with its readability. According to the &lt;a href=&quot;https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-visual-presentation.html&quot;&gt;WCAG Visual Presentation (level AAA) success criterion&lt;/a&gt;, line height (line spacing) should be at least 1.5 times the font size.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: There are no hard rules that defines when the line spacing is too loose. However, when the lines of text seem to be visually floating from each other, it is a sign of excess line spacing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a small number of fonts, ideally 1 or 2. This is because multiple fonts makes a website look unstructured and unprofessional. Also, multiple fonts obstructs the flow of content of the web page as people spend time adjusting to each new font. Hence, reducing readability.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;bold&lt;/strong&gt; to add emphasis rather than &lt;em&gt;italics&lt;/em&gt;. This is because large amounts of italicized text can be difficult to read.&lt;/li&gt;
&lt;li&gt;Avoid large amounts of UPPERCASE text. When words are written in all caps, they have a uniform rectangular shape, meaning some readers may not be able to identify words by their shape.&lt;/li&gt;
&lt;li&gt;Animated text must be used sparingly and honor &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion&quot;&gt;reduced motion preferences&lt;/a&gt;. This is because animations can be distracting, especially for a person with &lt;a href=&quot;https://www.cdc.gov/ncbddd/adhd/facts.html&quot;&gt;ADHD&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article can be summarized into the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dyslexia affects your ability to read.&lt;/li&gt;
&lt;li&gt;Dyslexic fonts may not be effective.&lt;/li&gt;
&lt;li&gt;Good typography is more helpful.&lt;/li&gt;
&lt;li&gt;Letting a user change their font and type size is important.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Should I use an accessibility overlay?</title>
		<link href="https://a11yproject.com/posts/should-i-use-an-accessibility-overlay/"/>
		<updated>2021-03-08T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/should-i-use-an-accessibility-overlay/</id>
		<content type="html">&lt;p&gt;Due to their technical, social, and moral issues, &lt;strong&gt;&lt;mark&gt;The A11Y Project does not recommend using permanent overlay plugins&lt;/mark&gt;&lt;/strong&gt;. We view these kinds of products as actively harmful, and a step backwards for digital accessibility efforts.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;Accessibility overlays have become a controversial topic recently. Let’s clarify what they are, and how they impact accessibility.&lt;/p&gt;
&lt;p&gt;An accessibility overlay is JavaScript that is written with the goal of helping to fix accessibility issues on a website or web app. Overlay code is applied after the website or web app is rendered by the browser, to transform it.&lt;/p&gt;
&lt;p&gt;Generally speaking, there are two types of accessibility overlays:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Temporary bandage solutions, and&lt;/li&gt;
&lt;li&gt;More permanent plugins.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of the two, the more permanent plugins are incredibly problematic.&lt;/p&gt;
&lt;h2 id=&quot;temporary-bandage-solutions&quot; tabindex=&quot;-1&quot;&gt;Temporary bandage solutions&lt;/h2&gt;
&lt;p&gt;Temporary bandage solutions have been around for awhile. Historically, they have been used by &lt;a href=&quot;https://www.a11yproject.com/resources/#professional-help&quot;&gt;professional accessibility auditing companies&lt;/a&gt; as a stopgap measure.&lt;/p&gt;
&lt;p&gt;With the bandage approach, the overlay serves as a &lt;strong&gt;temporary&lt;/strong&gt; measure. It is designed to be used to temporarily fix specific, critical accessibility issues until the underlying website or web app code can be updated.&lt;/p&gt;
&lt;p&gt;Think of these kinds of overlays like a bandage. Bandages are not intended to be left on permanently. They are removed after the injury they cover has healed.&lt;/p&gt;
&lt;p&gt;Bandage overlays usually have a process to signal when their code should be removed. This process is typically a negotiation between the accessibility auditors and the company who has the inaccessible experience.&lt;/p&gt;
&lt;h2 id=&quot;permanent-plugins&quot; tabindex=&quot;-1&quot;&gt;Permanent plugins&lt;/h2&gt;
&lt;p&gt;Permanent plugins are more of a recent phenomenon. Unlike temporary bandage solutions, permanent plugins are designed to be a persistent presence on the inaccessible website or web app. Four examples of permanent plugins are &lt;a href=&quot;https://accessibe.com/&quot;&gt;accessiBe&lt;/a&gt;, &lt;a href=&quot;https://www.audioeye.com/&quot;&gt;AudioEye&lt;/a&gt;, &lt;a href=&quot;https://www.facil-iti.com/&quot;&gt;FACIL’iti&lt;/a&gt;, and &lt;a href=&quot;https://maxaccess.io/&quot;&gt;Max Access&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are numerous issues with permanent plugins. To build off the bandage metaphor, a permanent plugin left on a website or web app for too long will cause the underlying experience to rot.&lt;/p&gt;
&lt;h3 id=&quot;ableism&quot; tabindex=&quot;-1&quot;&gt;Ableism&lt;/h3&gt;
&lt;p&gt;People are not a problem to be solved.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.selfdefined.app/definitions/ableism/&quot;&gt;Ableism&lt;/a&gt; is a prevalent issue in society. Because of this, there is a lot of misunderstanding about disability, and how it intersects with digital experiences. Permanent plugins attempt to capitalize on this.&lt;/p&gt;
&lt;p&gt;Permanent plugins are oftentimes sold to product managers and high-level decision-making employees as an “instant fix” to accessibility issues. They use the threat of a lawsuit as a compelling factor. This does two things. It:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Leaves people who may be more familiar with digital accessibility practices out of the conversation, and&lt;/li&gt;
&lt;li&gt;Frames the entire experience as risk avoidance, as opposed to a way of ensuring access.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;quality&quot; tabindex=&quot;-1&quot;&gt;Quality&lt;/h3&gt;
&lt;p&gt;Broadly-speaking, there are two kinds of accessibility issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Issues that are &lt;strong&gt;objective&lt;/strong&gt; and can be detected by a set of programming rules.&lt;/li&gt;
&lt;li&gt;Issues that are &lt;strong&gt;subjective&lt;/strong&gt; and require a human to evaluate.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;An example of this is the alternate description of an image. Programming rules &lt;strong&gt;can&lt;/strong&gt; check if an image has an &lt;code&gt;alt&lt;/code&gt; attribute. However, programming rules &lt;strong&gt;cannot&lt;/strong&gt; determine if the description is accurate, especially if the image is used for a thematic purpose.&lt;/p&gt;
&lt;p&gt;Any permanent plugin that claims to automatically “fix” these kinds of issues cannot deliver on its promises. There are many &lt;a href=&quot;https://adrianroselli.com/2020/06/accessibe-will-get-you-sued.html#Lawsuit&quot;&gt;lawsuits filed against permanent plugin companies&lt;/a&gt; reflecting this. Ironically, some permanent plugins actually introduce &lt;strong&gt;more&lt;/strong&gt; accessibility issues when activated.&lt;/p&gt;
&lt;h3 id=&quot;sustainability&quot; tabindex=&quot;-1&quot;&gt;Sustainability&lt;/h3&gt;
&lt;p&gt;Temporary bandage solutions come with training, which help the website or web app design and development teams learn how to not repeat the same decisions that created the inaccessible experience.&lt;/p&gt;
&lt;p&gt;Permanent plugins do not provide the accompanying training. This means that designers and developers will not grow skill-wise, and the same mistakes will be repeated over and over. If accessibility is viewed as “set and forget,” there is also a high likelihood that the scope of accessibility issues will increase exponentially.&lt;/p&gt;
&lt;h3 id=&quot;autonomy&quot; tabindex=&quot;-1&quot;&gt;Autonomy&lt;/h3&gt;
&lt;p&gt;Many permanent plugins override customization and personalization choices a person relies on. These overrides oftentimes do not meet the level of detail and sophistication needed, and may not operate in an expected way.&lt;/p&gt;
&lt;h3 id=&quot;privacy&quot; tabindex=&quot;-1&quot;&gt;Privacy&lt;/h3&gt;
&lt;p&gt;Privacy and disability are closely related. There are many &lt;a href=&quot;https://tink.uk/thoughts-on-screen-reader-detection/&quot;&gt;concerns with being identified as an assistive technology user&lt;/a&gt; without consent. Some permanent plugin products do not disclose what they do with the information they collect, including selling the information to third parties.&lt;/p&gt;
&lt;h3 id=&quot;performance&quot; tabindex=&quot;-1&quot;&gt;Performance&lt;/h3&gt;
&lt;p&gt;Due to ableism and the discrimination it creates, there is unfortunately a strong correlation between &lt;a href=&quot;https://www.forbes.com/sites/andrewpulrang/2020/01/13/5-ways-to-think-about-the-complicated-relationship-between-disability-and-work/&quot;&gt;disability, unemployment, and underemployment&lt;/a&gt;. Because of this, there is a decent chance assistive technology may be used on a more inexpensive, lower power device.&lt;/p&gt;
&lt;p&gt;Permanent plugins run an extra “layer” of JavaScript over the experience. This slows down a website or web app, and in extreme cases may cause the entire thing to crash. The chance of crashing, or being slowed down to the point of being unusable increases on lower powered devices.&lt;/p&gt;
&lt;h3 id=&quot;malware&quot; tabindex=&quot;-1&quot;&gt;Malware&lt;/h3&gt;
&lt;p&gt;Malware is software designed to subvert and damage the system it is run on.&lt;/p&gt;
&lt;p&gt;Certain permanent plugins include code that attempts to &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Malware#Evasion&quot;&gt;detect and negate&lt;/a&gt; automated &lt;a href=&quot;https://www.a11yproject.com/resources/#browser-extensions&quot;&gt;accessibility-checking tools&lt;/a&gt; such as Axe or WAVE. This prevents someone from accurately auditing the actual state of their website or web app.&lt;/p&gt;
&lt;p&gt;As they call code that is controlled by someone else, there is also the potential for control over this code to be hijacked. For example, the permanent plugin &lt;a href=&quot;https://en.m.wikipedia.org/wiki/BrowseAloud#Malware&quot;&gt;BrowseAloud was hacked&lt;/a&gt; to change its code to mine cryptocurrency.&lt;/p&gt;
&lt;h2 id=&quot;avoid-using-permanent-plugins&quot; tabindex=&quot;-1&quot;&gt;Avoid using permanent plugins&lt;/h2&gt;
&lt;p&gt;Instead of using a permanent plugin, we encourage anyone who helps to make digital experiences to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Learn more about disability and how assistive technology works.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.a11yproject.com/checklist/&quot;&gt;Check your website or web app&lt;/a&gt; for accessibility issues.&lt;/li&gt;
&lt;li&gt;Test with a wide variety of assistive technology, and assistive technology users.&lt;/li&gt;
&lt;li&gt;Incorporate disabled people into your product creation process.&lt;/li&gt;
&lt;/ol&gt;
</content>
	</entry>
	
	<entry>
		<title>Alternate text and automation</title>
		<link href="https://a11yproject.com/posts/alternate-text-and-automation/"/>
		<updated>2021-03-23T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/alternate-text-and-automation/</id>
		<content type="html">&lt;p&gt;Alternate (&lt;abbr&gt;alt&lt;/abbr&gt;) text help people who use assistive technology understand images, and are a core part of the &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html&quot;&gt;Web Content Accessibility Guidelines (WCAG)&lt;/a&gt;. They require a human’s input to be effective.&lt;/p&gt;
&lt;p&gt;To create alternate text, you add an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-alt&quot;&gt;&lt;code&gt;alt&lt;/code&gt; attribute&lt;/a&gt; to an image that clearly and concisely describes what it is depicting:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;A bowl of tomato soup and a grilled cheese sandwich.&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;recipe-photo&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/images/lunch.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Assistive technology such as a screen reader will read the text provided inside the &lt;code&gt;alt&lt;/code&gt; attribute’s opening and closing quotes. It may sound something like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Image. A bowl of tomato soup and a grilled cheese sandwich.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows a person to know an image is present, and what the image’s content contains. With this context, someone using assistive technology can understand the image’s purpose the same way someone who is not using assistive technology would.&lt;/p&gt;
&lt;p&gt;It’s up to the person writing the code to add an &lt;code&gt;alt&lt;/code&gt; attribute. It’s also up to them to look at the image they’re using and write an accurate description. Many Content Management Systems (CMS) allow the people who use them to include alt text by writing it in a dedicated input field.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;WordPress’ alt text input field for uploaded images.&quot;&gt;
	&lt;img alt=&quot;A textarea with a label that reads, &#39;Image settings. Alt text (alternative text). Below the textarea is a sub-label that reads, &#39;Describe the purpose of the image. Leave empty if the image is purely decorative.&#39; Screenshot.&quot; src=&quot;https://a11yproject.com/img/posts/myth-alternate-text-can-be-automated/wordpress-alt-field.png&quot; /&gt;
	&lt;figcaption&gt;WordPress’ alt text input field for uploaded images.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;automation&quot; tabindex=&quot;-1&quot;&gt;Automation&lt;/h2&gt;
&lt;p&gt;Technologies such as &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Machine_learning&quot;&gt;machine learning&lt;/a&gt; and &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Computer_vision&quot;&gt;computer vision&lt;/a&gt; allow us to guess at what an image is based on its arrangements of pixels. For example, we might show a computer hundreds of thousands of photos of fire hydrants to train it to understand what configurations of pixels look “fire hydrant-ish.”&lt;/p&gt;
&lt;p&gt;The idea is that you can take these technologies and apply them to a CMS or other publishing system. The publishing system would ideally then be able to automatically apply alternate text to any image uploaded by an author.&lt;/p&gt;
&lt;p&gt;The problem is that automated image description is not a perfect science.&lt;/p&gt;
&lt;p&gt;Many of these automated detection technologies are still &lt;a href=&quot;https://www.theregister.com/2021/03/05/openai_writing_attack/&quot;&gt;new and unsophisticated&lt;/a&gt;. This means there’s a good chance they haven’t been taught what the image you are uploading is yet. This is especially true for images that contain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple subjects,&lt;/li&gt;
&lt;li&gt;A high degree of detail,&lt;/li&gt;
&lt;li&gt;Abstract illustrations,&lt;/li&gt;
&lt;li&gt;Foreign languages,&lt;/li&gt;
&lt;li&gt;Obscure subject matter, and&lt;/li&gt;
&lt;li&gt;Content that is susceptible to &lt;a href=&quot;https://www.theverge.com/2019/12/20/21031255/facial-recognition-algorithm-bias-gender-race-age-federal-nest-investigation-analysis-amazon&quot;&gt;algorithmic bias&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This oftentimes leads to inaccurate or incomplete alt text for image content. This means that people who rely on alt text are not getting &lt;a href=&quot;https://www.smashingmagazine.com/2020/05/equivalent-experiences-part1/&quot;&gt;an equivalent experience&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlighting-info-and-thematic-content&quot; tabindex=&quot;-1&quot;&gt;Highlighting info and thematic content&lt;/h2&gt;
&lt;p&gt;Image recognition is extremely literal. For example, if you have an image of a family vacation, it may only tell you how many people are present, but not include other relevant details. It’s up to a human to explicitly provide intent about &lt;strong&gt;why&lt;/strong&gt; the image has been included.&lt;/p&gt;
&lt;p&gt;Consider the following example:&lt;/p&gt;
&lt;img alt=&quot;A family of four smiling while standing on top of a scenic vacation outlook. The father is taking a selfie while holding his daughter. The mother has her son on her back, and is standing next to him. Behind them the sun is gently setting over an ocean villa.&quot; src=&quot;https://a11yproject.com/img/posts/myth-alternate-text-can-be-automated/vacation-photo.jpg&quot; /&gt;
&lt;p&gt;An automated description may report something along the lines of:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4 people outdoors.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While this is technically correct, it doesn’t communicate the full experience. Consider a human-authored description instead:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A family of four smiling while standing on top of a scenic vacation outlook. The father is taking a selfie while holding his daughter. The mother has her son on her back, and is standing next to him. Behind them the sun is gently setting over an ocean villa.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This discrepancy is even more apparent if an image is used as metaphor to help communicate larger, more abstract themes.&lt;/p&gt;
&lt;img alt=&quot;The words, &#39;wow,&#39; &#39;so meme,&#39; &#39;much describe,&#39; &#39;such a11y,&#39; &#39;wow&#39; set in a cartoon font floating above a Shiba Inu dog staring sideways at the camera with raised eyebrows.&quot; src=&quot;https://a11yproject.com/img/posts/myth-alternate-text-can-be-automated/doge.png&quot; /&gt;
&lt;p&gt;Including relevant detail and abstract themes in alternate text is vital, as they are why image may be included in the first place.&lt;/p&gt;
&lt;h2 id=&quot;be-wary-of-false-promises&quot; tabindex=&quot;-1&quot;&gt;Be wary of false promises&lt;/h2&gt;
&lt;p&gt;Some companies promise to automatically add accurate alternate text to your image content, either as part of the content creation process, or after the fact as an overlay solution. Because of the issues with automation discussed earlier, &lt;a href=&quot;https://www.a11yproject.com/posts/should-i-use-an-accessibility-overlay/&quot;&gt;they cannot deliver on this promise&lt;/a&gt;.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Evidence from case Case 1:21-cv-00017-RAL demonstrating an overlay company’s inability to accurately automatically describe an image.&quot;&gt;
	&lt;img alt=&quot;A photo of a Belkin car charger. Below is is text that reads: Car Chargers. Figure 9: Example from https://www.belkin.com/us/products/. Bulleted list that reads, &#39;Original text alterative: None provided. Text alternative with accessiBe&#39;s Blind User Profile active: belkin. Power electricity and addiction. Issues: accessiBe&#39;s machine-based description does not sufficiently communicate image content and purpose.&#39; Case 1:21-cv-00017-RAL. Document 1-2. Filed 01/07/21. Page 17 of 35. Screenshot.&quot; src=&quot;https://a11yproject.com/img/posts/myth-alternate-text-can-be-automated/accessibe.png&quot; /&gt;
	&lt;figcaption&gt;&lt;a href=&quot;https://www.scribd.com/document/490740167/Exhibit-A-for-21-cv-00017&quot;&gt;Evidence from Case 1:21-cv-00017-RAL&lt;/a&gt; demonstrating an overlay company’s inability to accurately automatically describe an image.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;what-about-screen-readers%3F&quot; tabindex=&quot;-1&quot;&gt;What about screen readers?&lt;/h2&gt;
&lt;p&gt;Some screen readers utilize image recognition technology. It is important to know two things about this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Not every screen reader has this capability, and&lt;/li&gt;
&lt;li&gt;This feature is a last-ditch effort to understand image content when alt text is not provided.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The image recognition technology used by some screen readers isn’t special. It is susceptible to all the potential issues described earlier. This means that human-authored alt text is still the best option.&lt;/p&gt;
&lt;h2 id=&quot;what-about-an-image-link%3F&quot; tabindex=&quot;-1&quot;&gt;What about an image link?&lt;/h2&gt;
&lt;p&gt;The presence of a link will be announced much as how the presence of an image will. If a link wraps an image element, the image’s alt text will provide a clue for where the link will go. A human’s guidance helps for these circumstances.&lt;/p&gt;
&lt;p&gt;An automated description may report something along the lines of:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Link. Image. Map.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While human-authored alt text provides better context:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Link. Image. Paraguay river system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;what-about-social-media-and-memes%3F&quot; tabindex=&quot;-1&quot;&gt;What about social media and memes?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.hootsuite.com/inclusive-design-social-media/&quot;&gt;Every major social media platform includes the ability to add alt text to their images&lt;/a&gt;. Some, like Facebook, use an automated image description if none is provided, but they are almost always insufficient.&lt;/p&gt;
&lt;p&gt;Memes are oftentimes abstract, where a literal description may not be sufficient to communicate the joke or reference. Veronica Lewis has an excellent post called &lt;a href=&quot;https://veroniiiica.com/2018/11/29/how-to-write-alt-text-for-memes/&quot;&gt;&lt;cite&gt;How to Write Alt Text for Memes&lt;/cite&gt;&lt;/a&gt; that covers the topic extensively.&lt;/p&gt;
&lt;h2 id=&quot;training&quot; tabindex=&quot;-1&quot;&gt;Training&lt;/h2&gt;
&lt;p&gt;A more effective, inclusive way to approach alternate text is to educate people on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What it is,&lt;/li&gt;
&lt;li&gt;Why it is important, and&lt;/li&gt;
&lt;li&gt;How to write it effectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Make checking for concise, accurate alt text part of your editorial, quality assurance, and code review processes. The more these practices are performed, the more second nature they will become.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Fixing contrast issues, on your own site and elsewhere</title>
		<link href="https://a11yproject.com/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/"/>
		<updated>2021-06-07T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/</id>
		<content type="html">&lt;p&gt;Insufficient text contrast is the most common accessibility issue on websites today. According to the &lt;a href=&quot;https://webaim.org/projects/million/#contrast&quot;&gt;WebAIM Million report for 2021&lt;/a&gt;, 86.4% of home pages world wide have low contrast text. What&#39;s worse, this number has been increasing the past three years.&lt;/p&gt;
&lt;p&gt;Text contrast issues can by and large be automatically found (and fixed, more on that later), so why do nearly 9 out of 10 sites have contrast issues?&lt;/p&gt;
&lt;h2 id=&quot;before-we-answer-that%2C-a-quick-intro-on-what-text-contrast-is&quot; tabindex=&quot;-1&quot;&gt;Before we answer that, a quick intro on what text contrast is&lt;/h2&gt;
&lt;p&gt;When we talk about text contrast, what we mean is the difference between the color of the text and the color that&#39;s behind the text. To make sure the text is readable for everyone, you need a certain amount of difference between them.&lt;/p&gt;
&lt;p&gt;This difference can be measured using a formula that yields a number between 1 (no contrast, white text on a white background) and 21 (the most contrast possible, black text on a white background). That number is called the &amp;quot;contrast ratio&amp;quot;.&lt;/p&gt;
&lt;p&gt;The formula is part of WCAG, the &lt;a href=&quot;https://www.a11yproject.com/posts/wcag2-documents/&quot;&gt;Web Content Accessibility Guidelines&lt;/a&gt;. How the formula works is not that important, but there are a few numbers you should be aware of. For regular text, you need a contrast value of at least 4.5, and for large text just 3, to pass the text for sufficient contrast. (There are more strict rules available too).&lt;/p&gt;
&lt;p&gt;Having to score a 4.5 out of 21 doesn&#39;t seem like a very high bar to clear, so why do 86% of websites still have contrast issues?&lt;/p&gt;
&lt;p&gt;We could blame our own visual perception for that. For example, here&#39;s a text with a contrast ratio of 4.12:&lt;/p&gt;
&lt;p style=&quot;background: #fff; color:#7d7d7d&quot;&gt;This text does not have enough contrast&lt;/p&gt;
&lt;p&gt;For you this might be fine or it might not be, but in any case you&#39;re going to have a hard time seeing the difference between it and this text which has a contrast ratio of 4.54:&lt;/p&gt;
&lt;p style=&quot;background: #fff; color:#767676&quot;&gt;This text does have enough contrast&lt;/p&gt;
&lt;p&gt;One of them does not have sufficient color contrast and would fail an accessibility audit, and the other would pass. And if you couldn&#39;t tell them apart that wouldn&#39;t be odd, they&#39;re very close.&lt;/p&gt;
&lt;p&gt;And herein lies a potential pitfall for designers and developers. If we only go by what &amp;quot;looks good&amp;quot;, we could inadvertently be making inaccessible choices.&lt;/p&gt;
&lt;h2 id=&quot;resolving-text-contrast-issues&quot; tabindex=&quot;-1&quot;&gt;Resolving text contrast issues&lt;/h2&gt;
&lt;p&gt;There are many design tool plugins and website accessibility checkers that let you test color contrast by manually picking two colors and comparing them. &lt;a href=&quot;https://www.a11yproject.com/posts/what-is-color-contrast/&quot;&gt;See a list of tools in this earlier article on color contrast&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the most part, text contrast issues can be automatically found, and as a developer whenever something can be automated I prefer doing that over repeating an action (like selecting elements or clicking around with a color picker) over and over again. The chance of me missing something increases the more I have to repeat myself.&lt;/p&gt;
&lt;p&gt;Instead of doing that manual work I wrote a color contrast checker (part of the web browser for developers I build, Polypane) that automatically goes over all text elements, resolves their font size, color and (actual) background and uses that to calculate the contrast ratio.&lt;/p&gt;
&lt;p&gt;Still though, that just helps you find inaccessible colors slightly faster. What now? You could use a color picker to pick a darker (or lighter) color and try again, and maybe you have to do that a few times before you get it right. You could push the problem back to your designer and ask them for a new color, or if you have a design system, switch to the next hue in the palette. All of these take you outside of the flow you&#39;re currently in.&lt;/p&gt;
&lt;p&gt;You can also calculate the nearest color that does have enough contrast. So that&#39;s what Polypane does: when it finds a contrast issue, it will suggest the nearest sufficiently contrasting color for you to use. You can copy it or preview it, all without getting out of the flow you&#39;re currently in.&lt;/p&gt;
&lt;p&gt;Here&#39;s what that looks like:&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Example of a contrast label in Polypane, which shows a failing score, a suggested color that gets applied when you hover over it, and copies that color when you click it.&quot;&gt;
  &lt;video controls=&quot;&quot; loop=&quot;&quot; poster=&quot;https://a11yproject.com/img/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/cover.png&quot;&gt;
    &lt;source src=&quot;https://a11yproject.com/img/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/copy-color.mp4&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;source src=&quot;https://a11yproject.com/img/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/copy-color.webm&quot; type=&quot;video/webm&quot; /&gt;
      This browser does not support the &lt;code&gt;video&lt;/code&gt; element.
  &lt;/video&gt;
  &lt;figcaption&gt;Example of a contrast label in Polypane, which shows a failing score, a suggested color that gets applied when you hover over it, and copies that color when you click it.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This is a really useful feature that I didn&#39;t wanna keep it locked away in my own product, so it&#39;s also available online. When you enter two colors here, you&#39;ll get suggestions of similar colors with enough contrast: &lt;a href=&quot;https://polypane.app/color-contrast/&quot;&gt;color contrast checker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As an author, it is our responsibility to fix these contrast issues and luckily, computers can help us with this a whole lot.&lt;/p&gt;
&lt;h2 id=&quot;but-what-if-you&#39;re-not-the-author%3F&quot; tabindex=&quot;-1&quot;&gt;But what if you&#39;re not the author?&lt;/h2&gt;
&lt;p&gt;We can fix our own sites, but what about &lt;em&gt;other people&#39;s websites&lt;/em&gt;? After all, the chance you&#39;re visiting a website that has low contrast text is nearly nine out of ten times.&lt;/p&gt;
&lt;p&gt;I realized I could use the code I wrote to automatically fix websites instead. It doesn&#39;t make sense inside Polypane, but it would be really useful as a browser extension.&lt;/p&gt;
&lt;p&gt;That browser extension is called &lt;a href=&quot;https://fixa11y.com/&quot;&gt;Fix Contrast&lt;/a&gt; and it freely available for Chrome, Edge, Firefox, Vivaldi and Brave, and hopefully soon for Opera and Safari too.&lt;/p&gt;
&lt;p&gt;After you install it, it will automatically fix any text with low contrast up to your preferred contrast ratio.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/fixing-contrast-issues-on-your-own-site-and-elsewhere/ui.png&quot; alt=&quot;The Fix Contrast settings where you can pick between &amp;quot;medium&amp;quot; and &amp;quot;high&amp;quot; contrast or set a custom minimum value and optionally add a background color&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can pick between two defaults, &amp;quot;medium&amp;quot; and &amp;quot;high&amp;quot; contrast, or pick your own minimum ratio for small and large text. You can also opt to add a background color when the text color can&#39;t be changed enough.&lt;/p&gt;
&lt;p&gt;This will make the web a more accessible place by fixing an issue for users directly, without having to wait on site authors to resolve their issues. I hope you&#39;ll want to use it, and share it with other people for which it would be useful.&lt;/p&gt;
&lt;p&gt;As it stands, the extension is available in English and Dutch, and I would love help getting it translated into other languages. If that&#39;s something you want to help it, please let me know!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Everyday Accessibility</title>
		<link href="https://a11yproject.com/posts/everyday-accessibility/"/>
		<updated>2021-06-15T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/everyday-accessibility/</id>
		<content type="html">&lt;p&gt;Even with the best of intentions, you may be making decisions that exclude disabled users. Below are practical, intentional steps you can start today to create and share more accessible social media, digital, and multimedia content.&lt;/p&gt;
&lt;h2 id=&quot;watch-this-post-as-a-video&quot; tabindex=&quot;-1&quot;&gt;Watch this post as a video&lt;/h2&gt;
&lt;div class=&quot;video--16-9&quot;&gt;
	&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/xPU-dJPumnc&quot; title=&quot;YouTube: Everyday Accessibility: 15 Easy Tips to Make Your Content More Inclusive&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;social-media-posts&quot; tabindex=&quot;-1&quot;&gt;Social Media Posts&lt;/h2&gt;
&lt;p&gt;Social media is central to the world&#39;s conversations, so ensure you&#39;re not leaving anyone out.&lt;/p&gt;
&lt;h3 id=&quot;use-capital-letters-in-hashtags&quot; tabindex=&quot;-1&quot;&gt;Use capital letters in hashtags&lt;/h3&gt;
&lt;p&gt;Punctuation helps text-to-speech tools like screen readers speak more accurately, and helps with readability overall. This includes in hashtags, where capital letters help distinguish words.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Make it a habit to #UseCapitalLetters rather than #hardtoreadlowercase.&lt;/p&gt;
&lt;h3 id=&quot;don%E2%80%99t-share-just-images-of-text&quot; tabindex=&quot;-1&quot;&gt;Don’t share just images of text&lt;/h3&gt;
&lt;p&gt;Images of text (such as your favorite quote or saying) can be difficult for people with visual impairments to read and don’t allow people with reading difficulties to leverage text-to-speech read-aloud features. When posting these kinds of images, also write out the text in your post.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Typing out the text in an image makes the content more accessible.&quot;&gt;
	&lt;img alt=&quot;Instagram post where the photo is a quote reading &#39;Whatever is good for your soul do that - Anurup&#39; and the quote&#39;s text is also typed in the post.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/instagram_quote.jpg&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Typing out the text in an image makes the content more accessible.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;use-%E2%80%9Calt-text%E2%80%9D-features-to-describe-images&quot; tabindex=&quot;-1&quot;&gt;Use “alt text” features to describe images&lt;/h3&gt;
&lt;p&gt;Pictures are significant in social media, but also inaccessible to visually impaired readers unless they have a text-based description. When uploading, find the “image description” or “alternative/alt text” feature in the software to write a description. For sample instructions, review &lt;a href=&quot;https://symphonyagency.com/alt-text-for-social-media/&quot;&gt;Alt Text for Social Media&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When adding descriptions, don’t write every detail, just enough to ensure everyone can understand your post and share in the image’s meaning. For examples, read Scott Vinkle’s &lt;a href=&quot;https://ux.shopify.com/considerations-when-writing-alt-text-a9c1985a8204&quot;&gt;Considerations when writing alt text&lt;/a&gt;.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Twitter&#39;s Add Description feature allows adding alt text for visually impaired readers.&quot;&gt;
	&lt;img alt=&quot;Two mobile phone screenshots. The first shows a draft Twitter post reading, &#39;Coolest clouds I&#39;ve ever seen&#39; with a photo attached. The second shows the Image Description input screen with text reading &#39;A field of wildflowers with hills in the background and clouds overhead&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/twitter_alt.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Features like Twitter&#39;s &quot;Add description&quot; allow adding &quot;alt text&quot; for visually impaired readers.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;limit-your-emojis&quot; tabindex=&quot;-1&quot;&gt;Limit your emojis&lt;/h3&gt;
&lt;p&gt;Emojis are great for emphasis and playfulness, but adding too many sounds cluttered with text-to-speech software. Also, when placed unconventionally (such as throughout a sentence) this is distracting and hard to read for those with reading difficulties. Keep your emojis to the minimum needed to make your point, group them together, and move them towards the end of any text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avoid writing:&lt;/strong&gt; I 👏 know 👏 that’s 👏 right 👏!!!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Because text-to-speech reads:&lt;/strong&gt; I [&lt;em&gt;clapping hands&lt;/em&gt;] know [&lt;em&gt;clapping hands&lt;/em&gt;] that’s [&lt;em&gt;clapping hands&lt;/em&gt;] right [&lt;em&gt;clapping hands&lt;/em&gt;] !!!&lt;/p&gt;
&lt;h2 id=&quot;documents&quot; tabindex=&quot;-1&quot;&gt;Documents&lt;/h2&gt;
&lt;p&gt;Accessibility is not just for the Web, but all of our digital content.&lt;/p&gt;
&lt;h3 id=&quot;use-a-program%E2%80%99s-built-in-styling-features&quot; tabindex=&quot;-1&quot;&gt;Use a program’s built-in styling features&lt;/h3&gt;
&lt;p&gt;Assistive technology (AT) doesn&#39;t interpret a page or document like people do with their eyes. AT is reading the underlying code markup, which means simply making something &lt;em&gt;look&lt;/em&gt; a certain way is not sufficient. When formatting a document or presentation, use the style buttons/options in the program to provide the needed markup; for instance, use the “bulleted list” button rather than just a dash (-) to format a list.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Explicitly select format options like Numbered List in Microsoft Word to increase accessibility.&quot;&gt;
	&lt;img alt=&quot;Sample document including heading and numbered list with arrows pointing out the &#39;Numbered List&#39; option in the menus and the &#39;Heading 1&#39; text style used for the heading.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/WordRibbon.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Explicitly select format options like &quot;Numbered List&quot; in Microsoft Word to increase accessibility.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;include-document-structure&quot; tabindex=&quot;-1&quot;&gt;Include document structure&lt;/h3&gt;
&lt;p&gt;Headings (or titles on slides) provide a great way for everyone to preview, skim, and search content. Structure is particularly helpful for blind readers who want to get an overview of the document before reading line-by-line. Include headings throughout a document and titles on every slide, and remember to use the actual “Heading” and “Title” features of the program, not simply stylized text.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Using PowerPoint&#39;s built-in title placeholders is important for accessibility.&quot;&gt;
	&lt;img alt=&quot;Two simple PowerPoint slides each have titles. The mouse cursor hovers over the second slide&#39;s thumbnail to show the title text appears as mouse hover content when properly formatted.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/PPT_Titles.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Using built-in document structure like PowerPoint&#39;s &quot;title&quot; placeholders is important for accessibility.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;add-alt-text-to-images&quot; tabindex=&quot;-1&quot;&gt;Add alt text to images&lt;/h3&gt;
&lt;p&gt;Just like with social media, you can add alt text descriptions to images in documents as well. You will typically see an input box to add descriptions grouped with other options when you insert the image.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Add image descriptions (alt text) to images in documents, as in Microsoft Word&#39;s Alt Text option.&quot;&gt;
	&lt;img alt=&quot;Word document has photo inserted and selected. In the right pane, the Alt Text option is open and showing an input field that reads &#39;White and yellow flowers&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/Windows-AltText.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Add image descriptions (&quot;alt text&quot;) to images in documents, as in Microsoft Word&#39;s Alt Text option.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;use-accessibility-checkers&quot; tabindex=&quot;-1&quot;&gt;Use accessibility checkers&lt;/h3&gt;
&lt;p&gt;Microsoft products (namely Word and PowerPoint) come with a “Check Accessibility” option. Use this to double-check you’ve addressed key accessibility needs.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Microsoft&#39;s Check Accessibility feature helps ensure your document is inclusive.&quot;&gt;
	&lt;img alt=&quot;The Check Accessibility menu option is activated on a simple PowerPoint deck where one slide is missing a title. The Accessibility pane shows the &#39;Missing slide title&#39; error and the mouse hover text for that slide also reads &#39;[No Title]&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/PPT_A11yChecker.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Microsoft&#39;s &quot;Check Accessibility&quot; feature helps ensure your document is inclusive.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;audio-and-video-content&quot; tabindex=&quot;-1&quot;&gt;Audio and Video Content&lt;/h2&gt;
&lt;p&gt;We can all create multimedia, but let&#39;s ensure we don&#39;t ignore the best practices.&lt;/p&gt;
&lt;h3 id=&quot;have-clear-audio&quot; tabindex=&quot;-1&quot;&gt;Have clear audio&lt;/h3&gt;
&lt;p&gt;Though all of our devices can record audio and video on-demand, sound quality can vary making it difficult for some to hear the content.  Be sure to speak as clearly as possible, preferably at a steady pace and reasonable volume, and remove or avoid background noise including echo, empty room effect, humming, or white noise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Using a microphone (even a common corded headset) can help amplify voices and minimize distracting unwanted sounds.&lt;/p&gt;
&lt;h3 id=&quot;reduce-background-music&quot; tabindex=&quot;-1&quot;&gt;Reduce background music&lt;/h3&gt;
&lt;p&gt;Instrumental music can enhance content’s quality, but not when it reduces the ability to hear the main speaker. When using background music, keep it to a minimum (such as during an intro) or, if used throughout, ensure it is very low.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Consider putting your background music at the volume of a whisper.&lt;/p&gt;
&lt;h3 id=&quot;provide-text-with-multimedia&quot; tabindex=&quot;-1&quot;&gt;Provide text with multimedia&lt;/h3&gt;
&lt;p&gt;As with images, video and audio can be engaging but also inaccessible without a text equivalent for people who are deaf-blind, having sensory processing disorders, or have hearing impairments. Having media content written out as text is vital for inclusiveness. Text equivalents can include transcripts that type out spoken dialogue, or an article that accompanies a video (as in a video that supplements a news article).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Where there’s media, make sure there’s also text.&lt;/p&gt;
&lt;h3 id=&quot;avoid-flashing-content&quot; tabindex=&quot;-1&quot;&gt;Avoid flashing content&lt;/h3&gt;
&lt;p&gt;Content that flashes on the screen more than 3 times per second is dangerous as it can trigger a seizure in some viewers. Use rapid movement sparingly in your videos and ensure nothing flashes. You can use the Trace Center’s &lt;a href=&quot;https://trace.umd.edu/peat/&quot;&gt;Photosensitive Epilepsy Analysis Tool (PEAT)&lt;/a&gt; to identify seizure risks in web content and software.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Creating content comes with a responsibility to &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/three-flashes&quot;&gt;create safe content&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;advocate-for-accessibility&quot; tabindex=&quot;-1&quot;&gt;Advocate for Accessibility&lt;/h2&gt;
&lt;p&gt;We have to work collectively to make inclusion happen.&lt;/p&gt;
&lt;h3 id=&quot;seek-accessibility-features&quot; tabindex=&quot;-1&quot;&gt;Seek accessibility features&lt;/h3&gt;
&lt;p&gt;Actively search for “accessibility” in the tools you use every day — from survey creation sites to website design platforms. Understand what you can do to make sure your output is inclusive.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Search for accessibility tips in your favorite systems like on the Zoom accessibility page.&quot;&gt;
	&lt;img alt=&quot;Zoom video conferencing Accessibility landing page showing their accessibility features.&quot; src=&quot;https://a11yproject.com/img/posts/everyday-accessibility/Zoom_A11y_Page.png&quot; /&gt;
	&lt;figcaption&gt;&lt;b&gt;Key Point:&lt;/b&gt; Search for accessibility tips in your favorite systems like on the Zoom &quot;Accessibility&quot; page.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;ask-about-accessibility&quot; tabindex=&quot;-1&quot;&gt;Ask about accessibility&lt;/h3&gt;
&lt;p&gt;If a system doesn’t offer accessibility features (which is unfortunately very common), reach out to the company about their accessibility policy and roadmaps via the customer support channels. Also, ask about it internally where you work and attend school. Don’t leave this to just your disabled colleagues to take on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Customer pressure can help move accessibility to the front of a company’s roadmap.&lt;/p&gt;
&lt;h3 id=&quot;seek-to-learn-more&quot; tabindex=&quot;-1&quot;&gt;Seek to learn more&lt;/h3&gt;
&lt;p&gt;There’s a lot more to learn and the more allies who know about accessible and inclusive digital practices, the more we can make a big difference for who can participate in our ever-growing digital spaces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; You can start your learning journey with &lt;a href=&quot;https://a11yproject.com/posts/everyday-accessibility/A11yProject.com/Resources&quot;&gt;The A11Y Project’s Resources Page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;resources&quot; tabindex=&quot;-1&quot;&gt;Resources&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://mawconsultingllc.files.wordpress.com/2021/07/everyday-accessibility-posters.pdf&quot;&gt;Download “Everyday Accessibility” posters (PDF, 98kb)&lt;/a&gt;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Accessibility and SEO</title>
		<link href="https://a11yproject.com/posts/accessibility-seo/"/>
		<updated>2021-07-01T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/accessibility-seo/</id>
		<content type="html">&lt;p&gt;Search engine optimization and accessibility have a lot more in common than you would think.&lt;/p&gt;
&lt;p&gt;Many of the same practices that we use to enable everyone to enjoy our digital experiences also open the doors for search engines.&lt;/p&gt;
&lt;h2 id=&quot;the-intersection-of-people-and-search-engines&quot; tabindex=&quot;-1&quot;&gt;The intersection of people and search engines&lt;/h2&gt;
&lt;p&gt;Search engine optimization often gets a bad reputation. In the early years, marketers were adding blocks of keywords into pages by the truck load. Getting to the top of the results by any means necessary was the game. Companies focused on publishing content that was machine-first, not people-first.&lt;/p&gt;
&lt;p&gt;The Search Engine Optimization (&lt;abbr&gt;SEO&lt;/abbr&gt;) industry has since evolved. Marketers who choose to build for people over profit, are those that gain increased visibility online. Catering to bots and algorithm changes, by contrast, is often a game of whack-a-mole and traffic gains are short lived.&lt;/p&gt;
&lt;p&gt;Below, we will examine some of the ways accessibility and &lt;abbr&gt;SEO&lt;/abbr&gt; teams can work together towards a future where everyone wins.&lt;/p&gt;
&lt;h2 id=&quot;headings&quot; tabindex=&quot;-1&quot;&gt;Headings&lt;/h2&gt;
&lt;p&gt;Search engines crawl through an endless sea of webpages everyday. Assembling information into search results would be impossible without some semblance of structure.&lt;/p&gt;
&lt;p&gt;This is where section headings come into play. When implemented to provide meaning rather than styling, headings create an easy way to scan and navigate a document for all people.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Meh --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;strong&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Animals&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;strong&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Monkeys, Lions, Bears&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Better --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Animals&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Monkey, lions, and bears are all examples of animals.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Monkeys&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Monkeys are primarily found in tropical rain forests.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Lions&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;All wild lions live on the African continent, with the exception of a small population in western India.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Bears&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Species of bears exist almost everywhere in the world.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Properly implemented HTML section headings help search engines, too. To determine if a page is relevant to a person&#39;s search, Google has to know about the contents of a page. If a page title isn’t present in the code, search engines may use other elements from the document in its place. The level-one heading is generally a good substitute.&lt;/p&gt;
&lt;p&gt;Headings can also help pages rank for a broader array of terms. For example, on a product page for a pair of shoes, including&lt;br /&gt;
&amp;quot;Reviews&amp;quot; as a section heading may help that page show up for searches like “Product Name + Reviews”, where it may have only ranked for the product name.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Meh --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;A cool pair of shoes&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Read the latest &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#reviews&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;reviews&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt; for this product.&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Better --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;A cool pair of shoes&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Reviews&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Questions&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Size Chart&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Taking time to fine tune the outline of the page will lead to better results for people &lt;strong&gt;and&lt;/strong&gt; bots.&lt;/p&gt;
&lt;h2 id=&quot;links&quot; tabindex=&quot;-1&quot;&gt;Links&lt;/h2&gt;
&lt;p&gt;Anchor tags are the backbone of the entire internet. They are also the HTML elements that power search engine results. In fact, of the three ways that Google and other companies discover pages on the web (&lt;a href=&quot;https://developers.google.com/search/docs/advanced/sitemaps/overview&quot;&gt;XML Sitemaps&lt;/a&gt;, &lt;a href=&quot;https://moz.com/learn/seo/internal-link&quot;&gt;Internal Links&lt;/a&gt;, &lt;a href=&quot;https://moz.com/learn/seo/backlinks&quot;&gt;Backlinks&lt;/a&gt;), two involve anchor tags.&lt;/p&gt;
&lt;p&gt;Anchors do more than send people to a new destination, though. Writing good anchor text paints a clear picture of what’s going to happen next.&lt;/p&gt;
&lt;p&gt;Most of us have encountered our fair share of links with the text, &amp;quot;learn more&amp;quot; or &amp;quot;read more.&amp;quot; Labels like this cause confusion and suspicion about what interacting with the link will do. Search engines do not have a good idea of where they will end up, either.&lt;/p&gt;
&lt;p&gt;For &lt;abbr&gt;SEO&lt;/abbr&gt;, links are a vote of confidence from other sources around the internet. Links with the text, &amp;quot;footwear,&amp;quot; &amp;quot;fashion,&amp;quot; and &amp;quot;rubber insoles&amp;quot; are ones that people are more likely to click on. Search engines also find these sites to be more authoritative on the subject than ones whose inbound link text is bursting with &amp;quot;learn more.&amp;quot;&lt;/p&gt;
&lt;p&gt;Focus on creating descriptive and consistent links between pages. Building pathways between sites and pages that help people first, will pay big dividends for your &lt;abbr&gt;SEO&lt;/abbr&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Meh --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/p/shoes-1234&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Learn more&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Better --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/p/shoes-1234&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;A cool pair of shoes&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;language&quot; tabindex=&quot;-1&quot;&gt;Language&lt;/h2&gt;
&lt;p&gt;Words and phrases that need a PhD to comprehend are rarely found in the search box. In fact, the biggest returns on investment are often gained when we write in plain language.&lt;/p&gt;
&lt;p&gt;For example, people who need new heels for their shoes aren&#39;t looking for &amp;quot;cobblers near me.&amp;quot; They are searching for &amp;quot;shoe repair.&amp;quot;&lt;/p&gt;
&lt;p&gt;Avoiding long sentences, lingo, and uncommon words also helps people with cognitive disabilities. Complex language choices may exclude them from participating in your offerings.&lt;/p&gt;
&lt;p&gt;When in doubt, break your ideas into more manageable chunks. Everyone will appreciate your brevity.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Meh --&gt;&lt;/span&gt;&lt;br /&gt;How search engines crawl, index, and rank pages.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Better --&gt;&lt;/span&gt;&lt;br /&gt;How search engines discover, organize, and display results.&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;media&quot; tabindex=&quot;-1&quot;&gt;Media&lt;/h2&gt;
&lt;p&gt;As the internet has evolved, so has the presentation of information. What used to be plain text on the page is now enriched by images, audio, and video. With richness, comes complexity.&lt;/p&gt;
&lt;p&gt;For search engines, these new mediums mean new opportunities for engagement. There are &lt;a href=&quot;https://youtu.be/1Zqkz8Y_kFw?t=132&quot;&gt;four places&lt;/a&gt; on Google alone that a published video can show up.&lt;/p&gt;
&lt;p&gt;Incorrect implementation of video content can lead to confusion for people and bots. Captions, text alternatives, and unambiguous naming can provide vital context for search engine algorithms. Similarly, poor text alternatives may frustrate someone using assistive technology, by adding too much redundant content to the page.&lt;/p&gt;
&lt;p&gt;Digital text remains the most compatible form of information. If you want to capture the attention of all your audience members, search engines included, take the time to get it right.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Meh --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;dsc-1234.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Better --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;cool-shoes-1234.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Cool shoes with a red upper and sky blue laces.&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;when-we-work-together%2C-everyone-wins&quot; tabindex=&quot;-1&quot;&gt;When we work together, everyone wins&lt;/h2&gt;
&lt;p&gt;Search engine optimization and accessibility professionals do not have to be at odds. In many ways, the goals of the two disciplines are similar, but with different user-agents. Working together to produce code, content, and comprehension for people first, will lead to better outcomes for all.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Reviewing a design for accessibility</title>
		<link href="https://a11yproject.com/posts/reviewing-a-design-for-accessibility/"/>
		<updated>2021-08-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/reviewing-a-design-for-accessibility/</id>
		<content type="html">&lt;p&gt;I&#39;m a big believer in &lt;a href=&quot;https://www.deque.com/shift-left/&quot;&gt;shifting left&lt;/a&gt;: considering accessibility as early in the process as we can. One way we can do this is by reviewing designs for accessibility. This helps us catch anything we&#39;ve missed before we start developing it.&lt;/p&gt;
&lt;h2 id=&quot;what-to-do%3A-annotate&quot; tabindex=&quot;-1&quot;&gt;What to do: annotate&lt;/h2&gt;
&lt;p&gt;By adding annotations about the semantics and accessibility of elements on a page we can remove barriers to access. The best way to do annotations might be sticky notes on a printout or &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360041068574&quot;&gt;adding comments on a Figma file&lt;/a&gt;, or something else. The important thing is that we want to be clear and explicit.&lt;/p&gt;
&lt;p&gt;Here are a handful of things that I&#39;ve found give good value / effort balance when reviewing a design for accessibility.&lt;/p&gt;
&lt;h2 id=&quot;things-to-check&quot; tabindex=&quot;-1&quot;&gt;Things to check&lt;/h2&gt;
&lt;h3 id=&quot;page-title&quot; tabindex=&quot;-1&quot;&gt;Page title&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Is the page title unique?&lt;/li&gt;
&lt;li&gt;Does it concisely describe the page content?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;headings&quot; tabindex=&quot;-1&quot;&gt;Headings&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Are headings used to divide content up in a logical way?&lt;/li&gt;
&lt;li&gt;Are the levels shown, without skipping any?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;text-alternatives&quot; tabindex=&quot;-1&quot;&gt;Text alternatives&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do all images (including icons) have a text alternative (using the &lt;code&gt;alt&lt;/code&gt; attribute)? You can see &lt;a href=&quot;https://webaim.org/techniques/alttext/&quot;&gt;WebAIM&#39;s guide to alternative text&lt;/a&gt; for more about what this is, and what makes good alternative text.&lt;/li&gt;
&lt;li&gt;If the image is decorative, is it marked as such (using &lt;code&gt;alt=&amp;quot;&amp;quot;&lt;/code&gt;)? Are we sure it&#39;s only decorative?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;link-and-button-text&quot; tabindex=&quot;-1&quot;&gt;Link and button text&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Does each link describe where we&#39;ll go when we follow it? Does each button describe what will happen when we use it?&lt;/li&gt;
&lt;li&gt;Where links or buttons have the same text repeated on a page, do they have a longer accessible name that is unique? For example: &amp;quot;View details of Quarter 1 review&amp;quot; instead of &amp;quot;View details&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;standard-controls&quot; tabindex=&quot;-1&quot;&gt;Standard controls&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do form controls match standard ones (like &lt;code&gt;select&lt;/code&gt;s, &lt;code&gt;radio&lt;/code&gt;, and &lt;code&gt;checkbox&lt;/code&gt;) where possible? If not, is it possible to use a standard control instead?&lt;/li&gt;
&lt;li&gt;Are standard controls being used to match the design intent?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;names-for-form-elements&quot; tabindex=&quot;-1&quot;&gt;Names for form elements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do all form controls (one input plus one label) have a name? You can reference &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label&quot;&gt;MDN&#39;s article on the &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; HTML element&lt;/a&gt; for an example of how the &lt;code&gt;label&lt;/code&gt; and &lt;code&gt;input&lt;/code&gt; elements work together with the &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;for&lt;/code&gt; attributes to provide accessible names.&lt;/li&gt;
&lt;li&gt;If the name isn&#39;t visible, is it shown in an annotation?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;names-for-groups-of-form-elements&quot; tabindex=&quot;-1&quot;&gt;Names for groups of form elements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do groups of related forms controls (such as multiple choice questions) have a name? The name should provide context for the individual questions in the group. Reference &lt;a href=&quot;https://www.w3.org/WAI/tutorials/forms/grouping/&quot;&gt;the W3C&#39;s Web Accessibility Tutorial on Grouping Controls&lt;/a&gt; for two approaches on how to do this.&lt;/li&gt;
&lt;li&gt;If the name isn&#39;t visible, is it shown in an annotation?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;error-messages&quot; tabindex=&quot;-1&quot;&gt;Error messages&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Are error messages clear and helpful?&lt;/li&gt;
&lt;li&gt;Does the message say what went wrong and how to fix it?&lt;/li&gt;
&lt;li&gt;Are we not relying on color alone to show the error state?&lt;/li&gt;
&lt;li&gt;Are we not referring to sensory characteristics (like shape, size, visual location) in the message?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;Reviewing designs for accessibility is a great way to help designers think more accessibly and to help developers implement more accessibly. We can use annotations to be explicit about the semantic and accessibility features we want on each page. We can use checklists to help us make sure we haven&#39;t missed any big things.&lt;/p&gt;
&lt;p&gt;If you&#39;d like to learn more about how to improve the experience for everyone who uses your site, check out &lt;a href=&quot;https://www.a11yproject.com/checklist/&quot;&gt;the WCAG checklist here on the A11Y Project&lt;/a&gt;.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Starting a design with accessibility</title>
		<link href="https://a11yproject.com/posts/starting-a-design-with-accessibility/"/>
		<updated>2021-08-25T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/starting-a-design-with-accessibility/</id>
		<content type="html">&lt;p&gt;Designing with accessibility in mind from the start is even better than &lt;a href=&quot;https://www.a11yproject.com/posts/reviewing-a-design-for-accessibility/&quot;&gt;reviewing a design for accessibility&lt;/a&gt;. It helps us consider the wide range of people who use our products and services.&lt;/p&gt;
&lt;p&gt;Here are three things we can do to start a design with accessibility.&lt;/p&gt;
&lt;h2 id=&quot;do-a-text-only-design&quot; tabindex=&quot;-1&quot;&gt;Do a text-only design&lt;/h2&gt;
&lt;p&gt;Doing a text-only design to helps us clarify the order and content of a page.&lt;/p&gt;
&lt;h3 id=&quot;what-to-do&quot; tabindex=&quot;-1&quot;&gt;What to do&lt;/h3&gt;
&lt;p&gt;We can write out the design in text before opening up our favorite design tool (like &lt;a href=&quot;https://www.sketch.com/&quot;&gt;Sketch&lt;/a&gt; or &lt;a href=&quot;https://www.figma.com/&quot;&gt;Figma&lt;/a&gt; or &lt;a href=&quot;https://www.adobe.com/products/xd.html&quot;&gt;Adobe XD&lt;/a&gt;). Start by making a numbered list with pen and paper, or in a text editor.&lt;/p&gt;
&lt;img alt=&quot;A handwritten outline of this post: a numbered list of the headings.&quot; src=&quot;https://a11yproject.com/img/posts/starting-a-design-with-accessibility/text-only_design.png&quot; /&gt;
&lt;p&gt;Write out the:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Section headings,&lt;/li&gt;
&lt;li&gt;Content and function of each image,&lt;/li&gt;
&lt;li&gt;Text of each link,&lt;/li&gt;
&lt;li&gt;Text of each button, and&lt;/li&gt;
&lt;li&gt;Name of each form element.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;why-to-do-it&quot; tabindex=&quot;-1&quot;&gt;Why to do it&lt;/h3&gt;
&lt;p&gt;Writing the content in a numbered list lets us be clear on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The source order of elements in the HTML. This is the order that a screen reader will read the page in.&lt;/li&gt;
&lt;li&gt;The hierarchy of elements on the page. This helps us make choices about layouts on different screen sizes.&lt;/li&gt;
&lt;li&gt;The focus order of the page. This helps us make sure it&#39;s logical and meaningful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Writing headings lets us divide the page up into logical sections. Screen reader users often use headings as a way of navigating around a page.&lt;/p&gt;
&lt;p&gt;Writing the text of images means we’ll already have &lt;code&gt;alt&lt;/code&gt; text (or something that’s a good start on it). It helps us be clear on what information (if any) the image is conveying.&lt;/p&gt;
&lt;p&gt;Writing the text for links highlights why “Click here” isn’t helpful link text. Link text should describe where the person goes when they follow the link.&lt;/p&gt;
&lt;p&gt;Writing the text for buttons highlights why &amp;quot;Submit” usually isn’t helpful button text. Button text should describe what happens when the person presses the button.&lt;/p&gt;
&lt;p&gt;Writing the names of form elements forces us to think of good labels. It forces us to think about the clearest name for each element.&lt;/p&gt;
&lt;h2 id=&quot;do-an-html-only-design&quot; tabindex=&quot;-1&quot;&gt;Do an HTML-only design&lt;/h2&gt;
&lt;p&gt;Doing an HTML-only design helps us clarify the order and content of a page. It also helps us clarify the single function of each interactive element on a page.&lt;/p&gt;
&lt;h3 id=&quot;what-to-do-1&quot; tabindex=&quot;-1&quot;&gt;What to do&lt;/h3&gt;
&lt;p&gt;Go through the text-only design and expand it to use only HTML elements. No CSS at this point! That means no presentation (except things with defaults, like heading styles) and no layout (everything will be in one column). &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;MDN&#39;s HTML elements reference&lt;/a&gt; has a grouped list we can use to find the correct semantic element.&lt;/p&gt;
&lt;h3 id=&quot;why-to-do-it-1&quot; tabindex=&quot;-1&quot;&gt;Why to do it&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Designing with only HTML gives us the same benefits as writing the page out in a number list. The source order, hierarchy of elements, and focus order of the page are clear.&lt;/li&gt;
&lt;li&gt;We can only use one element for one thing, so it forces us to decide what each thing really is. For example: is this a link or a button? If it’s for navigation, use a link. If it’s for an action, use a button.&lt;/li&gt;
&lt;li&gt;Designing with HTML forces us to decide on the function of each thing (however we end up styling it). For example: is it a multiple-choice question where we can only pick one? That’s a group of radio buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;go-off-the-happy-path&quot; tabindex=&quot;-1&quot;&gt;Go off The Happy Path&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Happy_path&quot;&gt;“The Happy Path”&lt;/a&gt; is the “everything went well and nothing went wrong” scenario. While this is a nice idea, it doesn’t represent the real world and how people and computers interact.&lt;/p&gt;
&lt;h3 id=&quot;what-to-do-2&quot; tabindex=&quot;-1&quot;&gt;What to do&lt;/h3&gt;
&lt;p&gt;Review the design and try and break it. Now annotate the design with how to help the person using the page. Can we improve the labels of fields? Can we add help text for fields? What error messages can we show that will tell the person what went wrong and how to fix it?&lt;/p&gt;
&lt;p&gt;At this point we could review the design with some presentation applied and consider the CSS we would use. Adding presentational elements will give us more things to check, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use of color to convey information.&lt;/li&gt;
&lt;li&gt;Contrast ratios.&lt;/li&gt;
&lt;li&gt;Animation and timing.&lt;/li&gt;
&lt;li&gt;States of interactive elements, such as focus styles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One nice way of trying to break the design is to approach it from a very different direction.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We can ask ourselves “if I was trying to do this wrong on purpose, what would I do?” For example: imagine not entering data in any required fields, or entering the wrong format.&lt;/li&gt;
&lt;li&gt;Pick an element and flip, try the opposite. For example: if an error message uses colour, check what it would be like without colour.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;why-to-do-it-2&quot; tabindex=&quot;-1&quot;&gt;Why to do it&lt;/h3&gt;
&lt;p&gt;Going off the Happy Path forces us to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consider error states explicitly. It makes us write error messages up front.&lt;/li&gt;
&lt;li&gt;Think about the wider range of human experience. It helps is realize where we might be adding barriers by making assumptions about a person’s abilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;Reviewing a design for accessibility is a good way to make sure we ship accessible experiences. Starting a design with accessibility is even better.&lt;/p&gt;
&lt;p&gt;Three steps we can start a design and consider accessibility are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do a text-only design,&lt;/li&gt;
&lt;li&gt;Do an HTML-only design, then&lt;/li&gt;
&lt;li&gt;Go off The Happy Path.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This helps us to think about the diverse and complicated range of people who will be interacting with our designs and code. It helps us make sure that we don&#39;t put up any barriers for them.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with Orca screen reader on Gnome desktop environment on Ubuntu 20.04 LTS</title>
		<link href="https://a11yproject.com/posts/getting-started-with-orca/"/>
		<updated>2021-09-03T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-with-orca/</id>
		<content type="html">&lt;h2 id=&quot;introduction-to-orca&quot; tabindex=&quot;-1&quot;&gt;Introduction to Orca&lt;/h2&gt;
&lt;p&gt;Orca is a free, open-source screen reader developed under the &lt;a href=&quot;https://www.gnome.org/about-us/&quot;&gt;GNOME project&lt;/a&gt;. Several Linux distributions have it installed by default.&lt;/p&gt;
&lt;p&gt;This article will introduce you to the basics of Orca on Gnome desktop environment on &lt;a href=&quot;https://help.ubuntu.com/20.04/installation-guide/s390x/index.html&quot;&gt;Ubuntu&lt;/a&gt; version 20.04 LTS. There might be some slight variations if you are using a different desktop environment or using GNOME on a different Linux distribution. You need to consult the manual for your Linux distribution or desktop environment.&lt;/p&gt;
&lt;h2 id=&quot;launching-orca&quot; tabindex=&quot;-1&quot;&gt;Launching Orca&lt;/h2&gt;
&lt;p&gt;There are three ways you can launch Orca on Ubuntu 20.04 LTS. Below are the descriptions of these three methods.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the keyboard shortcut &lt;kbd&gt;Super&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;S&lt;/kbd&gt;.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;orca&lt;/code&gt; on a terminal window and then press the &lt;kbd&gt;Return&lt;/kbd&gt; key. Alternatively, you can type &lt;code&gt;orca&lt;/code&gt; in the Run dialog and press the &lt;kbd&gt;Return&lt;/kbd&gt; key. You can use the key combination &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;F2&lt;/kbd&gt; to open the Run dialog and the &lt;kbd&gt;ESC&lt;/kbd&gt; key to close it. If you launch Orca using the Run dialog, you can close it by typing the command &lt;code&gt;pkill orca&lt;/code&gt; or &lt;code&gt;killall orca&lt;/code&gt; on the terminal or in the the Run dialog and then pressing the &lt;kbd&gt;Return&lt;/kbd&gt; key.&lt;/li&gt;
&lt;li&gt;Open the Settings dialog and then select Universal access. You can then toggle the screen reader on or off.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After launching Orca, it will immediately announce the title of the topmost open application window if it is accessible to Orca. Though most applications that come pre-installed with the Gnome desktop environment are accessible, some third-party applications installed by you may not be accessible to Orca.&lt;/p&gt;
&lt;h2 id=&quot;the-orca-modifier-keys&quot; tabindex=&quot;-1&quot;&gt;The Orca Modifier keys&lt;/h2&gt;
&lt;p&gt;The modifier key used by Orca depends on the keyboard layout. Orca has two keyboard layouts, namely:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desktop keyboard layout&lt;/li&gt;
&lt;li&gt;Laptop keyboard layout&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Desktop keyboard layout is the default keyboard layout. Its Modifier key is the key combination &lt;kbd&gt;Insert&lt;/kbd&gt; + &lt;kbd&gt;KP_Insert&lt;/kbd&gt;. &lt;kbd&gt;KP_Insert&lt;/kbd&gt; is the same as &lt;kbd&gt;KP_0&lt;/kbd&gt;. If it is your first time using Orca, most likely you are in the Desktop keyboard layout.&lt;/p&gt;
&lt;p&gt;The modifier key for the Laptop layout is &lt;kbd&gt;CapsLock&lt;/kbd&gt; .&lt;/p&gt;
&lt;p&gt;You can change the keyboard layout from the preferences section. You can open the preferences dialog from the terminal or from the Run dialog by typing the command &lt;code&gt;orca -s&lt;/code&gt; or &lt;code&gt;orca --setup&lt;/code&gt; and then pressing the &lt;kbd&gt;Return&lt;/kbd&gt; key. That command will open Orca and the preferences dialog at the same time.&lt;/p&gt;
&lt;h2 id=&quot;the-learn-mode&quot; tabindex=&quot;-1&quot;&gt;The Learn Mode&lt;/h2&gt;
&lt;p&gt;There is a feature in Orca referred to as Learn Mode. It is a valuable feature if you are still learning Orca. It helps you to access the documentation quickly. If you press any key in this mode, Orca will announce the pressed keystroke and the associated Orca command bound to it.&lt;/p&gt;
&lt;p&gt;Below is a table showing the keyboard shortcuts associated with the Learn Mode. You need to first turn on Learn mode using the key combination &lt;kbd&gt;orca modifier&lt;/kbd&gt; + &lt;kbd&gt;H&lt;/kbd&gt; before using the commands starting in the second row.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;orca modifier&lt;/kbd&gt; + &lt;kbd&gt;H&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Turn on Learn Mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;F1&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Open Orca documentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;F2&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Open shortcuts that apply &lt;em&gt;orca-wide&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;F3&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Open shortcuts that apply to the currently focused application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Up&lt;/kbd&gt; or &lt;kbd&gt;Down&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate open list of shortcuts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;ESC&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Turn off Learn Mode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;reading-documents-and-webpages&quot; tabindex=&quot;-1&quot;&gt;Reading documents and webpages&lt;/h2&gt;
&lt;p&gt;You can navigate through a document or an application as Orca narrates it for you. You can do that using the application&#39;s built-in caret navigation mode. Caret navigation is where a user traverses the application or document and selects text using the keyboard. For example you can use the &lt;kbd&gt;Left&lt;/kbd&gt; and &lt;kbd&gt;Right&lt;/kbd&gt; keys to navigate through a document reading one character at a time. Before we look at the basic navigation shortcuts, you should take note of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;According to the orca documentation, caret navigation is turned off by default in some Gnome applications. You can toggle it on and off using the &lt;kbd&gt;F7&lt;/kbd&gt; key.&lt;/li&gt;
&lt;li&gt;Firefox doesn&#39;t work with Orca if you launch Orca after launching Firefox according to the &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1221521&quot;&gt;Firefox doesn&#39;t work with Orca screen reader&lt;/a&gt; issue. The workaround is to launch Orca before launching Firefox or restart Firefox after launching Orca.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below are some of the keyboard shortcuts for navigating through a document, webpage, or application.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Left&lt;/kbd&gt; and &lt;kbd&gt;Right&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate the document and read by character&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Left&lt;/kbd&gt; and &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Right&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate the document and read by word&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Up&lt;/kbd&gt; and &lt;kbd&gt;Down&lt;/kbd&gt;&lt;/td&gt;
&lt;td&gt;Navigate the document and read by line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;kbd&gt;Shift&lt;/kbd&gt; with the above commands&lt;/td&gt;
&lt;td&gt;To select and unselect text&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This article covers the basics of getting started with Orca on Gnome desktop environment running on Ubuntu 20.04 LTS. As already mentioned, there might be slight variations if you are using a different desktop environment or Linux distribution. What we have covered here is just enough to get you started using Orca. You can roll up your sleeves and dive into the Orca documentation to get the full taste of this screen reader.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>How I deal with colorblindness as a digital product designer</title>
		<link href="https://a11yproject.com/posts/how-i-deal-with-colorblindness-as-a-digital-product-designer/"/>
		<updated>2021-10-09T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-i-deal-with-colorblindness-as-a-digital-product-designer/</id>
		<content type="html">&lt;p&gt;Colorblindness is any visual anomaly where someone has an altered perception of colors. It can be total or partial. The A11Y Project already has an &lt;a href=&quot;https://www.a11yproject.com/posts/understanding-colourblindness/&quot;&gt;article that exhaustively covers the different types of color blindness&lt;/a&gt; while also providing tools that you can use during your design phases.&lt;/p&gt;
&lt;p&gt;In this article, I’d like to tell you what it means to be a colorblind designer and what the main problems are that someone with colorblindness can encounter if they decide to pursue a career as a designer.&lt;/p&gt;
&lt;h2 id=&quot;colorblindness-from-a-user%E2%80%99s-point-of-view&quot; tabindex=&quot;-1&quot;&gt;Colorblindness from a user’s point of view&lt;/h2&gt;
&lt;p&gt;During elementary school, like most colorblind people, I discovered that I have &lt;em&gt;deuteranomaly&lt;/em&gt;, the most common form of colorblindness: I have a deficit in the sensitivity of my green color receptors. In my offline life, it’s never caused me too much inconvenience, other than the strange color combinations of my clothes.&lt;/p&gt;
&lt;p&gt;Growing up and during my introduction to the internet and the first video-game consoles, I encountered more barriers than I had expected. From then on, I started using special filters if an application offered them, and I preferred to browse sites that didn’t over rely on color alone to convey information.&lt;/p&gt;
&lt;p&gt;Recently, I was pondering whether most people with colorblindness had problems online or whether I was one of the few people to experience that.&lt;/p&gt;
&lt;p&gt;Through deep user research I found two interesting answers: the first is that I wasn’t the only person with colorblindness to have problems online; the second is that, unfortunately, I found many more people than I had imagined.&lt;/p&gt;
&lt;p&gt;In light of this, I decided to write a &lt;a href=&quot;https://colorblindaccessibilitymanifesto.com/&quot;&gt;manifesto of ten rules that all designers should follow to create digital products that are more accessible to the colorblind community&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;working-as-a-colorblind-designer&quot; tabindex=&quot;-1&quot;&gt;Working as a colorblind designer&lt;/h2&gt;
&lt;p&gt;In addition to being a colorblind internet user, I am also a colorblind designer. This part of me comes into play when I have to design digital interfaces, either alone or as part of a team. When I’m part of a team, I immediately let people know about my colorblindness to avoid any potential misunderstandings.&lt;/p&gt;
&lt;p&gt;But there are many other contexts where my colorblindness manifests itself more, and it can even create slowdowns or serious misunderstandings.&lt;/p&gt;
&lt;p&gt;During remote design sessions, we often use Post-it Notes to brainstorm. Many times Post-it Notes of different colors give life to different and common streams of reasoning, while other times Post-it Notes of different colors end up beside one another.&lt;/p&gt;
&lt;p&gt;When Post-its with similar colors are placed side by side, my brain can&#39;t perceive the color differences between them anymore.&lt;/p&gt;
&lt;p&gt;Another element that comes up during design sessions is my constant request for the exact color codes for different interface elements. Unfortunately, it’s not enough for me to know that an element should be made more blue or more red—I need to know what the shades of blue and red are intended to convey because that could be different from what I might imagine.&lt;/p&gt;
&lt;p&gt;Working as a digital designer, I continuously refer to screenshots from which I sample color codes. My Mac’s desktop is full of temporary images whose only purpose is so that I can find the right color before I throw them in the trash.&lt;/p&gt;
&lt;p&gt;With the type of interfaces that I design, you can usually tell that they’re mine because they have high contrast between colors. And they probably don’t have fancy shades or secondary decorations. I always treat color solely as a decoration because if color alone were to convey information, that could exclude colorblind users.&lt;/p&gt;
&lt;h2 id=&quot;improving-the-work-experience&quot; tabindex=&quot;-1&quot;&gt;Improving the work experience&lt;/h2&gt;
&lt;p&gt;The most important thing that I’ve learned is to immediately let my coworkers know that I’m colorblind. This also helps the other people on the team better understand the types of communication that I’m most comfortable with.&lt;/p&gt;
&lt;p&gt;And I continuously seek feedback. When I’m lucky enough to work on projects with other product designers, I ask for their opinion on the work we’ve just done, especially about color and how it could be perceived by noncolorblind people.&lt;/p&gt;
&lt;p&gt;Being colorblind is something that for years I’ve considered a limit that would’ve held me back in life—but it’s turned out to be a great strength. It lets me see the world from another point of view. Our goal as product designers should be to work with increasingly diverse teams so that we can create digital products that can better respond to the needs of those around us. And these differences between human beings offer opportunities that we need to make the most of.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Disability: let’s say the word</title>
		<link href="https://a11yproject.com/posts/lets-say-the-word-disability/"/>
		<updated>2021-10-18T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/lets-say-the-word-disability/</id>
		<content type="html">&lt;p&gt;“I mean, she called you &lt;em&gt;deaf&lt;/em&gt;, you’re &lt;em&gt;hearing impaired!&lt;/em&gt;”&lt;/p&gt;
&lt;p&gt;“Well, actually…”&lt;/p&gt;
&lt;h2 id=&quot;the-words-of-disability&quot; tabindex=&quot;-1&quot;&gt;The words of disability&lt;/h2&gt;
&lt;p&gt;Growing up, I did identify as ‘hearing impaired.’ My mom was hearing impaired, my brother was hearing impaired, and I was hearing impaired. I never thought much about the word ‘impaired.’ It didn’t bother me or offend me.&lt;/p&gt;
&lt;p&gt;Even though I grew up with severe-to-profound bilateral sensorineural hearing loss (try saying &lt;strong&gt;that&lt;/strong&gt; five times fast!), I was not often around other deaf or hard-of-hearing (HOH) people. I had little to no exposure to others’ shared experiences. As such, I did not interact much with members of &lt;a href=&quot;https://www.nationaldeafcenter.org/sites/default/files/The%20Deaf%20Community-%20An%20Introduction.pdf&quot;&gt;the Deaf (capital ‘D’) community&lt;/a&gt; and had no idea of the preferred terminology.&lt;/p&gt;
&lt;h2 id=&quot;discovery&quot; tabindex=&quot;-1&quot;&gt;Discovery&lt;/h2&gt;
&lt;p&gt;That all changed when Facebook came around and provided us access to many other viewpoints.&lt;/p&gt;
&lt;p&gt;The group feature on Facebook was quite popular in the beginning years, and I was eager to talk to people around the world (omg, British people are real!) so I signed up for quite a few groups, one of which was Deaf/HOH. I gave this a cursory glance and moved on to my then favorite “I Judge You When You Use Poor Grammar.” (I was an English major. Cut me some slack, yeah?)&lt;/p&gt;
&lt;p&gt;I eventually circled back around to all these groups I had joined, and in the Deaf/HOH group, a topic caught my eye: “Why is it HARD? Why HARD-of-hearing?” In reading through the thread, I saw people discussing the negative connotations of the word ‘hard’ and objecting that something negative was being applied to those with partial hearing loss. (‘Loss’ is another word that is often up for debate in this group.)&lt;/p&gt;
&lt;h2 id=&quot;research-and-themes&quot; tabindex=&quot;-1&quot;&gt;Research and themes&lt;/h2&gt;
&lt;p&gt;I went down a rabbit hole. I came across several threads reinforcing that ‘impaired’ should not be used to describe hard-of-hearing people. I came across the word ‘audism,’ which is the tendency to push non-hearing people into a hearing world. People were “hearies” and “deafies.” People asked for tips on becoming employed and whether they should disclose their deafness.&lt;/p&gt;
&lt;p&gt;A predominant theme throughout the group was “Stop trying to fix us! We’re not broken!” Many within the Deaf community viewed cochlear implants as erasing their culture. They would try to convince worried parents not to get them for their young children. In lieu of that, at least ensure their children would learn sign language. In the same vein as “don’t fix us” was “We’re not &lt;em&gt;disabled&lt;/em&gt;! We’re &lt;strong&gt;DEAF&lt;/strong&gt;!” Posters would write about not wanting to identify as disabled while also being discriminated against for being deaf.&lt;/p&gt;
&lt;h2 id=&quot;history-and-identity&quot; tabindex=&quot;-1&quot;&gt;History and identity&lt;/h2&gt;
&lt;p&gt;So about that word, ‘disabled.’&lt;/p&gt;
&lt;p&gt;Hesitance to use the word ‘disabled’ within the Deaf community stems from a variety of reasons. For this group, they were first Deaf, disabled a reluctant second. That was part of their identity. The &lt;a href=&quot;https://blogs.scientificamerican.com/observations/clearing-up-some-misconceptions-about-neurodiversity/&quot;&gt;neurodiverse community&lt;/a&gt; also generally prefers identity first. People in this group might not consider themselves disabled, actually calling their neurodivergence a superpower.&lt;/p&gt;
&lt;p&gt;What’s important to note here is that the communities themselves are driving how they are identified, as opposed to someone from the outside looking in trying to define the labels.&lt;/p&gt;
&lt;p&gt;Another group of people who hesitate to use the word ‘disabled’ are those who worry it’s a pejorative or insulting. These are usually non-disabled people who, in trying not to accidentally offend, use other potentially offending terms: “differently abled” (immediately “others” us), “range of abilities” or “people of all abilities” (okay, but we’re discriminated against for our &lt;em&gt;disability&lt;/em&gt;, are you going to ignore that?), “specially challenged” (again, “others” us), and so on. Note here that the push for labels other than ‘disabled’ is coming from people &lt;em&gt;without&lt;/em&gt; a disability.&lt;/p&gt;
&lt;h2 id=&quot;the-%23saytheword-disability-hashtag&quot; tabindex=&quot;-1&quot;&gt;The #SayTheWord disability hashtag&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://disabledspectator.com/saytheword-power-language-disability/&quot;&gt;#SayTheWord hashtag was created by Lawrence Carter-Long&lt;/a&gt; to bring awareness to the actual word ‘disabled’ and to encourage everyone to use it. There are several reasons why non-disabled people may hesitate to &lt;a href=&quot;https://web.yammer.com/main/search/threads?search=%23SayTheWord&quot;&gt;#SayTheWord&lt;/a&gt; ‘disability.’ Their impression of what entails disability is mostly negative; they think disabled people are sad, lonely, dependent, unhappy. So calling someone ‘disabled’ would imply you think they’re unhappy or incapable.&lt;/p&gt;
&lt;p&gt;People also may not realize that disability can be invisible, so they think only people in wheelchairs are disabled, but not the coworker in the cube next to them who needs a lot of time off (due to a hidden disability). Hidden disabilities in particular pose a host of barriers for people. People who have invisible disabilities may find themselves facing skepticism that their disability is ‘real,’ exasperation about the time it may take them to do a task, anger about all the ‘free time’ they get off work. Given stigmas around mental illness such as depression or anxiety, people may hesitate to disclose, for fear that their experience will be minimized or dismissed and their needs ignored.&lt;/p&gt;
&lt;h2 id=&quot;breaking-down-stigmas&quot; tabindex=&quot;-1&quot;&gt;Breaking down stigmas&lt;/h2&gt;
&lt;p&gt;In hesitating to use the word ‘disability,’ people are unwittingly reinforcing the stigma that having a disability is a bad thing. It also erases our experiences because of our disabilities. In ensuring we use the word ‘disability,’ we can bring visibility to what all it entails and start breaking down the myriad stigmas associated with it. We can start humanizing the people behind them instead of caricaturizing them as wheelchair or cane users only.&lt;/p&gt;
&lt;p&gt;Disability isn’t an inherently bad experience. Disability as a minority group is the only one that everyone can enter in and exit out of during their lifetime. When people break their arm, they’re experiencing a disabling event. However, they may just feel inconvenienced at having to type one-handed or use dictation software. But they’re &lt;em&gt;disabled&lt;/em&gt;, even if just for a short while.&lt;/p&gt;
&lt;p&gt;Making sure we &lt;a href=&quot;https://web.yammer.com/main/search/threads?search=%23SayTheWord&quot;&gt;#SayTheWord&lt;/a&gt; can help people relate to the various scenarios that life throws at us that disable us, whether temporarily or permanently. After all, we all age into disability. Disability is something we all will experience, even if we don’t realize it, and there is no shame in that.&lt;/p&gt;
&lt;p&gt;#SayTheWord ‘disability’ and when in doubt, ask.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Accessible heading structure</title>
		<link href="https://a11yproject.com/posts/how-to-accessible-heading-structure/"/>
		<updated>2022-01-03T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/how-to-accessible-heading-structure/</id>
		<content type="html">&lt;p&gt;Headings are the backbone of the content of a page. A visitor should be able to scan the webpage using headings to get a good impression of its content.&lt;/p&gt;
&lt;p&gt;Heading levels have meaning, especially for screen reader users and search engines. That means one unique first level heading per page, with the other headings representing the page content similar to the index of a book: easily scannable and semantic.&lt;/p&gt;
&lt;p&gt;Write well-structured headings, because what is good for your reader, is also good for your SEO.&lt;/p&gt;
&lt;h2 id=&quot;headings-in-html&quot; tabindex=&quot;-1&quot;&gt;Headings in HTML&lt;/h2&gt;
&lt;p&gt;Headings are HTML elements. The main heading, &lt;code&gt;h1&lt;/code&gt;, is level 1. The other levels are &lt;code&gt;h2&lt;/code&gt; up to &lt;code&gt;h6&lt;/code&gt;. &lt;a href=&quot;https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements&quot;&gt;The HTML Living Standard&lt;/a&gt; states on headings:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;A heading can be used where heading content is expected. Heading content defines the header of a section (whether explicitly marked up using sectioning content elements, or implied by the heading content itself).&lt;/p&gt;
  &lt;footer&gt;
    &lt;cite&gt;&lt;a href=&quot;https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements&quot;&gt;The HTML Living Standard, The h1, h2, h3, h4, h5, and h6 elements&lt;/a&gt;&lt;/cite&gt;
  &lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;In short: use a heading when the content or the page structure requires it.&lt;/p&gt;
&lt;h3 id=&quot;best-practices-summarized&quot; tabindex=&quot;-1&quot;&gt;Best practices summarized&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use one unique &lt;code&gt;h1&lt;/code&gt; per page that describes what that page is about. That &lt;code&gt;h1&lt;/code&gt; preferably starts just above the main content.&lt;/li&gt;
&lt;li&gt;Use headings to describe the content below. Do not use an HTML heading just to make the text appear bigger or stand out.&lt;/li&gt;
&lt;li&gt;Use heading levels like the index of a book: hierarchical.&lt;/li&gt;
&lt;li&gt;Do not choose a heading by its size, but by its level in the context of the content.&lt;/li&gt;
&lt;li&gt;Do not skip a heading level from the top down.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;common-mistakes%3A&quot; tabindex=&quot;-1&quot;&gt;Common mistakes:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Using a &lt;code&gt;h2&lt;/code&gt; heading for quotes because of its nice big font size.&lt;/li&gt;
&lt;li&gt;Using a &lt;code&gt;h4&lt;/code&gt; heading for the first paragraph of the text because it&#39;s just the size of bold text you need.&lt;/li&gt;
&lt;li&gt;Exclusively using &lt;code&gt;h2&lt;/code&gt; headings on a web page because all headings are the same size in the designs.&lt;/li&gt;
&lt;li&gt;Using multiple &lt;code&gt;h1&lt;/code&gt; headings on a web page.&lt;/li&gt;
&lt;li&gt;Omitting headings because the design clearly indicates the start of a new section.&lt;/li&gt;
&lt;li&gt;Leaving headings empty (usually a CMS glitch).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;what-does-hierarchical-mean%3F&quot; tabindex=&quot;-1&quot;&gt;What does hierarchical mean?&lt;/h3&gt;
&lt;p&gt;Hierarchical means arranged in order from most important to least important. The &lt;code&gt;h1&lt;/code&gt; is the most important heading level, the &lt;code&gt;h6&lt;/code&gt; the least.&lt;/p&gt;
&lt;p&gt;In practice, for web content, you will use the &lt;code&gt;h1&lt;/code&gt; for the page title, give the most important sections an &lt;code&gt;h2&lt;/code&gt;, and, if needed, add an &lt;code&gt;h3&lt;/code&gt; or maybe even an &lt;code&gt;h4&lt;/code&gt; to divide the content in the &lt;code&gt;h2&lt;/code&gt; section.&lt;/p&gt;
&lt;p&gt;You only need to start with the &lt;code&gt;h1&lt;/code&gt; if that makes sense for your content structure and design. For example:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;    h2 = main menu&lt;br /&gt;h1 = title of a news article&lt;br /&gt;    h2 = subheading in the content of the news article&lt;br /&gt;        h3 = subheading of the h2&lt;br /&gt;            h4 = subheading of the h3&lt;br /&gt;    h2 = subheading in the content of the news article&lt;br /&gt;    h2 = Related news (the aside section)&lt;br /&gt;    h2 = Contact us (in the footer)&lt;br /&gt;        h3 = Address (the address information)&lt;br /&gt;        h3 = Follow us (social media links)&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;wcag-on-headings&quot; tabindex=&quot;-1&quot;&gt;WCAG on headings&lt;/h3&gt;
&lt;p&gt;What do the &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/&quot;&gt;Web Content Accessible Guidelines (WCAG)&lt;/a&gt; say about headings? They are actually not very specific on this topic.&lt;/p&gt;
&lt;p&gt;A few of the WCAG 2 AA success criteria address headings or heading structure directly, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Success Criterion: &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/#headings-and-labels&quot;&gt;2.4.6 Headings and labels&lt;/a&gt;.&lt;/strong&gt; Provide ways to help users navigate, find content, and determine where they are. Headings and labels describe topic or purpose.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Success Criterion: &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=246#consistent-navigation&quot;&gt;3.2.3 Consistent Navigation Level&lt;/a&gt;.&lt;/strong&gt; Navigational mechanisms that are repeated on multiple Web pages within a set of Web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Success Criterion: &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=246#info-and-relationships&quot;&gt;1.3.1 Info and Relationships&lt;/a&gt;.&lt;/strong&gt; Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text. In other words: if it looks like a heading, it should be a heading in the HTML (and not for example text made bold).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short: use headings to describe content and use them consistently and semantically. This will help all users to better find the content they are looking for.&lt;/p&gt;
&lt;p&gt;Only WCAG 2 level &lt;strong&gt;AAA&lt;/strong&gt; demands that headings must be structured. &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=246#section-headings&quot;&gt;Success criterion 2.4.10&lt;/a&gt; says: Section headings are used to organize the content.&lt;/p&gt;
&lt;p&gt;The worldwide web standard is &lt;strong&gt;double A (AA)&lt;/strong&gt;, but that doesn&#39;t mean that you can&#39;t use success criteria that are triple A (AAA) if it&#39;s helpful for your users.&lt;/p&gt;
&lt;p&gt;A well-organised heading structure helps everyone, especially screen reader users, understand and navigate a web page.&lt;/p&gt;
&lt;h3 id=&quot;one-h1&quot; tabindex=&quot;-1&quot;&gt;One &lt;code&gt;h1&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Oh yeah, that old heated discussion. Can I use multiple &lt;code&gt;h1&lt;/code&gt;s on a web page? Short answer: No. The &lt;code&gt;h1&lt;/code&gt; is for the page title only.&lt;/p&gt;
&lt;p&gt;Having multiple &lt;code&gt;h1&lt;/code&gt;s on a web page is bad practice, for accessibility and for SEO. It creates a flat and meaningless structure.  But, it&#39;s not a WCAG 2 AA violation. The long answer involves a short history lesson.&lt;/p&gt;
&lt;p&gt;Using multiple &lt;code&gt;h1&lt;/code&gt;s was proposed with the introduction of the HTML Document Outline in HTML5. Each section in the outline could contain an H1. But here&#39;s the snag: &lt;strong&gt;The Document outline was never adapted by browsers or assistive technology&lt;/strong&gt;. Therefore the support for multiple &lt;code&gt;h1&lt;/code&gt;s was dropped in HTML5.1&lt;/p&gt;
&lt;p&gt;If you want to know the full story, please read &lt;a href=&quot;https://html5doctor.com/computer-says-no-to-html5-document-outline/&quot;&gt;Computer says NO to HTML5 document outline&lt;/a&gt; and  &lt;a href=&quot;https://codepen.io/stevef/post/a-decade-of-heading-backwards&quot;&gt;A decade of heading backwards&lt;/a&gt; by Steven Falkner and &lt;a href=&quot;https://adrianroselli.com/2016/08/there-is-no-document-outline-algorithm.html&quot;&gt;There Is No Document Outline Algorithm&lt;/a&gt; by Adrian Roselli.&lt;/p&gt;
&lt;p&gt;Thankfully the example of multiple &lt;code&gt;h1&lt;/code&gt;s in the &lt;a href=&quot;https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements&quot;&gt;WHATWG HTML Living standards&lt;/a&gt;, has been removed and shows one h1 per page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concluding&lt;/strong&gt;: Multiple &lt;code&gt;h1s&lt;/code&gt; on sections to create a document outline is &lt;strong&gt;not&lt;/strong&gt; supported by browsers and therefore outdated.&lt;/p&gt;
&lt;p&gt;Use &lt;strong&gt;one &lt;code&gt;h1&lt;/code&gt;&lt;/strong&gt;, describing the content of the web page. Structuring the rest of the content with meaningful subheadings. This serves accessibility and SEO best.&lt;/p&gt;
&lt;h3 id=&quot;hgroup&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;hgroup&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;In theory, headings of different levels can be combined using the HTML element hgroup. The &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hgroup&quot;&gt;hgroup HTML element&lt;/a&gt; represents a multi-level heading for a section of a document. It groups a set of &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;–&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; elements. But, the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hgroup&quot;&gt;MDN documentation on hgroup&lt;/a&gt; contains two clear warnings:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;hgroup&amp;gt;&lt;/code&gt; should not be used because no assistive technology supports it, and as a result it has a detrimental effect on assistance for headings placed within it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[...] given that a key purpose of the &lt;code&gt;&amp;lt;hgroup&amp;gt;&lt;/code&gt; element is to affect how headings are displayed by the outline algorithm defined in the HTML specification — but the HTML outline algorithm is not implemented in any browsers—then the &lt;code&gt;&amp;lt;hgroup&amp;gt;&lt;/code&gt; semantics are in practice only theoretical.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update August 1, 2022&lt;/strong&gt;: Steve Faulkner proposed a way to introduce&lt;code&gt; hgroup&lt;/code&gt; again, which is promising, in:&lt;br /&gt;
&lt;a href=&quot;https://www.tpgi.com/subheadings-subtitles-alternative-titles-and-taglines-in-html/&quot;&gt;Subheadings, subtitles, alternative titles and taglines in HTML&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Until browsers add the information themselves do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;role=&amp;quot;group&amp;quot;&lt;/code&gt; and &lt;code&gt;aria-roledescription=&amp;quot;Heading group&amp;quot;&lt;/code&gt; as attributes to the &lt;code&gt;hgroup&lt;/code&gt; element.&lt;/li&gt;
&lt;li&gt;Add the subtitles in a paragraph (not a heading) &lt;code&gt;&amp;lt;p aria-roledescription=&amp;quot;subtitle&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then all information about the structure and connection of the headings group is given for assistive technology in the accessibility tree.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;hgroup&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;group&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-roledescription&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Heading group&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;My heading&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-roledescription&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;subtitle&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;My subtitle or tagline&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;hgroup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;navigation-by-headings&quot; tabindex=&quot;-1&quot;&gt;Navigation by headings&lt;/h2&gt;
&lt;p&gt;We all navigate by headings (and links) because they stand out. People initially do not read on a webpage, they &lt;a href=&quot;https://stampede-design.com/blog/people-dont-read-they-scan/&quot;&gt;skim and scan the content&lt;/a&gt; for what they want to read. Only if they find what they are looking for, then they start reading.&lt;/p&gt;
&lt;p&gt;Make that scan-journey as easy as possible. You can do that by creating a clear and consistent menu structure for the website and a clear heading structure on the web page itself.&lt;/p&gt;
&lt;h3 id=&quot;screen-reader-navigation&quot; tabindex=&quot;-1&quot;&gt;Screen reader navigation&lt;/h3&gt;
&lt;p&gt;People who are blind or visually impaired use a screen reader to read and navigate a website.&lt;/p&gt;
&lt;p&gt;With the screen reader you can jump from heading to heading, using a shortcode, and so scan the web page by headings. And you can call a list of headings and scroll through that, to choose the content you want to read from. This is a super fast way to get where you want to read when you can not see the content.&lt;/p&gt;
&lt;p&gt;Heading navigation is very common. In the &lt;a href=&quot;https://webaim.org/projects/screenreadersurvey9/&quot;&gt;2021 Screen Reader User Survey by WebAIM&lt;/a&gt; it shows that &lt;strong&gt;67.7% use headings to find information&lt;/strong&gt;. 85.7% of respondents find heading levels very or somewhat useful.&lt;/p&gt;
&lt;p&gt;Write your headings and heading structure with that information in mind. Provide information about the content in the page with your headings, also for someone who can not see the page content.&lt;/p&gt;
&lt;h2 id=&quot;what-makes-a-good-heading-text%3F&quot; tabindex=&quot;-1&quot;&gt;What makes a good heading text?&lt;/h2&gt;
&lt;p&gt;A good heading text represents the content below. It can be a teaser &amp;quot;Subscribe to our newsletter!&amp;quot; above the subscription form. The page title and subheadings to divide the text into meaningful sections. A short summary of the following content: &amp;quot;Contact information&amp;quot;. Or point to additional content &amp;quot;Related news&amp;quot;.&lt;/p&gt;
&lt;p&gt;Make the heading text descriptive and make them understandable on its own, apart from the context. For people who read the headings list. Let the heading text tell a story about the content of your page.&lt;/p&gt;
&lt;h3 id=&quot;heading-text-length&quot; tabindex=&quot;-1&quot;&gt;Heading text length&lt;/h3&gt;
&lt;p&gt;A screen reader user can call a list of headings and read through them to decide where to start reading on a webpage. There are no accessibility requirements for the length of a heading text.&lt;/p&gt;
&lt;p&gt;Next to accessibility, als usability is a factor to take into account.  Converting complete paragraphs into a headings results in a horrible screen reader experience.  Keep it to the point, descriptive  and scannable.&lt;/p&gt;
&lt;h2 id=&quot;headings-in-design&quot; tabindex=&quot;-1&quot;&gt;Headings in design&lt;/h2&gt;
&lt;p&gt;Following are some considerations for using headings in design.&lt;/p&gt;
&lt;h3 id=&quot;all-caps&quot; tabindex=&quot;-1&quot;&gt;ALL CAPS&lt;/h3&gt;
&lt;p&gt;Text in all capitals is harder to read. The shape of a word disappears,  every word becomes a rectangle. Research shows that all caps text is especially difficult for readers with dyslexia. Make life easy for your readers, don&#39;t capitalize all the words.&lt;/p&gt;
&lt;p&gt;Damien Sieger did excellent &lt;a href=&quot;https://www.ncdt.nl/vorige-edities/2019/readability-on-the-web-damien-senger&quot;&gt;research on readability on the web&lt;/a&gt;, including the use of all caps.&lt;/p&gt;
&lt;h3 id=&quot;use-of-headings-in-the-design&quot; tabindex=&quot;-1&quot;&gt;Use of headings in the design&lt;/h3&gt;
&lt;p&gt;As a designer, look at the content structure of a template of a web page, and ask yourself the following questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How can a user skim the content by headings?&lt;/li&gt;
&lt;li&gt;Does every page have a clear, unique heading above the main content?&lt;/li&gt;
&lt;li&gt;Do important sections of content have headings?&lt;/li&gt;
&lt;li&gt;Is text just big (looking like a heading)  without related content beneath?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Make content scannable by using headings.&lt;/p&gt;
&lt;h2 id=&quot;headings-in-development&quot; tabindex=&quot;-1&quot;&gt;Headings in development&lt;/h2&gt;
&lt;p&gt;Following are some considerations for using headings in development.&lt;/p&gt;
&lt;h3 id=&quot;headings-in-reusable-components&quot; tabindex=&quot;-1&quot;&gt;Headings in reusable components&lt;/h3&gt;
&lt;p&gt;Cards, widgets, related content, forms, all components that can be reused on any page and inserted in the content by the theme or by the content manager.&lt;/p&gt;
&lt;p&gt;Most components have their own heading and that heading should fit the heading structure of a page. For example: on a page with the latest news, the individual news items have a heading with the level &lt;code&gt;h2&lt;/code&gt;. But in a component &amp;quot;related news&amp;quot;, the rest &amp;quot;related news&amp;quot; has the heading level &lt;code&gt;h2&lt;/code&gt; and the news items the level &lt;code&gt;h3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The presentation of the news items can be the same, only the heading level changes. Two possibilities:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give the content manager the opportunity to add or change a heading while adding a component.&lt;/li&gt;
&lt;li&gt;If a component is added by the theme: change the heading level as needed in the code.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;is-the-logo-a-heading%3F&quot; tabindex=&quot;-1&quot;&gt;Is the logo a heading?&lt;/h3&gt;
&lt;p&gt;Probably not.&lt;/p&gt;
&lt;p&gt;In most designs, the logo is a reoccurring component on every page at the same spot, containing the same text. Often the logo is also a link to the homepage. This is expected behavior and that&#39;s totally fine.&lt;/p&gt;
&lt;p&gt;But wrapping the logo in an &lt;code&gt;h1&lt;/code&gt;, resulting in the &lt;code&gt;h1&lt;/code&gt; being the site name, is not right. Because then, every single page on a site starts with the same &lt;code&gt;h1&lt;/code&gt; text. This is confusing for screen reader users and not informative for search engines.&lt;/p&gt;
&lt;p&gt;There are constructions possible to only wrap the logo in an &lt;code&gt;h1&lt;/code&gt; on the homepage and make the logo a link only in the other pages. That could work, but it is not consistent.  The best solution is for the designer to add a clear visual and unique &lt;code&gt;h1&lt;/code&gt;, also on the homepage.&lt;/p&gt;
&lt;h2 id=&quot;headings-and-aria%2C-some-discussion&quot; tabindex=&quot;-1&quot;&gt;Headings and ARIA, some discussion&lt;/h2&gt;
&lt;p&gt;Following are some considerations for using ARIA with headings.&lt;/p&gt;
&lt;h3 id=&quot;role%3D%22heading%22&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;role=&amp;quot;heading&amp;quot;&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;With ARIA, it&#39;s possible to add the role of heading and the aria-level attribute to an element.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;heading&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-level&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  My Heading&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or even change the level of a heading:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-level&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;3&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  My Heading&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://a11ysupport.io/tech/aria/heading_role&quot;&gt;&lt;code&gt;role=&amp;quot;heading&amp;quot;&lt;/code&gt; is very well-supported&lt;/a&gt; by assistive technology.&lt;/p&gt;
&lt;p&gt;What are the use cases for this? Because, well, why use ARIA while there is a totally valid HTML element available? Also, the &lt;a href=&quot;https://www.w3.org/TR/using-aria/#firstrule&quot;&gt;first rule of ARIA&lt;/a&gt; states: don&#39;t use ARIA when there is a built-in HTML element for the job.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;https://twitter.com/RianRietveld/status/1422789330762969092&quot;&gt;small inquiry on Twitter&lt;/a&gt; shows that developers use ARIA to add or change headings for the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix the heading structure of legacy code without also needing to adjust the CSS. This is a quick fix that makes sense, when there is no budget to refactor the CSS&lt;/li&gt;
&lt;li&gt;Use a div, with a role of heading and an aria-level, to avoid having to remove the native heading CSS styling. This is not the way web developers should approach their code.&lt;/li&gt;
&lt;li&gt;Add a level larger than 6, for example in legal documents, which can be very complicated heading wise.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the most remarkable reasons mentioned: use aria-headings for SEO. If a heading is needed for the heading structure, but not &amp;quot;good&amp;quot; for SEO, hide the heading from Google by using a &lt;code&gt;role=&amp;quot;heading&amp;quot;&lt;/code&gt; declaration instead of a native HTML5 heading element.&lt;/p&gt;
&lt;p&gt;This creates a shadow heading structure for screen readers, different from the actual HTML heading structure. As there is no evidence that search engines need a different heading structure for presenting content this can be considered as bad practice.&lt;/p&gt;
&lt;p&gt;Provide a good heading structure for the reader, and the reader only.&lt;/p&gt;
&lt;h3 id=&quot;aria-labelledby&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;aria-labelledby&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;With aria-labelledby it is possible to give a section or other landmark a name by referring to a heading. See also: &lt;a href=&quot;https://www.a11yproject.com/posts/2014-05-15-getting-started-aria/#aria-labelledby&quot;&gt;Getting started with ARIA&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;section&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;sweets-section-heading&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;sweets-section-heading&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Cupcake Ipsum&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    Oat cake icing toffee gummi bears jelly beans dessert sweet. Cookie&lt;br /&gt;    tart dragée gummy bears gingerbread wafer bear claw danish. Jelly beans&lt;br /&gt;    fruitcake gummies sesame snaps dragée sweet roll.&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;section&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Screen reader users can navigate by headings but also by landmarks. This way the name of a landmark can be inherited by a corresponding heading.&lt;/p&gt;
&lt;p&gt;Landmark navigation is not that common amongst screen reader users. Labeling may not be necessary for every single section or landmark. While reading through the content the section heading is announced additional to the heading, adding up to the clutter of text a screen reader user hears.&lt;/p&gt;
&lt;h2 id=&quot;headings-and-seo&quot; tabindex=&quot;-1&quot;&gt;Headings and SEO&lt;/h2&gt;
&lt;p&gt;How does a good semantic heading structure relate to Search Engine Optimisation (SEO)?  Search engines love text, content, written word, to understand the content of a page. Because headings give the content structure, the search engine is better able to understand and index the page properly.&lt;/p&gt;
&lt;p&gt;There are many theories and misconceptions about heading structure and SEO. How often do we hear the argument &amp;quot;My SEO expert demanded me to [ … ]&amp;quot;,  fill in the blanks, as a reason for a heading structure that doesn&#39;t make any sense for a blind reader?&lt;/p&gt;
&lt;p&gt;Cooper Hollmaier addresses more &lt;a href=&quot;https://www.a11yproject.com/posts/accessibility-seo/&quot;&gt;myths about accessibility and SEO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are SEO gurus that really get the point about headings. I&#39;d like to give two quotes from &lt;a href=&quot;https://yoast.com/how-to-use-headings-on-your-site/&quot;&gt;How to use headings on your site&lt;/a&gt; by the SEO company Yoast:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Headings help users and search engines to read and understand text. For example, they act as signposts for the readers and make it easier for them to figure out what a post or page is about. Headings also define which parts of your content are important, and show how they’re interconnected.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It’s generally agreed that how you use headings doesn’t specifically impact your SEO. Making minor tweaks to individual headings likely won’t help your performance. However, there are indirect benefits. Using headings creates texts of higher quality that are also easier to read. A better text is better for users, which is better for your SEO.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Write well-structured headings, because what is good for your reader, is also good for your SEO.&lt;/p&gt;
&lt;h2 id=&quot;tools&quot; tabindex=&quot;-1&quot;&gt;Tools&lt;/h2&gt;
&lt;p&gt;Next to the automated check tools like &lt;a href=&quot;https://www.deque.com/axe/devtools/&quot;&gt;Axe Devtools&lt;/a&gt;, there are some browser add-ons and CMS functionality to quickly check the heading structure in a visual way.&lt;/p&gt;
&lt;h3 id=&quot;headingsmap-by-jorge-rumoroso&quot; tabindex=&quot;-1&quot;&gt;HeadingsMap by Jorge Rumoroso&lt;/h3&gt;
&lt;p&gt;The browser add-on HeadingsMap by Jorge Rumoroso gives a clear visual presentation of the heading structure and indicates errors for skipping levels and incorrect order.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/headingsmap/flbjommegcjonpdmenkdiocclhjacmbi&quot;&gt;HeadingsMap for Chrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-GB/firefox/addon/headingsmap/&quot;&gt;HeadingsMap for FireFox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://microsoftedge.microsoft.com/addons/detail/headingsmap/bokekiiaddinealohkmhjcgfanndmcgo&quot;&gt;HeadingsMap for Edge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-accessible-heading-structure/headings-map.png&quot; alt=&quot;Screenshot of how HeadingsMap visualises the heading structure in a sidebar of the homepage of the Accessibility Project.&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;wave-evaluation-tool-by-webaim&quot; tabindex=&quot;-1&quot;&gt;WAVE Evaluation Tool by WebAIM&lt;/h3&gt;
&lt;p&gt;This tools shows, embedded within the landmarks, a visual presentation of the heading structure.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Online at &lt;a href=&quot;https://wave.webaim.org/&quot;&gt;wave.webaim.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh&quot;&gt;WAVE for Chrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-GB/firefox/addon/wave-accessibility-tool/&quot;&gt;WAVE for FireFox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-accessible-heading-structure/wave.png&quot; alt=&quot;Screenshot of how Wave visualises the heading structure in a sidebar the homepage of the Accessibility Project.&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;wordpress&quot; tabindex=&quot;-1&quot;&gt;WordPress&lt;/h3&gt;
&lt;p&gt;This CMS provides per page information about the number of headings and a visual heading presentation. This info can be found with the &amp;quot;Details&amp;quot; option (the i-icon) in the toolbar at the top of the edit page functionality.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/how-to-accessible-heading-structure/wordpress.png&quot; alt=&quot;Screenshot of how WordPress visualises the heading structure on a page in the editor.&quot; /&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Use Firefox for accessibility testing</title>
		<link href="https://a11yproject.com/posts/using-firefox-for-accessibility-testing/"/>
		<updated>2022-07-17T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/using-firefox-for-accessibility-testing/</id>
		<content type="html">&lt;p&gt;Firefox has become one of the best tools for accessibility audits. Let’s go over Firefox’s accessibility features that you can use today.&lt;/p&gt;
&lt;h2 id=&quot;built-in-accessibility-tools&quot; tabindex=&quot;-1&quot;&gt;Built-in accessibility tools&lt;/h2&gt;
&lt;p&gt;In this article I’ll discuss The Accessibility Tab, where we will begin and then move through to each component of the Accessibility Tab. First, the Check for issues tab, the Simulate menu, and end with the Show Tabbing Order checkbox. I’ll finish with the Checks and Properties panel.&lt;/p&gt;
&lt;h3 id=&quot;the-accessibility-tab&quot; tabindex=&quot;-1&quot;&gt;The Accessibility tab&lt;/h3&gt;
&lt;p&gt;Whenever you right-click on an element in a page, you can select &lt;strong&gt;Inspect Accessibility Properties&lt;/strong&gt; to directly view that element in Firefox’s accessibility tools. Similarly, if you’re using the &lt;strong&gt;Inspector&lt;/strong&gt; pane in Firefox’s dev tools, you can right-click on any node and choose &lt;strong&gt;Show Accessibility Tools&lt;/strong&gt; to view that node in Firefox’s accessibility tools.&lt;/p&gt;
&lt;p&gt;Firefox’s built-in accessibility tool is probably one of the best features in browsers’ dev tools out there now. It shows you the current &lt;a href=&quot;https://www.tpgi.com/the-browser-accessibility-tree/&quot;&gt;web page’s accessibility tree&lt;/a&gt;, and it has panels for color-contrast checks and the current node’s accessibility-tree properties.&lt;/p&gt;
&lt;p&gt;You can traverse the accessibility tree, and as you hover over each node, Firefox will show a tooltip over that node in the viewport with the name of the node and some basic properties. And the &lt;strong&gt;Checks&lt;/strong&gt; and &lt;strong&gt;Properties&lt;/strong&gt; panels can show you all the pertinent information for that node like its color and contrast ratio, &lt;a href=&quot;https://holistica11y.com/wcag-4-1-2-name-role-value-level-a/&quot;&gt;name, role, and value&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;the-check-for-issues-menu&quot; tabindex=&quot;-1&quot;&gt;The Check for issues menu&lt;/h3&gt;
&lt;p&gt;If you enable this handy feature, Firefox can check for color-contrast issues,it can do its best to try to find keyboard issues, and it can try to find form-label issues. There’s also an &lt;strong&gt;All Issues&lt;/strong&gt; option that will run all of those checks for the page.&lt;/p&gt;
&lt;p&gt;Each issue will show you the role and name of the element that has an issue, and the &lt;strong&gt;Checks&lt;/strong&gt; and &lt;strong&gt;Properties&lt;/strong&gt; panels will provide some information and values to help you resolve the issues.&lt;/p&gt;
&lt;h3 id=&quot;the-simulate-menu&quot; tabindex=&quot;-1&quot;&gt;The Simulate menu&lt;/h3&gt;
&lt;p&gt;This is a great tool for simulating visual differences. This can simulate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Protanopia (no red)&lt;/li&gt;
&lt;li&gt;Deuteranopia (no green)&lt;/li&gt;
&lt;li&gt;Tritanopia (no blue)&lt;/li&gt;
&lt;li&gt;Achromatopsia (no color)&lt;/li&gt;
&lt;li&gt;Contrast loss&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;show-tabbing-order-checkbox&quot; tabindex=&quot;-1&quot;&gt;Show Tabbing Order checkbox&lt;/h3&gt;
&lt;p&gt;Checking &lt;strong&gt;Show Tabbing Order&lt;/strong&gt; will show all the active tab stops like if you were navigating the web page with a keyboard. And you’ll see a small icon with a number indicating what order that element is in the tabbing sequence.&lt;/p&gt;
&lt;h3 id=&quot;the-checks-and-properties-panels&quot; tabindex=&quot;-1&quot;&gt;The Checks and Properties panels&lt;/h3&gt;
&lt;p&gt;The &lt;strong&gt;Checks&lt;/strong&gt; panel shows the developer such information as a color swatch, WCAG level (A, AA, or AAA), Regular or large text (denoted), color contrast ratio and if they meet or fail WCAG guidelines with &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast&quot;&gt;a link to MDN&lt;/a&gt; to learn more about color contrast.&lt;/p&gt;
&lt;p&gt;The panel also shows if text labels and names for links meet guidelines, and whether keyboard accessibility is met, if the node has focus able with interactive semantics.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Properties&lt;/strong&gt; panel gives you essential information about the node that you’ve selected in the accessibility tree, including the color and contrast for each text leaf and the node’s DOM properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;name&lt;/li&gt;
&lt;li&gt;role&lt;/li&gt;
&lt;li&gt;actions&lt;/li&gt;
&lt;li&gt;value&lt;/li&gt;
&lt;li&gt;DOMNode&lt;/li&gt;
&lt;li&gt;description&lt;/li&gt;
&lt;li&gt;keyboardShortcut&lt;/li&gt;
&lt;li&gt;childCount&lt;/li&gt;
&lt;li&gt;indexInParent&lt;/li&gt;
&lt;li&gt;states&lt;/li&gt;
&lt;li&gt;relations&lt;/li&gt;
&lt;li&gt;attributes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more about each property, you can &lt;a href=&quot;https://firefox-source-docs.mozilla.org/devtools-user/accessibility_inspector/&quot;&gt;consult Mozilla’s documentation on the Accessibility Inspector&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;the-wave-extension&quot; tabindex=&quot;-1&quot;&gt;The WAVE extension&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://wave.webaim.org/extension/&quot;&gt;The WAVE extension&lt;/a&gt; from &lt;a href=&quot;https://webaim.org/&quot;&gt;WebAIM&lt;/a&gt; is a great tool that you can use to start your testing with by performing quick scans of web pages. This can give you a baseline of what you might expect as you move through Firefox’s accessibility tools.&lt;/p&gt;
&lt;p&gt;The first thing that I look at in any accessibility audit is color contrast. Color contrast is still the most common accessibility issue in websites and apps, according to the &lt;a href=&quot;https://webaim.org/projects/million/&quot;&gt;WebAIM Million Report&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;WAVE will also give you a look at color-contrast issues along with other errors and warnings. You can access this on the extension’s toolbar or by right-clicking and choosing the &lt;strong&gt;WAVE this page&lt;/strong&gt; context-menu item.&lt;/p&gt;
&lt;p&gt;You can view details of each error, where those errors occur, and the code that’s associated with those errors. The extension also includes a quick reference guide to the WCAG guidelines and links to the success criteria that come up in the errors and warnings it finds.&lt;/p&gt;
&lt;h3 id=&quot;axe-devtools-extension&quot; tabindex=&quot;-1&quot;&gt;axe DevTools extension&lt;/h3&gt;
&lt;p&gt;The next extension that I recommend is the &lt;a href=&quot;https://deque.com/axe/devtools/&quot;&gt;axe DevTools extension&lt;/a&gt;. Axe-core is used in other tools such as Lighthouse, Jest, Selenium, and a variety of command-line accessibility checkers.&lt;/p&gt;
&lt;p&gt;Maintained by the team at &lt;a href=&quot;https://www.deque.com/&quot;&gt;Deque&lt;/a&gt;, axe-core and the axe DevTools extension are great tools to help catch some of the things that WAVE doesn’t. Just click the button and scan the page.&lt;/p&gt;
&lt;p&gt;A list of issues that it found will automatically come up, and then you’ll see a breakdown of its estimate of each error’s severity: critical, serious, moderate, and minor. I incorporate severity reports into audits I do so that clients can plan a course of attack to resolve issues and triage accessibility errors accordingly.&lt;/p&gt;
&lt;p&gt;You’ll get a list of all the issues and a description for each issue. And when you’re viewing the list of errors, you can toggle its list of best practices on or off.&lt;/p&gt;
&lt;p&gt;A pane on the right will give you options to highlight the errors and view the elements in question in Firefox’s &lt;strong&gt;Inspector&lt;/strong&gt; tab. Clicking on &lt;strong&gt;More Info&lt;/strong&gt; will open an in-depth entry on &lt;a href=&quot;https://dequeuniversity.com/&quot;&gt;Deque University&lt;/a&gt; about the error and how to fix it. That pane also includes a code description and some recommendations to help you solve the issue.&lt;/p&gt;
&lt;h3 id=&quot;other-extensions&quot; tabindex=&quot;-1&quot;&gt;Other extensions&lt;/h3&gt;
&lt;p&gt;Some other browser extensions that I also recommended for accessibility testing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ibm.com/able/toolkit/tools&quot;&gt;IBM Equal Access Accessibility Checker&lt;/a&gt; (Accessibility checker)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fontanello.app/&quot;&gt;Fontanello&lt;/a&gt; (Typography and color-contrast tool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dzc34/headingsMap&quot;&gt;HeadingsMap&lt;/a&gt; (Show, browse, and audit headings’ structure)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.tpgi.com/enabling-landmark-based-keyboard-navigation-in-firefox/&quot;&gt;Landmark Navigation via Keyboard or Pop-up&lt;/a&gt; (Navigate a page using WAI-ARIA landmarks)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/google-lighthouse/&quot;&gt;Lighthouse&lt;/a&gt; (Tool for improving the quality of web pages)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/visbug/&quot;&gt;VisBug&lt;/a&gt; (Open-source web-design debug tools built with JavaScript: ​it’s like if there were developer tools but for design)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;There are many tools built in to Firefox that you can use to help with accessibility testing, and there are extensions that can help with testing too. Don’t forget, though: Manual testing is crucial as well. Hopefully, when you use Firefox’s accessibility dev tools, you’ll have just as much success auditing and testing to make sites accessible as I do.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>What is WAI? The Web Accessibility Initiative</title>
		<link href="https://a11yproject.com/posts/what-is-wai/"/>
		<updated>2022-07-18T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/what-is-wai/</id>
		<content type="html">&lt;p&gt;The Web Accessibility Initiative is W3C&#39;s effort to improve accessibility of the Web for people with disabilities.&lt;/p&gt;
&lt;h2 id=&quot;what-is-the-world-wide-consortium%3F&quot; tabindex=&quot;-1&quot;&gt;What is the World Wide Consortium?&lt;/h2&gt;
&lt;p&gt;In order to know about the Web Accessibility Initiative, we must first talk about the World Wide Consortium, also known as W3C.&lt;/p&gt;
&lt;p&gt;Founded in 1994 and currently led by director Tim Berners-Lee and CEO Jeffrey Jaff, W3C is an international community where organizers develop international standards for the Web.&lt;/p&gt;
&lt;p&gt;As described by &lt;a href=&quot;https://www.w3.org/Consortium/&quot;&gt;W3’s website&lt;/a&gt;, “W3C&#39;s mission is to lead the Web to its full potential.”&lt;/p&gt;
&lt;p&gt;Organizers from all around the world, involved in many different fields, join W3C to develop guidelines that ensure long-term growth for the Web. The Web Accessibility Initiative is one initiative that was launched by W3C.&lt;/p&gt;
&lt;h2 id=&quot;what-is-the-web-accessibility-initiative%3F&quot; tabindex=&quot;-1&quot;&gt;What is the Web Accessibility Initiative?&lt;/h2&gt;
&lt;figure&gt;
	&lt;blockquote&gt;
	  &lt;p&gt;The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.&lt;/p&gt;
	&lt;/blockquote&gt;
	&lt;figcaption&gt;
	  &lt;p&gt;Tim Berners-Lee, &lt;cite&gt;&lt;a href=&quot;https://www.w3.org/standards/webdesign/accessibility&quot;&gt;W3C Director and inventor of the World Wide Web&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;W3C launched The Web Accessibility Initiative, (&lt;abbr&gt;WAI&lt;/abbr&gt;), in 1997, with support from the White House. The Web Accessibility Initiative’s main goal is to make the internet accessible for people with disabilities.&lt;/p&gt;
&lt;p&gt;WAI brings people from disability organizations, governments, and research labs from all around the world to develop guidelines and resources to make the Web accessible to people with disabilities. This includes: auditory, cognitive, neurological, physical, speech and visual disabilities.&lt;/p&gt;
&lt;p&gt;In short, WAI develops accessibility standards and offers implementation guidance.&lt;/p&gt;
&lt;p&gt;As described by &lt;a href=&quot;https://www.w3.org/WAI/about/&quot;&gt;W3C Website&lt;/a&gt;, WAI “pursues accessibility of the web through these primary activities”:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensuring that W3C standards support accessibility&lt;/li&gt;
&lt;li&gt;Developing accessibility guidelines for web content and applications,&lt;br /&gt;
browsers, and authoring tools&lt;/li&gt;
&lt;li&gt;Developing resources to improve web accessibility evaluation&lt;br /&gt;
processes and tools&lt;/li&gt;
&lt;li&gt;Supporting education and outreach on web accessibility&lt;/li&gt;
&lt;li&gt;Coordinating with research and development that may impact future&lt;br /&gt;
accessibility of the web&lt;/li&gt;
&lt;li&gt;Promoting harmonized international uptake of web accessibility&lt;br /&gt;
standards&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two best examples of WAI’s significance in everyday technology life are the Web Content Accessibility Guidelines, (&lt;abbr&gt;WCAG&lt;/abbr&gt;) and Accessible Rich Internet Applications (&lt;abbr&gt;WAI-ARIA&lt;/abbr&gt;) Recommendations that were created by members of WAI.&lt;/p&gt;
&lt;h2 id=&quot;web-content-accessibility-guidelines%2C-(wcag)-and-accessible-rich-internet-applications-(wai-aria)-recommendations%3A&quot; tabindex=&quot;-1&quot;&gt;Web Content Accessibility Guidelines, (WCAG) and Accessible Rich Internet Applications (WAI-ARIA) Recommendations:&lt;/h2&gt;
&lt;p&gt;WAI’s effort created guidelines for developers, designers and people in tech to use every single day. Some of the most used guidelines and applications have been WCAG and WAI-ARIA.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/wcag/&quot;&gt;Web Content Accessibility Guidelines&lt;/a&gt;, or WCAG is a benchmark for web accessibility. WCAG was created with a goal to clearly define technical standards and unifying accessibility standards. WCAG’s standards are categorized under 4 principles.&lt;/p&gt;
&lt;h3 id=&quot;perceivable&quot; tabindex=&quot;-1&quot;&gt;Perceivable&lt;/h3&gt;
&lt;p&gt;People should be able to identify content and elements by means of their senses. For example, if a website&#39;s navigation changes from page to page, they will have to relearn the navigation of the site, which will not be a great experience.&lt;/p&gt;
&lt;h3 id=&quot;operarable%3A&quot; tabindex=&quot;-1&quot;&gt;Operarable:&lt;/h3&gt;
&lt;p&gt;People should successfully use controls, buttons, navigation, and other interactive elements on the page. One example of this would be that websites should be operable by a keyboard and the page should have the same functionalities it has when a mouse is used to navigate.&lt;/p&gt;
&lt;h3 id=&quot;understandable&quot; tabindex=&quot;-1&quot;&gt;Understandable&lt;/h3&gt;
&lt;p&gt;People should be able to comprehend the content and learn from your website. One example of this would defining abbreviations or jargon for the reader.&lt;/p&gt;
&lt;h3 id=&quot;robust%3A&quot; tabindex=&quot;-1&quot;&gt;Robust:&lt;/h3&gt;
&lt;p&gt;Websites should be able to be accessed by a wide variety of technologies. For example, websites should be accessible for screen readers, as well as many different browser versions.&lt;/p&gt;
&lt;p&gt;Each WCAG guideline has success criteria broken down to three standards, A, AA, and AAA. AA is considered ideal support, and AAA is typically reserved for specialized audiences.&lt;/p&gt;
&lt;h2 id=&quot;accessible-rich-internet-applications&quot; tabindex=&quot;-1&quot;&gt;Accessible Rich Internet Applications&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/aria/&quot;&gt;Accessible Rich Internet Applications&lt;/a&gt;, or WAI-ARIA is also a guideline that was created by WAI to provide an accessible experience for custom coded interactive experiences. In particular, WAI-ARIA gives guidance on how to create accessible dynamic content and user interface components.&lt;/p&gt;
&lt;p&gt;For example, ARIA can help developers divide the page into sections, similar to a table of contents in a book, so it’ll be easier for people to navigate the page. ARIA defines ways for functionality of the assistive technology. With the help of WAI-ARIA guidance and rules, developers can make websites accessible to all users.&lt;/p&gt;
&lt;p&gt;Currently WAI-ARIA version 1.2 is under development.&lt;/p&gt;
&lt;p&gt;Interested persons can join one of many WAI working groups or interest groups to be part of the process to make websites accessible to all.&lt;/p&gt;
&lt;h2 id=&quot;working-groups-and-interest-groups%3A&quot; tabindex=&quot;-1&quot;&gt;Working groups and interest groups:&lt;/h2&gt;
&lt;p&gt;Purpose of WAI is to bring together members with different backgrounds to contribute to making websites more accessible. Web Accessibility Initiative’s working groups develop accessibility guidelines. People in the industry can join and participate in.&lt;/p&gt;
&lt;p&gt;Some of the working group and interest groups listed on their web site are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/GL/&quot;&gt;Accessibility Guidelines Working Group (AG WG)&lt;/a&gt; (formerly the Web Content Accessibility Guidelines Working Group)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/APA/&quot;&gt;Accessible Platform Architectures (APA) Working Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/ARIA/&quot;&gt;Accessible Rich Internet Applications (ARIA) Working Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/about/groups/eowg/&quot;&gt;Education and Outreach Working Group (EOWG)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/about/groups/waiig/&quot;&gt;WAI Interest Group (WAI IG)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/about/participating/&quot;&gt;WAI websites&lt;/a&gt;, explains how interested future members can join WAI to promote and develop accessible web. No matter your background, there is a group or interest group you can contribute.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;takeaways&quot; tabindex=&quot;-1&quot;&gt;Takeaways&lt;/h2&gt;
&lt;p&gt;The Web Accessibility Initiative was launched by the World Web Consortium.&lt;/p&gt;
&lt;p&gt;WAI develops accessibility standards and offers implementation guidance.&lt;/p&gt;
&lt;p&gt;WAI is a group of people all around the world that contribute ideas on how the internet can be more accessible for people with disabilities. Members who are interested in joining can find more information on the W3C website.&lt;/p&gt;
&lt;p&gt;WAI touches most of the accessibility work that has been done. For example, designers and developers look for WCAG standards to see if their website is accessible or not. Developers also use WAI-ARIA’s guidance to know whether or not some interactions are accessible.&lt;/p&gt;
&lt;p&gt;Web Content Accessibility Guidelines, (WCAG) and Accessible Rich Internet Applications (WAI-ARIA) Recommendations are some examples of WAI’s guidance on web accessibility.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Blind people need to be considered more when making data visualizations</title>
		<link href="https://a11yproject.com/posts/blind-people-need-to-be-considered-more-when-making-data-visualizations/"/>
		<updated>2022-09-22T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/blind-people-need-to-be-considered-more-when-making-data-visualizations/</id>
		<content type="html">&lt;p&gt;Visual data representation is being used more and more in digital newsrooms across the world. The downside, however, is how exclusionary this can be for people with visual impairments.&lt;/p&gt;
&lt;p&gt;It’s clear that visual journalism will play a huge part in the digital future for media outlets. From audience analytics tools measuring the impact of content, to representing complicated data in an easy to digest format, it’s easy to see the benefits of such tools and production techniques for creating impactful digital journalism.&lt;/p&gt;
&lt;p&gt;It’s also clear that without a better understanding of how to make visual journalism work for everyone that huge parts of the audience are going to be left behind. In the UK alone, &lt;a href=&quot;https://www.rnib.org.uk/professionals/knowledge-and-research-hub/key-information-and-statistics&quot;&gt;the Royal National Institute of Blind People estimate that around 2 million people are living with some sort of sight loss&lt;/a&gt;. Globally, &lt;a href=&quot;https://www.who.int/news-room/fact-sheets/detail/blindness-and-visual-impairment&quot;&gt;the World Health Organization claim the number is close to 2.2 billion&lt;/a&gt;, with that number set to rise dramatically as people continue to age.&lt;/p&gt;
&lt;p&gt;As a blind journalist, I’m concerned that the increased use of visual data representation without careful and creative thought about accessibility is widening the inaccessibility gap.&lt;/p&gt;
&lt;h2 id=&quot;an-example&quot; tabindex=&quot;-1&quot;&gt;An example&lt;/h2&gt;
&lt;p&gt;During the COVID pandemic I wasn’t easily able to access COVID data represented on digital graphs, and I wasn’t alone. &lt;a href=&quot;https://news.mit.edu/2021/data-visualizations-accessible-blind-1012&quot;&gt;A project by MIT researching the problem of data visualization accessibility&lt;/a&gt; cited a simple chart from the beginning of the pandemic.&lt;/p&gt;
&lt;p&gt;The cited chart demonstrated the benefits of mask wearing and social distancing for limiting the spread of the disease. The chart was amplified by many global media outlets, but was missed by millions of blind readers due to lack of meaningful text or audio description.&lt;/p&gt;
&lt;h2 id=&quot;data-journalism%E2%80%99s-access-issues-and-greater-potential&quot; tabindex=&quot;-1&quot;&gt;Data journalism’s access issues and greater potential&lt;/h2&gt;
&lt;p&gt;In my job as a digital journalist, I’m becoming increasingly aware of the desire to publish more and more impactful visual data journalism.&lt;/p&gt;
&lt;p&gt;For a lot of people, visual representations of complicated data has the ability to translate data into a format our brains can comprehend easier and quicker. However, what’s not so obvious is how exclusionary that can be for those of us who don’t operate in a visual way.&lt;/p&gt;
&lt;p&gt;I can’t take any of the other myriad of visual data tools and translate them quickly into a way my brain understands. This includes infographics, maps, pie and bar charts, etc.&lt;/p&gt;
&lt;p&gt;As someone who uses a screen reader to translate what’s on my screen it’s imperative to have an alternative method of accessing whatever data I’m being presented with. For example, this could be through simple alternate descriptions in a bar chart or map.&lt;/p&gt;
&lt;p&gt;I would also argue that this is fairly limiting and isn’t presenting the data in the creative and impactful way most visual data journalists strive for. What I’d like to see is more thought being given to developing creative alternatives for me and the millions of other people like me.&lt;/p&gt;
&lt;p&gt;I would even go as far as arguing that visual data by its’ very nature is an accessibility tool. It’s taking complicated data and presenting it in a way which is easy for many people to understand. I want to see the same thought being given to people who absorb information differently.&lt;/p&gt;
&lt;p&gt;I would also like to see thought and care being given to people who absorb information differently. Making visual data more widely accessible for neurodiverse people, or people with cognitive disabilities for example would also really help level a currently unlevel playing field.&lt;/p&gt;
&lt;h2 id=&quot;my-journey&quot; tabindex=&quot;-1&quot;&gt;My journey&lt;/h2&gt;
&lt;p&gt;In October of this year, I’m going to be starting a Fellowship with the prestigious Reuters Institute for the Study of Journalism at Oxford University. I’ll be working on how best to bridge this accessibility gap. It’s something I’m really passionate about, but it’s also something I know only from a user’s point of view.&lt;/p&gt;
&lt;p&gt;I’m a journalist. I’m not a UX specialist or web developer in any way, shape or form. I care about making all forms of digital communication as accessible as possible. However, I’m acutely aware that being able to do this is outside my current skillset.&lt;/p&gt;
&lt;p&gt;I’m a proficient screen reader user and can navigate the web reasonably well. Where my skillset is lacking is being able to design accessible user experiences for the increasing amount of visual data being produced.&lt;/p&gt;
&lt;p&gt;I’m also aware that the need to know exactly how it all works isn’t entirely necessary. Before the widespread adoption of digital printing techniques, thousands of people were employed in the hot metal era of creating newspapers, and I would argue that not all journalists understood that world of printing. In the same way, there are designers and developers who can create the underlying design and code.&lt;/p&gt;
&lt;h2 id=&quot;collaboration&quot; tabindex=&quot;-1&quot;&gt;Collaboration&lt;/h2&gt;
&lt;p&gt;I’m really hoping by being able to work with these designers and developers, as well as with different people with many different skillsets who care as passionately as I do about universal accessibility and equitability for all. Together, we can move the dial on making more visual journalism accessible.&lt;/p&gt;
&lt;p&gt;Global news organizations are rightly alert to the need for diversity and proper representation amongst their staff and the content they create. However, there’s a huge mismatch in this awareness and how data is being collated and presented in an equitable way for all parts of a global audience. I’m hoping by highlighting the issue I’ll be able to help efforts address this mismatch.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/johny-cassidy-36150121/&quot;&gt;Please do get in touch&lt;/a&gt; if this sounds like something you’d like to know more about or can offer advice or help. I’m really hoping by pulling together we can all help to make a difference.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>A guide to troublesome UI components</title>
		<link href="https://a11yproject.com/posts/a-guide-to-troublesome-ui-components/"/>
		<updated>2023-02-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/a-guide-to-troublesome-ui-components/</id>
		<content type="html">&lt;p&gt;A common opinion is that accessibility is expensive, and that if you think accessibility is expensive, you can deal with it later.&lt;/p&gt;
&lt;p&gt;Here’s the twist: it &lt;strong&gt;will&lt;/strong&gt; be expensive if you deal with it later. However, accessibility is not expensive if you discuss it as a team early in the process.&lt;/p&gt;
&lt;p&gt;It is possible to build just about anything, it comes down to time and money. But no client ever has said, “Hey, we have a lot of time and money!” Accessibility is not expensive if you proactively plan for it. That’s why you need to learn how to avoid some of the common pitfalls.&lt;/p&gt;
&lt;h2 id=&quot;before-we-start&quot; tabindex=&quot;-1&quot;&gt;Before we start&lt;/h2&gt;
&lt;p&gt;User interface (&lt;abbr&gt;UI&lt;/abbr&gt;) elements are the parts we use to build apps or websites, such as links, accordions and checkboxes etc.&lt;/p&gt;
&lt;p&gt;Some UI components are more complicated than other components. And some components are &lt;strong&gt;really&lt;/strong&gt; complicated. All roles that build for the web (product owners, UX designers, art directors, developers, QA engineers) must know this.&lt;/p&gt;
&lt;h2 id=&quot;the-challenges&quot; tabindex=&quot;-1&quot;&gt;The challenges&lt;/h2&gt;
&lt;p&gt;The components in this article all have the following challenges in common:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Keyboard interaction.&lt;/strong&gt; Everything that can be done with a mouse, must be possible to do with a keyboard. This includes navigating, opening and closing items, activating, stopping, starting, selecting, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Focus appearance and management.&lt;/strong&gt; Users navigating by keyboard must know where they are. Always show the user’s current position in the interface. The focus order should be logical and intuitive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistent announcements.&lt;/strong&gt; All events and interactions should correspond as understandable and relevant audio feedback in screen readers. Buttons should describe themselves as buttons, links as links, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code quality.&lt;/strong&gt; Using the correct elements and &lt;a href=&quot;https://www.a11yproject.com/posts/aria-properties/&quot;&gt;ARIA attributes&lt;/a&gt;, as well as &lt;a href=&quot;https://validator.w3.org/nu/&quot;&gt;valid HTML&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-components&quot; tabindex=&quot;-1&quot;&gt;The components&lt;/h2&gt;
&lt;p&gt;Following are some UI components that have non-trivial considerations to use in an accessible way:&lt;/p&gt;
&lt;h3 id=&quot;custom-selects&quot; tabindex=&quot;-1&quot;&gt;Custom selects&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/custom-select.png&quot; alt=&quot;A wireframe illustration of a custom select with a label that reads,  &#39;Your favorite fruit.&#39; The options are, &#39;Apple,&#39; &#39;Banana,&#39; &#39;Grapes,&#39; and &#39;Water melon&#39;. Each option also has a corresponding image of fruit.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select&quot;&gt;Native HTML &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt; elements&lt;/a&gt; (sometimes referred to as dropdowns, not to be confused with &lt;a href=&quot;https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/&quot;&gt;disclosures&lt;/a&gt;) has the most understandable and usable experience across every platform compared to its custom-coded counterparts.&lt;/p&gt;
&lt;p&gt;But here’s the thing: very often the design contains styling that will not work in a native HTML select element. Images of fruit (like in the illustration) cannot be added with HTML alone, we’ll need some trickery.&lt;/p&gt;
&lt;h4 id=&quot;what-can-you-style-in-a-native-html-select%3F&quot; tabindex=&quot;-1&quot;&gt;What can you style in a native HTML select?&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Closed state (the &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;):&lt;/strong&gt; Quite a lot.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opened state (the &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;&#39;s &lt;code&gt;&amp;lt;option&amp;gt;&lt;/code&gt;s):&lt;/strong&gt; Not much. Probably not the way you want to style it. No padding, no borders, no custom layout, no images of fruit.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The lack of styling support in the native HTML select is the number one reason why some developers will start building something that is completely custom.&lt;/p&gt;
&lt;h4 id=&quot;advice-for-a-custom-select&quot; tabindex=&quot;-1&quot;&gt;Advice for a custom select&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Don’t build a custom select.&lt;/strong&gt; There is so much JavaScript you must write just to make it behave like a native HTML select.&lt;/p&gt;
&lt;p&gt;Talk to the design team and see if you can &lt;a href=&quot;https://www.lukew.com/ff/entry.asp?1950&quot;&gt;change the design&lt;/a&gt;. If not, use a native HTML &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;. It will save you so much time, both in terms of building it and fixing bugs.&lt;/p&gt;
&lt;p&gt;Please note: the options in a native select will have a slightly different look depending which browser and device you’re on. This is actually a positive, because the UI is looking consistent to the browser and OS.&lt;/p&gt;
&lt;h4 id=&quot;further-reading&quot; tabindex=&quot;-1&quot;&gt;Further reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gwhitworth.com/posts/2019/form-controls-components/&quot;&gt;Initial thoughts on standardizing form controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.24a11y.com/2019/select-your-poison-part-2/&quot;&gt;Select your poison part 2 - 24 Accessibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.magentaa11y.com/checklist-web/select/&quot;&gt;How To Test A Select Dropdown - MagentaA11y&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;modals&quot; tabindex=&quot;-1&quot;&gt;Modals&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/modal.png&quot; alt=&quot;A wireframe illustration of a browser window with a modal placed over the main content. The modal is asking the reader if they want to buy something now or later.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A modal is the kind of UI that is layered on top over the page content. A common visual treatment for modals is a box in the middle of the viewport.&lt;/p&gt;
&lt;p&gt;This is a pattern where the user is being interrupted in their workflow. A modal can help you focus your attention on a single task, in circumstances where complicated or data-heavy interactions are present. Here, the modal breaks you out of your flow state, which could be helpful when communicating critical information.&lt;/p&gt;
&lt;p&gt;However, interrupting people for non-critical things like, “Signup for our newsletter” or, “Check out these new products” can be annoying. When this kind of modal is presented, the users have to expend extra effort—interacting with the dialog to dismiss it.&lt;/p&gt;
&lt;p&gt;Modals are also referred to as “dialogs”. Is there a native HTML dialog element? Yes, &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog&quot;&gt;there is &lt;code&gt;&amp;lt;dialog&amp;gt;&lt;/code&gt;&lt;/a&gt;. Is it perfect? Not yet.&lt;/p&gt;
&lt;p&gt;Historically, the developers had to write tons of Javascript to create modals. &lt;a href=&quot;https://www.scottohara.me/blog/2023/01/26/use-the-dialog-element.html&quot;&gt;Support for the &lt;code&gt;&amp;lt;dialog&amp;gt;&lt;/code&gt; element is improving&lt;/a&gt;. But you still have to write JavaScript. Make sure you test your &lt;code&gt;&amp;lt;dialog&amp;gt;&lt;/code&gt; code with assistive technology before deploying it for general use.&lt;/p&gt;
&lt;h4 id=&quot;advice-for-modals&quot; tabindex=&quot;-1&quot;&gt;Advice for modals&lt;/h4&gt;
&lt;p&gt;A dialog can be accessible, but be cautious. Be aware of the most common flaws:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The opened/closed state of the modal isn’t communicated to screen readers.&lt;/li&gt;
&lt;li&gt;Not possible to close the modal with the &lt;kbd&gt;Esc&lt;/kbd&gt; key on a keyboard when it is in its open state.&lt;/li&gt;
&lt;li&gt;A modal&#39;s close button does not have accessible name that makes sense, such as using the letter “X” instead of the word “close”.&lt;/li&gt;
&lt;li&gt;Missing keyboard focus trap, meaning you can use the keyboard to navigate the content behind the modal while it is in an open state.&lt;/li&gt;
&lt;li&gt;Keyboard focus is not restored to the control that triggered the modal to open after the modal is closed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do consider if you can use &lt;a href=&quot;https://community.appway.com/screen/kb/article/design-patterns-for-replacing-modal-windows-1482810903553&quot;&gt;alternatives to modals&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;further-reading-1&quot; tabindex=&quot;-1&quot;&gt;Further reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/modal-nonmodal-dialog/&quot;&gt;Modal &amp;amp; Nonmodal Dialogs: When (&amp;amp; When Not) to Use Them - Nielsen Norman Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2021/07/accessible-dialog-from-scratch/&quot;&gt;Creating An Accessible Dialog From Scratch - Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dequeuniversity.com/library/aria/simple-dialog&quot;&gt;Dialog (Simple Dialog) - Deque&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://w3c.github.io/aria-practices/examples/dialog-modal/dialog.html&quot;&gt;Modal Dialog Example - WAI-ARIA Authoring Practices 1.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/&quot;&gt;Dialog (Modal) | APG | WAI | W3C&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autosuggest&quot; tabindex=&quot;-1&quot;&gt;Autosuggest&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/autosuggest.png&quot; alt=&quot;A wireframe illustration of a text input with user-supplied text that reads, “auto.” A list of related suggestions is provided below the input. The suggestions are, &#39;autos,&#39; &#39;autocad,&#39; &#39;autobahn&#39;, and &#39;auto motor sport.&#39; After the text input is a search button.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;People will say “autocomplete” but generally mean autosuggest.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Autocomplete&lt;/strong&gt; comes out of the box with HTML. It will make suggestions based on values the user has previously entered and submitted in similar form fields, like names and email addresses. Very useful. Do use it, follow this &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete&quot;&gt;excellent autocomplete guide from MDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Autosuggest&lt;/strong&gt;, however, is different. It looks like an autocomplete by displaying a list of suggestions as the user types. But the suggestions are compiled from a data source, not the user’s previous entries.&lt;/p&gt;
&lt;p&gt;The data source can be a known and static scope like countries and cities, or a wide and dynamic scope like saved overall website searches.&lt;/p&gt;
&lt;p&gt;Is there a native HTML element? There is a datalist element, but it is not very well supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://caniuse.com/datalist&quot;&gt;Datalist element | Can I use... Support tables for HTML5, CSS3, etc.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11ysupport.io/tech/html/datalist_element&quot;&gt;Datalist_element (html) | Accessibility Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;advice-for-autosuggests&quot; tabindex=&quot;-1&quot;&gt;Advice for autosuggests&lt;/h4&gt;
&lt;p&gt;Be assured creating a custom autosuggest is a real undertaking, especially since you have an as-you-type situation on your hands. Again, there is so much JavaScript to write to make it work in a robust and predictable way.&lt;/p&gt;
&lt;p&gt;The autosuggest UI is good for exploring, spelling and speed. But very few autosuggests are accessible. Their most common flaws are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigation by keyboard is not coherent with established patterns.&lt;/li&gt;
&lt;li&gt;Focus order is not logical and intuitive, especially entering the list.&lt;/li&gt;
&lt;li&gt;No feedback to the screen reader what is going on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have seen how people struggle with this kind of UI. They failed to select the suggestion or thought the list of suggestions was the actual search result and didn’t press the search button.&lt;/p&gt;
&lt;p&gt;There are a lot of details to get right for autosuggest experiences. User testing will reveal if it’s actually understood the way you intended.&lt;/p&gt;
&lt;p&gt;Make sure that your model for building the suggestions themselves is rock-solid. If the suggestions are bad and not relevant—like showing suggestions for items you don’t have—it will hurt the search experience.&lt;/p&gt;
&lt;p&gt;An easy-to-build and accessible alternative could be adding a list of popular links alongside the search input. If you save and tally user-enter searches in a database and use that for inspiration when compiling the list it can be helpful, even if it’s not dynamic or as-you-type.&lt;/p&gt;
&lt;h4 id=&quot;further-reading-2&quot; tabindex=&quot;-1&quot;&gt;Further reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/site-search-suggestions/&quot;&gt;Site Search Suggestions - NN Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baymard.com/blog/autocomplete-design&quot;&gt;9 UX Best Practice Design Patterns for Autocomplete Suggestions (Only 19% Get - Everything Right) - Baymard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://w3c.github.io/aria-practices/#combobox&quot;&gt;Combobox WAI-ARIA Authoring Practices - W3C&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;date-pickers&quot; tabindex=&quot;-1&quot;&gt;Date pickers&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/date-picker.png&quot; alt=&quot;A wireframe illustration of a pop-up box containing a calendar grid displaying each of the 31 days of December 2022.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A date picker is a form field widget which pops up a small calendar.&lt;/p&gt;
&lt;p&gt;Is there &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date&quot;&gt;a native HTML date input element&lt;/a&gt;? Yes. Is it perfectly accessible with full browser support? Far from it.&lt;/p&gt;
&lt;p&gt;There are many known issues in the different browsers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/&quot;&gt;Is input type=&amp;quot;date&amp;quot; ready for use in accessible websites? - Hassell Inclusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11ysupport.io/tech/html/input(type-date)_element&quot;&gt;input(type-date)_element (html) | Accessibility Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Should you then perhaps build a custom date picker? You know the answer to this one: no.&lt;/p&gt;
&lt;h4 id=&quot;advice-for-date-pickers&quot; tabindex=&quot;-1&quot;&gt;Advice for date pickers&lt;/h4&gt;
&lt;p&gt;There are many ways to input dates. A simple, effective way could be text inputs with date range validation, possibly combined with &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;s.&lt;/p&gt;
&lt;p&gt;Sometimes, a date picker is actually the wrong UI to choose. Let’s say someone should input their date of birth. They would have to go backwards year by year, or even worse, month by month. That’s a lot of unnecessary interaction. If you think this is annoying, imagine how it is for someone with &lt;a href=&quot;https://webaim.org/articles/motor/&quot;&gt;a motor control disability&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you do decide to use a date picker, make sure the user can also input the date in ways other than the widget.&lt;/p&gt;
&lt;h4 id=&quot;further-reading-3&quot; tabindex=&quot;-1&quot;&gt;Further reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/RobertAKARobin/850a408e04d5414e67d308a2b5847378&quot;&gt;Safari&#39;s date-picker is the cause of 1/3 of our customer support issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2021/05/frustrating-design-patterns-birthday-picker/&quot;&gt;Frustrating Design Patterns That Need Fixing: Birthday Picker — Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://adrianroselli.com/2019/07/maybe-you-dont-need-a-date-picker.html&quot;&gt;Maybe You Don’t Need a Date Picker — Adrian Roselli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;carousels&quot; tabindex=&quot;-1&quot;&gt;Carousels&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/carousel.png&quot; alt=&quot;A wireframe illustration of a carousel with images, headings and buttons. The center carousel panel reads, &#39;Buy this?&#39; followed by a button that reads, &#39;Yes.&#39; Arrow buttons are present on each side of the carousel component, as well as dots underneath the component to indicate which carousel panel is currently active.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A carousel (also known as a slider) is the concept of having content (images, headings, links, etc.) in a horizontal scroll. Usually there are some arrow buttons that will rotate the carousel content through. Some carousels rotate by autoplay, which is extremely distracting.&lt;/p&gt;
&lt;p&gt;Is there a native HTML &lt;code&gt;&amp;lt;carousel&amp;gt;&lt;/code&gt; element we can use? No.&lt;/p&gt;
&lt;h4 id=&quot;advice-for-carousels&quot; tabindex=&quot;-1&quot;&gt;Advice for carousels&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Do not build a carousel.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As an accessibility auditor, I have yet to see a carousel that didn’t have multiple critical accessibility issues. Common issues include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cannot be operated with a keyboard.&lt;/li&gt;
&lt;li&gt;Missing visible focus indicators.&lt;/li&gt;
&lt;li&gt;Focus order is not logical and intuitive.&lt;/li&gt;
&lt;li&gt;Arrow buttons do not have accessible names.&lt;/li&gt;
&lt;li&gt;No feedback to screen readers.&lt;/li&gt;
&lt;li&gt;No possibility to turn off autoplay.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Besides the technical challenges, you should also be aware that &lt;a href=&quot;https://thegood.com/insights/ecommerce-image-carousels/&quot;&gt;the conversion rate for carousels is low&lt;/a&gt;. Very few users actually read or engage with these things.&lt;/p&gt;
&lt;p&gt;Stakeholders, designers or product owners may really press you to use a carousel, because they let everyone get their content onto a page. When reaching for a carousel, ask yourself: What are you really trying to accomplish, and is this the right component to accomplish that goal?&lt;/p&gt;
&lt;p&gt;If you find yourself in a situation where you’re forced to build a carousel, make sure the issues outlined earlier are addressed, bare-minimum.&lt;/p&gt;
&lt;h4 id=&quot;further-reading-4&quot; tabindex=&quot;-1&quot;&gt;Further reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://shouldiuseacarousel.com/&quot;&gt;Should I Use A Carousel?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sitepoint.com/unbearable-accessible-slideshow/&quot;&gt;The Unbearable Inaccessibility of Slideshows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mightybytes.com/blog/more-alternatives-to-carousels-on-website/&quot;&gt;More Alternatives To Using Carousels&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;dynamically-loaded-content&quot; tabindex=&quot;-1&quot;&gt;Dynamically-loaded content&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://a11yproject.com/img/posts/a-guide-to-troublesome-ui-components/load-more.png&quot; alt=&quot;A wireframe illustration of a button named &#39;Load more content&#39;, with an arrow pointing downwards placed underneath it.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dynamically-loaded content is when you have more content inserted without requiring a page load. JavaScript code will send a request to a server, get some data, and that data will get injected into the page as new content without triggering a page load event.&lt;/p&gt;
&lt;p&gt;Some typical scenarios are loading more search results, filtering search results, and giving confirmation after submitting a form.&lt;/p&gt;
&lt;p&gt;This kind of UI is very common. Also very common is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No feedback for screen readers that there is new content on the page.&lt;/li&gt;
&lt;li&gt;Page focus order becoming illogical and unintuitive.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;advice-for-dynamically-loaded-content&quot; tabindex=&quot;-1&quot;&gt;Advice for dynamically-loaded content&lt;/h4&gt;
&lt;p&gt;Dynamic content is not impossible to implement accessibility-wise. It just requires some extra work—same challenges here as the previous UI considerations.&lt;/p&gt;
&lt;p&gt;An example: loading more search results. When activating a “Load more” button, additional search results will be fetched and inserted into the page.&lt;/p&gt;
&lt;p&gt;The visual focus for these results should be placed on the first link in the new content. This will help someone using a screen reader understand new content is present.&lt;/p&gt;
&lt;p&gt;Also, dynamically loaded content is missing out on features like a shareable URL and finding content via &lt;kbd&gt;Cmd&lt;/kbd&gt;/&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;F&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;For better assistive technology support, URL sharing, ease of maintenance, and other concerns: consider regular page loading and pagination UI instead.&lt;/p&gt;
&lt;h2 id=&quot;a-note-on-npm-packages&quot; tabindex=&quot;-1&quot;&gt;A note on npm packages&lt;/h2&gt;
&lt;p&gt;A npm package is someone else’s code you can use for free. Developers install npm packages to save time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/&quot;&gt;The npm registry&lt;/a&gt; contains packages for all of these previously mentioned components. Several packages claim to be accessible or WCAG compliant. But that’s just the author’s own opinion. &lt;a href=&quot;https://adrianroselli.com/2022/11/your-accessibility-claims-are-wrong-unless.html&quot;&gt;Don’t take their word for it&lt;/a&gt;. Test and evaluate properly before committing.&lt;/p&gt;
&lt;p&gt;The problem with importing third party code is you have limited to no control. Even if you know how to fix the problem, you can’t. The issues are embedded in the package, but &lt;strong&gt;you are still responsible&lt;/strong&gt;. It is your decision to allow and use this package in the first place.&lt;/p&gt;
&lt;p&gt;In order to correct a problem you’ve found, you&#39;ll have to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Raise it with the package author,&lt;/li&gt;
&lt;li&gt;Hope it gets dealt with,&lt;/li&gt;
&lt;li&gt;If it does, then update the package, and then&lt;/li&gt;
&lt;li&gt;Review every instance of the component to ensure the fix is working.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quite a slow and agonizing process.&lt;/p&gt;
&lt;p&gt;At the end of the day, people don’t care how stuff was built. Can they use the UI or not? That&#39;s all that matters.&lt;/p&gt;
&lt;h2 id=&quot;closing-thoughts&quot; tabindex=&quot;-1&quot;&gt;Closing thoughts&lt;/h2&gt;
&lt;p&gt;Is accessibility expensive and difficult? If you have no experience or knowledge, it might seem that way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.accessibility.uxdesign.cc/&quot;&gt;Accessibility starts with giving a damn&lt;/a&gt;. Ask questions in forums, join communities, and listen to webinars.&lt;/p&gt;
&lt;p&gt;Have accessibility top of mind. Discuss as a team &lt;strong&gt;before&lt;/strong&gt; you start building. As a member of the team, speak up when you see a problem. Just ask, “Is this going to be accessible?” It’s really that simple.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Are you making these five mistakes when writing alt text?</title>
		<link href="https://a11yproject.com/posts/are-you-making-these-five-mistakes-when-writing-alt-text/"/>
		<updated>2023-03-02T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/are-you-making-these-five-mistakes-when-writing-alt-text/</id>
		<content type="html">&lt;p&gt;There are many benefits to writing alt text for images, especially from accessibility and legal standpoints.&lt;/p&gt;
&lt;p&gt;But most don’t know how to write alt text well. I should know because, for an awful number of years, I was one.&lt;/p&gt;
&lt;p&gt;I first learned about alt text in high school while building websites. But my proper lesson began when I took the &lt;a href=&quot;https://www.udacity.com/course/digital-marketing-nanodegree--nd018&quot;&gt;Udacity Digital Marketing Nanodegree course&lt;/a&gt;, which was also my first introduction to marketing.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Screenshot from the SEO module of the Udacity Marketing Nanodegree course.&quot;&gt;
	&lt;img alt=&quot;Video still with two columns. The left column has a title of &#39;Pictures/Video Best Practices&#39;, with a table of contents that lists out, &#39;Add a descriptive caption&#39;, &#39;use an alt tag&#39;, &#39;use a descriptive file name&#39;, and &#39;provide a text description/summary of video content&#39;. &#39;use an alt tag&#39; is active. The right column shows a news article headline, hero image, and code sample. The headline is &#39;An Apple A Day Reduces Risk For Heart Disease by 40%: Study.&#39; The image is a man biting into an apple. The code sample highlights the image&#39;s alt attribute value, which reads, &#39;EATING APPLE HEART DISEASE.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/video-screenshot-use-an-alt-tag.png&quot; /&gt;
	&lt;figcaption&gt;
		Screenshot from the SEO module of the Udacity Marketing Nanodegree course.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;In this module, I learned about building easy navigation site structures, title tags, breadcrumbs, and meta descriptions—all the good stuff. We also learned about writing alt text and its importance.&lt;/p&gt;
&lt;p&gt;Their overall advice? Describe what you see.&lt;/p&gt;
&lt;p&gt;I thought that I finally understood it.&lt;/p&gt;
&lt;h2 id=&quot;sometimes-it-is-simplicity-that-kills&quot; tabindex=&quot;-1&quot;&gt;Sometimes it is simplicity that kills&lt;/h2&gt;
&lt;p&gt;When you ask them, most experts’ advice also boils down to: Describe what you see. And while it’s valid advice and may seem simple, it’s not.&lt;/p&gt;
&lt;p&gt;Take the Udacity example earlier: Is this suitable alt text?&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Source: Udacity Nanodegree Marketing Course.&quot;&gt;
	&lt;img alt=&quot;A code sample highlights an image&#39;s alt attribute value, which reads, &#39;EATING APPLE HEART DISEASE. The image is part of a news article, showing the headline and hero image. The headline is &#39;An Apple A Day Reduces Risk For Heart Disease by 40%: Study.&#39; The image is a man biting into an apple. Screenshot.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/card-preview-apple-a-day.png&quot; /&gt;
	&lt;figcaption&gt;
		Source: Udacity Nanodegree Marketing Course.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;If you close your eyes and someone reads out the words “eating apple heart disease” to you, does that in any way help you make sense of what’s in the image?&lt;/p&gt;
&lt;p&gt;What about this example?&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Source: Business Insider.&quot;&gt;
	&lt;img alt=&quot;A white electric Brother Sewing Machine against a pink background with alt text set as: &#39;Best sewing Machines - Brother CS7000X 4x3 best sewing machine 2022&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/best-sewing-machine-overall.png&quot; /&gt;
	&lt;figcaption&gt;
		Source: Business Insider.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Does it?&lt;/p&gt;
&lt;p&gt;The answer is a big &lt;strong&gt;no&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;i-used-to-just-describe-what-i-saw&quot; tabindex=&quot;-1&quot;&gt;I used to just describe what I saw&lt;/h3&gt;
&lt;p&gt;Then two weeks ago, &lt;a href=&quot;https://www.youtube.com/watch?v=JNLpSLjDwbE&amp;amp;t=16s&quot;&gt;I watched Tommy Walker, an ex-Shopify senior content marketer and editor, critique an article for its alt text usage&lt;/a&gt;.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;A snippet from The Cutting Room Show, hosted by Tom Walker.&quot;&gt;
	&lt;img alt=&quot;Superpath.co&#39;s audit score from an Accessibility test. They got 59 out of an 100, and they are marked as &#39;Not compliant&#39;. But the screenshot alt text is set as &#39;Screenshot of audit results for Superpath from an accessibility checker&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/audit-results-for-superpath.png&quot; /&gt;
	&lt;figcaption&gt;
		A snippet from The Cutting Room Show, hosted by Tom Walker.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Notice that the alt text does not communicate &lt;strong&gt;what the audit results are&lt;/strong&gt;. Ironically, the article was arguing for accessibility. But it made the point clearer. And for the first time, it dawned on me that I’ve been writing alt text the wrong way.&lt;/p&gt;
&lt;p&gt;This got me curious, so I started researching:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I read numerous UX and SEO blogs,&lt;/li&gt;
&lt;li&gt;I spoke with practitioners in those fields, and&lt;/li&gt;
&lt;li&gt;I chatted with some members of the low vision community.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here’s what I learned and what I’m now applying to the articles I write:&lt;/p&gt;
&lt;h2 id=&quot;1.-some-images-should-use-an-empty-alt-attribute&quot; tabindex=&quot;-1&quot;&gt;1. Some images should use an empty alt attribute&lt;/h2&gt;
&lt;p&gt;First, to clarify:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#alt&quot;&gt;&lt;code&gt;alt&lt;/code&gt; attribute&lt;/a&gt; is HTML syntax, and&lt;/li&gt;
&lt;li&gt;Alt text is the description enclosed between the alt attribute&#39;s quotes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All images need an &lt;code&gt;alt&lt;/code&gt; attribute, but not all images need alt text. These are two different things, so do not mix them up.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Three HTML image element examples. The first example points to a file called &#39;progress.svg&#39; located on name.com, and has an alt attribute value of &#39;Name&#39;s logo&#39;. After it is a checkmark icon. The second example points to a file called &#39;banner.png&#39;, and has an empty/nulled alt attribute. After it is a checkmark icon. The third example points to a file called &#39;progress.svg&#39;, and has no alt attribute. After it is an X icon.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/alt-attribute-usage-examples.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So how do you know whether an image needs an empty &lt;code&gt;alt&lt;/code&gt; attribute? The decorative/informative/active approach.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;A table with two columns, four rows, and a caption. The caption is, &#39;The DIA table&#39;. The two table column headers are, &#39;Image Type&#39; and &#39;Alt Text?&#39;. The remaining three rows are: &#39;Decorative&#39; in the first column and an X icon in the second column for the second row. &#39;Informative&#39; in the first column and a checkmark icon in the second column for the third row. The final, fourth row has &#39;Active&#39; in the first column and a checkmark icon in the second column.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/dia-table.png&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;a-short-overview&quot; tabindex=&quot;-1&quot;&gt;A short overview&lt;/h3&gt;
&lt;p&gt;Following is an overview of different types of images, and how to best describe them.&lt;/p&gt;
&lt;h4 id=&quot;decorative-images&quot; tabindex=&quot;-1&quot;&gt;Decorative images&lt;/h4&gt;
&lt;p&gt;Decorative images&#39; only value is aesthetic. If they are removed, the webpage would still make perfect sense.&lt;/p&gt;
&lt;p&gt;Some examples are website banners that have no text in them and other design elements. You should omit the description for this type of image, but always include an empty &lt;code&gt;alt&lt;/code&gt; attribute.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Sample decorative image --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;decorative-banner.png&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;informative-images&quot; tabindex=&quot;-1&quot;&gt;Informative images&lt;/h4&gt;
&lt;p&gt;Informative images add extra context to the information presented in the article.&lt;/p&gt;
&lt;p&gt;A few examples are graphs, diagrams, poll results, and product screenshots. Pay attention when describing them. You will learn how as you read on.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Sample informative image --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;A small, black, compact digital camera.&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;product-photo.png&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;active-images&quot; tabindex=&quot;-1&quot;&gt;Active images&lt;/h4&gt;
&lt;p&gt;Active images are used to perform actions such as signing up, downloading, listening, uploading etc.&lt;/p&gt;
&lt;p&gt;They are mainly links and buttons. When writing alt text for these kinds of images, avoid terms like &amp;quot;Click here&amp;quot;.&lt;/p&gt;
&lt;p&gt;Instead, use descriptions like, &amp;quot;Sign up for a Twitter account&amp;quot;, &amp;quot;Go to the account page&amp;quot;, &amp;quot;Upload your national identity card&amp;quot;, and so on.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Sample active image --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Upload resume.&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;upload-prompt.png&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;2.-context-matters&quot; tabindex=&quot;-1&quot;&gt;2. Context matters&lt;/h2&gt;
&lt;p&gt;Alt text should concisely and accurately describe the image&#39;s content. If you have an overall point to make, let the surrounding text content communicate it.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;A used car dealership. Many modern cars are lined up in neat rows. The asphalt of the lot has cracks in it.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/car-lot.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For example, this image could be used for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helping to identify a business listing,&lt;/li&gt;
&lt;li&gt;An exposé about an unscrupulous used car business,&lt;/li&gt;
&lt;li&gt;A commercial real estate listing, or&lt;/li&gt;
&lt;li&gt;A political campaign promising commercial revitalization.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is up to the reader to decide how they feel about something, and alt text helps provide them the full context of the story.&lt;/p&gt;
&lt;p&gt;This is useful not just for accessibility but also in competitive arenas like SEO where you’re competing with behemoths like HubSpot, Databox, The New York Times, and Zapier.&lt;/p&gt;
&lt;h2 id=&quot;3.-screen-readers-and-search-engines-already-know-that-it%E2%80%99s-an-image&quot; tabindex=&quot;-1&quot;&gt;3. Screen readers and search engines already know that it’s an image&lt;/h2&gt;
&lt;p&gt;There’s no need to add in &amp;quot;image of&amp;quot;, &amp;quot;picture of&amp;quot;, or &amp;quot;graphic of&amp;quot;. That only leads to repetition which can be annoying for listeners, particularly if the article contains a lot of images.&lt;/p&gt;
&lt;p&gt;Instead, use the extra characters to convey information better.&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;Source: Zapier.&quot;&gt;
	&lt;img alt=&quot;A Zapier automation widget. There are two annotations present. The first reads, &#39;Alt text: A trigger step with Google Forms selected as the trigger app and New Form Response selected in the Event field.&#39; It is unclear what part of the widget the banner references. The second banner reads, &#39;SVG missing title and descr&#39;. It is also unclear what part of the widget this banner references. The widget includes a title that reads, &#39;Trigger: 1. New Form Response in Google Forms&#39;. Below it are configuration options to pick a Google Forms data source, an event selection menu, and a continue button for when things are configured properly. A green checkmark icon is present, indicating this step of the process has been set up successfully. Screenshot.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/google-forms-trigger.png&quot; /&gt;
	&lt;figcaption&gt;
		Source: Zapier.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I love the simplicity of the next one:&lt;/p&gt;
&lt;figure role=&quot;figure&quot; aria-label=&quot;This is nice.&quot;&gt;
	&lt;img alt=&quot;Cropped screenshot of the CoSchedule&#39;s website where the images have failed to load. Above the images is a heading which reads, &#39;30,000 marketers start their day with CoSchedule&#39;. There are eight broken images present, but the alt text values are visible. The alt text reads, &#39;Forbes&#39;, &#39;Yamaha&#39;, &#39;Unicef&#39;, &#39;Vericast&#39;, &#39;Walgreens&#39;, &#39;Dictionary.com&#39;, &#39;P&amp;G&#39;, and &#39;Schwans&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/broken-images.png&quot; /&gt;
	&lt;figcaption&gt;
		 This is nice.
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;4.-write-alt-text-as-simple-sentences&quot; tabindex=&quot;-1&quot;&gt;4. Write alt text as simple sentences&lt;/h2&gt;
&lt;p&gt;A dark practice among search-engine optimizers is stuffing their target keywords into their images’ alt text. This is a terrible user experience.&lt;/p&gt;
&lt;p&gt;The shocking reality?&lt;/p&gt;
&lt;p&gt;Google’s John Muller &lt;a href=&quot;https://twitter.com/JohnMu/status/1507768571086217225&quot;&gt;has repeatedly said that &lt;code&gt;alt&lt;/code&gt; attributes don’t affect normal Google search&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Besides that, if you think that you need to stuff your alt attributes with keywords, you’re starting on the wrong foot and Google is coming for you—just like it did for Overstock, BMW, and even Google Japan.&lt;/p&gt;
&lt;p&gt;Screen readers like JAWS and NVDA read alt text aloud a lot like the way that we read sentences aloud. So you should format your descriptions as regular sentences with proper punctuation and spelling.&lt;/p&gt;
&lt;p&gt;There is &lt;a href=&quot;https://yatil.net/blog/there-is-no-character-limit-for-alt-text&quot;&gt;no one formula for how long alt text should be&lt;/a&gt;. You should concisely and accurately describe all important and relevant details present in the image.&lt;/p&gt;
&lt;p&gt;In the cases where you need to describe a complicated graphic such as a chart or graph from a research study, consider following &lt;a href=&quot;https://www.w3.org/WAI/tutorials/images/complex/&quot;&gt;the W3C tutorial for dealing with complex images&lt;/a&gt;. Note that &lt;a href=&quot;https://caniuse.com/mdn-html_elements_img_longdesc&quot;&gt;the &lt;code&gt;longdesc&lt;/code&gt; method is no longer valid&lt;/a&gt;, however (reference the link&#39;s Notes section).&lt;/p&gt;
&lt;h2 id=&quot;5.-don%E2%80%99t-repeat-captions-in-alt-text&quot; tabindex=&quot;-1&quot;&gt;5. Don’t repeat captions in alt text&lt;/h2&gt;
&lt;p&gt;Copying captions verbatim into alt text is a popular practice in e-commerce because marketers think that that’ll help with their search-engine rankings, but that actually creates a bad user experience.&lt;/p&gt;
&lt;p&gt;This is because screen readers end up repeating the same words. Imagine this happening for two, three, or even five images and you can quickly see how the experience goes downhill for people with disabilities.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;u-hide-visually&quot; href=&quot;https://a11yproject.com/posts/are-you-making-these-five-mistakes-when-writing-alt-text/#video-skip-target&quot;&gt;Skip YouTube embed&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;video--16-9&quot;&gt;
	&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/dEbl5jvLKGQ&quot; title=&quot;YouTube: Screen Reader Demo for Digital Accessibility&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p id=&quot;video-skip-target&quot;&gt;Captions and alt text serve a different purpose. Captions are typically used to add details such as photo credit and copyright information. Alt text should describe the image’s meaning in the context of the article instead.&lt;/p&gt;
&lt;p&gt;You can omit captions, but the same can’t be said for &lt;code&gt;alt&lt;/code&gt; attributes.&lt;/p&gt;
&lt;h2 id=&quot;writing-alt-text-might-at-first-feel-overwhelming-or-unproductive&quot; tabindex=&quot;-1&quot;&gt;Writing alt text might at first feel overwhelming or unproductive&lt;/h2&gt;
&lt;p&gt;For some, it may feel like you’re spending extra time and money on a small percentage of your user base and readers. So you may feel an urge to overlook alt text.&lt;/p&gt;
&lt;p&gt;Setting aside exclusion and discrimination for a moment, this isn’t a risk you want to take on a company’s site. Because ignoring alt text is a recipe for disaster.&lt;/p&gt;
&lt;p&gt;Target wished they had known earlier because it cost them $6 million in damages. When Netflix failed to take a cue from Target, it cost them $755,000 in legal fees and damages. The list goes on.&lt;/p&gt;
&lt;p&gt;Even more, there’s a growing population of sighted people who use text-to-speech software so they can multitask or take a break from staring at LED screens all day long. Failing to make your content accessible will lead to a bad user experience.&lt;/p&gt;
&lt;h3 id=&quot;it%E2%80%99s-also-a-chance-to-get-featured-on-the-internet-hall-of-fame&quot; tabindex=&quot;-1&quot;&gt;It’s also a chance to get featured on the internet hall of fame&lt;/h3&gt;
&lt;p&gt;On some sites, a third of their traffic comes from Google Images. Doing alt text right is &lt;a href=&quot;https://blog.hubspot.com/marketing/how-we-octupled-image-search-traffic-on-the-blog&quot;&gt;how Hubspot drove an extra 160,000 traffic sessions to their blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;A Venn diagram showing two slightly overlapping circles. The left circle is labeled, &#39;Accessibility&#39;. The right circle is labeled, &#39;Image SEO&#39;. The overlapping center area is labeled. &#39;The alt text sweet spot&#39;.&quot; src=&quot;https://a11yproject.com/img/posts/are-you-making-these-five-mistakes-when-writing-alt-text/alt-text-sweet-spot.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;While it can feel like there’s much to learn just to make your website accessible, my advice is to not overwhelm yourself. Instead, take it step-by-step, and understand the basic purposes of alt text, which are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Making it easier for screen readers to accurately describe images to the people who rely on them,&lt;/li&gt;
&lt;li&gt;Appearing in place of the image if it fails to load, and&lt;/li&gt;
&lt;li&gt;Helping search engines understand the graphics on your website.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do you know what’s even better?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hanging out in their &lt;a href=&quot;https://www.reddit.com/r/Blind/search/?q=alt%20text&amp;amp;restrict_sr=1&amp;amp;sr_nsfw=&amp;amp;include_over_18=1&quot;&gt;communities&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Reading their &lt;a href=&quot;https://www.reddit.com/r/Blind/comments/6xx7xk/a_couple_of_questions_about_image_alt_text/&quot;&gt;rants&lt;/a&gt; and &lt;a href=&quot;https://www.reddit.com/r/Blind/comments/pghnb5/looking_for_alt_text_help/&quot;&gt;comments&lt;/a&gt;, and&lt;/li&gt;
&lt;li&gt;Listening to a screen reader like &lt;a href=&quot;https://www.nvaccess.org/download/&quot;&gt;NVDA&lt;/a&gt; and learning how exactly it works.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We can hypothesise as much as we want, but nothing beats walking a mile in readers’ shoes. You will learn more in an hour or two doing that than you will reading guide.&lt;/p&gt;
&lt;h2 id=&quot;appreciation&quot; tabindex=&quot;-1&quot;&gt;Appreciation&lt;/h2&gt;
&lt;p&gt;Credits to &lt;a href=&quot;https://www.linkedin.com/in/cierra-loflin/&quot;&gt;Cierra Loffins&lt;/a&gt;. She did most of the legwork for this article.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Getting started with TalkBack on Android</title>
		<link href="https://a11yproject.com/posts/getting-started-talkback/"/>
		<updated>2023-03-06T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/getting-started-talkback/</id>
		<content type="html">&lt;h2 id=&quot;introduction-to-talkback&quot; tabindex=&quot;-1&quot;&gt;Introduction to TalkBack&lt;/h2&gt;
&lt;p&gt;TalkBack is assistive technology that helps users with visual disabilities access native mobile applications and the web by providing audible and haptic responses to touchscreen gestures. It is the default screen reader software included on Google touchscreen devices running the Android operating system.&lt;/p&gt;
&lt;p&gt;As of 2017, TalkBack is part of a family of software products in the &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback&amp;amp;hl=en_US&amp;amp;gl=US&amp;amp;pli=1&quot;&gt;Android Accessibility Suite&lt;/a&gt; including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accessibility Menu&lt;/li&gt;
&lt;li&gt;Select to Speak&lt;/li&gt;
&lt;li&gt;Switch Access&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Android Accessibility Suite comes pre-installed on devices running Android 9 or greater.&lt;/p&gt;
&lt;p&gt;This article is an introduction to TalkBack version 13.1. We will walk you through the basics of enabling the software and navigating websites and applications with it.&lt;/p&gt;
&lt;h2 id=&quot;getting-started&quot; tabindex=&quot;-1&quot;&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;There are three ways to activate Talkback:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;From the settings menu: &lt;strong&gt;Accessibility&lt;/strong&gt; &amp;gt; &lt;strong&gt;TalkBack&lt;/strong&gt; &amp;gt; &lt;strong&gt;Toggle On&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;On the physical device: Press and hold both volume keys for three seconds&lt;/li&gt;
&lt;li&gt;Via the &lt;a href=&quot;https://assistant.google.com/&quot;&gt;Google Assistant&lt;/a&gt;: &amp;quot;Hey, Google. Turn on TalkBack&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once TalkBack is on, it will begin speaking instructions to you. While there are more robust features to explore, the basic commands you should know are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tapping the screen selects an item, and&lt;/li&gt;
&lt;li&gt;Double tapping the screen activates your selection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TalkBack also makes use of single finger, two finger, and three finger gestures to perform additional actions.&lt;/p&gt;
&lt;h2 id=&quot;navigation-modes&quot; tabindex=&quot;-1&quot;&gt;Navigation Modes&lt;/h2&gt;
&lt;p&gt;There are at least three recognized ways to navigate with TalkBack: touch, swipe, and voice commands.&lt;/p&gt;
&lt;h3 id=&quot;navigating-by-touch&quot; tabindex=&quot;-1&quot;&gt;Navigating by touch&lt;/h3&gt;
&lt;p&gt;To navigate by touch, touch anywhere on the screen, selecting any element. It will be highlighted by a green border box similar to what you would find when using a keyboard to navigate a web page.&lt;/p&gt;
&lt;p&gt;With pressure still applied, slowly drag your finger around the screen. As you move around the screen, TalkBack will jump to the next available item and announce its contents aloud. Once you&#39;ve found the content you&#39;d like to interact with, double-tap the screen.&lt;/p&gt;
&lt;h3 id=&quot;navigating-by-swiping&quot; tabindex=&quot;-1&quot;&gt;Navigating by swiping&lt;/h3&gt;
&lt;p&gt;Navigating by swiping can provide a more precise experience. To navigate in this way, select an initial item by tapping on the screen. Then, with one finger, move left and right on the screen to move to the previous or next item.&lt;/p&gt;
&lt;p&gt;Selected items will be read aloud by TalkBack in the order they appear. Double-tap the screen once you&#39;ve found the content you&#39;d like to interact with.&lt;/p&gt;
&lt;p&gt;Swiping gestures may also be customized in TalkBack&#39;s preferences.&lt;/p&gt;
&lt;h3 id=&quot;navigating-by-voice-command&quot; tabindex=&quot;-1&quot;&gt;Navigating by voice command&lt;/h3&gt;
&lt;p&gt;In addition to touch controls, TalkBack supports some voice commands. To activate voice commands, using one finger, swipe down and right.&lt;/p&gt;
&lt;p&gt;This gesture will open the TalkBack Menu. Select voice commands from the list to open a prompt with more information about specific commands you can use to navigate the page with just your voice.&lt;/p&gt;
&lt;h2 id=&quot;basic-talkback-commands&quot; tabindex=&quot;-1&quot;&gt;Basic TalkBack Commands&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gesture&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Use one finger to tap your device&#39;s screen&lt;/td&gt;
&lt;td&gt;Reads the selected item aloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use two fingers to tap your device&#39;s screen&lt;/td&gt;
&lt;td&gt;Pauses the current reading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double-tap your devices screen&lt;/td&gt;
&lt;td&gt;Activates the selected item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Move two fingers up or down the screen&lt;/td&gt;
&lt;td&gt;Scrolls up or down the content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quickly flick up or down&lt;/td&gt;
&lt;td&gt;Changes the read aloud speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use one finger to swipe down and right&lt;/td&gt;
&lt;td&gt;Opens the TalkBack Menu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;wrapping-up&quot; tabindex=&quot;-1&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;You can start using TalkBack and your new skills right now! Get a feel for how these commands work in real life by navigating &lt;a href=&quot;https://www.a11yproject.com/&quot;&gt;A11yProject.com&lt;/a&gt; with TalkBack turned on.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>The power of ChatGPT as a cognitive accessibility assistive technology for Traumatic Brain Injury survivors</title>
		<link href="https://a11yproject.com/posts/the-power-of-chatgpt-as-a-cognitive-accessibility-assistive-technology-for-traumatic-brain-injury-survivors/"/>
		<updated>2023-03-14T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/the-power-of-chatgpt-as-a-cognitive-accessibility-assistive-technology-for-traumatic-brain-injury-survivors/</id>
		<content type="html">&lt;p&gt;This article was written by ChatGPT with the below prompt written by Jamie Vanderwall.&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;“Write about how ChatGPT can be used as a cognitive accessibility assistive technology specifically for traumatic brain injury survivors and how this impacts the disability community.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;introduction&quot; tabindex=&quot;-1&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This essay explores the use of ChatGPT as a cognitive accessibility assistive technology for traumatic brain injury (&lt;abbr&gt;TBI&lt;/abbr&gt;) survivors, discussing the impact it has on the disability community. The essay outlines the cognitive impairments experienced by TBI survivors, and how ChatGPT can provide support in the form of information retrieval, memory aids, communication aids, and cognitive training.&lt;/p&gt;
&lt;p&gt;Traumatic brain injury (TBI) is a life-changing injury that can affect people of all ages, genders, and backgrounds. TBI can cause a range of physical, cognitive, and emotional impairments, making it difficult for people with TBI to perform daily activities, engage in social interactions, and access information. Cognitive accessibility assistive technology, such as ChatGPT, can help TBI survivors overcome some of the cognitive challenges they face and improve their quality of life. This essay will explore how ChatGPT can be used as a cognitive accessibility assistive technology specifically for TBI survivors and how it impacts the disability community.&lt;/p&gt;
&lt;h2 id=&quot;what-is-chatgpt%3F&quot; tabindex=&quot;-1&quot;&gt;What is ChatGPT?&lt;/h2&gt;
&lt;p&gt;ChatGPT is a large language model developed by OpenAI that can generate human-like responses to natural language queries. It is a type of artificial intelligence that uses deep learning algorithms to analyze and understand natural language input and generate a relevant and contextually appropriate response. ChatGPT can be used in various contexts, such as customer service, chatbots, and conversational agents.&lt;br /&gt;
How can ChatGPT be used as a cognitive accessibility assistive technology for TBI survivors?&lt;/p&gt;
&lt;p&gt;TBI can cause a range of cognitive impairments, including memory loss, attention deficits, and difficulty with executive functioning. These impairments can make it challenging for TBI survivors to access information, communicate effectively, and perform daily tasks. ChatGPT can be used as a cognitive accessibility assistive technology for TBI survivors in several ways.&lt;/p&gt;
&lt;h3 id=&quot;information-retrieval&quot; tabindex=&quot;-1&quot;&gt;Information retrieval&lt;/h3&gt;
&lt;p&gt;TBI survivors may have difficulty retrieving information from memory, especially if it is complex or unfamiliar. ChatGPT can be used to help TBI survivors retrieve information by answering questions and providing relevant information. TBI survivors can ask ChatGPT questions about a topic they are interested in, and ChatGPT can provide a concise and clear response. ChatGPT can also provide visual aids such as images or videos to help TBI survivors understand the information better.&lt;/p&gt;
&lt;h3 id=&quot;memory-aids&quot; tabindex=&quot;-1&quot;&gt;Memory aids&lt;/h3&gt;
&lt;p&gt;Memory loss is a common cognitive impairment among TBI survivors. ChatGPT can be used as a memory aid to help TBI survivors remember important information such as appointments, tasks, and medication schedules. TBI survivors can use ChatGPT to set reminders for important events or tasks, and ChatGPT can send them notifications when it is time to perform the task. ChatGPT can also provide verbal prompts to help TBI survivors remember important information.&lt;/p&gt;
&lt;h3 id=&quot;communication-aids&quot; tabindex=&quot;-1&quot;&gt;Communication aids&lt;/h3&gt;
&lt;p&gt;TBI survivors may have difficulty communicating effectively, especially in social situations. ChatGPT can be used as a communication aid to help TBI survivors express themselves and understand others better. TBI survivors can use ChatGPT to practice social conversations, such as asking and answering questions, making small talk, and expressing emotions. ChatGPT can also provide feedback and suggestions to help TBI survivors improve their communication skills.&lt;/p&gt;
&lt;h3 id=&quot;cognitive-training&quot; tabindex=&quot;-1&quot;&gt;Cognitive training&lt;/h3&gt;
&lt;p&gt;TBI survivors may benefit from cognitive training to improve their cognitive abilities, such as memory, attention, and executive functioning. ChatGPT can be used as a cognitive training tool to provide TBI survivors with exercises and activities that target specific cognitive skills. For example, ChatGPT can provide memory games or attention exercises that TBI survivors can practice to improve their cognitive abilities.&lt;/p&gt;
&lt;h2 id=&quot;how-does-chatgpt-impact-the-disability-community%3F&quot; tabindex=&quot;-1&quot;&gt;How does ChatGPT impact the disability community?&lt;/h2&gt;
&lt;p&gt;The use of ChatGPT as a cognitive accessibility assistive technology for TBI survivors has several implications for the disability community.&lt;/p&gt;
&lt;h3 id=&quot;increased-accessibility&quot; tabindex=&quot;-1&quot;&gt;Increased accessibility&lt;/h3&gt;
&lt;p&gt;ChatGPT can increase accessibility for TBI survivors by providing them with a tool that can help them overcome cognitive impairments. With ChatGPT, TBI survivors can access information, communicate effectively, and perform daily tasks more easily. This increased accessibility can help TBI survivors participate more fully in society and reduce the impact of their disability on their daily lives.&lt;/p&gt;
&lt;h3 id=&quot;reduced-isolation&quot; tabindex=&quot;-1&quot;&gt;Reduced isolation&lt;/h3&gt;
&lt;p&gt;TBI survivors may experience social isolation due to their cognitive impairments, making it difficult for them to engage in social interactions. ChatGPT can help TBI survivors improve their communication skills and practice social conversations, which can increase their confidence and reduce social isolation. Additionally, ChatGPT can provide TBI survivors with access to online communities and social support groups, which can further reduce their sense of isolation.&lt;/p&gt;
&lt;h3 id=&quot;empowerment&quot; tabindex=&quot;-1&quot;&gt;Empowerment&lt;/h3&gt;
&lt;p&gt;ChatGPT can empower TBI survivors by giving them more control over their lives. With ChatGPT, TBI survivors can manage their schedules, set reminders, and access information more easily, reducing their dependence on others for assistance. This increased independence and control can boost TBI survivors’ self-esteem and improve their overall quality of life.&lt;/p&gt;
&lt;h3 id=&quot;technological-advancements&quot; tabindex=&quot;-1&quot;&gt;Technological advancements&lt;/h3&gt;
&lt;p&gt;The use of ChatGPT as a cognitive accessibility assistive technology for TBI survivors is a testament to the power of technological advancements in improving people with disabilities. As technology continues to evolve, there is potential for even more advanced and innovative assistive technologies to be developed, further enhancing the accessibility and quality of life for people with disabilities.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In conclusion, ChatGPT can be used as a cognitive accessibility assistive technology specifically for TBI survivors to help them overcome cognitive impairments and improve their quality of life. By providing TBI survivors with information retrieval, memory aids, communication aids, and cognitive training, ChatGPT can increase accessibility, reduce social isolation, empower TBI survivors, and demonstrate the power of technological advancements in improving the lives of people with disabilities. As technology continues to evolve, there is potential for even more advanced and innovative assistive technologies to be developed, further enhancing the accessibility and quality of life for people with disabilities.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>What is Semantic HTML?</title>
		<link href="https://a11yproject.com/posts/what-is-semantic-html/"/>
		<updated>2023-04-04T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/what-is-semantic-html/</id>
		<content type="html">&lt;p&gt;A common refrain comes up often in the accessibility field. &amp;quot;Use semantic HTML,&amp;quot; people say.&lt;/p&gt;
&lt;p&gt;But what does that mean and why does it matter? More importantly, what do you get with semantic HTML?&lt;/p&gt;
&lt;h2 id=&quot;what-is-semantic-html%3F&quot; tabindex=&quot;-1&quot;&gt;What is Semantic HTML?&lt;/h2&gt;
&lt;p&gt;The word &amp;quot;semantic&amp;quot; has a few meanings. In computer science, semantics provides the rules for interpreting expressions of code. In this case, semantics lays out the rules for how HTML (the code) gets interpreted. Those rules govern structure and meaning.&lt;/p&gt;
&lt;h3 id=&quot;structure&quot; tabindex=&quot;-1&quot;&gt;Structure&lt;/h3&gt;
&lt;p&gt;HTML stands for Hypertext Markup Language. &lt;a href=&quot;https://home.cern/science/computing/birth-web/short-history-web&quot;&gt;Invented by Tim Berners-Lee&lt;/a&gt; as a way to link together important research documents, HTML has evolved to do much more than that. Early versions had heading elements (h1, h2, etc.), but not the structural elements like &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;. Those came later. Each of these elements gives structure to the document, the web page. Creating semantic code means picking the right element for the job, giving your page structure.&lt;/p&gt;
&lt;h3 id=&quot;meaning&quot; tabindex=&quot;-1&quot;&gt;Meaning&lt;/h3&gt;
&lt;p&gt;The elements also have a meaning underneath. Every &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles&quot;&gt;element has an implicit role&lt;/a&gt;. For example, the &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; element &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/landmark_role&quot;&gt;has the implicit role of &amp;quot;banner.&amp;quot;&lt;/a&gt; That means that a screen reader will read that role as a landmark.&lt;/p&gt;
&lt;p&gt;People who use screen readers can navigate by those landmarks, granting an easier way to skim the content of a page. If a developer used a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; instead of a &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, the implicit role would be absent, unless provided with extra code. That means the HTML won&#39;t be as useful to the machines that interpret it.&lt;/p&gt;
&lt;h2 id=&quot;what-you-get-with-semantic-html&quot; tabindex=&quot;-1&quot;&gt;What you get with Semantic HTML&lt;/h2&gt;
&lt;p&gt;When you select the right element for the content you have, you get some things for free. Free as in the web platform gives it to you without any other effort. We talked about one already:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Structure and meaning gets conveyed to browsers and assistive technologies.&lt;/li&gt;
&lt;li&gt;Some elements come with built in keyboard functionality, for example, the &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; element.&lt;/li&gt;
&lt;li&gt;Other elements may &lt;a href=&quot;https://webaim.org/techniques/aria/#components&quot;&gt;communicate state&lt;/a&gt; to the browser and assistive technology. Radio buttons and checkboxes do this.&lt;/li&gt;
&lt;li&gt;The browser will give you some CSS styles for free.&lt;/li&gt;
&lt;li&gt;Search engines can index the content more efficiently so people can find it.&lt;/li&gt;
&lt;li&gt;Technologies such as RSS readers and Reader mode can parse and style the content effectively.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you use a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; improperly in place of a more semantic element, you may have to recreate functionality. Worse yet, many people who rely on semantic HTML as the key underpinning of the web won&#39;t be able to use what you&#39;ve made. Choose wisely.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Automated tools can ensure full accessibility compliance</title>
		<link href="https://a11yproject.com/posts/automated-tools-can-ensure-full-accessibility-compliance/"/>
		<updated>2025-03-10T00:00:00Z</updated>
		<id>https://a11yproject.com/posts/automated-tools-can-ensure-full-accessibility-compliance/</id>
		<content type="html">&lt;p&gt;Can automated tools guarantee full compliance with accessibility standards like WCAG? The short answer is &lt;strong&gt;no&lt;/strong&gt;. While automated accessibility tools are often marketed as comprehensive solutions, they are only part of the equation.&lt;/p&gt;
&lt;h2 id=&quot;what-automated-tools-can-do&quot; tabindex=&quot;-1&quot;&gt;What automated tools can do&lt;/h2&gt;
&lt;p&gt;Automated tools are good at detecting straightforward accessibility issues, such as missing alt text, poor color contrast, and incorrect heading structures. Tools like &lt;a href=&quot;https://www.webyes.com/&quot;&gt;WebYes&lt;/a&gt; and &lt;a href=&quot;https://www.deque.com/axe/devtools/&quot;&gt;axe DevTools&lt;/a&gt; are examples of automated tools that efficiently flag these issues.&lt;/p&gt;
&lt;p&gt;The speed and efficiency of automated accessibility tools make them ideal for initial audits. They can scan hundreds of web pages in minutes, pinpointing the most straightforward problems—what we often call “low-hanging fruit.”&lt;/p&gt;
&lt;p&gt;The results of the initial audit provide a strong foundation, allowing teams to prioritize critical fixes and plan for deeper manual testing to address more complex accessibility issues.&lt;/p&gt;
&lt;h2 id=&quot;what-automated-tools-miss&quot; tabindex=&quot;-1&quot;&gt;What automated tools miss&lt;/h2&gt;
&lt;p&gt;While automated tools are excellent for identifying straightforward issues, they cannot evaluate issues that require human judgment, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether alternative text for images is meaningful.&lt;/li&gt;
&lt;li&gt;The logical flow and usability of keyboard navigation.&lt;/li&gt;
&lt;li&gt;The clarity of instructions or error messages for forms.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When human judgment is missing, important accessibility issues can go unnoticed, making the experience difficult and frustrating for users with disabilities. This can prevent them from fully accessing or using the website as intended.&lt;/p&gt;
&lt;p&gt;Studies highlight this gap. A &lt;a href=&quot;https://alphagov.github.io/accessibility-tool-audit/&quot;&gt;Government Digital Service (&lt;abbr&gt;GDS&lt;/abbr&gt; audit&lt;/a&gt; revealed that even the best automated tools detect only 30-40% of known accessibility issues. Accessibility expert &lt;a href=&quot;https://karlgroves.com/web-accessibility-testing-what-can-be-tested-and-how/&quot;&gt;Karl Groves notes&lt;/a&gt; that only 25 to 33% of WCAG guidelines can be reliably tested with automation.&lt;/p&gt;
&lt;h2 id=&quot;striking-the-right-balance&quot; tabindex=&quot;-1&quot;&gt;Striking the right balance&lt;/h2&gt;
&lt;p&gt;The most effective approach combines automation with manual efforts. Automated scans identify technical issues, while manual reviews and usability tests uncover the subtle barriers tools miss.&lt;/p&gt;
&lt;p&gt;By incorporating user feedback and providing your team with ongoing accessibility training, you can ensure compliance becomes an integral part of your development process—not just an afterthought.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Automated tools are essential for modern accessibility workflows, but they are not a complete solution. True compliance requires the precision of human judgment alongside the speed of automation. Together, they can create digital spaces that meet legal requirements and, more importantly, serve the diverse needs of all users.&lt;/p&gt;
</content>
	</entry>
</feed>
