-
Notifications
You must be signed in to change notification settings - Fork 0
/
accessibilityDataScience.html
433 lines (330 loc) · 20.3 KB
/
accessibilityDataScience.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
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
<!DOCTYPE html>
<html lang="" xml:lang="">
<head>
<title>Accessibility in Data Science</title>
<meta charset="utf-8" />
<script src="accessibilityDataScience_files/header-attrs-2.17/header-attrs.js"></script>
<meta name="description" content="Writing Meaningful Alt Texts for Data Visualizations in R"/>
<meta name="generator" content="xaringan and remark.js"/>
<meta name="twitter:title" content="R Ladies New York Alt Text Workshop | Liz Hare, PhD"/>
<meta name="twitter:description" content="Writing Meaningful Alt Texts for Data Visualizations in R"/>
<meta name="twitter:url" content="https://lizharedogs.github.io/RLadiesNYAltText/index.html"/>
<meta name="twitter:image" content="coverImageSlide.png"/>
<meta name="twitter:image:alt" content=""/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:creator" content="@DogGeneticsLLC"/>
<meta name="twitter:site" content="@DogGeneticsLLC"/>
<meta property="og:title" content="R Ladies New York Alt Text Workshop | Liz Hare, PhD"/>
<meta property="og:description" content="Writing Meaningful Alt Texts for Data Visualizations in R"/>
<meta property="og:url" content="https://lizharedogs.github.io/RLadiesNYAltText/index.html"/>
<meta property="og:image" content="coverImageSlide.png"/>
<meta property="og:image:alt" content=""/>
<meta property="og:type" content="website"/>
<meta property="og:locale" content="en_US"/>
<meta property="article:author" content="Liz Hare"/>
<link href="accessibilityDataScience_files/tile-view-0.2.6/tile-view.css" rel="stylesheet" />
<script src="accessibilityDataScience_files/tile-view-0.2.6/tile-view.js"></script>
<script src="accessibilityDataScience_files/tone-13.8.34/Tone.js"></script>
<script src="accessibilityDataScience_files/slide-tone-0.2.6/slide-tone.js"></script>
<link rel="stylesheet" href="css/xaringan-themer.css" type="text/css" />
<link rel="stylesheet" href="css/custom.css" type="text/css" />
</head>
<body>
<textarea id="source">
class: bottom, title
background-image: url(img/ben2.jpg)
background-position: 95% 10%
background-size: 200px
<!-- this slide has the Dog Genetics, LLC logo in the top right corner, added using the "background" image classes above. The text begins on the bottom left corner of the slide -->
# Accessibility in Data Science
## The Turing Way BookDash Nov. 2022
## Liz Hare, PhD<br>@DogGeneticsLLC <svg aria-label="Twitter" role="img" viewBox="0 0 512 512" style="height:1em;width:1em;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:currentColor;overflow:visible;position:relative;"><title>Twitter</title><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
---
class: middle, center
<img style="border-radius: 50%;"
src="img/ben2.jpg"
alt="DogGenetics logo: a simplified yellow Labrador Retriever head appears to be made of layers of paper"
width="250px"
/>
## Liz Hare, PhD
[<svg aria-label="Link" role="img" viewBox="0 0 640 512" style="height:1em;width:1.25em;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:currentColor;overflow:visible;position:relative;"><title>Link</title><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg> doggenetics.com](http://doggenetics.com/)<br>
[<svg aria-label="Twitter" role="img" viewBox="0 0 512 512" style="height:1em;width:1em;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:currentColor;overflow:visible;position:relative;"><title>Twitter</title><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> @DogGeneticsLLC](https://twitter.com/DogGeneticsLLC)<br>
[<svg aria-label="GitHub" role="img" viewBox="0 0 496 512" style="height:1em;width:0.97em;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:currentColor;overflow:visible;position:relative;"><title>GitHub</title><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> @LizHareDogs](https://github.com/LizHareDogs)<br>
[<svg aria-label="Envelope" role="img" viewBox="0 0 512 512" style="height:1em;width:1em;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:currentColor;overflow:visible;position:relative;"><title>Envelope</title><path d="M0 128C0 92.65 28.65 64 64 64H448C483.3 64 512 92.65 512 128V384C512 419.3 483.3 448 448 448H64C28.65 448 0 419.3 0 384V128zM48 128V150.1L220.5 291.7C241.1 308.7 270.9 308.7 291.5 291.7L464 150.1V127.1C464 119.2 456.8 111.1 448 111.1H64C55.16 111.1 48 119.2 48 127.1L48 128zM48 212.2V384C48 392.8 55.16 400 64 400H448C456.8 400 464 392.8 464 384V212.2L322 328.8C283.6 360.3 228.4 360.3 189.1 328.8L48 212.2z"/></svg> [email protected]](mailto:[email protected])
.pull-left[
] <!--end of pull left -->
---
# Accessibility
The term *accessibility* is used in many ways.
.pull-left[
### 1. Accessibility practices related to disability
Examples:
- ensuring materials are accessible with a screen reader
- providing live captions of technical meetings
- avoiding unnecessary cognitive complexity
- providing frequent breaks *already implemented in BookDash!**
]
.pull-right[
### 2. Accessibility in a broader sense
Examples:
- making materials that can be accessed by users with lower bandwidth
- making materials that will be functional on older computers or mobile devices
- considering worldwide time zones
]
---
# Reference for Ten Simple Rules to Host an Inclusive Conference
Joo R, Sánchez-Tapia A, Mortara S, Bellini Saibene Y, Turner H, Hug Peter D, Morandeira NS, Bannert M, Almazrouq B, Hare E, Ación L. Ten simple rules to host an inclusive conference. PLoS computational biology. 2022 Jul 21;18(7):e1010164.
[link to Joo et al, 2022](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9302732/)
---
# Accessibility Defined by Andrea
.pull-left[
### 1. Narrow, disability-related sense
accessibility as a set of community-wide, behavioral, social, technical decisions
we take to ensure people with disabilities are welcome and are
able to participate in a community or event
]
.pull-right[
### 2. Wider sense of accessibility:
accessibility as going beyond the inclusion and participation of people with disabilities,
as practices that improve and enable the participation for more people
]
---
# Behavioral, Social, Technical
- All equally important
- Today's focus is on technical, but here's a brief list of behavioral and social things to consider
- Language matters: use the words an individual uses to describe their disability, or find out what the particular community prefers
- avoide euphemisms ("special," "challenged")
- Avoid cultural stories about disabilities
- disabled people and accessibility are burdens
- disabled people are inspiring
- Communicate accessibility practices and policies
- Designate contacts for accessibility questions
---
# What has to be accessible?
- The Turing Way Book
- The tools we use to collaborate on the book
- The Turing Way website
- Meetings (Zoom)
- Meeting planning (EventBrite)
- Messaging (Slack)
- Repository platform (GitHub)
- Social media
---
# Example Workarounds for Accessibility Shortcomings
- Zoom's automatic captions aren't accurate enough for technical topics. Arrange live (human) captioning, and allow the captioners to familiarize themselves with the kind of material to be presented.
- Video conferencing - Deaf users prefer Google Meet to Zoom for captioning. Among other things, it shows which person is speaking.
- Slack has some screen reader weirdness., like not enabling the user to follow links. Only put links in top-level messages (not replies), and put one link per message.
- *Already in practice!* Etherpad provides the ability for screen reader users to collaborate on documents in real time. HackMD provides very readable documents, but editing doesn't work at all. Overleaf is inaccessible.
---
# Alt text: What It Is
- Attached to images to provide a description for people who use screen reading software.
- Required to adhere to accessibility laws
- Crucial to make sure your data communication reaches everyone
People with disabilities haven't been visible in science, but we are here.
---
# Alt text: What It Does
Answers "Why was this image included?"
Examples:
- It describes the relationship between X and Y in a graph
- It describes COVID-19 incidences on a map
- It compares four groups on outcome measures in faceted bar charts
---
# Alt Text: What It Isn't
- **Automatically generated** by AI or text mining
- The title
- The caption
- Axis labels on a graph
- A humorous remark
These will usually not answer these questions:
- "Why am I including this data visualization?"
- "What are the data saying?"
.footnote[
Humor is allowed, but it shouldn't obscure the message conveyed by the image
]
---
# Alt Text: How Long Is It?
*It depends!*
- context
- complexity
Use your judgement even though
- Some media have character limits for alt text
- Too many guidelines emphasize brevity
- One or two sentences won't be enough for many data visualizations
---
# Alt Text For Data Visualization: Ingredients Model
.pull-left[
Ingredients (answer these questions):
1. What kind of visualization is it (line graph, scatter plot, bar chart...?)
2. What variables are on the axes?
3. What is the range of the data?
4. What relationship between variables does the data visualization show?
]
.pull-right[
**Opinion:** Don't waste my time with 1-3 if you aren't going to include 4. While some automatic
alt text processes mine some of this information, I don't want to spend time building a mental model of the graph if I can't find out what the graph *says*.
]
---
# Alt Text for Data Visualization: MIT Visualization Group 4-Levels Model
1. Elements and encoded properties
- *title, axes and axis labels, data points*
2. Statistical and relation information
- *mean, standard deviation, minimum, maximum*
3. Perceptual and cognitive phenomena
- * "y increases linearly with x," "males spend less time in all behaviors than females for all faceted behaviors," "The following states have high incidences: ... "*
4. Contextual and domain-specific insights
- *"the change in x at this time point was caused by <something not in the data visualization at all>", "the change in incidence was large"*
---
# Some Resources for Learning about Alt Text:
- The [Diagram Center](http://diagramcenter.org/making-images-accessible.html)
has guidelines and learning tools for writing alt-texts for STEM.
- [WGBH](https://www.wgbh.org/foundation/ncam/guidelines/guidelines-for-describing-stem-images)
also has guidelines for STEM images.
For my opinion about their emphasis on brevity (I disagree that that's the #1 priority!),
see the next item.
- Communicating Science Through Meaningful Alt-Text, presented by Liz Hare to
the Time Scavengers Virtual Internship Program, June 2022
- [Slides](https://lizharedogs.github.io/TimeScavengersWorkshopAltText/#1) (press PgDn to advance slides)
- [Video](https://drive.google.com/file/d/1Fj_qJM8bJtnAyd-UTMVeiUNw8cORSnM4/view?usp=sharing )
---
# References for Ingredients and Four-Level Models
- Revealing Room for Improvement in Accessibility in a Social Media Data Visualization Community,
Silvia Canelón and Liz Hare, CSV conf, May 2021
- [Slides](https://spcanelon.github.io/csvConf2021/slides/indexLH.html#1) (press PgDn to advance slides)
- [Video](https://www.youtube.com/watch?v=DxLkv2iRdf8)
- A. Lundgard and A. Satyanarayan, "Accessible Visualization via Natural Language Descriptions: A Four-Level Model of Semantic Content," in IEEE Transactions on Visualization and Computer Graphics, vol. 28, no. 1, pp. 1073-1083, Jan. 2022, doi: 10.1109/TVCG.2021.3114770.
[link to Lundgard and Satyanarayan (2021)](https://dspace.mit.edu/bitstream/handle/1721.1/143862/vis-text-model.pdf;jsessionid=50778819AC882DB4BAC5472B42799872?sequence=2)
---
# Andrea: Accessible Communication With People Who Are Deaf or Hard-of-Hearing
</textarea>
<style data-target="print-only">@media screen {.remark-slide-container{display:block;}.remark-slide-scaler{box-shadow:none;}}</style>
<script src="https://remarkjs.com/downloads/remark-latest.min.js"></script>
<script>var slideshow = remark.create({
"highlightStyle": "github",
"highlightLines": true,
"ratio": "16:9"
});
if (window.HTMLWidgets) slideshow.on('afterShowSlide', function (slide) {
window.dispatchEvent(new Event('resize'));
});
(function(d) {
var s = d.createElement("style"), r = d.querySelector(".remark-slide-scaler");
if (!r) return;
s.type = "text/css"; s.innerHTML = "@page {size: " + r.style.width + " " + r.style.height +"; }";
d.head.appendChild(s);
})(document);
(function(d) {
var el = d.getElementsByClassName("remark-slides-area");
if (!el) return;
var slide, slides = slideshow.getSlides(), els = el[0].children;
for (var i = 1; i < slides.length; i++) {
slide = slides[i];
if (slide.properties.continued === "true" || slide.properties.count === "false") {
els[i - 1].className += ' has-continuation';
}
}
var s = d.createElement("style");
s.type = "text/css"; s.innerHTML = "@media print { .has-continuation { display: none; } }";
d.head.appendChild(s);
})(document);
// delete the temporary CSS (for displaying all slides initially) when the user
// starts to view slides
(function() {
var deleted = false;
slideshow.on('beforeShowSlide', function(slide) {
if (deleted) return;
var sheets = document.styleSheets, node;
for (var i = 0; i < sheets.length; i++) {
node = sheets[i].ownerNode;
if (node.dataset["target"] !== "print-only") continue;
node.parentNode.removeChild(node);
}
deleted = true;
});
})();
// add `data-at-shortcutkeys` attribute to <body> to resolve conflicts with JAWS
// screen reader (see PR #262)
(function(d) {
let res = {};
d.querySelectorAll('.remark-help-content table tr').forEach(tr => {
const t = tr.querySelector('td:nth-child(2)').innerText;
tr.querySelectorAll('td:first-child .key').forEach(key => {
const k = key.innerText;
if (/^[a-z]$/.test(k)) res[k] = t; // must be a single letter (key)
});
});
d.body.setAttribute('data-at-shortcutkeys', JSON.stringify(res));
})(document);
(function() {
"use strict"
// Replace <script> tags in slides area to make them executable
var scripts = document.querySelectorAll(
'.remark-slides-area .remark-slide-container script'
);
if (!scripts.length) return;
for (var i = 0; i < scripts.length; i++) {
var s = document.createElement('script');
var code = document.createTextNode(scripts[i].textContent);
s.appendChild(code);
var scriptAttrs = scripts[i].attributes;
for (var j = 0; j < scriptAttrs.length; j++) {
s.setAttribute(scriptAttrs[j].name, scriptAttrs[j].value);
}
scripts[i].parentElement.replaceChild(s, scripts[i]);
}
})();
(function() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (/^(https?:)?\/\//.test(links[i].getAttribute('href'))) {
links[i].target = '_blank';
}
}
})();
// adds .remark-code-has-line-highlighted class to <pre> parent elements
// of code chunks containing highlighted lines with class .remark-code-line-highlighted
(function(d) {
const hlines = d.querySelectorAll('.remark-code-line-highlighted');
const preParents = [];
const findPreParent = function(line, p = 0) {
if (p > 1) return null; // traverse up no further than grandparent
const el = line.parentElement;
return el.tagName === "PRE" ? el : findPreParent(el, ++p);
};
for (let line of hlines) {
let pre = findPreParent(line);
if (pre && !preParents.includes(pre)) preParents.push(pre);
}
preParents.forEach(p => p.classList.add("remark-code-has-line-highlighted"));
})(document);</script>
<script>
slideshow._releaseMath = function(el) {
var i, text, code, codes = el.getElementsByTagName('code');
for (i = 0; i < codes.length;) {
code = codes[i];
if (code.parentNode.tagName !== 'PRE' && code.childElementCount === 0) {
text = code.textContent;
if (/^\\\((.|\s)+\\\)$/.test(text) || /^\\\[(.|\s)+\\\]$/.test(text) ||
/^\$\$(.|\s)+\$\$$/.test(text) ||
/^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(text)) {
code.outerHTML = code.innerHTML; // remove <code></code>
continue;
}
}
i++;
}
};
slideshow._releaseMath(document);
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML';
if (location.protocol !== 'file:' && /^https?:/.test(script.src))
script.src = script.src.replace(/^https?:/, '');
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>
</body>
</html>