The accessibility of HTML – by Scott O’Hara, a11yTO 2019

The Accessibility of HTML

Presented by Scott O’Hara of

At #a11yTO Conf 2019.

<speaker name=scott list=self />

<ul id=self>

  • Work at TPG: The Paciello Group
  • Work on W3C specifications…
  • Write, and test, and write about testing…


I have (create?) trust issues…

maybe you should too?




You may have heard (or said)…

HTML is accessible by default.

If only [someone] had used HTML,
[they would] get accessibility for free!

Semantic HTML is accessible HTML.

These can make for quick tweets, no?

The Reality is:
such statements are not entirely true.


Which is unfortunate, as they’re simple to state. Easy to remember.

But a lot of accessibility isn’t simple. Not really. And it’s important to be forthcoming with that.

Accuracy Matters

See: It Depends™


Being accurate helps us build trust with teams that may be resistant to process changes, or individuals who may not have “bought into” accessibility, inclusive or universal design practices.

We don’t need to be perfect. I would not suggest that as it’s impractical.

But accessibility is harder than just using semantic HTML. One can easily use semantic HTML and still come out with garbage UX. Whether because it was used incorrectly, or that there’s nothing [...]

Read article at

Article Taxonomies

Fatal error: Uncaught Error: Object of class WP_Error could not be converted to string in /home/webable/www/www/wp-content/themes/webable/content-mcm.php:65 Stack trace: #0 /home/webable/www/www/wp-includes/template.php(812): require() #1 /home/webable/www/www/wp-includes/template.php(745): load_template('/home/webable/w...', false, Array) #2 /home/webable/www/www/wp-includes/general-template.php(206): locate_template(Array, true, false, Array) #3 /home/webable/www/www/wp-content/themes/webable/single-mcm_article.php(15): get_template_part('content-mcm') #4 /home/webable/www/www/wp-includes/template-loader.php(106): include('/home/webable/w...') #5 /home/webable/www/www/wp-blog-header.php(19): require_once('/home/webable/w...') #6 /home/webable/www/www/index.php(17): require('/home/webable/w...') #7 {main} thrown in /home/webable/www/www/wp-content/themes/webable/content-mcm.php on line 65