Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
# Best Practices in Accessible Interface Design ## CSE513: Fall 2025 Jennifer Mankoff 2025-10-12 Important Reminder: check zoom & captioning
Live View: /slides/best-practices.html
--- class: center, middle, inverse # Announcements --- ## Jen's situation - Major family emergency - Out since last Thursday - Trying to return to asynch work this week --- ## Upcoming things for class - HW3 starts this week. It's a 2 week homework (but overlaps ASSETS for some) - Proposals due 11/3. To facilitate project team formation, please post your preliminary ideas and reactions on Ed by 10/25. - We'll reserve class time for groups to talk for 10 minutes on 10/27. - We encourage you to use 10/29 class time to meet and do further planning - You'll present to class on 11/3 --- class: center, middle, inverse # Introduction --- ## Most WWW and Apps not Accessible - Over 60% of Android apps missing at least one label on a clickable element (out of 5721 apps tested) ([Ross, 2020](https://dl.acm.org/doi/pdf/10.1145/3348797)) - Over 80% of fortune 500 websites not accessible ([Loiacono, 2009](https://dl.acm.org/doi/pdf/10.1145/1562164.1562197)) - University websites are also partly to mostly inaccessible ([Campoverde-Molina, 2021](https://link.springer.com/content/pdf/10.1007/s10209-021-00825-z.pdf)) - Less than 1% of Twitter images had ALT text in 2019 ([Gleason, 2019](https://dl.acm.org/doi/pdf/10.1145/3308558.3313605)) - Only about 50% of universities in the US teach accessibility at all ([Shinohara, 2018](https://dl.acm.org/doi/pdf/10.1145/3159450.3159484)). ??? More study is needed, but overall, progress here is slow. This last point relates to our discussion of software engineers and accessibility in a week -- we are simply not training people to do this (or AI!) --- ## What is the goal? All users interact with the *same* website or app as anyone else Users may use browser features or a specialized accessibility tool to customize their experience -- **This is Key** Website or app designer provides the right structure and information to support this --- ## Where does accessibility show up? (1/4) | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | || | Words and Images | HTML | CSS | JavaScript | --- ## Where does accessibility show up? (2/4) | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | ||| | Words and Images | HTML | CSS | JavaScript | --- ## Where does accessibility show up? (3/4) | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | |||| | Words and Images | HTML | CSS | JavaScript | --- ## Where does accessibility show up? (4/4) | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | ||||| | Words and Images | HTML | CSS | JavaScript | --- ## Building for Accessibility
graph LR SR[fa:fa-volume-up
Screenreader
]:::bluelarge -->|Asks for next object in DOM| API(fa:fa-codepen
Accessibility API
):::bluelarge API -->|Passes along request| ATK[
Toolkit
]:::bluelarge ATK -->|Checks Details| App[fa:fa-mobile
App
]:::bluelarge App -->|Name: Foo| ATK ATK -->|Name, Role: Button| API API -->|Name, Role| SR
- This information must be provided by the developer (and in some cases, parts of the info provided by toolkit library) - Accessibility APIs provide the information to a screen reader. - Screen readers provide this information visually, through audio or in Braille to users. ??? As an example, we'll focus on screen readers Screen readers get underlying information about controls from operating systems. --- ## Different types of interface toolkits all have similar libraries | Does What? | Android | Web | |--- | --- | --- | | Content| Java | HTML/CSS/JS | | Style | Layout | CSS | | Structure | Interactor Hierarchy | Document Object Model (DOM) | | Content | Components | DIVS | | Style | Paint objects on a canvas | CSS | | Behavior | Event Handling | Event Handling/JS | --- ## Testing For Accessibility? Automated Tools Design Guidelines (i.e. know them and apply them heuristically) **Manual Testing** (Try it yourself using accessibility technologies or simulators such as [aDesigner](https://www.eclipse.org/actf/downloads/tools/aDesigner/)) User Testing --- # Manual Assessment Warning Simulation tends to cause people to underestimate what is possible Helps to learn *how* to use things but never assume you are proficient We'll touch on screen readers, magnifiers & so on today ??? Remind them about drone video Don't fall into the trap of assuming that your ineptitude is the standard disability experience --- ## Competency: AT familiarity - Information about how the AT works, users, and strengths and weaknesses of the AT. - Information about what disabilities can benefit from it. For example, screen readers are not just used by blind people. - Any sources you used to answer these questions (first person accounts, research papers, etc). If you use Generative AI, you still need to check and cite relevant references. - Testing is a great place to explore these. Example ATs you can explore - [Switch Control](https://www.youtube.com/watch?v=GQKEE9nI1lk) - [Magnification](https://www.youtube.com/watch?embeds_referring_euri=http%3A%2F%2Flocalhost%3A4000%2F&source_ve_path=Mjg2NjQsMTY0NTAz&v=PMihdIZUh7Y&feature=youtu.be) - Change coloring in your browser (e.g. [Dark mode](https://www.youtube.com/watch?v=lDJlzyEsibU)) - ... ??? - Switch users, turn this on, on your phone --- exclude: true ## Switch Control ![:youtube Explanation of how to set up switch control, GQKEE9nI1lk] --- exclude: true ## Magnification ![:youtube How to magnify your windows desktop, PMihdIZUh7Y?feature=shared&t=81] ??? - Magnification users, turn this on, on your phone --- exclude: true ## Browser Settings - Change font size - Change color contrast - Change from light to dark mode --- ## Screen Readers .left-column-half[ Different types of screen readers. - JAWS for Windows - Nonvisual Desktop Access - VoiceOver - TalkBack - ChromeVox ] .right-column-half[   *Where can you find one?* Different devices used to interact with screen readers. ] --- class: center, middle, inverse # Learning Goals --- ## Lots of learning goals today - Introducing Accessibility Standards - Manual Accessibility Testing - We will focus on screen readers - And understanding structure in interactive apps - And how this impacts user agents (such as screen readers) - Building for Accessibility - Assignment - [if time] Get comfortable using existing freely available accessibility technology to manually support assessment --- class: center, middle, inverse # Building for Accessibility --- ## WCAG is the gold standard Most comprehensive and up to date: Web Accessibility Initiative ([WAI](http://www.w3.org/wai/)), a service of the World Wide Web Consortium (W3C) - Makes recommendations for Web authors, browsers and servers: **Web Content Accessibility Guidelines (WCAG)** - WCAG is an ongoing project - There is no *official* equivalent for non-web programming,
but WCAG can easily be applied to apps as well - Lots of ways to learn WCAG
(e.g. this [certificate program](https://de.torontomu.ca/wa/); this [textbook](https://pressbooks.library.torontomu.ca/pwaa/); and [WebAIM](https://webaim.org)) ??? We could spend a whole quarter on this... but we're going to limit it to one or two weeks "live" (regularly being worked on and updated, with input from the disability community). --- ## The [POUR](https://webaim.org/articles/pour/) standard - Perceivable: Web content is made available to the senses - sight, hearing, and/or touch - Operable: Interface forms, controls, and navigation are operable - Understandable: Information and the operation of user interface must be understandable. - Robust: Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies Note: There is a 5th thing, Conformance, that you "you meet or satisfy the 'requirements' of the standard." ??? This is appropriate for *all* disabilities -- don't think access is only an issue for blind and low vision (BLV) people Obviously there is some overlap between these, and they build on each other --- ## Three levels of compliance *Some* users with disabilities can access and use web content (A) *Removal of significant barriers* overall to accessing content (AA) *Enhancements to web accessibility* for more users with disabilities (AAA) Most apps and websites today only meet *part* of (A) level compliance! --- exclude: true ## Testing Accessibility? Automated tools - [Review of many options](https://medium.com/@OPTASY.com/what-are-some-of-the-best-web-accessibility-testing-tools-to-evaluate-your-website-with-69def25a386) - Web: WebAIM's [WAVE](https://wave.webaim.org/); - Browser Extensions ([Comparison Article](https://medium.com/@OPTASY.com/what-are-some-of-the-best-web-accessibility-testing-tools-to-evaluate-your-website-with-69def25a386)): [WAVE](https://chrome.google.com/webstore/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh?hl=en-US); [Axe](https://chrome.google.com/webstore/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US); [Lighthouse](https://developer.chrome.com/docs/lighthouse/overview/); [Siteimprove](https://chrome.google.com/webstore/detail/siteimprove-accessibility/efcfolpjihicnikpmhnmphjhhpiclljc/related); & other browser extensions - Phone apps: [Google Accessibility Scanner](https://support.google.com/accessibility/android/answer/6376570?hl=en&ref_topic=6376582) and [iOS.](https://developer.apple.com/library/archive/documentation/Accessibility/Conceptual/AccessibilityMacOSX/OSXAXTestingApps.html) --- ## Example: Adding a button When you hear the word "button" in the context of a graphical user interface (GUI), what do you think of? --- ## What should it do? - content? - structure? - style? - behavior? [Making Accessible Buttons](https://jessijokes.medium.com/one-button-to-rule-them-all-465e294cba82) --- ## What should it do? (my answers) What do we tell the toolkit about the button? - That it is a button (content) - What it says (content) - Where to place it (structure) - How it looks (style) - How it should react to user input and from which device? (behavior) --- ## Accessibility in content | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | || | Words and Images | HTML | CSS | JavaScript | --- ## Understandable content has metadata - There are 100s of possible HTML tags! See [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element)! - Some simple tags - Title `
` (which nests inside your ``) - Headings (`H1`-`H6`) - Paragraphs `
` - Ordered or unordered lists: `
`, `
`, with list elements `
` - Horizontal rules `
` - Strong `
` which defaults to a bold style and emphasis `
` which defaults to italicized in most browsers. --- ## Semantic content - There are 100s of tags! See [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element)! - Some simple tags - Some tags add semantic context - `
`: The header or banner that displays the title of the page - `
`: The bulk of the content of the page - ``: The footer is optional but you can put contact info and copyright date in there. --- ## Metadata content - There are 100s of tags! See [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element)! - Some simple tags - Some tags add semantic context - Some tags need additional information, added to a tag with attributes - Links to other pages `
` - Links to images `
` --- ## Documentation content - There are 100s of tags! See [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element)! - Some simple tags - Some tags add semantic context - Some tags need additional information, added to a tag with attributes - Some tags (comments) are important for documentation `` --- ## Button content ``
Send
`` Note: By using the ``button`` tag, we get free support for proper representation of role and state Which Perceivable/Operable/Understandable/Robust principals do each of these demonstrate? --- ## My answer (button content) - Aria label ([Perceivable non-text information](https://www.w3.org/TR/WCAG20-TECHS/ARIA6.html)) - Generally valuable ([G115](https://www.w3.org/WAI/WCAG21/Techniques/general/G115)): Using semantic markup such as ``
`` --- exclude: true ## Interactive Component ALT text - What is a good name for a "Like" Button? - Enable the user to understand the name of the control they have navigated to, what type of control it is, what value it has, what state it has. --- exclude: true ## Proper ALT text Screen reader will read out name, role, and state. Don't repeat these. Good alt text: Name ("Like") API knows: Role ("Button") API knows: State ("Not selected") --- ## Accessibility in structure | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | ||| | Words and Images | HTML | CSS | JavaScript | --- ## Button Structure Minimum needed for screen reader access - Where it is (structure) - Can I get to it (location) Makes the interface "Operable" -- [WCAG guideline 2.4 (Navigable)](https://www.w3.org/WAI/WCAG21/Understanding/navigable.html) ??? Naturally exists in the interactor hierarchy/DOM, but is it in an intuitive place for navigation? --- ## Key Navigation Concept Reaching times: How long does it take to get somewhere Information you need to collect to assess this: - You need to know the linear order of a webpage or app. - You need to know about any hierarchy that is programmatically available (e.g. headers) No way to automatically assess this! Hard to assess well without knowing best tricks for navigation that disabled people use. --- ## A page with layout .left-column60[ (table but imagine it was CSS)
Title spanning whole width of table
Navigation 1
Navigation 2
Navigation 3
Navigation 4
Banner Ad
Right Nav 1
Right Nav 2
Right Nav 3
Main content area with lots of text and stories
filling the center part of the window
] .right-column40[ What focus order makes sense for the Facebook newsfeed? Does this match the actual focus order? When might you need to skip things? ] --- ## Linear Order with no CSS Depends on how the page was designed. One possibility - Title - Right Nav 1 - Right Nav 2 - Right Nav 3 - Navigation 1 - ... - Navigation 4 - Banner ad - Main content area --- ## Swipe order? (bad) .left-column60[ | Cell | Nefarious order | |--------------|-----------------| | Title | 1 | | Right Nav 1 | 8 | | Right Nav 2 | 9 | | Right Nav 3 | 10 | | Banner ad | 3 | | Navigation 1 | 4 | | Navigation 2 | 5 | | Navigation 3 | 6 | | Navigation 4 | 7 | | Content | 11 | ] .right-column40[
Title spanning whole width of table
Nav 1
Nav 2
Nav 3
Nav 4
Banner Ad
Right Nav 1
Right Nav 2
Right Nav 3
Main content area with lots of text and stories filling the center part of the window
] --- ## Swipe order? (better) .left-column60[ | Cell | Well designed order | |--------------|---------------------| | Title | 1 | | [skip cell] | 2 | | Right Nav 1 | 3a | | Right Nav 2 | 3b | | Right Nav 3 | 3c | | Banner ad | 3e | | Navigation 1 | 3a | | Navigation 2 | 3b | | Navigation 3 | 3c | | Navigation 4 | 3d | | Content | 3 | ] .right-column40[
Title spanning whole width of table
Nav 1
Nav 2
Nav 3
Nav 4
Banner Ad
Right Nav 1
Right Nav 2
Right Nav 3
Main content area with lots of text and stories filling the center part of the window
Hidden skip Link to get to main content ] --- ## Swipe order? (best) .left-column60[ | Cell | Chunked order | |-------------|---------------------| | Title | 1 | | [skip cell] | 2 | | Nav Area | 3 | | Right Nav | 3a | | Right Nav 1 | 3a.1 | | Right Nav 2 | 3a.2 | | Right Nav 3 | 3a.3 | | Left Nav | 3b | | Navigation 1 | 3b.1 | | Navigation 2 | 3b.2 | | Navigation 3 | 3b.3 | | Navigation 4 | 3b.4 | | Banner ad | 3c | | Content | 4 | ] .right-column40[
Title spanning whole width of table
Nav 1
Nav 2
Nav 3
Nav 4
Banner Ad
Right Nav 1
Right Nav 2
Right Nav 3
Main content area with lots of text and stories filling the center part of the window
Use chunks to group meaningful info and reduce number of navigation steps. ] ??? - User can double tap to drill down into chunk (e.g. navigate to the “like” button by drilling down into an individual post). --- ## More Navigation Concepts Forms and inputs have issues with *order* and *labels*. This is fixed different ways on different platforms, but all major UI dev tools have APIs for accessibility. Make sure you use them *and* test them. - Web [advice](http://webaim.org/techniques/forms/controls) and [advanced advice](http://webaim.org/techniques/forms/advanced) on this. Look for similar documentation for android/iOS. Tables are not ideal, but *best* when headers are labeled. Again, check the API for your interface dev platform. --- ## Accessibility in Style | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | |||| | Words and Images | HTML | CSS | JavaScript | --- ## Cascading Style Sheets (CSS) - Allows us to change the look and feel of the content on the page - Style is separated into a .css file - Makes styling multiple pages easier - Allows changing multiple pages easier - Style sheets must be linked to an html page in the for the styles to work `
` - Great example is [CSS Zen Garden](http://www.csszengarden.com/) --- ## Styling Buttons for Accessibility - Minimum size: 7x7mm for touch screens (but ideally should resize on larger screens) - Padding around the button - Color contrast - Visually indicate focus (example) ``#send-feedback-btn:focus {outline: 2px solid #0000ff;} `` Small group discussion: Which Perceivable/Operable/Understandable/Robust principals do each of these demonstrate? Check the table of contents for [WCAG 2.1](https://www.w3.org/TR/WCAG21/) --- ## My POUR analysis - Minimum size = Operable - Padding around button = Operable - Focus Visible = Operable - Contrast = Perceivable --- ## Accessibility in Behavior | Content | Structure | Style | Behavior | | :--: | :--: | :--: | :--: | ||||| | Words and Images | HTML | CSS | JavaScript | --- ## Button Behavior Use a library element or ensure that events are properly announced - State changes - Invocation --- ## Other API specific issues Impact Access You always must to understand your accessibility API in depth to make an app accessible For example, when [Ross et al, 2017](https://dl.acm.org/doi/10.1145/3132525.3132547) studied 1000s of android apps. Some common errors aren't in guidelines because they are either tool specific or straight up UX errors: -
TextView has a content description (interferes with screen reader reading the the text field) -
Overlapping clickable items -
URL in link invalid --- ## Key Take Home Message IF you take one thing away from this whole discussion, it should be: *YOU* decide who is disabled with respect to the technology you create --- class: center, middle, inverse # Auditing for Accessibility --- ## Audit "Problem Reports" - Name/Brief Description - Brief and Specific (Unique) - Testing Method - What tools found this problem (screen reader? manual? etc) - Evidence - WCAG guideline violated; screenshot with evidence of the violation. - Explanation - Explain the issue and possible causes. - Severity & Justification (next slide) - Possible solution --- ## Severity Severity - Rank severity 1-4 1. Cosmetic 2. Minor: Low Priority 3. Major: High Priority 4. Catastrophe --- ## Severity Justification Justify your ranking in terms of frequency, impact and persistence. - Frequency - Is the problem common or rare? - Impact - Is it hard or easy to overcome this? - Persistence - Is there a way to work around this problem? - Possible Solution - Explain a potential solution to improving the accessibility. --- ## Example  .footnote[Example borrowed from CSE340] --- ## Header (bad) - Description: Color Contrast Issue - Testing Method: WebAim Contrast Checker - Evidence: Violated Guideline .footnote[Example borrowed from CSE340] --- ## Header (good) - Description: Very Low Color Contrast for Text - Testing Method: WebAim Contrast Checker - Evidence: Guideline violated: 1.4.3 Contrast (Minimum) --- ## Example  Provides specific guideline .footnote[Example borrowed from CSE340] --- ## Example Explanation (bad) Explanation: There is bad contrast between the elements in the text for the given application. This will make it hard for people to use the app. This doesn't specify *what* has bad contrast. It doesn't explain *how* it will be hard or *who* might be impacted or .footnote[Example borrowed from CSE340] --- ## Example Explanation (good) Explanation: This accessibility issue violates success criterion 1.4.3 Contrast as the color contrast between the text and color of the buttons does not meet the required contrast ratio making the text not easily distinguishable. This could create a challenge for users with low vision or other vision impairments because of the inadequate contrast of colors in the application. As a result, some users may not be able to fully engage with the functionalities of this application and this could even cause users to experience additional negative consequences while trying to navigate this issue. .footnote[Example borrowed from CSE340] --- ## Example Severity (bad) Severity Rating: 3 Justification: The application will make it hard for users who do not have good vision since they will not be able to see the text on the buttons. Which will make it hard for the person to use the app. Does not explain the frequency of the issue. Does not talk about the impact of this violation or if it could be avoided. .footnote[Example borrowed from CSE340] --- ## Example Severity (good) Severity Rating: 3 Justification: Frequency is high on this app because there is more than one color contrast error on this page. Impact is high since this is an issue that disrupts the main functionality of the app, making it hard to overcome. This in return impacts the user’s ability to interact with the rest of the content on this app. Persistence is high as this accessibility issue cannot be avoided due to it being one of the main features of the app. .footnote[Example borrowed from CSE340] --- ## Example Solution (bad) Possible Solution: Change the buttons colors to something that makes the contrast better Not specific enough .footnote[Example borrowed from CSE340] --- ## Example Solution (good) Possible Solution: To improve this, the developer should increase the contrast ratio by either 1. making the color of the text darker (e.g., black text against the light gray button) or 2. making the color of the buttons darker (e.g., dark gray button against with white text). .footnote[Example borrowed from CSE340] --- class: center, middle, inverse # Accessibility Implementation Assignment --- ## This week's assignment The goal of this homework is to make something more accessible (e.g. website, visualization, user interface, AR/VR, etc) that you’ve already made. Required learning goals: - Familiarity with a Range of Accessibility Technologies (discussed earlier today) ??? If you don't have an interface, come speak with us! --- ## Assignment steps 1. Pick something to assess 2. Select an accessibility technology and test your app with it 3. Repeat with a second accessibility technology 4. Fix at least two problems from at least two different areas of POUR 5. Write your reflections This is a two week assignment --- class: center, middle, inverse # In-class practice audit --- ## Scenario (for today): Load it up on any device! - [Accessible University](https://a11y-assessments.pages.oit.duke.edu/accessible-u/before_u.html) (not accessible) - [Accessible University](https://a11y-assessments.pages.oit.duke.edu/accessible-u/after_u.html) (accessible) - [Accessible University Source](https://a11y-assessments.pages.oit.duke.edu/accessible-u/) - [Information about Accessible University](https://www.washington.edu/accesscomputing/AU/info.html) [Originally developed](https://www.washington.edu/accesscomputing/AU/index.html) at UW by [AccessComputing](https://www.washington.edu/accesscomputing/) --- ## Break into pairs - One person load it on your laptop (use the *Safari* browser on os x) - One person load it on your phone - Start a google document to keep track of your findings. Break it into sections (one per problem or group of similar problems). Load [Accessible University](https://a11y-assessments.pages.oit.duke.edu/accessible-u/before_u.html) --- ## Follow the guide - Check for videos (no) - Check rotation (what do you notice?) - Check if the form is visually understandable (labels) --- ## What to do with that? Check the [WCAG beginner's guide](https://appt.org/en/guidelines/wcag-beginners-guide) to make sure it's a problem. In this case, it's bad UX but doesn't rise to "access problem" --- ## Text Resizing - Does text resize - Is it legible? --- ## What to do with that? Fill out all the parts of the problem report using [our form](https://docs.google.com/forms/d/e/1FAIpQLSepJusBexhY5yp6JGOYG83MPuDcmIOoywXKAPRIulYrB7YErQ/viewform?usp=sharing) - Name/Brief Description (Unique) - Testing Method: Visual Inspection - Evidence: Take a photo; add in the success criterion (1.4.4) --- ## Explanation - Explanation: This app issues violates success criterion 1.4.4 Resize Text, because text doesn't resize properly on an iPhone. This is challenging for user who cannot read small fonts easily. - Severity 3 --- ## Severity Justification - Justification: Frequency is high because it affects all text. Impact is medium because the reader can zoom in and out (they have to scroll a lot then though). Persistence is high because there isn't an easy work around Discuss difference between impact and persistence here --- ## Solution This one is actually quite hard to solve, but [Craig Hockenberry's blog post on dynamic type](https://furbo.org/2024/07/04/dynamic-type-on-the-web/) is both a demonstration of a working solution and an explanation of how to solve it. --- ## Color Contrast One easy way to check one the web is using WebAim's [Wave](https://wave.webaim.org/report#/https://a11y-assessments.pages.oit.duke.edu/accessible-u/before_u.html) This is much easier on a laptop! The link above loads our sample bad web page. Look at "contrast errors" *Note*: You can group these all into one problem report --- ## Screen Reader: Textual Alternatives Simplist to check with [Wave](https://wave.webaim.org/report#/https://a11y-assessments.pages.oit.duke.edu/accessible-u/before_u.html). Click on "details" and check them all. You'll see - 3 x missing alt text - 6 x linked image missing alt text - 2 x suspicious alt text (much further down) --- ## Screen Reader: Order of Elements Order of elements can be checked two ways 1. Tab through things (laptop only) 2. Click on "Order" in WAVE This can also be checked on a phone with an actual screen reader -- it will be your "swipe order" --- ## Turning on your screen reader iPhone: Can be done in settings -> accessibility -> voiceover OSX: Settings -> search for voiceover --- ## (On-desktop) screen reader interaction Three core interaction patterns: - Linear navigation through like objects - Hierarchical navigation through logically related objects - Switching between object types --- ## (On-phone) screen reader interaction .left-column[  ] .right-column[ Three core interaction patterns: - Swipe to navigate linearly - Touch to navigate spatially - The first “hit” of an interface element will focus, double tap to select/activate that interface element ] ??? Discuss similarities and differences from desktop --- ## ALT-Tab to safari
- Try it: Read the title; use VO (control-option) to move around - iPhone users try swiping (swipe up slowly until you hear 3 beeps to switch apps from settings) --- ## As you move around - Check ALT text - Check roles ("navigation"; "button"; etc) - Check headings - Try to operate the app (fill in the form) --- ## Some things I noticed - "required fields in blue" (not visible to screen reader user) - I couldn't complete the form. It didn't tell me where the error was - form labels read twice on laptop Other issues - Missing "skip link" - Heading level not consistent with semantics - Carousel not accessible [All 18 problems](https://a11y-assessments.pages.oit.duke.edu/accessible-u/issues.html)