HTML5 Accessibility

49
HTML5 Accessibility Becky Gibson IBM Emerging Technologies Group

description

This was presented at the online Accessibility Summit, September, 2014. It reviews the new features in HTML5 that help make pages more accessible to people with disabilities.

Transcript of HTML5 Accessibility

Page 1: HTML5 Accessibility

HTML5 Accessibility

Becky GibsonIBM Emerging Technologies Group

Page 2: HTML5 Accessibility

Accessibility Summit 2014 2

AgendaStatus of HTML5

Basic HTML Accessibility

Improved HTML5 Semantics

ARIA Integration

New Input Types & Attributes

New Figure & Figcaption elements

Media elements

Page 3: HTML5 Accessibility

Accessibility Summit 2014 3

HTML5 StatusHTML5 is in Candidate Recommendation

Expected completion in late 2014Currently focused on responding to comments

HTML 5.1 is a public working draftTarget Recommendation by end of 2016

Page 4: HTML5 Accessibility

Accessibility Summit 2014 4

HTML5Accessibility.comhttp://www.html5accessibility.com

Under Development by The Paciello Group

Provides table showing what HTML5 Accessibility features are supported in different browsers

June 23, 2014

Page 5: HTML5 Accessibility

Accessibility Summit 2014 5

Basic HTML AccessibilitySemantic HTML

Alt text on images

Label form controls

Page 6: HTML5 Accessibility

Accessibility Summit 2014 6

Use Semantic HTML

<div class=“myCoolH1”>Topics</div>

<div class=”myCoolH1” role=”heading”>Topics</div>

<h1 class=“myCoolH1”>Topics</div>

Page 7: HTML5 Accessibility

Accessibility Summit 2014 7

Add Alt text on ImagesAdd alt text to meaningful images

Empty alt text if decorative

<img src=”youWin.png” alt=”You Win!”>

<img src=”shelby.png” alt=””>

(gratuitous image)

Page 8: HTML5 Accessibility

Accessibility Summit 2014 8

HTML5 Alt Text Vocabulary

http://www.w3.org/html/wg/drafts/html/CR/embedded-content-0.html

Page 9: HTML5 Accessibility

Accessibility Summit 2014 9

Label Form Controls<label> element with for attribute

Alternatives if the designer insists on no visible text

<label for=”addr”>Address: </label><input type=”text” id=”addr” name=”addr”>

<img src=”house.png” alt=””>&nbsp; <input type=”text” id=”addr” name=”addr” size=“50”

aria-label=”enter address”>or

<label for="addr"><img src="home.png” alt="enter address” title=“enter address”>&nbsp; </label><input id="addr" name=“addr” type="text" size="50">

Page 10: HTML5 Accessibility

Accessibility Summit 2014 10

Improved HTML 5 Semantics<nav>

<section>

<article>

<header>

<footer>

<aside>

Page 11: HTML5 Accessibility

Accessibility Summit 2014 11

Example: Newsletter

Page 12: HTML5 Accessibility

Accessibility Summit 2014 12

Simple Newsletter

Page 13: HTML5 Accessibility

Accessibility Summit 2014 13

CaptionedScreen Reader Demo

Flash VersionsimpleNewsletter.flv

Web Versionhttp://www.weba11y.com/Examples/HTML5A11y/Capti

onDemo1.html

simpleNewsletter.html

Page 14: HTML5 Accessibility

Accessibility Summit 2014 14

Simple Newsletter Code 1See SimpleNewsletter.html

HTML 4

Styled <divs>

No semantics

Page 15: HTML5 Accessibility

Accessibility Summit 2014 15

Update to HTML5Change the DOCTYPE

Use nav

Use footer

Use header

Use section, article, aside

Page 16: HTML5 Accessibility

Accessibility Summit 2014 16

Change the DOCTYPEOriginal

HTML5

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE html>

Page 17: HTML5 Accessibility

Accessibility Summit 2014 17

Use navOriginal HTML5

<div> <ul> <li><a href="#top">Top Stories</a></li> <li><a href="evts.html">Events</a></li> <li><a href="phs.html">Photos</a></li> <li><a href="arch.html">Archives</a></li> <li><a href="#subs">Subscribe</a></li> </ul> </div>

<nav> <ul> <li><a href="#top">Top Stories</a></li> <li><a href="evts.html">Events</a></li> <li><a href="phs.html">Photos</a></li> <li><a href="arch.html">Archives</a></li> <li><a href="#subs">Subscribe</a></li> </ul> </nav>

Page 18: HTML5 Accessibility

Accessibility Summit 2014 18

Use footerOriginal HTML5

<div> <p style="margin-right:1em;"> Footer </p> </div>

<footer> <p style="margin-right:1em;"> Footer </p> </footer>

Page 19: HTML5 Accessibility

Accessibility Summit 2014 19

Use headerOriginal HTML5

<h1> My Newsletter </h1><div> <form> <label for="search">Search: </label> <input type="text" id="search”> <input type="submit" value="Go"> </form> </div>

