Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fringe Accessibility: London Web Standards

772 views

Published on

If you are aware of accessibility practices, you may know some of the basics for supporting users (labels, contrast, alt text). I'll touch on some newer or more obscure techniques that can help prime you to look at the new hotness features with a more critical eye. Instead of pushing stricly code techniques, I’ll review the logic behind these approaches (which you can refute, checking off that elusive audience participation selling point!). We'll discuss the search role, language attribute, <main> element, infinite scroll, page zoom, source order, and as much as I can squeeze in before I am chased from the room.

Published in: Internet
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Fringe Accessibility: London Web Standards

  1. 1. Fringe Accessibility Techniques (That Probably Shouldn’t Be) Presented by Adrian Roselli for London Web Standards Slides from this talk will be available at rosel.li/LWS
  2. 2. • I’ve written some stuff, • Member of W3C, • Building for the web since 1993, • Learn more at AdrianRoselli.com, • Avoid on Twitter @aardrian. Great bedtime reading! About Adrian Roselli
  3. 3. • This trip paid for by The Paciello Group. • But please do not tell them in case they do not know. Seriously. Do not tell them. About Adrian Roselli
  4. 4. What is a11y? • A numeronym for “accessibility”: • The first and last letter (accessibility), • The number of characters omitted (a11y). • Prominent on Twitter (character restrictions): • #a11y • Examples: • l10n → localization • i18n → internationalization Ain’t language funsies?
  5. 5. What We’ll Cover • Common(?) Techniques • The (not really) Fringe • Key Takeaways Work with me, people.
  6. 6. Common(?) Techniques 1 of 3 sections.
  7. 7. Common(?) Techniques • Click on field labels Make sure the corresponding field gets focus.
  8. 8. Common(?) Techniques • Click on field labels • Unplug your mouse Make sure you can still use the page / application.
  9. 9. Common(?) Techniques • Click on field labels • Unplug your mouse • Turn off images Make sure no important content has disappeared.
  10. 10. Common(?) Techniques • Click on field labels • Unplug your mouse • Turn off images • Turn off CSS Make sure the page still makes sense.
  11. 11. Common(?) Techniques • Click on field labels • Unplug your mouse • Turn off images • Turn off CSS • Check color contrast Make sure it’s sufficient.
  12. 12. Common(?) Techniques • Click on field labels • Unplug your mouse • Turn off images • Turn off CSS • Check color contrast • Consider hyperlink text Be consistent and clear, managing expectations the whole time.
  13. 13. The (not really) Fringe 2 of 3 sections.
  14. 14. Use Link Underlines http://www.theverge.com/2014/3/13/5503894/google-removes-underlined-links-site-redesign
  15. 15. http://www.sitepoint.com/15-rules-making-accessible-links/ Use Link Underlines
  16. 16. Use Link Underlines • You are not Google: • Users know Google’s layout, • Users probably don’t visit your site daily. • Relying on color alone will not suffice (WCAG 1.4.1 [A], 1.4.3 [AA]), • Necessary contrast values: • 4.5:1 between text and its background for copy, • 3:1 between text and its background for larger text, • 3:1 between surrounding text and a hyperlink, plus an additional visual cue (G183). http://adrianroselli.com/2014/03/i-dont-care-what-google-did-just-keep.html http://adrianroselli.com/2016/06/on-link-underlines.html
  17. 17. Use :focus Styles https://www.virginamerica.com/
  18. 18. Use :focus Styles • Particularly if you removed link underlines, • Everywhere you have :hover, add :focus, • Look for :focus{outline:none;} in libraries: • If you find it, remove it. • Easy to test with the tab key. http://adrianroselli.com/2014/06/keep-focus-outline.html
  19. 19. Avoid Default Focus Styles Firefox
  20. 20. Avoid Default Focus Styles Edge
  21. 21. Avoid Default Focus Styles Chrome
  22. 22. Avoid Default Focus Styles • Edge and Firefox use dotted lines, • WebKit browsers use blue line, • WebKit browsers do not scale the style with the page, • There is no guarantee they will be visible on all backgrounds, • Consider WCAG 2.4.7 Focus Visible. http://adrianroselli.com/2017/02/avoid-default-browser-focus-styles.html
  23. 23. Use <h#> Wisely
  24. 24. Use <h#> Wisely • Use only one <h1> per page, • Don’t skip heading levels, • Use appropriate nesting, • There is no Document Outline Algorithm: • Don’t use <h1> within every new <section> nor <article>, • Multiple <h1>s will not help your SEO. http://adrianroselli.com/2013/12/the-truth-about-truth-about-multiple-h1.html http://adrianroselli.com/2016/08/there-is-no-document-outline-algorithm.html
  25. 25. Use Only One <main> per Page Modified version of Hixie’s image at https://github.com/whatwg/html/issues/100#issuecomment-138620240
  26. 26. Use Only One <main> per Page • <main> maps directly to role="main", • AT users expect one main content block, may miss subsequent <main>s, • AT doesn’t expose that there are multiples, • Can erode trust in landmark navigation. http://adrianroselli.com/2015/09/use-only-one-main-on-a-page.html
  27. 27. Source Order Matters http://codepen.io/aardrian/full/MavVeb/ Firefox Chrome
  28. 28. Source Order Matters • CSS techniques allow visual order to break from DOM order: • Floats, • Absolute positioning, • Flexbox (see 5.4.1 of ED for a11y note), • Grid (read Rachel Andrew on subgrid). • WCAG 1.3.2 and 2.4.3 describe meaningful sequence and tab order matching visual flow, • Different behavior among different browsers. http://adrianroselli.com/2015/09/source-order-matters.html http://200ok.nl/a11y-flexbox/
  29. 29. Don’t Use tabindex > 0 https://www.digitalgov.gov/2014/11/17/user-experience-impossible-the-line-between-accessibility-and-usability/
  30. 30. Don’t Use tabindex > 0 https://www.digitalgov.gov/2014/11/17/user-experience-impossible-the-line-between-accessibility-and-usability/
  31. 31. Don’t Use tabindex > 0 • tabindex="-1" • Use to set focus with script, • Does not put it in tab order of page. • tabindex="0" • Allows user to set focus (e.g.: via keyboard), • Puts in tab order of page (based on DOM). • tabindex="1" (or greater) • Do not do this, • Messes with natural tab order. http://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html
  32. 32. Maybe Use tabindex=0 http://adrianroselli.com/2016/02/keyboard-and-overflow.html
  33. 33. Maybe Use tabindex=0 • Do you have scrolling content boxes? • Keyboard users probably cannot access it. • Do you have content that expands on hover? • Keyboard users probably cannot access it. • A technique (for large, important blocks): • <div role="region" aria-label="[if appropriate]"|aria-labelledby="[if appropriate]" tabindex="0"> http://adrianroselli.com/2016/02/keyboard-and-overflow.html
  34. 34. <button>, <input>, or <a> http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  35. 35. <button>, <input>, or <a> http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  36. 36. <button>, <input>, or <a> • Don’t use a <div> nor <span>. • Does the control take me to another URL? • Use an <a href>. • Note: does not fire on space-bar. • Does the control change something on the current page? • Use a <button>. • Does the control submit form fields? • Use an <input type="submit"> or <button type="submit">. http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  37. 37. Be Wary of Nesting Roles
  38. 38. Be Wary of Nesting Roles
  39. 39. Be Wary of Nesting Roles • Just as you do not put <a href> in <button>, • Do not nest an interactive control in another, • Pay attention to polyfills, libraries that turn <div>s into buttons via ARIA, • Or ones that use tabindex. http://adrianroselli.com/2016/12/be-wary-of-nesting-roles.html
  40. 40. Set lang Attribute on <html> http://codepen.io/aardrian/pen/rOGYNL
  41. 41. Set lang Attribute on <html> http://codepen.io/aardrian/pen/rOGYNL
  42. 42. Set lang Attribute on <html> • VoiceOver uses to auto-switch voices, • VoiceOver uses appropriate accenting, • JAWS loads correct phonetic engine / phonologic dictionary, • NVDA matches VoiceOver and JAWS, • Use the correct lang value: • Sub-tags are ok, • Avoid private-use: en-GB-x-hixie http://adrianroselli.com/2015/01/on-use-of-lang-attribute.html
  43. 43. Don’t Disable Zoom http://codepen.io/aardrian/full/dYNJOV http://codepen.io/aardrian/full/ojBpjw
  44. 44. Don’t Disable Zoom • Allow users on mobile to zoom in, • Look in <meta name="viewport"> for this: • minimum-scale=1.0 • maximum-scale=1.0 • user-scalable=no • Look in @-ms-viewport {} for this: • zoom:1.0 • Grab your boss/client, shout “Enhance!” http://adrianroselli.com/2015/10/dont-disable-zoom.html
  45. 45. Use Captions/Subtitles https://www.youtube.com/watch?v=V592VMJeXc8
  46. 46. Use Captions/Subtitles • Everybody uses them: • Working in public, in bed, at home, • Surfing in public, in bed, at work. • Should include audio descriptions, • Should include speaker identification, • Review auto-captions (“craptions”): • NoMoreCraptions.com http://adrianroselli.com/2013/11/captions-in-everyday-use.html
  47. 47. Use Captions/Subtitles • Do video/audio clips have text alternatives? • Are links to closed-captions or transcripts built into the player or separate text links? • Is there an audio description available? • Tools: • Media Access Australia YouTube captioning tutorial, Vimeo captioning tutorial, • Tiffany Brown’s WebVTT tutorial, • DIY Resources for Closed Captioning and Transcription from 3 Play Media. http://webaim.org/techniques/captions/
  48. 48. Test in Windows High Contrast Mode http://buffalosoccerclub.org/About
  49. 49. Test in Windows High Contrast Mode • It removes CSS background images, • This has changed in Edge 14 / Win10 Anniv. Update, • about:flags > Render backgrounds in high contrast • Colors defined in your CSS are overridden, • To activate: • Left ALT + left SHIFT + PRINT SCREEN • Media queries: • -ms-high-contrast: active • -ms-high-contrast: black-on-white • -ms-high-contrast: white-on-black http://adrianroselli.com/2012/08/css-background-images-high-contrast-mode.html
  50. 50. Avoid Infinite Scroll http://www.pewresearch.org/category/publications/
  51. 51. Avoid Infinite Scroll • Makes it impossible to access some content: • Footer, • Sidebar links. • Destroys the back button, • Makes it impossible to share a URL to specific “page” of results, • Makes it impossible to jump ahead several “pages” of results, • Can overwhelm AT users, less powerful devices. http://adrianroselli.com/2014/05/so-you-think-you-built-good-infinite.html http://adrianroselli.com/2015/05/for-infinite-scroll-bounce-rate-is.html
  52. 52. Reconsider Typefaces for Dyslexia http://opendyslexic.org/try-it/
  53. 53. Reconsider Typefaces for Dyslexia • Use good typography rules: • Avoid justified text, • Use generous line spacing / leading, • Use generous letter spacing, • Avoid italics, • Generally use sans serif faces, • Use larger text, • Use good contrast, • Use clear, concise writing. http://adrianroselli.com/2015/03/typefaces-for-dyslexia.html
  54. 54. Use On-Page Descriptions http://adrianroselli.com/2014/04/we-need-to-raise-stink-about-net.html
  55. 55. Use On-Page Descriptions • Not just for longdesc or aria-describedat, but any long description technique, • Use an in-page anchor, • Don’t link to another page without reason: • Consider burden of loading a new page, • Consider burden of re-loading original page. • Based on results of latest WebAIM screen reader survey results. http://adrianroselli.com/2015/09/use-on-page-image-descriptions.html
  56. 56. role="search" on <form> is OK http://codepen.io/aardrian/pen/MaKbPa/
  57. 57. role="search" on <form> is OK • Now OK to use <form role="search">, • Walking back my own prior statements, • (think of this as a retraction) • Nu Html Checker is already updated, • Proof that you can affect the web platform! http://adrianroselli.com/2015/08/where-to-put-your-search-role.html#changed
  58. 58. Not All Screen Reader Users… http://adrianroselli.com/2017/02/not-all-screen-reader-users-are-blind.html
  59. 59. Not All Screen Reader Users… http://adrianroselli.com/2017/02/not-all-screen-reader-users-are-blind.html • 2015 WebAIM survey, 64% identified as blind: • Low vision users, • Users with cognitive impairments. • Risks: • Oddly hidden content, • Broken source order, • Element mis-use, • Tabindex mis-use, • Third-party add-ons.
  60. 60. Try Not to Tweet Pictures of Text https://twitter.com/jmspool/status/546303256990076929 https://twitter.com/lukew/status/541986091960528896 https://twitter.com/altonbrown/status/653030164985708544
  61. 61. Try Not to Tweet Pictures of Text https://twitter.com/aardrian/status/733023365729005568
  62. 62. Try Not to Tweet Pictures of Text • Twitter has finally added alternative text, • Must be using iOS/Android app, full web site, some third-party apps (Easy Chirp), • Alternative text not exposed via mobile site, not in Twitter back-ups (yet), • Maybe also make your own: • Reply to own tweet with alternative text, • Link to a tweet and provide alternative text, • Link to long-form alternative text. http://adrianroselli.com/2016/03/twitter-has-alt-text-with-some-caveats.html
  63. 63. Share a11y Experiences http://blog.podio.com/2015/07/08/hard-truths-helped-us-start-improving-podio-experience-visually-impaired/ https://medium.com/medium-eng/five-goofy-things-medium-did-that-break-accessibility-3bc804ae818d
  64. 64. Share a11y Experiences • We’re all trying to do what we can, • Don’t attack those who don’t know what they don’t know, • Someone may find something you never considered, • You may get feedback on something you never considered, • a11ywins.tumblr.com FTW! http://adrianroselli.com/2015/07/lets-share-more-accessibility-experiences.html
  65. 65. Key Takeaways 3 of 3 sections.
  66. 66. ≠ Checklist • Accessibility is not a checklist. No matter how pretty that checklist looks now how many items you get to check.
  67. 67. Stairamp Dean Bouchard on Flickrhttp://incl.ca/the-problems-with-ramps-blended-into-stairs/
  68. 68. = Process • Accessibility is not a checklist. • Accessibility is an ongoing process. You know, kinda like all software.
  69. 69. Snowtreeramp Nicolas Steenhouthttps://twitter.com/vavroom/status/571092086365261824 “Wheelchair ramp at pharmacy not only hasn’t been cleared of snow but has 2 potted trees to ensure nobody can pass.”
  70. 70. Net Magazine, September 2016 400 Word Recap
  71. 71. Fringe Accessibility Techniques (That Probably Shouldn’t Be) Presented by Adrian Roselli for London Web Standards Slides from this talk will be available at rosel.li/LWS

×