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.

WordPress Accessibility - WordCamp Buffalo 2016

582 views

Published on

With recent announcement that all code submitted to WordPress core (as well as themes) must meet WCAG 2.0 AA, proper accessibility techniques are more important within WordPress than ever. I’ll review some basic and fringe accessibility techniques you can use for your personal and client projects, as well as for contributing to WordPress core.

Published in: Internet
  • Be the first to comment

WordPress Accessibility - WordCamp Buffalo 2016

  1. 1. WordPress Accessibility Presented by Adrian Roselli for WordCamp Buffalo 2016 #WCBuf Slides from this talk will be available at rosel.li/WCBuf
  2. 2. What We’ll Cover • Intro • WordPress Goes WCAG • Techniques • Key Takeaways Work with me, people.
  3. 3. Intro 1 of 4 sections.
  4. 4. About Adrian Roselli • Co-written four books. • Technical editor for two books. • Written over fifty articles, most recently for .net Magazine and Web Standards Sherpa. Great bedtime reading!
  5. 5. About Adrian Roselli • Member of W3C HTML Working Group*, W3C Accessibility Task Force, five W3C Community Groups. • Building for the web since 1994. • Business owner / founder, ~20 years. • Now independent / unemployed. • Learn more at AdrianRoselli.com. • Avoid on Twitter @aardrian. I warned you.
  6. 6. What is a11y? • A numeronym for “accessibility”: • The first and last letter, • The number of characters omitted. • Prominent on Twitter (character restrictions): • #a11y • Examples: • l10n → localization • i18n → internationalization Ain’t language funsies?
  7. 7. Accessibility Gets No Respect In fairness, Sherwin Williams needs to come up with a lot of color names... “Cyberspace” (gray) “Online” (blue) “Lime Rickey” (green)
  8. 8. Accessibility Gets No Respect …however I think the team could have done better than this.
  9. 9. WordPress Goes WCAG 2 of 4 sections
  10. 10. <irony>No transcripts nor captions, but go here and search (ctrl + F) for “It's Martin.” to jump to the point in the in-progress slightly inaccurate transcript.</irony>
  11. 11. “All new or updated code released into WordPress core and bundled themes must conform with the WCAG 2.0 guidelines at level AA.” — Rian Rietveld March 21, 2016
  12. 12. Notes • Leans on WP Core Accessibility Coding Standards • https://make.wordpress.org/core/handbook/best- practices/coding-standards/accessibility-coding- standards/ • Itself informed by WCAG (Web Content Accessibility Guidelines) 2.0 (a W3C recommendation) • https://www.w3.org/WAI/intro/wcag • Get involved • https://make.wordpress.org/accessibility/get- involved/
  13. 13. More Notes • To get accessibility-ready tag for your theme, must follow specific guidelines • https://make.wordpress.org/themes/handbook/r eview/accessibility/required/ • “The accessibility of plugins is the responsibility of each plugin author.”
  14. 14. Yet More Notes • Accessibility wish list for 4.6+, posted April 27 • https://make.wordpress.org/core/2016/04/27/acc essibility-wish-list-for-4-6-and-beyond/ • Rian Rietveld won Heroes of Accessibility Award, Individual Achievement category • http://wptavern.com/wordpress-contributor-rian- rietveld-wins-heroes-of-accessibility-award
  15. 15. Accessibility Ready Themes https://wordpress.org/themes/tags/accessibility-ready/
  16. 16. Techniques 3 of 4 sections.
  17. 17. Use @alt Text on Images
  18. 18. Use @alt Text on Images
  19. 19. Use @alt Text on Images • Can you still make sense of the page? • Is content missing? • Can you still use the site? • Is your alt text useful? http://www.karlgroves.com/2013/09/05/the-6-simplest-web-accessibility-tests-anyone-can-do/
  20. 20. Use @alt Text on Images http://www.4syllables.com.au/2010/12/text-alternatives-decision-tree/ http://dev.w3.org/html5/alt-techniques/#tree 1. What role does image play? 2. Does it present new info? 3. What type of info? Informative Yes alt="" or <a href="foo"><img alt="">Link</a> alt="" or Use CSS alt="descriptive identification" or alt="short label" + caption PurelyDecorative Sensory No alt="label for link" alt=“short alternative" or alt="short label" + caption alt="short label + location of long alternative" or long text alternative on same or linked page Long/Complex Short/Simple
  21. 21. Use On-Page Descriptions http://adrianroselli.com/2014/04/we-need-to-raise-stink-about-net.html
  22. 22. 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
  23. 23. Hyperlinks! http://www.sitepoint.com/15-rules-making-accessible-links/
  24. 24. Hyperlinks! • Is there any “click here,” “more,” “link to…”? http://www.sitepoint.com/15-rules-making-accessible-links/
  25. 25. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? http://www.sitepoint.com/15-rules-making-accessible-links/
  26. 26. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? http://www.sitepoint.com/15-rules-making-accessible-links/
  27. 27. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? • Do links to downloads provide helpful info? http://www.sitepoint.com/15-rules-making-accessible-links/
  28. 28. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? • Do links to downloads provide helpful info? • Are you using pagination links? http://www.sitepoint.com/15-rules-making-accessible-links/
  29. 29. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? • Do links to downloads provide helpful info? • Are you using pagination links? • Are your links underlined (or otherwise obvious)? http://www.sitepoint.com/15-rules-making-accessible-links/
  30. 30. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? • Do links to downloads provide helpful info? • Are you using pagination links? • Are your links underlined (or otherwise obvious)? • Is there alt text for image links? http://www.sitepoint.com/15-rules-making-accessible-links/
  31. 31. Hyperlinks! • Is there any “click here,” “more,” “link to…”? • Are you using all-caps, URLs, emoticons? • Do you warn before opening new windows? • Do links to downloads provide helpful info? • Are you using pagination links? • Are your links underlined (or otherwise obvious)? • Is there alt text for image links? • Is the link text consistent? http://www.sitepoint.com/15-rules-making-accessible-links/
  32. 32. Use Link Underlines http://www.theverge.com/2014/3/13/5503894/google-removes-underlined-links-site-redesign
  33. 33. 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
  34. 34. Use :focus Styles https://www.virginamerica.com/
  35. 35. 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
  36. 36. Tritanopia Color Contrast
  37. 37. Protanopia Color Contrast
  38. 38. Deuteranopia Color Contrast
  39. 39. Color Contrast • Is there enough contrast? • Are hyperlinks, menus, etc. still visible? • WCAG 2.0: • 4.5:1 for normal text • 3:1 for large text (14+pt & bold, or 18+pt) • Tools: • Chrome Color Contrast Analyzer • Lea Verou’s Contrast Ratio • WebAIM Color Contrast Checker • CheckMyColours.com http://www.inpixelitrust.fr/blog/en/tips-create-accessible-color-palette/ http://alistapart.com/blog/post/easy-color-contrast-testing
  40. 40. Use <label> (properly)
  41. 41. Use <label> (properly) • Match the for attribute to the field’s id attribute. • When you click label text next to a text box, does the cursor appear in the field? • When you click label text next to a radio / checkbox, does it get toggled? • When you click label text next to a select menu, does it get focus? http://www.karlgroves.com/2013/09/05/the-6-simplest-web-accessibility-tests-anyone-can-do/
  42. 42. Use HTML5
  43. 43. Use HTML5 <header role="banner"> <nav role="navigation"> <aside role="complementary"> <form role="search"> <footer role="contentinfo"> <main role="main">
  44. 44. Use HTML5 “Mobile” often means narrow screen in RWD, as well as this context.
  45. 45. Use HTML5 <header role="banner"> <nav role="navigation"> <aside role="complementary"> <form role="search"> <footer role="contentinfo"> <main role="main"> “Mobile” often means narrow screen in RWD, as well as this context.
  46. 46. Use HTML5 • Sectioning elements already have accessibility built in. Use them. • <header> • <nav> • <main> (one per page) • <aside> • <footer> • <form> (a search form) This stuff is baked in!
  47. 47. Use Only One <main> per Page Modified version of Hixie’s image at https://github.com/whatwg/html/issues/100#issuecomment-138620240
  48. 48. 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
  49. 49. Use <h#> Wisely
  50. 50. 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>, • This will not affect your SEO. http://adrianroselli.com/2013/12/the-truth-about-truth-about-multiple-h1.html
  51. 51. <button>, <input>, or <a> http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  52. 52. <button>, <input>, or <a> http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  53. 53. <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 a <input type="submit"> or <button type="submit">. http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
  54. 54. Don’t Use tabindex > 0 https://www.digitalgov.gov/2014/11/17/user-experience-impossible-the-line-between-accessibility-and-usability/
  55. 55. 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 (eg: 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
  56. 56. Maybe Use tabindex = 0 http://adrianroselli.com/2016/02/keyboard-and-overflow.html
  57. 57. Maybe Use tabindex = 0 • Do you have scrolling content boxes? • Keyboard users cannot access it. • Do you have content that displays on hover? • Keyboard users probably cannot access it. • A technique: • <div role="region" aria-label="[if appropriate]" tabindex="0"> http://adrianroselli.com/2016/02/keyboard-and-overflow.html
  58. 58. Set lang attribute on <html> http://codepen.io/aardrian/pen/rOGYNL
  59. 59. Set lang attribute on <html> http://codepen.io/aardrian/pen/rOGYNL
  60. 60. 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
  61. 61. Source Order Matters http://codepen.io/aardrian/full/MavVeb/ Firefox Chrome
  62. 62. 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/
  63. 63. Don’t Disable Zoom http://codepen.io/aardrian/full/dYNJOV http://codepen.io/aardrian/full/ojBpjw
  64. 64. 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 • Enhance! • (Google AMP HTML is getting fixed) http://adrianroselli.com/2015/10/dont-disable-zoom.html
  65. 65. Avoid Infinite Scroll http://www.pewresearch.org/category/publications/
  66. 66. 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
  67. 67. Reconsider Typefaces for Dyslexia http://opendyslexic.org/try-it/
  68. 68. 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
  69. 69. Test in Windows High Contrast Mode
  70. 70. Test in Windows High Contrast Mode • It removes CSS background images, • This is changing in a coming Edge release. • 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
  71. 71. Use Captions/Subtitles https://www.youtube.com/watch?v=V592VMJeXc8
  72. 72. https://www.youtube.com/watch?v=zCqN_cCLnnk Use Captions/Subtitles
  73. 73. 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
  74. 74. 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/
  75. 75. 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
  76. 76. Share a11y Experiences • We’re all trying to do what we can, • Don’t attack someone who doesn’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: • Thanks to Marcy Sutton. http://adrianroselli.com/2015/07/lets-share-more-accessibility-experiences.html
  77. 77. Key Takeaways 4 of 4 sections.
  78. 78. Stairamp Dean Bouchard on Flickrhttp://incl.ca/the-problems-with-ramps-blended-into-stairs/
  79. 79. ≠ Checklist • Accessibility is not a checklist. No matter how pretty that checklist looks nor how many items you get to check.
  80. 80. Snowtreeramp “Wheelchair ramp at pharmacy not only hasn’t been cleared of snow but has 2 potted trees to ensure nobody can pass.” Nicolas Steenhouthttps://twitter.com/vavroom/status/571092086365261824
  81. 81. = Process • Accessibility is not a checklist. • Accessibility is an ongoing process. You know, kinda like all software.
  82. 82. WordPress Accessibility Presented by Adrian Roselli for WordCamp Buffalo 2016 My thanks and apologies. Slides from this talk will be available at rosel.li/WCBuf

×