<header> <h1> My Newsletter </h1> <section> <form action="#"> <label for="search">Search: </label> <input type="text" id="search"> <input type="submit" value="Go"> </form> </section> </header>

When <header> is NOT a descendant of an article or section the default role=bannerSee http://www.w3.org/html/wg/drafts/html/CR/dom.html#wai-aria

Page 20: HTML5 Accessibility

Accessibility Summit 2014 20

Use section, article, asideOriginal HTML5

<div> <h2> Top Stories</h2> <h3> Story 1 </h3> <p>Here is the first top story</p> <p><a href="moreStory1.html"> More info about top story 1</a> </p> <h3> Story 2 </h3> <p>Here is the next top story</p> <p><a href="moreStory2.html"> More info about top story 2</a> </p> <h3> Story 3 </h3> <p>Here is the next top story</p> </div>

<section> <header> <h2> Top Stories</h2></header> <article> <header> <h3> Story 1 </h3></header> <p>Here is the first top story</p> <aside> <p> <a href="moreStory1.html"> More info about top story 1</a> </p> </aside> </article>

…. other articles</section>

Page 21: HTML5 Accessibility

Accessibility Summit 2014 21

ARIA IntegrationAccessible Rich Internet Applications

Added semantics to generic HTML elements<div role=“banner”>

Now incorporated into HTML5<header>

Adds states and properties to elementsaria-label=“street address”aria-required=“true”*

*required attribute now included in many HTML5 elements

Page 22: HTML5 Accessibility

Accessibility Summit 2014 22

Add required Attribute<section> <header> <a name="subscribe"></a><h3>Subscribe!</h3> </header> <section> <form action="mailingList"> <label for="email">Email: </label> <input type="text" id="email" required>*

<input type="submit" value="Sign me up!"> </form> </section> </section>

Page 23: HTML5 Accessibility

Accessibility Summit 2014 23

ARIA LandmarksSearch

Main

<header role="banner"> <h1> My Newsletter </h1> <section role="search"> <form action="#"> <label for="search">Search: </label> <input type="text" id="search">

<input type="submit" value="Go"> </form> </section> </header>

<section role="main"> <header> <a name="top"></a><h2> Top Stories</h2> </header>

Page 24: HTML5 Accessibility

Accessibility Summit 2014 24

Use ARIA WiselyStrong Native Semantics

Example: header that is not a descendant of section or article, default native role is banner

<header role=“banner”> - not recommended*May cause screen reader to speak banner twice

See WAI-ARIA section of HTML5 spechttp://www.w3.org/html/wg/drafts/html/CR/dom.html#sec-strong-native-semantics

*Note: In the majority of cases setting an ARIA role and/or aria-* attribute that matches the default implicit ARIA semantics is unnecessary and not recommended as these properties are already set by the browser.

Page 25: HTML5 Accessibility

Accessibility Summit 2014 25

Use ARIA Wisely (2) Implicit Native Semantics

Example: Section default role=regionIf specified, role must be one of the following: alert,

alertdialog, application, contentinfo, dialog, document, log, main, marquee, region, search, status or presentation

See WAI-ARIA section of HTML5 spechttp://www.w3.org/html/wg/drafts/html/CR/dom.html#sec-implicit-aria-semantics

Page 26: HTML5 Accessibility

Accessibility Summit 2014 26

CaptionedScreen Reader Demo

Flash VersionSimpleNewsletterHTML5.flv

Web Versionhttp://www.weba11y.com/Examples/HTML5A11y/Capti

onDemo2.html

SimpleNewsletterARIA.html

Page 27: HTML5 Accessibility

Accessibility Summit 2014 27

Figure & Figcaption Elementsfigure identifies stand-alone content (that may be)

referenced from the main body of work illustrations diagrams image(s)code listings

figcaption provides the description

Page 28: HTML5 Accessibility

Accessibility Summit 2014 28

Figure & Figcaption Example

figureExample1.html

Page 29: HTML5 Accessibility

Accessibility Summit 2014 29

Figure & Figcaption Code 1

<p>The Three Stooges were an American vaudeville and comedy act of the mid&dash;20th century best known for their numerous short subject films, still syndicated to television. Their hallmark was physical farce and slapstick. <a href="#fig1">Figure 1 </a>shows the original 3 Stooges.</p><figure id="fig1">

<img src="../images/Souptonuts.jpg"><figcaption>Figure 1: Shemp Howard, Moe Howard, and Larry Fine

in &quot;Soup To Nuts&quot;</figcaption>

</figure>

Page 30: HTML5 Accessibility

Accessibility Summit 2014 30

Figure & Figcaption Code 2<p>Shemp left the trio and was replaced by Curly Howard, creating the most common trio as shown in <a href="#fig2">Figure 2.</a> Source: <a href="http://en.wikipedia.org/wiki/The_Three_Stooges"> Wikipedia Three Stooges Reference</a></p><figure id="fig2">

<img src="../images/moe.jpg?"><img src="../images/curly.jpg"><img src="../images/larry.jpg"><figcaption>Figure 2: Individual photos of Moe Howard, Curly Howard,

and Larry Fine<figcaption></figure>

