Even since writing the first edition of this book from 2011 to 2012, the W3C has made strides in making it easier for authors to write more accessible web pages.
The WCAG exists to provide:
"a single shared standard for web content accessibility that meets the needs of individuals, organizations, and governments internationally."
When it comes to more pedestrian web pages (as opposed to single page web applications and the like) it makes sense to concentrate on the WCAG guidelines. They offer a number of (mostly common sense) guidelines for how to ensure your web content is accessible. Each recommendation is rated as a conformance level: A, AA, or AAA. For more on these conformance levels look at http://www.w3.org/TR/UNDERSTANDING-WCAG20/conformance.html#uc-levels-head.
You'll probably find that you are already adhering to many of the guidelines, like providing alternative text for images for example. However, you can get a brief run-down of the guidelines at http://www.w3.org/WAI/WCAG20/glance/Overview.html and then build your own custom quick reference list of checks at http://www.w3.org/WAI/WCAG20/quickref/.
I'd encourage everyone to spend an hour or two looking down the list. Many of the guidelines are simple to implement and offer real benefits to users.
The aim of WAI-ARIA is principally to solve the problem of making dynamic content on a web page accessible. It provides a means of describing roles, states, and properties for custom widgets (dynamic sections in web applications) so that they are recognizable and usable by assistive technology users.
For example, if an on-screen widget displays a constantly updating stock price, how would a blind user accessing the page know that? WAI-ARIA attempts to solve these very problems.
It used to be advisable to add 'landmark' roles to headers and footers like this:
<header role="banner">A header with ARIA landmark banner role</header>
However, this is now considered surplus to requirements. If you look at the specifications for any of the elements listed earlier there is a dedicated Allowed ARIA role attributes section. Here is the relevant explanation from the section element as an example:
"Allowed ARIA role attribute values:
region role (default - do not set), alert, alertdialog, application, contentinfo, dialog, document, log, main, marquee, presentation, search or status."
The key part there being 'role (default - do not set)'. This means that explicitly adding an ARIA role to the element is pointless as it is implied by the element itself. A note in the specification now makes this clear:
"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."
The easiest thing you can do to aid assistive technologies is to use the correct elements where possible. A header element is going to be far more useful than div class="Header". Similarly, if you have a button on your page, use the <button> element (rather than a span or other element styled to look like a button). I accept that the button element doesn't always allow exact styling (it doesn't like being set to display: table-cell or display: flex for example) and in those instances at least choose the next best thing; usually an <a> tag.
ARIA isn't limited to landmark roles only. To take things further, a full list of the roles and a succinct description of their usage suitability is available at http://www.w3.org/TR/wai-aria/roles.
For a lighter take on the subject, I'd also recommend Heydon Pickering's book, Apps For All: Coding Accessible Web Applications (available at https://shop.smashingmagazine.com/products/apps-for-all-coding-accessible-web-applications).
Test your designs for free with non-visual desktop access (NVDA)
If you develop on the Windows platform and you'd like to test your ARIA enhanced designs on a screen reader, you can do so for free with NVDA. You can get it at the following URL:
Google now also ships the free 'Accessibility Developer Tools' for the Chrome browser (available cross-platform); well worth checking out.
There's also a growing number of tools that help quickly test your own designs against things like color blindness. For example, https://michelf.ca/projects/sim-daltonism/ is a Mac app that lets you switch color blindness types and see a preview in a floating palette.
Finally, OS X also includes VoiceOver utility for testing your web pages.
Hopefully, this brief introduction to WAI-ARIA and WCAG has given you enough information to think a little more about how to approach supporting assistive technologies. Perhaps adding assistive technology support to your next HTML5 project will be easier than you think.
As a final resource for all things accessibility, there are handy links and advice galore on the A11Y project home page at http://a11yproject.com/.