forked from girldevelopit/gdi-featured-accessibility
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathclassslides-week2.html
369 lines (322 loc) · 17.2 KB
/
classslides-week2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Intro to Web Accessibility Class 2 | Girl Develop It</title>
<meta name="description" content="This is the Girl Develop It Web Accessibility curriculum. It was originally developed by Sylvia Richardson and modified by Marcy Sutton.
This course is meant to be taught as two-week class. The primary slides are designed for maximum presentability--one picture, one sentence. The vertical slides contain speaker notes, to make the slides more useful as a shared resource.
Each of the slides is customizable according to the needs of a given class or audience. The GitHub repository contains an Instructor Guide, with further information about the course.">
<meta name="author" content="Girl Develop It">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="stylesheet" href="reveal/css/reveal.css">
<link rel="stylesheet" href="reveal/css/theme/gdidefault.css" id="theme">
<link rel="stylesheet" href="css/accesscustom.css">
<!-- For syntax highlighting -->
<!-- light editor<link rel="stylesheet" href="lib/css/light.css">-->
<!-- dark editor--><link rel="stylesheet" href="reveal/lib/css/dark.css">
<!-- If use the PDF print sheet so students can print slides-->
<link rel="stylesheet" href="reveal/css/print/pdf.css" type="text/css" media="print">
<!--[if lt IE 9]>
<script src="lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<!-- Opening slides -->
<section>
<img src="img/gdi_logo_badge.png" alt="Girl Develop It" style="max-height: 400px;">
<h1 id="slide1">Intro to Web Accessibility</h1>
<h2>Class 2</h2>
</section>
<!-- Welcome-->
<section id="slide2">
<h2>Welcome!</h2>
<div class = "left-align">
<p>Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.</p>
<p class ="green">Some "rules"</p>
<ul>
<li>We are here for you!</li>
<li>Every question is important</li>
<li>Help each other</li>
<li>Have fun</li>
</ul>
</div>
</section>
<!-- Intro: What is Accessibility?-->
<section id="slide3">
<h2>What is accessibility?</h2>
<ul>
<li>Accessibility is about making your sites useful to as many people as possible.</li>
<li>Accessibility is about overcoming barriers.</li>
<li>Accessibility is about helping your users.</li>
</ul>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide4">
<h2>What are the common problems?</h2>
<div id="webaim-survey-problematic-items" style="background: url(img/webaim-survey-problematic-items.png) no-repeat center top; background-size: 75% auto; padding-top: 50%; width: 100%;">
<ul class="visuallyhidden">
<li>The presence of inaccessible Flash content</li>
<li>CAPTCHA - images presenting text used to verify that you are a human user</li>
<li>Links or buttons that do not make sense</li>
<li>Images with missing or improper descriptions (alt text)</li>
<li>Screens or parts of screens that change unexpectedly</li>
<li>Complex or difficult forms</li>
<li>Lack of keyboard accessibility</li>
<li>Missing or improper headings</li>
<li>Too many links or navigation items</li>
<li>Complex data tables</li>
<li>Inaccessible or missing search functionality</li>
<li>Lack of "skip to main content" or "skip navigation" links</li>
</ul>
</div>
<p>Source: <a href="http://webaim.org/projects/screenreadersurvey5/" target="_blank" title="Link opens in a new window">WebAIM Screen Reader Survey, February 2014<span class="visuallyhidden"> opens in a new window</span></a></p>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide5">
<h2>How do I code for accessibility?</h2>
<h3>HTML</h3>
<img src="img/wallace-gromit.jpg" alt="Wallace & Gromit" style="position: absolute; right: 0;" />
<ul style="padding-right: 30%;">
<li>Headings & Semantic Structure</li>
<li>Form Labels & Text Alternatives</li>
<li>Tab Index</li>
<li>External link indicators</li>
</ul>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide6">
<h2>HTML Headings</h2>
<p>Semantic structure is one of the most important usability features for screen reader users, as it helps them more easily understand and navigate the page structure. <a href="http://accessiblehtmlheadings.com/" target="_blank" title="Link opens in a new window">Read more about headings<span class="visuallyhidden"> opens in a new window</span></a>.</p>
<pre><code class="html">
// Headings should not skip levels until h1-h4 have been established
<h1>Most important</h1>
<h2>Next most important</h2>
<h3>Third most important</h3>
<h4>Other heading</h4>
</code></pre>
<p>Tip: use the Firefox Web Developer Toolbar to inspect headings. Look under Information > View Document Outline.</p>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide7">
<h2>HTML5 Headings</h2>
<h3>Use with caution</h3>
<img src="img/html5-girl.png" alt="HTML5 Girl" />
<p><a href="http://www.paciellogroup.com/blog/2013/10/html5-document-outline/" target="_blank" title="Link opens in a new window">The HTML5 Document Outline
<span class="visuallyhidden"> opens in a new window</span></a><br> by the Paciello Group</p>
<!-- explanation here -->
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide8">
<h2>Form Labels</h2>
<h3>How do they work?</h3>
<!-- explanation here -->
<div class="code-example">
<label for="name-field">Name</label>
<input type="text" id="name-field" name="name-field" placeholder="Type your furry friend's name" />
<div class="float">
<label for="species-dog">Dog</label>
<input type="radio" id="species-dog" name="species" />
</div>
<div class="float">
<label for="species-cat">Cat</label>
<input type="radio" id="species-cat" name="species" />
</div>
<div class="clear"></div>
</div>
<pre><code data-trim>
<label for="name-field">Label</label>
<input type="text" id="name-field" name="name-field">
</code></pre>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide9">
<h2>Let's develop it</h2>
<h3>Add labels to an HTML form</h3>
<!-- demo here -->
<pre><code data-trim>
<label for="name-field">Label</label>
<input type="text" id="name-field" name="name-field" placeholder="Type your name" />
</code></pre>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide10">
<h2>External Links</h2>
<h3>Provide affordances to warn users.</h3>
<img src="img/dont-make-me-think.jpg" alt="Don't Make Me Think by Steve Krug" style="float: right;max-width:25%;" />
<img src="img/links-WCAG.png" alt="WCAG 2.0 Link requirements" />
<img src="img/how-i-audit-a-website-external-link.png" alt="How I Audit a Website for Accessibility external link indicator">
<!-- explanation here -->
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide11">
<h2>External Links</h2>
<h3>Let's Look at Some Code</h3>
<img src="img/goofy.png" alt="Goofy" style="float:right; max-width: 220px; margin-top: 0" />
<pre><code data-trim>
<a href="goofy.html">Goofy page<a>
<a href="http://disney.com" target="_blank"
title="Link opens in a new window"
class="external-link">
Disney.com
<span class="offscreen">
opens in a new window
<span>
</a>
</code></pre>
<p>For links that open in new windows, an offscreen <code>span</code> inside the link is most reliable for screen readers, but <code>title=""</code> can also be used.</p>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide12">
<h2>Tab Index</h2>
<h3>What is it?</h3>
<p>The tabindex attribute explicitly defines the tab order for focusable elements (typically links and form controls) within a page. It can be used to define whether elements should be focusable. (<a href="http://webaim.org/techniques/keyboard/tabindex" target="_blank" title="Link opens in a new window">WebAIM<span class="visuallyhidden"> opens in a new window</span></a>)</p>
<div style="padding-top:20px;">
<h1 tabIndex="0" style="color:white">Focusable Heading</h1>
<a href="#" tabIndex="-1">Link focusable only by script</a>
<div tabIndex="0">Focusble div</div>
</div>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
<aside class="notes">Source: http://reference.sitepoint.com/html/a/tabindex</aside>
</section>
<section id="slide13">
<h2>Let's Develop It</h2>
<h3>Explore tab-index on native and non-native elements</h3>
<pre><code data-trim>
<h1 tabIndex="0">Focusable Heading<h1>
<a href="#" tabindex="-1">Link focusable only by script</a>
<div tabIndex="1">Div tabbable in new order<div>
</code></pre>
<p>Note: <code>tabindex</code> values higher than 0 require managing the entire page's tab order. Use with caution!</p>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide14">
<h2>How do I code for accessibility?</h2>
<h3>CSS</h3>
<ul>
<li>Visually Hidden Content</li>
<li>Really Hidden</li>
</ul>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide15">
<h2>Visually Hidden Content</h2>
<h3>How does it work?</h3>
<pre><code data-trim>
/* Hide only visually, but have it available for screenreaders.
Copied from HTML5 Boilerplate
*/
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
</code></pre>
<p><a href="http://snook.ca/archives/html_and_css/hiding-content-for-accessibility">Hiding Content for Accessibility</a></p>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide16">
<h2>Really Hidden</h2>
<h3>How to show and hide content from all users</h3>
<!-- cod example here -->
<pre><code data-trim>
.reallyHidden {
display: none;
visibility: hidden;
}
.notHidden {
display: block;
visibility: visible;
}
</code></pre>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide17">
<h2>Let's Develop It</h2>
<h3>Explore keyboard navigation with content that is hidden and offscreen</h3>
<!-- demo here -->
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
<section id="slide18">
<h2>How do I code for accessibility?</h2>
<h3>Accessible Rich <br>Internet Applications</h3>
<ul>
<li>Expands HTML's native vocabulary.</li>
<li>Communicates state and purpose to assistive technologies.</li>
<li>Used mainly for custom widgets and web applications.</li>
</ul>
<p style="margin-top:1em;"><a href="https://www.marcozehe.de/2014/03/27/what-is-wai-aria-what-does-it-do-for-me-and-what-not/" target="_blank">What is WAI-ARIA, what does it do for me, and what not?<span class="visuallyhidden"> opens in a new window</span></a></p>
</section>
<section id="slide19">
<h2>ARIA Core Components</h2>
<div class="inset-width">
<div class="definition">
<h4 style="margin-top: 0.75em">Roles</h4>
<p>What does this thing do?</p>
<pre><code class="html xml"> <span class="tag"><<span class="title">form</span> <span class="attribute">role</span>=<span class="value">"search"</span>></span></code></pre>
</div>
<div class="definition">
<h4 style="margin-top: 0.75em">States</h4>
<p>The current condition of this particular thing</p>
<pre><code class="html xml"> <span class="tag"><<span class="title">input</span> <span class="attribute">aria-disabled</span>=<span class="value">"true"</span>></span></code></pre>
</div>
<div class="definition">
<h4 style="margin-top: 0.75em">Properties</h4>
<p>The nature of the thing</p>
<pre><code class="html xml"> <span class="tag"><<span class="title">input</span> <span class="attribute">aria-required</span>=<span class="value">"true"</span>></span></code></pre>
</div>
</div>
</section>
<section id="slide20">
<h2>General Resources</h2>
<ul>
<li><a href="http://webaim.org/projects/screenreadersurvey4/" target="_blank" title="Link opens in a new window">WebAIM Screen Reader Survey<span class="visuallyhidden"> opens in a new window</span></a></li>
<li><a href="https://chrome.google.com/webstore/detail/accessibility-developer-t/fpkknkljclfencbdbgkenhalefipecmb?hl=en" target="_blank" title="Link opens in a new window">Chrome Accessibility Developer Tools<span class="visuallyhidden"> opens in a new window</span></a>, a Chrome extension that does in-browser audits and highlights ARIA properties.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/" target="_blank" title="Link opens in a new window">Web Developer toolbar<span class="visuallyhidden"> opens in a new window</span></a>, a Firefox extension with helpful tools</li>
<li><a href="http://a11yproject.com/" target="_blank">The Accessibility Project<span class="visuallyhidden"> opens in a new window</span></a></li>
<li><a href="http://www.w3.org/TR/aria-in-html/" target="_blank" title="Link opens in a new window">Using ARIA in HTML<span class="visuallyhidden"> opens in a new window</span></a>
</ul>
<p class="visuallyhidden"><a href="#toc">Return to Table of Contents</a></p>
</section>
</div>
<footer>
<div class="copyright">
Web Accessibility ~ Girl Develop It ~
<a rel="license" href="http://creativecommons.org/licenses/by-nc/3.0/deed.en_US"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc/3.0/80x15.png" /></a>
</div>
</footer>
</div>
<script src="reveal/lib/js/head.min.js"></script>
<script src="reveal/js/reveal.min.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
rollingLinks: false,
theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/none
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'reveal/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'reveal/plugin/markdown/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'reveal/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'reveal/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/accessibility-helpers/accessibility-helpers.js', async: true, condition: function() { return !!document.body.classList; } }
]
});
</script>
</body>
</html>