A prosaic talk about accessibility
by @heydonworks
The camel is not a language animal
Interoperability is the ability of making systems and organizations work together
Browsers, screen readers and humans all “speak” text
Screw semantics! The web is for people, not machines, so who cares!"
Technically correct in terms of agreed naming conventions (see <del>, <mark> elements or class="semantic-name" etc.)
Actually take an active role in communicating the nature of the content in accessible ways ie. semantic (see <h1>, aria-pressed and, of course, text nodes)
(Accessible names)
add
cancel
save
edit
delete
close
add
cancel
save
edit
delete
close
make
create
help
info
or
or
Interface Writing: Code for Humans - Nicole Fenton
create
“create button”
create
“create button”
Name
Role
Available via operating system Accessibility APIs
unlabelled
<a class="action--create" href="#"></a>
“number link”
<a href="javascript:void(0)"></a>
<a href="http://www.drugemporium.com/cec/
cstage?eccookie=@eccookie@&ecaction=
de_ecwalkin&template=de_walkin.en.htm"></a>
“see stage eck ooky equals at eck ookie at and eca” (NVDA)
Providing text where there isn't any (or where it isn't much good)
<a href="http://www.drugemporium.com/cec/
cstage?eccookie=@eccookie@&ecaction=
de_ecwalkin&template=de_walkin.en.htm"
aria-label="drug emporium"></a>
“drug emporium link”
<a href="javascript:void(0)"
aria-label="save">
keep for later
</a>
“save”
I ❤ unicode
“I symbol 2764 unicode”
I <span aria-label="love">❤</span> unicode
“smiley face”
☺
☻
“...”
☺
☻
= 馬 = “horse”
<span aria-hidden="true">馬</span>
or
<span></span>
VERY disappointed by the Darth Vader button in the lift. It should have a picture of an angry fireman on it instead.
— @tdawks
Fire Service
The best icon is a text label - Thomas Byttebier
<nav role="navigation" aria-label="pagination">
<ul>
<li><a href="/1" aria-label="page 1">1</a></li>
<li><a href="/2" aria-label="page 2">2</a></li>
<li><a href="/3" aria-label="page 3">3</a></li>
</ul>
</nav>
on focusing the first link:
“pagination navigation landmark list with three items,
page 1 link”
IS
a11y browser game
More detail: Tips For Creating Accessible SVG
<h1>
<svg>
<title>
Web Devolepor 2015
</title>
<!-- SVG shapes / paths etc. -->
</svg>
</h1>
<h1 aria-labelledby="game-title">
<svg>
<title id="game-title">
Web Devolepor 2015
</title>
<!-- SVG shapes / paths etc. -->
</svg>
</h1>
<h1>
<svg>
<text>Some text here</text>
</svg>
</h1>
The text is content manageable and indexable!
Not text replacement as we know it
<desc>
I don't understand your shitty visualization. Give me text!"
- Heydon (a “sighted” user)
svg title, svg desc {
display: block;
}
[aria-hidden="true"] {
display: none;
}
But which ones?
So which do I choose?
(think not excluding instead of
including)
✘ #aninaccessiblehashtag
✔ #anAccessibleHashTag