If you're familiar with accessibility, you may know some of the basics already. We'll review some newer or more obscure techniques that can help prime you to look at the new hotness features with a more critical eye.
2. 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!
3. About Adrian Roselli
• Member of W3C HTML Working Group*, W3C
Accessibility Task Force, five W3C Community
Groups.
• Building for the web since 1993.
• Business owner / founder, ~20 years.
• Now independent / at The Paciello Group.
• Learn more at AdrianRoselli.com.
• Avoid on Twitter @aardrian.
I warned you.
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. What We’ll Cover
• Common(?) Techniques
• The (not really) Fringe
• Key Takeaways
Work with me, people.
8. Common(?) Techniques
• Click on field labels
• Unplug your mouse
Make sure you can still use the page / application.
9. Common(?) Techniques
• Click on field labels
• Unplug your mouse
• Turn off images
Make sure no important content has disappeared.
10. Common(?) Techniques
• Click on field labels
• Unplug your mouse
• Turn off images
• Turn off CSS
Make sure the page still makes sense.
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. 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.
15. 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
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
20. 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
21. Use Only One <main> per Page
Modified version of Hixie’s image at https://github.com/whatwg/html/issues/100#issuecomment-138620240
22. 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
24. 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/
25. Don’t Use tabindex > 0
https://www.digitalgov.gov/2014/11/17/user-experience-impossible-the-line-between-accessibility-and-usability/
26. 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
28. 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:
• <div role="region" aria-label="[if
appropriate]" tabindex="0">
http://adrianroselli.com/2016/02/keyboard-and-overflow.html
29. <button>, <input>, or <a>
http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
30. <button>, <input>, or <a>
http://adrianroselli.com/2016/01/links-buttons-submits-and-divs-oh-hell.html
31. <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
36. 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!”
• (Google AMP HTML is getting fixed)
http://adrianroselli.com/2015/10/dont-disable-zoom.html
39. 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
40. 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/
41. Test in Windows High Contrast Mode
http://buffalosoccerclub.org/About
42. Test in Windows High Contrast Mode
• It removes CSS background images,
• This is changing in Edge,
• 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
44. 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
46. 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
48. 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
50. 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.
http://adrianroselli.com/2015/08/where-to-put-your-search-role.html#changed
51. 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
52. Try Not to Tweet Pictures of Text
https://twitter.com/aardrian/status/733023365729005568
53. Try Not to Tweet Pictures of Text
• Twitter has finally added alternative text,
• Must be using iOS/Android app, some third-party
apps (Easy Chirp),
• Alternative text not exposed via web, not in
Twitter back-ups (yet),
• Maybe also make your own:
• Reply to own tweet with alt text,
• Link to a tweet and provide alt text,
• Link to long-form alternative text.
http://adrianroselli.com/2016/03/twitter-has-alt-text-with-some-caveats.html
55. Share a11y Experiences
• We’re all trying to do what we can,
• Don’t attack those 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
62. Fringe Accessibility Techniques
(That Probably Shouldn’t Be)
Presented by Adrian Roselli for Guelph Accessibility Conference
Slides from this talk will be available at rosel.li/Guelph