No alt text?? See: http://html5doctor.com/html5-simplequiz-4-figures-captions-and-alt-text/

Page 31: HTML5 Accessibility

Accessibility Summit 2014 31

New input Types

Color

date

Datetime*

email

Month*

number

range

search

tel

time

url

Week**Removed from 5 but remain in 5.1

Page 32: HTML5 Accessibility

Accessibility Summit 2014 32

New input Attributes

autocomplete

autofocus

autosave

list

max/min/step

maxlength

pattern

required

spellcheck

Page 33: HTML5 Accessibility

Accessibility Summit 2014 33

Windows Browser DemoFirefox 31 Chrome 37.0.2062.94

newInputTypes.html

Both flag errors on form submission

Page 34: HTML5 Accessibility

Accessibility Summit 2014 34

Mobile Support for Input TypesASUS TF300T Android

4.2.1 Chrome Interactive Keyboards

email - / _ @ .com url - : _ / .com tel – number pad number (check phone)

date, time, month

color

week

iPhone 4S iOS 7.1.2, iPad 2 iOS7.1.1

Interactive keyboards email – _123 @ . _ - url - @123 . / .com : _ - tel – number pad numbers number - symbol keyboard

date, time, month

Page 35: HTML5 Accessibility

Accessibility Summit 2014 35

ASUS Color Picker

Page 36: HTML5 Accessibility

Accessibility Summit 2014 36

ASUS Date & Week

Page 37: HTML5 Accessibility

Accessibility Summit 2014 37

iPad Date & Month

Page 38: HTML5 Accessibility

Accessibility Summit 2014 38

iPad Email & URL

Page 39: HTML5 Accessibility

Accessibility Summit 2014 39

iPhone 4S Email & URL

Page 40: HTML5 Accessibility

Accessibility Summit 2014 40

iPhone Date & Number

Page 41: HTML5 Accessibility

Accessibility Summit 2014 41

Audio & Video ElementsNatively play audio and video files

No plug-ins required

Browser provides the (accessible) UI

Opportunity for synchronized captions Audio descriptions Sign language

JavaScript APIs

Format compatibility issues across browsers

Page 42: HTML5 Accessibility

Accessibility Summit 2014 42

Audio Format SupportTaken from:

http://www.w3schools.com/html/html5_audio.asp

Browser MP3 Wav OggIE ✔ ✖ ✖

Chrome ✔ ✔ ✔

Firefox ✔ ✔ ✔

Safari ✔ ✔ ✖

Opera ✖ ✔ ✔

Page 43: HTML5 Accessibility

Accessibility Summit 2014 43

Audio Example

<p>A refreshing sound to many....</p><audio autoplay controls> <source src="beer.ogg" type=“audio/ogg” /> <source src="beer.mp3” type=“audio/mpeg” /> <source src="beer.wav” type=“audio/wav” /> </audio><p>a beer being opened!</p>

Firefox

Chrome

IE 11audioExample.html

Page 44: HTML5 Accessibility

Accessibility Summit 2014 44

Video Format SupportSubject change

Taken from:HTML5 Video Guide - All You Need to Know for 2014

Browser MP4 WEBM OgvIE ✔ ✖ ✖

Chrome ✔ ✔ ✔

Firefox ✖ ✔ ✔

Safari ✔ ✖ ✖

Opera ✖ ✔ ✔

Page 45: HTML5 Accessibility

Accessibility Summit 2014 45

Simple Video Example<video controls> <source src="small.mp4” type=“video/mp4” /> <source src="small.ogv" type=“video/ogg” /> </video>

videoExample.html

Firefox

Page 46: HTML5 Accessibility

Accessibility Summit 2014 46

Subtitles ExampleInternet Explorer Dev Center

Basic timed text track example

Uses webVTT file See HTML5 Doctor - Video Subtitling and WebVTT

<video controls autoplay loop> <source src="video.mp4" type="video/mp4">

<track id="enTrack" src="entrack.vtt" label="English" kind="subtitles” srclang="en" default>

<track id="esTrack" src="sptrack.vtt" label="Spanish" kind="subtitles" srclang="es”>

<track id="deTrack" src="detrack.vtt" label="German" kind="subtitles" srclang="de”>

HTML5 video not supported</video>

Page 47: HTML5 Accessibility

Accessibility Summit 2014 47

Sample WebVTT FileWEBVTT

00:00:00.400 --> 00:00:01.070simple new

00:00:01.940 --> 00:00:03.690simple newsletter Mozilla Firefox

00:00:03.859 --> 00:00:04.770simple newsletter

00:00:04.800 --> 00:00:06.690page has 6 headings and 7 links

00:00:07.144 --> 00:00:09.784simple newsletter heading level 1 My Newsletter search

Page 48: HTML5 Accessibility

Accessibility Summit 2014 48

Example of Multiple Tracks (IE)

Page 49: HTML5 Accessibility

Accessibility Summit 2014 49

HTML5 Accessibility ReviewImproved Semantics

ARIA integration

figure & figcaption elements

New input types & attributes

Embedded audio and video

Make use of them!