testaro 32.4.0 → 33.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,747 @@
1
+ const ed11yLang={en:{toggleAccessibilityTools:"Toggle accessibility tools",toggleDisabled:"Editorially is disabled.",panelCount0:"No issues detected.",panelCountAllDismissed:"All issues hidden.",panelCount1:"One issue detected.",panelCountMultiple:" issues detected.",panelCountBase:"<span class='count'>No</span> <span class='content-type'>issues detected</span>.",panelControls:"Editorially panel controls",buttonIssuesContent:"Issues",buttonOutlineContent:"Outline",buttonAltsContent:"Alt Text",buttonAboutTitle:"About this tool",buttonPrevContent:"Previous",buttonFirstContent:"First",buttonNextContent:"Next",buttonShowHiddenAlert:"Show 1 hidden alert",buttonShowHiddenAlerts:e=>`Show ${e} hidden alerts`,panelCheckOutline:"<p>Check that this forms <a href='https://accessibility.princeton.edu/how/content/headings'>a complete outline</a>:</p>",panelCheckAltText:"<p>Check <a href='https://accessibility.princeton.edu/how/content/alternative-text'>alt text</a>, <a href='https://accessibility.princeton.edu/how/content/images-text'>images of text</a>, &amp; <a href='https://webaim.org/techniques/captions/'>captions</a>.</p>",panelHelp:`
2
+ <p>Assistive technologies and search engines rely on well-structured content. <a href="https://itmaybejj.github.io/editoria11y/">Editoria11y</a> checks for common needs, such as image alternative text, meaningful heading outlines and well-named links. It is meant to supplement <a href='https://webaim.org/resources/evalquickref/'>testing the design and code</a>.</p>
3
+ <p><a href='https://github.com/itmaybejj/editoria11y/issues' class='ed11y-small'>Report bugs & request changes <span aria-hidden="true">&raquo;</span></a></p>
4
+ `,altLabelPrefix:"Alt text: ",errorAltMissing:"(missing!)",errorAltNull:"(none; image marked as decorative)",errorOutlinePrefixSkippedLevel:"(flagged for skipped level) ",errorOutlinePrefixHeadingEmpty:"(empty heading) ",errorOutlinePrefixHeadingIsLong:"(flagged for length) ",consoleNotSupported:"This browser can not run Editoria11y.",jumpedToInvisibleTip:"The marked item may not be visible. Look for it inside the outlined container.",jumpedToAriaHiddenTip:"The item with this issue may be invisible or off screen.",suspiciousWords:["image of","graphic of","picture of","placeholder","photo of"],linksUrls:["http:/","https:/",".asp",".htm",".php",".edu/",".com/"],linksMeaningless:/learn|to|more|now|this|page|link|site|website|check|out|view|our|read|download|form|here|click|\.|,|:|>|<|\s/g,linkStringsNewWindows:/window|tab|download|file/g,toggleManualCheck:"manual check needed",toggleAlert:"alert",toggleAriaLabel:(e,t)=>`Accessibility issue ${e}, `+t,dismissOkButtonContent:"Mark as checked and OK",dismissHideButtonContent:"Hide alert",dismissOkSyncedButtonContent:"Mark OK for all users",dismissHideSyncedButtonContent:"Hide alert for me",undismissOKButton:"Restore this alert marked as OK",undismissHideButton:"Restore this hidden alert",undismissNotePermissions:"This alert has been hidden by an administrator",elementDismissalHelpOK:`
5
+ "OK" dismisses this for everyone, on this page.
6
+ `,elementDismissalHelpHide:`
7
+ "Hide" dismisses this for you, on this page.
8
+ `,elementDismissalHelpAll:"Site-wide changes can be made in Editoria11y's settings.",headingExample:`
9
+ <ul>
10
+ <li>Heading level 1
11
+ <ul>
12
+ <li>Heading level 2: a topic
13
+ <ul><li>Heading level 3: a subtopic</li></ul></li>
14
+ <li>Heading level 2: a new topic</li>
15
+ </ul>
16
+ </li>
17
+ </ul>`,headingLevelSkipped:{title:"Manual check: was a heading level skipped?",tip:(e,t)=>`<p>Headings and subheadings are the page's table of contents. The <em>numbers</em> indicate indents, in a nesting relationship:</p>
18
+ ${Ed11y.M.headingExample}
19
+ <p>This heading skipped from level ${e} to level ${t}. From a screen reader, this sounds like content is missing.</p>
20
+ <p>To fix: adjust levels to form an accurate outline, without gaps.</p>
21
+ `},headingEmpty:{title:"Heading tag without any text",tip:()=>`<p>Headings and subheadings create a navigable table of contents for assistive devices. The heading's <strong><em>number</em></strong> indicates its <strong><em>depth</em></strong> in the page outline; e.g.:</p>
22
+ ${Ed11y.M.headingExample}
23
+ <p>"Blank" headings create confusing gaps in this outline: they could mean the following content is still part of the previous section, or that the text was unpronounceable for some reason.</p>
24
+ <p><strong>To fix:</strong> add text to this heading, or remove it.</p>
25
+ `},headingIsLong:{title:"Manual check: long heading",tip:()=>`<p>Headings should be brief and clear. Assistive devices use them to create a navigable table of contents for the page. The heading's <strong><em>number</em></strong> indicates its <strong><em>depth</em></strong> in the page outline; e.g.:</p>
26
+ ${Ed11y.M.headingExample}
27
+ <p><strong>To fix:</strong> shorten this heading if possible, or remove the heading style if it was only applied to this text to provide visual emphasis.</p>
28
+ `},blockquoteIsShort:{title:"Manual check: is this a blockquote?",tip:()=>"<p>Blockquote formatting tells screen readers that the text should be announced as a quotation. This was flagged because short blockquotes are sometimes actually headings. If this is a heading and not a quotation, use heading formatting instead, so this appears in the page outline.</p>"},altAttributeExample:`<p>Note that a good alt conveys what an image <strong>communicates</strong>, not what it <strong>contains</strong>. A picture of a child kicking a ball might have been selected because of the setting, the child, the kick or the ball:</p>
29
+ <ul>
30
+ <li>Child happily kicking a ball on a summer day</li>
31
+ <li>A.J. playing in the new team uniform</li>
32
+ <li>A.J.'s game-winning kick curved in from the left sideline!</li>
33
+ <li>The "medium" ball is the right size for this 9-year-old child</li>
34
+ </ul>`,altAttributeProvided:e=>`<p>This image's alt text is: <strong>"${e}"</strong></p>`,altMissing:{title:"Image has no alternative text attribute",tip:()=>`<p>When screen readers encounter an image with no alt attribute at all, they dictate the url of the image file instead, often one letter at a time.
35
+ To fix: either add an empty alt (alt="") to indicate this image should be ignored by screen readers, or add descriptive alt text.</p>
36
+ `+Ed11y.M.altAttributeExample},altNull:{title:"Manual check: image has no alt text",tip:()=>`<p>Screen readers assume images with empty alt text are only for decoration (spacers and backgrounds), and do not mention they exist. If this image is meaningful, an alt should be provided.</p>
37
+ `+Ed11y.M.altAttributeExample},altURL:{title:"Image's text alternative is a URL",tip:e=>Ed11y.M.altAttributeProvided(e)+`
38
+ <p>To fix: set this image's alternative text to a concise description of what this image means in this context.</p>
39
+ `+Ed11y.M.altAttributeExample},altURLLinked:{title:"Linked image's text alternative is a URL",tip:e=>Ed11y.M.altAttributeProvided(e)+`
40
+ <p>When a link includes an image, the image's alt text becomes part of the link text announced by screen readers.
41
+ Links should clearly and concisely describe their destination; a URL (usually pronounced by the screen reader one letter at a time) does not.</p>
42
+ <ul>
43
+ <li>Good link text: "About us"</li>
44
+ <li>Bad link text: "H T T P S colon forward slash forward slash example dot com forward slash aye bee oh you tee you ess</li>
45
+ </ul>`},altImageOf:{title:"Manual check: possibly redundant text in alt",tip:e=>Ed11y.M.altAttributeProvided(e)+`
46
+ <p>Screen readers <strong>announce</strong> they are describing an image when reading alt text, so
47
+ phrases like "image of" and "photo of" are usually redundant, sounding like "this image's alt is the alt of an image."</p>
48
+ <p>Note that sometimes the phrase is not redundant and should be kept, because the image is an image of an image:</p>
49
+ <ul><li>Redundant: "image of a VHS tape"</li>
50
+ <li>Relevant: "image of a VHS tape being shown in history class"</li></ul>`},altImageOfLinked:{title:"Manual check: possibly redundant text in linked image",tip:e=>Ed11y.M.altAttributeProvided(e)+`
51
+ <hr><p>Links should clearly and concisely describe their destination. Since words like "image," "graphic" or "photo" are redundant in text alternatives (screen readers already identify the image as an image), they often indicate that the image's text alternative is describing the image instead of the link.</p>
52
+ <ul>
53
+ <li>Good link text: "About us"</li>
54
+ <li>Bad link text: "Stock photo of five people jumping and high fiving around a conference table, image"</li>
55
+ </ul>`},altDeadspace:{title:"Image's text alternative is unpronounceable",tip:e=>Ed11y.M.altAttributeProvided(e)+`
56
+ <p>To fix: add a descriptive alt, or provide a <em>completely</em> empty alt (alt="") to tell screen readers to ignore this image.</p>
57
+ `+Ed11y.M.altAttributeExample},altEmptyLinked:{title:"Linked Image has no alt text",tip:()=>`<p>When a link is wrapped around an image, the image's alt text provides the link's title for screen readers</p>
58
+ <p>To fix: set this image's alternative text to something that describes the link's destination, or add text to the link.</p>
59
+ <ul>
60
+ <li>Good linked alt: "Meaningful link tips"</li>
61
+ <li>Bad linked alt: "Three happy dogs rolling in the grass"</li>
62
+ </ul>
63
+ `},altLong:{title:"Manual check: very long alternative text",tip:e=>`<p>Image text alternatives are announced by screen readers as a single run-on sentence; listeners must listen to the entire alt a second time if they miss something. It is usually better to provide and reference a <em>visible</em> text alternative for complex images that need long descriptions. For example:</p>
64
+ <ul><li>"Event poster; details provided in caption"</li>
65
+ <li>"Chart showing our issues going to zero; details follow in table"</li></ul>
66
+ ${Ed11y.M.altAttributeProvided(e)}
67
+ `},altLongLinked:{title:"Manual check: very long alternative text in linked image",tip:e=>`<p>The alt text on a linked image is used to describe the link destination. Links should be brief, clear and concise, as screen reader users often listen to the list of links on the page to find content of interest. Long alternative text inside a link often indicates that the image's text alternative is describing the image instead rather than the link.</p>
68
+ `+Ed11y.M.altAttributeProvided(e)},altPartOfLinkWithText:{title:"Manual check: link contains both text and an image",tip:e=>`<p>When a link includes an image, screen readers speak the image's alt text as part of the link.
69
+ This can be confusing if the image's alt describes the image rather than the link.</p>
70
+ <p>E.g., for a card-style link with both text and a stock photo, compare:</p>
71
+ <ul>
72
+ <li>"Link, five people jumping and high fiving around a conference table, image, about us"</li>
73
+ <li>"Link, about us"</li>
74
+ </ul>
75
+ ${Ed11y.M.altAttributeProvided(e)}
76
+ <p>If this link is clearer without this alt, it may be better to use a blank alt, to tell screen readers to ignore the image.</p>
77
+ `},linkNoText:{title:"Link with no accessible text",tip:()=>`<p>This link is either invisible and empty (e.g., a linked space character), or wrapped around something with no text alternative (an image with no alt attribute).</p>
78
+ <p>Screen readers will either pause with an uninformative silence when they reach this link: <br>"Link, [...awkward pause where the link title should be...],"<br>or spell out the URL, character by character: <br>"Link, H-T-T-P-S forward-slash forward-slash example dot com"</p>
79
+ <p>To fix: add text if this should be a link, or delete it if it should not.</p>`},linkTextIsURL:{title:"Manual check: is this link text a URL?",tip:e=>`<p>This link's text is:<br> <strong>${e}</strong></p>
80
+ <p>Links should be meaningful and concise. Readers often skim by link titles. This is especially true of screen reader users, who navigate using a list of on-page links.</p>
81
+ <p>A linked URL breaks this pattern; the reader has to read the preceding paragraph to figure out the link's purpose from context.</p>
82
+ <ul>
83
+ <li>Meaningful and concise link: "Tips for writing meaningful links"</li>
84
+ <li>Linked URL, as pronounced by a screen reader: "H T T P S colon forward-slash forward-slash example dot com forward-slash tips forward-slash meaningful-links"</li>
85
+ </ul>`},linkTextIsGeneric:{title:"Manual check: is this link meaningful and concise?",tip:e=>`<p>This link's text is: <strong>${e}</strong></p>
86
+ <p>Readers skim for links. This is especially true of screen reader users, who navigate using a list of on-page links.</p>
87
+ <p>Generic links like "click here," "read more" or "download" expect the reader be reading slowly and carefully, such that they figure out each link's purpose from context for themselves. Few readers do this, so click-through rates on meaningless links are extremely poor.</p>
88
+ <ul><li>Not meaningful: "<a href="https://www.google.com/search?q=writing+meaningful+links">Click here</a> to learn about meaningful links."</li>
89
+ <li>Not concise: "<a href="https://www.google.com/search?q=writing+meaningful+links">Click here to learn about meaningful links</a>"</li>
90
+ <li>Ideal: "Learn about <a href="https://www.google.com/search?q=writing+meaningful+links">meaningful links"</a></strong></li></ul>
91
+ `},linkDocument:{title:"Manual check: is the linked document accessible?",tip:()=>`<p>This automated checker helps ensure <strong><em>websites</em></strong> contain the features needed for accessible content, things like heading structure and text alternatives for images and audio. <strong>It is not able to help you check the documents you link.</strong></p>
92
+ <p>Most mobile and assistive device users prefer to read text on Web pages, where content reflows to fit the screen. If the document linked here cannot be converted to a Web page, make sure the document is well structured (headings, lists, table headers) and provides alt text for its images.</p>
93
+ <ul>
94
+ <li>Tips for <a href='https://webaim.org/techniques/word/'>MS Word</a> &amp; <a href="https://support.google.com/docs/answer/6199477?hl=en&ref_topic=6039805">Google Docs</a></li>
95
+ <li><a href='https://webaim.org/techniques/powerpoint/'>Slideshows</a> &amp; <a href='https://support.microsoft.com/en-us/office/make-your-excel-documents-accessible-to-people-with-disabilities-6cc05fc5-1314-48b5-8eb3-683e49b3e593'>Spreadsheets</a>
96
+ <li><a href='https://webaim.org/techniques/acrobat/'>Documents formatted for print instead of screens (PDF)</a></li>
97
+ </ul>`},linkNewWindow:{title:"Manual check: is opening a new window expected?",tip:()=>`<p>Readers can always choose to open a link a new window. When a link forces open a new window, it can be confusing and annoying, especially for assistive device users who may wonder why their browser's "back" button is suddenly disabled.</p>
98
+ <p>There are two general exceptions:</p>
99
+ <ul>
100
+ <li>When the user is filling out a form, and opening a link in the same window would cause them to lose their work.</li>
101
+ <li>When the user is clearly warned a link will open a new window.</li>
102
+ </ul>
103
+ <p>To fix: set this link back its default target, or add a screen-reader accessible warning (text or an icon with alt text).</p>
104
+ `},tableNoHeaderCells:{title:"Table has no header cells",tip:()=>`
105
+ <p>Tables are announced by screen readers as navigable data sets. Screen readers repeat row and column headers as needed to orient users while reading content cells.</p>
106
+ <p>To fix:</p>
107
+ <ul><li>If this table contains information that is meaningfully organized by row and column, edit the table's properties and specify whether the headers are in the first row, column or both.</li>
108
+ <li>If this table does not contain rows and columns of data, but is simply being used for visual layout, it would be best to remove it. Tables overflow the page rather than reflowing the text to fit on mobile devices, and should only be used when horizontal relationships are necessary to understand the content.</li></ul>
109
+ `},tableContainsContentHeading:{title:"Content heading inside a table",tip:()=>`<p>Content headings ("Heading 1", "Heading 2") form a navigable table of contents for screen reader users,
110
+ labelling all content <strong>until the next heading</strong>. Table headers label specific columns or rows within a table.</p>
111
+ <p></p>
112
+ <table><tr><th>1</th><th>2</th><th>3</th><td rowspan="2">To illustrate: a <strong>table</strong> header in cell 2 would only label its column: cell B. <br><br>
113
+ A <strong>content</strong> heading in cell 2 would label all subsequent text, reading from left to right: cells 3, A, B and C, as well as this text!</td></tr>
114
+ <tr><td>A</td><td>B</td><td>C</td></table>
115
+ <p>To fix: remove heading formatting on text inside table cells.</p>
116
+ `},tableEmptyHeaderCell:{title:"Empty table header cell",tip:()=>`
117
+ <p>When exploring tables, screen readers repeat table header cells as needed to orient users.
118
+ Without headers, it is very easy to get lost; screen reader users have to count columns and rows and try to remember which columns went with which rows.</p>
119
+ <p>To fix: make sure each header cell in this table contains text.</p>
120
+ `},textPossibleList:{title:"Manual check: should this have list formatting?",tip:e=>`<p>List formatting is structural:</p>
121
+ <ol><li>List formatting indents and reflows on overflow. Text aligns vertically with the line above it.</li>
122
+ <li>Lists are machine-readable. Screen readers can orient their users, announcing this as "list item, 2 of 3."</li></ol>
123
+ <p>&nbsp;&nbsp;&nbsp;&nbsp;3. But this third item is just a sentence with a number in front of it. It wraps incorrectly, and screen readers do not know it is related to the other items in the list.</p>
124
+ <p>To fix: if this "${e}" is part of a list, replace it with list formatting.</p>
125
+ `},textPossibleHeading:{title:"Manual check: should this be a heading?",tip:()=>`<p>Headings and subheadings create a navigable table of contents for assistive devices. The heading's <strong><em>number</em></strong> indicates its <strong><em>depth</em></strong> in the page outline; e.g.:</p>
126
+ ${Ed11y.M.headingExample}
127
+ <p>If this all-bold text is functioning visually as a heading, replace the bold formatting with the appropriately numbered heading.</p>
128
+ `},textUppercase:{title:"Manual check: is this uppercase text needed?",tip:()=>`<p>UPPERCASE TEXT CAN BE MORE DIFFICULT TO READ FOR MANY PEOPLE, AND IS OFTEN INTERPRETED AS SHOUTING.</p>
129
+ <p>Consider using sentence case instead, and using bold text or font changes for visual emphasis, or structural formatting like headings for emphasis that will also be announced by screen readers.</p>`},embedVideo:{title:"Manual check: is this video accurately captioned?",tip:()=>`<p>If a recorded video contains speech or meaningful sounds, it must provide captioning.</p>
130
+ <p>Note that automatic, machine-generated captions must be proofread, and speaker identifications must be added, before being considered an equal alternative.</p>`},embedAudio:{title:"Manual check: is an accurate transcript provided?",tip:()=>`<p>If this audio contains speech, a text alternative must be provided on this page or linked.</p>
131
+ <p>Note that automatic, machine-generated transcripts must be proofread, and speaker identifications must be added, before being considered an equal alternative</p>`},embedVisualization:{title:"Manual check: is this visualization accessible?",tip:()=>`<p>Visualization widgets are often difficult or impossible for assistive devices to operate, and can be difficult to understand for readers with low vision or colorblindness.</p>
132
+ <p>Unless this particular widget has high visual contrast, can be operated by a keyboard and described by a screen reader, assume that an alternate format (text description, data table or downloadable spreadsheet) should also be provided.</p>`},embedTwitter:{title:"Manual check: is this embed a keyboard trap?",tip:()=>`<p>If embedded feeds are set to show a high number of items, keyboard users may have to click the tab key dozens or hundreds of times to exit the component.</p>
133
+ <p>Check to make sure only a small number of items auto-load immediately or while scrolling. Having additional items load on request ("show more") is fine.</p>`},embedCustom:{title:"Manual check: is this embedded content accessible?",tip:()=>"<p>Please make sure images inside this embed have alt text, videos have captions, and interactive components can be <a href='https://webaim.org/techniques/keyboard/'>operated by a keyboard</a>.</p>"}}};class Ed11yElementAlt extends HTMLElement{constructor(){super()}connectedCallback(){var e,t,i,n;this.initialized||(e=this.attachShadow({mode:"open"}),(t=document.createElement("div")).setAttribute("class","wrapper"),n=Ed11y.imageAlts[this.dataset.ed11yImg],(i=document.createElement("span")).textContent=n[2],i.classList.add(n[3]),t.appendChild(i),(n=document.createElement("style")).textContent=Ed11y.baseCSS+`
134
+ :host {
135
+ position: absolute;
136
+ }
137
+ div {
138
+ position: absolute;
139
+ bottom: 0;
140
+ left:0;
141
+ right:0;
142
+ }
143
+ span {
144
+ background: ${Ed11y.theme.primary}f3;
145
+ color: ${Ed11y.theme.primaryText};
146
+ z-index: ${Ed11y.options.buttonZIndex-1};
147
+ font-weight: 500;
148
+ padding: 6px;
149
+ position: absolute;
150
+ bottom: 12px;
151
+ left: 0;
152
+ right: 0;
153
+ box-shadow: 0 1px, 0 -1px;
154
+ }
155
+ .warning { background: ${Ed11y.theme.warning}; color: #111;}
156
+ .error { background: ${Ed11y.theme.bgHighlight};}
157
+ `,e.appendChild(n),e.appendChild(t),this.initialized=!0)}}customElements.define("ed11y-element-alt",Ed11yElementAlt);class Ed11yElementPanel extends HTMLElement{constructor(){super()}template(){return`
158
+ <div class='buttonbar' role='tablist' aria-label='${Ed11y.M.panelControls}'>
159
+ <button role="tab" id='issues' aria-selected='true'>
160
+ ${Ed11y.M.buttonIssuesContent}
161
+ </button>
162
+ <button role="tab" id='headings' aria-selected='false'>
163
+ ${Ed11y.M.buttonOutlineContent}
164
+ </button>
165
+ <button role="tab" id='alts' aria-selected='false'>
166
+ ${Ed11y.M.buttonAltsContent}
167
+ </button>
168
+ <button role="tab" id='help' aria-selected='false' aria-controls='help-tab' title='${Ed11y.M.buttonAboutTitle}'>?</button>
169
+ <button role="tab" id='minimize' aria-selected='false' title='Minimize panel' aria-label="minimize" aria-pressed="false"><span>&ndash;</span></button>
170
+ <button type='button' id='toggle'><span class='close'>&times;</span><span class='open'><span class='icon'></span><span class='toggle-count'></span></span></button>
171
+ </div>
172
+ <div class="content">
173
+ <div id='issues-tab' tabindex="0" role="tabpanel" class="show" aria-labelledby='issues'>
174
+ <div>
175
+ <div class='content-text'>${Ed11y.M.panelCountBase}</div>
176
+ <div aria-live='polite' class='announce sr-only'></div>
177
+ </div>
178
+ <div class='jumplinks'>
179
+ <button class='jump prev' data-ed11y-goto='0' hidden><span aria-hidden='true'>« </span><span class='jump-prev'>${Ed11y.M.buttonPrevContent}</span></button>
180
+ <button class='jump next' data-ed11y-goto='0'><span class='jump-next'>${Ed11y.M.buttonFirstContent}</span> <span aria-hidden='true'> »</span></button>
181
+ <button id='show-hidden' aria-pressed='${!!Ed11y.options.showDismissed}' hidden>${Ed11y.M.buttonShowHiddenAlertContent}</button>
182
+ </div>
183
+ </div>
184
+ <div id='headings-tab' role="tabpanel" class="hidden" aria-labelledby='headings' tabindex='0'>
185
+ ${Ed11y.M.panelCheckOutline}
186
+ <ul id='outline'></ul>
187
+ </div>
188
+ <div id='alts-tab' role="tabpanel" class="hidden" aria-labelledby='alts' tabindex='0'>
189
+ ${Ed11y.M.panelCheckAltText}
190
+ <ul id='alt-list'></ul>
191
+ </div>
192
+ <div id='help-tab' role="tabpanel" class="hidden" aria-labelledby='help' tabindex='0'>
193
+ // todo inject content
194
+ </div>
195
+ </div>
196
+ `}connectedCallback(){var e,t,i;this.initialized||(this.setAttribute("style","outline: 0;"),e=this.attachShadow({mode:"open"}),(t=document.createElement("div")).setAttribute("class","wrapper"),t.innerHTML=this.template(),(i=document.createElement("style")).textContent=Ed11y.baseCSS+`
197
+ :host {
198
+ position: fixed;
199
+ right: 1%;
200
+ bottom: 1%;
201
+ opacity: 0;
202
+ transition: opacity .25s ease-in;
203
+ z-index: 9999;
204
+ }
205
+ :host:focus, div:focus {
206
+ outline: transparent;
207
+ }
208
+ .wrapper {
209
+ width: clamp(160px, 23em, 92vw);
210
+ background: ${Ed11y.theme.bg};
211
+ color: ${Ed11y.theme.text};
212
+ border-radius: ${Ed11y.theme.borderRadius};
213
+ box-shadow: 1px 1px 4px 2px ${Ed11y.theme.text}77;
214
+ padding: ${Ed11y.theme.panelBorder}px;
215
+ }
216
+ [tabindex]:focus-visible {
217
+ box-shadow: 0 0 0 3px ${Ed11y.theme.bg}, 0 0 0 4px ${Ed11y.theme.text};
218
+ }
219
+ .ed11y-small {
220
+ font-size: 13px;
221
+ opacity: .9;
222
+ }
223
+ a {
224
+ color: inherit;
225
+ }
226
+ .content {
227
+ padding: 4px 4px 4px 12px;
228
+ border: ${Ed11y.theme.panelBorder}px solid ${Ed11y.theme.primary};
229
+ border-top: 0;
230
+ border-radius: 0 0 ${Ed11y.theme.borderRadius} ${Ed11y.theme.borderRadius};
231
+ color: ${Ed11y.theme.text};
232
+ max-height: max(240px, 50vh);
233
+ overflow: hidden;
234
+ }
235
+ .content-text {
236
+ margin-top: -2px;
237
+ }
238
+ @media (min-width: 400px) {
239
+ #toggle-tab {
240
+ display: grid;
241
+ grid-gap: 1em;
242
+ grid-template-columns: 16em 1fr;
243
+ }
244
+ }
245
+ .hidden {
246
+ display:none;
247
+ }
248
+ .buttonbar {
249
+ display: flex;
250
+ }
251
+ button {
252
+ margin: 0;
253
+ background: ${Ed11y.theme.button};
254
+ color: ${Ed11y.theme.primaryText};
255
+ padding: 7px 4px;
256
+ font-family: inherit;
257
+ font-size: 11px;
258
+ font-weight: 500;
259
+ border: 0;
260
+ border-right: 1px solid ${Ed11y.theme.primaryText}55;
261
+ text-align: center;
262
+ flex: auto;
263
+ cursor: pointer;
264
+ }
265
+ button:hover {
266
+ background: ${Ed11y.theme.text};
267
+ }
268
+ #shut-panel {
269
+ border-right: 0;
270
+ }
271
+ .buttonbar button {
272
+ color: ${Ed11y.theme.panelBarText};
273
+ background: ${Ed11y.theme.panelBar};
274
+ box-shadow: ${Ed11y.theme.panelBarShadow};
275
+ }
276
+ .buttonbar button:hover {
277
+ background: ${Ed11y.theme.activeTab};
278
+ color: ${Ed11y.theme.activeTabText};
279
+ }
280
+ .buttonbar button:first-child {
281
+ border-radius: ${Ed11y.theme.borderRadius} 0 0 0;
282
+ border-left: 2px solid transparent;
283
+ }
284
+ .buttonbar button:last-child {
285
+ border-radius: 0 ${Ed11y.theme.borderRadius} 0 0;
286
+ }
287
+ .buttonbar button[aria-selected="true"] {
288
+ background: ${Ed11y.theme.activeTab};
289
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.primary}, inset 0 -2px ${Ed11y.theme.primary}22;
290
+ color: ${Ed11y.theme.activeTabText};
291
+ border: 0;
292
+ }
293
+ .buttonbar button + button[aria-selected="true"] {
294
+ margin-left: -1px;
295
+ }
296
+ .shut {
297
+ border-radius: 100%;
298
+ background: transparent;
299
+ width: auto;
300
+ box-shadow: none;
301
+ }
302
+ .shut button,
303
+ .shut .content,
304
+ .active .toggle-count,
305
+ .shut .close {
306
+ display: none;
307
+ }
308
+ .shut #toggle {
309
+ display: block;
310
+ min-width: 36px;
311
+ height: 36px;
312
+ border-radius: 100%;
313
+ padding: 8px;
314
+ border: 0;
315
+ }
316
+ .pass.shut #toggle {
317
+ font-size: 16px;
318
+ background: ${Ed11y.theme.primary};
319
+ color: ${Ed11y.theme.primaryText};
320
+ line-height: 1;
321
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.primary}, inset 0 0 0 4px #fffe;
322
+ font-family: georgia, serif;
323
+ }
324
+ .pass.shut #toggle:hover {
325
+ box-shadow: inset 0 0 0 2px #fffe, 0 0 0 2px ${Ed11y.theme.primary};
326
+ }
327
+ .shut.warnings #toggle {
328
+ background-color: ${Ed11y.theme.warning};
329
+ color: #000b;
330
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.warning}, inset 0 0 0 3px #000b, 0 0 2px #000;
331
+ }
332
+ .shut.warnings #toggle:hover {
333
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.warning}, inset 0 0 0 3px #000b, 0 0 0 3px #000b;
334
+ }
335
+ .shut.errors #toggle {
336
+ color: ${Ed11y.theme.alert};
337
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.alert}, inset 0 0 0 2px #fefefe, inset 0 0 0 6px ${Ed11y.theme.alert}, 1px 1px 5px 0 rgba(0,0,0,.5);
338
+ background: #fefefe;
339
+ }
340
+ .shut.errors #toggle:hover {
341
+ box-shadow: inset 0 0 0 1px #b80519, inset 0 0 0 2px #fefefe, inset 0 0 0 6px #b80519, 0 0 0 3px ${Ed11y.theme.alert}, 0 0 0 4px transparent;
342
+ }
343
+ .shut .toggle-count {
344
+ display: block;
345
+ }
346
+ .jumplinks {
347
+ text-align: right;
348
+ width: min(12em, 50%);
349
+ }
350
+ .jumplinks button {
351
+ min-width: max(7.25em, calc(49% - 3px));
352
+ }
353
+ .content button {
354
+ padding: 7px 5px;
355
+ border-radius: ${Ed11y.theme.borderRadius};
356
+ background: inherit;
357
+ color: inherit;
358
+ border: 1px ${Ed11y.theme.button} solid;
359
+ margin: 5px 0 5px 1px;
360
+ }
361
+ .jump.prev {
362
+ min-width: 81px;
363
+ }
364
+ .jump.next {
365
+ min-width: 60px;
366
+ }
367
+ #show-hidden {
368
+ min-width: min(146px, 100%);
369
+ margin: 0 -5px -5px;
370
+ background: ${Ed11y.theme.primary};
371
+ color: ${Ed11y.theme.primaryText};
372
+ border: 0;
373
+ }
374
+ .next[hidden] + #show-hidden {
375
+ margin-top: 22px;
376
+ }
377
+ #show-hidden[aria-pressed="true"] {
378
+ background: ${Ed11y.theme.bg};
379
+ color: ${Ed11y.theme.text};
380
+ box-shadow: inset 8px 1px ${Ed11y.theme.primary};
381
+ }
382
+ #show-hidden:hover, #show-hidden:focus-visible {
383
+ color: ${Ed11y.theme.primary};
384
+ background: ${Ed11y.theme.primaryText};
385
+ box-shadow: inset 8px 1px ${Ed11y.theme.primary};
386
+ }
387
+ .content button:hover {
388
+ background: ${Ed11y.theme.bg};
389
+ color: ${Ed11y.theme.text};
390
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.text};
391
+ }
392
+ .warning {
393
+ background: ${Ed11y.theme.warning};
394
+ color: #111;
395
+ }
396
+ .error {
397
+ background: ${Ed11y.theme.bgHighlight};
398
+ color: #fff;
399
+ }
400
+ #issues-tab:not(.hidden) {
401
+ display: flex;
402
+ min-height: 3.25em;
403
+ gap: 8px;
404
+ }
405
+ #issues-tab > div {
406
+ flex: 1 1 auto;
407
+ align-self: center;
408
+ }
409
+ #headings-tab, #alts-tab {
410
+ max-height: max(240px, 50vh);
411
+ overflow: auto;
412
+ }
413
+ #outline, #alt-list {
414
+ list-style: none;
415
+ padding: 0;
416
+ margin: 0;
417
+ }
418
+ #outline li {
419
+ padding: 5px;
420
+ }
421
+ #outline a {
422
+ text-decoration: none;
423
+ display: block;
424
+ }
425
+ #outline a:hover {
426
+ text-decoration: underline;
427
+ }
428
+ #alt-list li {
429
+ display: flex;
430
+ flex-wrap: wrap;
431
+ gap: 1em;
432
+ padding: 8px;
433
+ margin: 8px 0;
434
+ box-shadow: 0 4px ${Ed11y.theme.bg}, 0 5px ${Ed11y.theme.primary}22;
435
+ }
436
+ #alt-list li span {
437
+ flex: 0 1 calc(100% - 100px);
438
+ }
439
+ #alt-list li img {
440
+ flex: 0 1 80px;
441
+ width: 80px;
442
+ align-self: flex-start;
443
+ }
444
+ .sr-only {
445
+ display: block;
446
+ width: 1px;
447
+ hight: 1px;
448
+ overflow: hidden;
449
+ opacity: 0;
450
+ position: absolute;
451
+ }
452
+ `,e.appendChild(i),e.appendChild(t),Ed11y.panel=t,Ed11y.panelToggle=t.querySelector("#toggle"),Ed11y.panelMessage=t.querySelector(".content-text"),Ed11y.panelCount=t.querySelector(".count"),Ed11y.panelJumpNext=t.querySelector(".jump.next"),Ed11y.panelJumpPrev=t.querySelector(".jump.prev"),Ed11y.panelJumpNext.addEventListener("click",this.jumpTo),Ed11y.panelJumpPrev.addEventListener("click",this.jumpTo),Ed11y.showDismissed=t.querySelector("#show-hidden"),Ed11y.showDismissed.addEventListener("click",function(){Ed11y.toggleShowDismissals()}),Ed11y.announce=t.querySelector(".announce"),Ed11y.panelTabs=t.querySelectorAll(".buttonbar button"),Ed11y.panelTabs.forEach(e=>{e.addEventListener("click",this.handleBarClick)}),this.initialized=!0)}jumpTo(e){e.preventDefault(),Ed11y.toggledFrom=this,Ed11y.resetClass(["ed11y-hidden-highlight"]),Ed11y.elements.jumpList||Ed11y.buildJumpList();var e=parseInt(this.dataset.ed11yGoto),e=Ed11y.elements.jumpList[e],t=(e.scrollIntoView({block:"center"}),e.setAttribute("data-ed11y-action","open"),Ed11y.results[e.getAttribute("data-ed11y-result")]),t=t.position;let i,n=("beforebegin"===t?i=Ed11y.nextUntil(e,":not(ed11y-element-result)"):"afterbegin"===t&&(i=e.parentElement),100);0<Ed11y.options.hiddenHandlers.length&&i.closest(Ed11y.options.hiddenHandlers)&&(n=333,document.dispatchEvent(new CustomEvent("ed11yShowHidden",{detail:{result:e.getAttribute("data-ed11y-result")}}))),window.setTimeout(function(e,t){let i=!1,n;Ed11y.options.checkVisible&&!Ed11y.visible(t)?(i=Ed11y.firstVisibleParent(t),n=Ed11y.M.jumpedToInvisibleTip):t.closest('[aria-hidden="true"]')&&(i=(i=t.closest('[aria-hidden="true"]')).closest(':not([aria-hidden="true"])'),n=Ed11y.M.jumpedToAriaHiddenTip),i&&(alert(n),i.classList.add("ed11y-hidden-highlight")),e.scrollIntoView({block:"center"}),document.querySelector('ed11y-element-tip[data-ed11y-open="true"]').shadowRoot.querySelector(".close").focus()},n,e,i)}handleBarClick(e){e.preventDefault();var t=e.currentTarget.getAttribute("id");switch(t){case"toggle":Ed11y.togglePanel();break;case"minimize":Ed11y.minimize();break;default:Ed11y.switchPanel(t)}}static get observedAttributes(){return["style"]}attributeChangedCallback(e,t,i){"style"===e&&!0===this.initialized&&(this.shadowRoot?.querySelector("div")).setAttribute("style",i)}}customElements.define("ed11y-element-panel",Ed11yElementPanel);class Ed11yElementHeadingLabel extends HTMLElement{constructor(){super()}connectedCallback(){var e,t,i,n;this.initialized||(e=this.attachShadow({mode:"open"}),(t=document.createElement("div")).setAttribute("class","wrapper"),n=this.dataset.ed11yHeadingOutline,n=Ed11y.headingOutline[n],t.innerHTML="H"+n[1],i=!!n[2],t.classList.add("issue"+i),i=document.createElement("style"),n=Math.max(52-8*n[1],12),i.textContent=Ed11y.baseCSS+`
453
+ :host {
454
+ position: absolute;
455
+ margin-top:-.5em;
456
+ }
457
+ .wrapper {
458
+ background: ${Ed11y.theme.primary}ee;
459
+ color: ${Ed11y.theme.primaryText};
460
+ box-shadow: 0 0 0 1px ${Ed11y.theme.bg}ee, 0 0 0 4px ${Ed11y.theme.primary}ee, 1px 1px 5px 2px #000;
461
+ padding: 0 .5em;
462
+ line-height: 1.2;
463
+ border-radius: ${Ed11y.theme.borderRadius};
464
+ margin-left: 35px;
465
+ font-weight: 400;
466
+ font-size: ${n}px;
467
+ }
468
+ `,e.appendChild(i),e.appendChild(t),this.initialized=!0)}}customElements.define("ed11y-element-heading-label",Ed11yElementHeadingLabel);class Ed11yElementResult extends HTMLElement{constructor(){super()}connectedCallback(){var e,t,i;this.initialized||(this.open=!1,this.racing=!1,this.setAttribute("style","outline: 0px solid transparent;"),e=this.attachShadow({mode:"open"}),this.resultID=this.dataset.ed11yResult,this.result=Ed11y.results[this.resultID],this.wrapper=document.createElement("aside"),this.dismissable=!!this.result.dismissalKey,this.dismissed=!!this.result.dismissalStatus,this.wrapper.classList.add("wrapper"),this.wrapper.classList.add("ed11y-result"),this.toggle=document.createElement("button"),this.toggle.setAttribute("class","toggle"),t=this.dismissable?Ed11y.M.toggleManualCheck:Ed11y.M.toggleAlert,this.toggle.setAttribute("aria-label",Ed11y.M.toggleAriaLabel(this.resultID,t)),this.toggle.setAttribute("aria-expanded","false"),this.toggle.setAttribute("aria-haspopup","dialog"),this.toggle.setAttribute("data-ed11y-result",this.dataset.ed11yResult),this.toggle.setAttribute("data-ed11y-ready","false"),this.toggle.setAttribute("data-ed11y-race","false"),this.wrapper.appendChild(this.toggle),this.toggle.addEventListener("click",this.toggleClick),this.toggle.addEventListener("mouseover",this.handleHover),this.tipNeedsBuild=!0,t=document.createElement("style"),i=this.toggleImage(),t.textContent=Ed11y.baseCSS+i+`
469
+ :host {
470
+ position: absolute;
471
+ opacity: 0;
472
+ transition: opacity .25s ease-in;
473
+ z-index: ${Ed11y.options.buttonZIndex-1};
474
+ }
475
+ :host([data-ed11y-open='true']) {
476
+ z-index: ${Ed11y.options.buttonZIndex};
477
+ }
478
+ .wrapper {
479
+ width: 44px;
480
+ height: 44px;
481
+ overflow: visible;
482
+ color: ${Ed11y.theme.text};
483
+ }
484
+ button {
485
+ margin: 0;
486
+ border: 0;
487
+ background: inherit;
488
+ font-family: inherit;
489
+ font-size: 11px;
490
+ font-weight: 600;
491
+ text-align: center;
492
+ cursor: pointer;
493
+ color: ${Ed11y.theme.primaryText};
494
+ background: ${Ed11y.theme.primary};
495
+ }
496
+ .toggle {
497
+ display: block;
498
+ border: 0;
499
+ border-radius: 50%;
500
+ position: absolute;
501
+ margin: 0 0 0 10px;
502
+ z-index: 1;
503
+ padding: 0;
504
+ vertical-align: middle;
505
+ cursor: pointer;
506
+ width: 32px;
507
+ height: 32px;
508
+ line-height: 1;
509
+ font-size: 16px;
510
+ }
511
+ button:focus-visible {
512
+ outline: 2px solid transparent;
513
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.focusRing}, 0 0 0 3px ${Ed11y.theme.primary};
514
+ }
515
+ `,e.appendChild(t),e.appendChild(this.wrapper),this.initialized=!0)}toggleImage(){let e="";return this.dismissed?(e=`
516
+ .toggle {
517
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.ok}, inset 0 0 0 3px ${Ed11y.theme.primaryText}, inset 0 0 0 6px ${Ed11y.theme.ok}, 1px 1px 5px 0 rgba(0,0,0,.5);
518
+ background: ${Ed11y.theme.ok};
519
+ color: ${Ed11y.theme.primaryText};
520
+ }
521
+ .toggle:hover, .toggle[aria-expanded='true'] {
522
+ border: 2px solid ${Ed11y.theme.ok};
523
+ }`,"ok"===this.result.dismissalStatus?e+=`
524
+ .toggle::before {
525
+ content: "✓";
526
+ }
527
+ `:e+=`
528
+ .toggle::before {
529
+ content: "–";
530
+ font-family: georgia, serif;
531
+ }
532
+ `):e=this.dismissable?`.toggle {
533
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.warning}, inset 0 0 0 3px #444, inset 0 0 0 6px ${Ed11y.theme.warning}, 1px 1px 5px 0 rgba(0,0,0,.5);
534
+ background: ${Ed11y.theme.warning};
535
+ color: #333;
536
+ }
537
+ .toggle::before {
538
+ content: "?";
539
+ }
540
+ .toggle:hover, .toggle[aria-expanded='true'] {
541
+ border: 2px solid ${Ed11y.theme.primary};
542
+ }`:`.toggle {
543
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.alert}, inset 0 0 0 2px #fefefe, inset 0 0 0 6px ${Ed11y.theme.alert}, 1px 1px 5px 0 rgba(0,0,0,.5);
544
+ background: #fefefe;
545
+ color: ${Ed11y.theme.alert};
546
+ }
547
+ .toggle:hover, .toggle[aria-expanded='true'] {
548
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.alert}, inset 0 0 0 2px #fefefe, inset 0 0 0 6px ${Ed11y.theme.alert}, 0 0 0 2px ${Ed11y.theme.primary}, 0 0 0 3px transparent;
549
+ }
550
+ .toggle::before {
551
+ content: "!";
552
+ }`,e}handleHover(e){e.preventDefault();let t=this.getRootNode().host;"false"===t.getAttribute("data-ed11y-open")&&!1===t.racing&&(t.racing=!0,t.toggleTip(!0),Ed11y.toggledFrom=this,window.setTimeout(function(){t.racing=!1},250,t))}toggleClick(e){e.preventDefault();let t=this.getRootNode().host;!1===t.racing&&(t.racing=!0,Ed11y.toggledFrom=this,e="false"===t.getAttribute("data-ed11y-open")?"open":"close",t.setAttribute("data-ed11y-action",e),"open"==e&&window.setTimeout(function(){document.querySelector('ed11y-element-tip[data-ed11y-open="true"]')?.shadowRoot.querySelector(".close").focus()},500),window.setTimeout(function(){t.racing=!1},250,t))}closeOtherTips(){Ed11y.findElements("openTips",'[data-ed11y-open="true"]'),Ed11y.elements.openTips&&Array.from(Ed11y.elements.openTips).forEach(e=>{e.setAttribute("data-ed11y-action","close")})}buildTip(){this.tipNeedsBuild=!1;var e=document.createElement("ed11y-element-tip");e.setAttribute("data-ed11y-result",this.resultID),document.querySelector("body").insertAdjacentElement("beforeend",e),this.tip=e}toggleTip(e){this.tipNeedsBuild&&this.buildTip(),this.toggle.setAttribute("aria-expanded",e);var t=this.dismissable?"ed11y-ring-yellow":"ed11y-ring-red";this.result.element.classList.toggle(t),!0===e?(document.dispatchEvent(new CustomEvent("ed11yPop",{detail:{id:"ed11y-result-"+this.toggle.getAttribute("data-ed11y-result")}})),this.closeOtherTips(),this.tip.setAttribute("data-ed11y-action","open"),window.setTimeout(Ed11y.alignTip(this.toggle,this.tip)),Ed11y.elements.jumpList||Ed11y.buildJumpList(),Ed11y.goto=this.getAttribute("data-ed11y-jump-position"),Ed11y.setCurrentJump()):(document.dispatchEvent(new CustomEvent("ed11yShut",{detail:{id:"ed11y-result-"+this.toggle.getAttribute("data-ed11y-result")}})),this.tip.setAttribute("data-ed11y-action","shut")),this.setAttribute("data-ed11y-open",e),this.open=e}static get observedAttributes(){return["data-ed11y-action"]}attributeChangedCallback(e,t,i){this.initialized&&"data-ed11y-action"===e&&"false"!==i&&(e="open"===i,this.setAttribute("data-ed11y-action","false"),this.toggleTip(e))}}customElements.define("ed11y-element-result",Ed11yElementResult);class Ed11yElementTip extends HTMLElement{constructor(){super()}connectedCallback(){if(!this.initialized){this.open=!0,this.setAttribute("style","outline: 0px solid transparent;");var i=this.attachShadow({mode:"open"}),n=(this.resultID=this.dataset.ed11yResult,this.result=Ed11y.results[this.resultID],this.wrapper=document.createElement("div"),this.wrapper.setAttribute("role","dialog"),this.dismissable=!!this.result.dismissalKey,this.dismissed=!!this.result.dismissalStatus,this.wrapper.classList.add("wrapper"),this.wrapper.classList.add("ed11y-result"),this.addEventListener("mouseover",this.handleHover),document.createElement("style")),s=(n.textContent=Ed11y.baseCSS+`
553
+ :host {
554
+ position: absolute;
555
+ top: 10vh;
556
+ left: 2vw;
557
+ opacity: 0;
558
+ transition: opacity .25s ease-in;
559
+ z-index: ${Ed11y.options.buttonZIndex-1};
560
+ }
561
+ :host([data-ed11y-open='true']) {
562
+ z-index: ${Ed11y.options.buttonZIndex};
563
+ opacity: 1;
564
+ }
565
+ .wrapper {
566
+ width: 1px;
567
+ height: 1px;
568
+ overflow: visible;
569
+ color: ${Ed11y.theme.text};
570
+ font-size: 14px;
571
+ }
572
+ .arrow {
573
+ display: none;
574
+ content: "";
575
+ position: absolute;
576
+ transform: rotate(45deg);
577
+ left: -10px;
578
+ box-shadow: 0 0 0 ${Ed11y.theme.panelBorder}px ${Ed11y.theme.bg}, 2px 2px 4px ${Ed11y.theme.primary}77;
579
+ width: 20px;
580
+ height: 20px;
581
+ top: 6px;
582
+ }
583
+ .arrow[data-direction="left"] {
584
+ left: -18px;
585
+ background: linear-gradient(45deg, transparent 0%, transparent 48%, ${Ed11y.theme.primary} 49%);
586
+ }
587
+ .arrow[data-direction="under"] {
588
+ margin-top: -18px;
589
+ background: linear-gradient(-45deg, transparent 0%, transparent 48%, ${Ed11y.theme.primary} 49%);
590
+ }
591
+ .arrow[data-direction="above"] {
592
+ margin-top: -27px;
593
+ background: linear-gradient(135deg, transparent 0%, transparent 48%, ${Ed11y.theme.primary} 49%);
594
+ }
595
+ .arrow[data-direction="right"] {
596
+ background: linear-gradient(-135deg, transparent 0%, transparent 48%, ${Ed11y.theme.primary} 49%);
597
+ }
598
+ .tip {
599
+ z-index: 1;
600
+ border: 2px solid ${Ed11y.theme.primary};
601
+ background: ${Ed11y.theme.bg};
602
+ border-radius: 0 0 ${Ed11y.theme.borderRadius} ${Ed11y.theme.borderRadius};
603
+ position:relative;
604
+ width: clamp(18em, 36em, 89vw);
605
+ display: none;
606
+ margin-top: ${Ed11y.theme.panelBorder-2}px;
607
+ box-shadow: 0 0 0 ${Ed11y.theme.panelBorder}px ${Ed11y.theme.bg}, 2px 2px 4px ${Ed11y.theme.primary}77;
608
+ }
609
+ @keyframes fade-in {
610
+ 0% { opacity: 0;}
611
+ 100% { opacity: 1;}
612
+ }
613
+ .open .tip {
614
+ display: block;
615
+ }
616
+ .open .tip .content {
617
+ animation: fade-in 0.25s ease-out;
618
+ }
619
+ .open .arrow {
620
+ display: block;
621
+ opacity: 1;
622
+ }
623
+ .title {
624
+ background: ${Ed11y.theme.primary};
625
+ color: ${Ed11y.theme.primaryText};
626
+ padding: 2px 35px 3px 14px;
627
+ font-weight: bold;
628
+ font-size: 14px;
629
+ min-height: 28px;
630
+ line-height: 1;
631
+ display: grid;
632
+ place-content: center left;
633
+ outline: transparent;
634
+ }
635
+ .content {
636
+ padding: 0 12px 16px 16px;
637
+ }
638
+ p {
639
+ margin-block-start: 1em;
640
+ margin-block-end: 1em;
641
+ }
642
+ p:last-child {
643
+ margin-block-end: 0;
644
+ }
645
+ button {
646
+ margin: 0;
647
+ border: 0;
648
+ background: inherit;
649
+ font-family: inherit;
650
+ font-size: 11px;
651
+ font-weight: 600;
652
+ text-align: center;
653
+ cursor: pointer;
654
+ color: ${Ed11y.theme.primaryText};
655
+ background: ${Ed11y.theme.primary};
656
+ }
657
+ ul {
658
+ margin-block-start: .643em;
659
+ margin-block-end: .643em;
660
+ padding-inline-start: 20px;
661
+ }
662
+ li {
663
+ line-height: 1.357;
664
+ }
665
+ li + li {
666
+ margin-top: .643em;
667
+ }
668
+ table {
669
+ border-spacing: 0;
670
+ margin: 20px;
671
+ }
672
+ th, td {
673
+ border: 0;
674
+ box-shadow: 0 0 0 1px;
675
+ padding: 5px 10px;
676
+ }
677
+ a {
678
+ color: inherit;
679
+ }
680
+ a:hover, a:focus-visible {
681
+ text-decoration-style: double;
682
+ text-decoration-skip-ink: none;
683
+ }
684
+ .close {
685
+ padding: 0 0 0 2px;
686
+ font-size: 14px;
687
+ line-height: 1;
688
+ height: 36px;
689
+ display: grid;
690
+ place-content: center;
691
+ font-weight: 400;
692
+ position: absolute;
693
+ top: -3px;
694
+ right: -2px;
695
+ box-shadow: -1px 0 ${Ed11y.theme.bg};
696
+ background: transparent;
697
+ width: 32px;
698
+ }
699
+ .close:hover {
700
+ background: ${Ed11y.theme.bg}cc;
701
+ color: ${Ed11y.theme.text};
702
+ }
703
+ .dismiss {
704
+ margin: .5em 1em .25em 0;
705
+ padding: 5px 9px;
706
+ border-radius: ${Ed11y.theme.borderRadius}px;
707
+ font-weight: bold;
708
+ }
709
+ .dismiss:hover, .dismiss:focus-visible {
710
+ color: ${Ed11y.theme.primary};
711
+ background: ${Ed11y.theme.primaryText};
712
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.primary};
713
+ }
714
+ .dismissed-note {
715
+ background: ${Ed11y.theme.warning};
716
+ color: #333;
717
+ font-style: italic;
718
+ padding: .5em 1em;
719
+ display: inline-block;
720
+ border-radius: 2px;
721
+ }
722
+ .wrapper :focus-visible {
723
+ outline: 2px solid transparent;
724
+ box-shadow: inset 0 0 0 2px ${Ed11y.theme.focusRing}, 0 0 0 3px ${Ed11y.theme.primary};
725
+ }
726
+ `,this.tip=document.createElement("div"),this.tip.classList.add("tip"),this.tip.setAttribute("aria-labelledby","tip-title-"+[this.resultID]),this.heading=document.createElement("div"),this.heading.setAttribute("id","tip-"+this.resultID),this.heading.classList.add("title"),this.heading.setAttribute("tabindex","-1"),this.heading.innerHTML=Ed11y.M[this.result.test].title,document.createElement("div"));if(s.classList.add("content"),s.innerHTML=this.result.content,this.dismissable){var a=document.createElement("div");let e=!1;Ed11y.options.showDismissed&&this.dismissed?(d="ok"===Ed11y.dismissedAlerts[Ed11y.options.currentPage][this.result.test][this.result.dismissalKey])&&Ed11y.options.allowOK||!d?((o=document.createElement("button")).classList.add("dismiss"),o.textContent=d?Ed11y.M.undismissOKButton:Ed11y.M.undismissHideButton,a.append(o),o.addEventListener("click",function(){Ed11y.dismissThis("reset")})):((d=document.createElement("div")).classList.add("dismissed-note"),d.textContent=Ed11y.M.undismissNotePermissions,a.append(d)):(Ed11y.options.allowHide&&((o=document.createElement("button")).classList.add("dismiss"),o.textContent=!1===Ed11y.options.syncedDismissals?Ed11y.M.dismissHideButtonContent:Ed11y.M.dismissHideSyncedButtonContent,a.append(o),o.addEventListener("click",function(){Ed11y.dismissThis("hide")}),e=!0),Ed11y.options.allowOK&&((d=document.createElement("button")).classList.add("dismiss"),d.textContent=!1===Ed11y.options.syncedDismissals?Ed11y.M.dismissOkButtonContent:Ed11y.M.dismissOkSyncedButtonContent,a.append(d),d.addEventListener("click",function(){Ed11y.dismissThis("ok")}),e=!0)),e&&((e=document.createElement("button")).classList.add("dismiss"),e.textContent="?",a.append(e),e.addEventListener("click",function(){Ed11y.dismissHelp(e)})),s.append(a)}var o=document.createElement("button"),d=(o.setAttribute("aria-label","close"),o.classList.add("close"),o.innerHTML="&times;",document.createElement("div")),a=(d.classList.add("arrow"),this.tip.append(this.heading),this.tip.append(o),this.tip.append(s),o.addEventListener("click",e=>{e.preventDefault,this.open&&(e=document.querySelector('ed11y-element-result[data-ed11y-open="true"]'),Ed11y.toggledFrom.focus(),e?.setAttribute("data-ed11y-action","shut"),this.setAttribute("data-ed11y-action","shut"))}),document.addEventListener("click",e=>{this.open&&!e.target.closest("ed11y-element-tip, ed11y-element-result, ed11y-element-panel")&&(document.querySelector('ed11y-element-result[data-ed11y-open="true"]')?.setAttribute("data-ed11y-action","shut"),this.setAttribute("data-ed11y-action","shut"))}),i.appendChild(n),i.appendChild(this.wrapper),document.createElement("div")),s=(a.setAttribute("tabIndex","0"),document.createElement("div"));s.setAttribute("tabindex","0"),this.wrapper.appendChild(a),this.wrapper.appendChild(d),this.wrapper.appendChild(this.tip),this.wrapper.appendChild(s);let e=this.wrapper.querySelectorAll('a, button, [tabindex="0"]'),t=e.length;e[0].addEventListener("focus",()=>{e[t-2].focus()}),e[t-1].addEventListener("focus",()=>{e[1].focus()}),this.initialized=!0}}toggleTip(e){e?this.wrapper.classList.add("open"):this.wrapper.classList.remove("open"),this.setAttribute("data-ed11y-open",e)}static get observedAttributes(){return["data-ed11y-action"]}attributeChangedCallback(e,t,i){this.initialized&&"data-ed11y-action"===e&&"false"!==i&&(this.open=e="open"===i,this.setAttribute("data-ed11y-action","false"),this.toggleTip(e))}}customElements.define("ed11y-element-tip",Ed11yElementTip);class Ed11yTestEmbeds{check(){let e=Ed11y.srcMatchesOptions(Ed11y.elements.iframe,Ed11y.options.videoContent),t=(0<(e=e?e.concat(Array.from(Ed11y.elements.video)):Ed11y.elements.video).length&&e.forEach(e=>{var t=Ed11y.dismissalKey("undefined"!==e?.getAttribute("src")?e.getAttribute("src"):e.querySelector("[src]")?.getAttribute("src"));Ed11y.results.push({element:e,test:"embedVideo",content:Ed11y.M.embedVideo.tip(),position:"beforebegin",dismissalKey:t})}),Ed11y.srcMatchesOptions(Ed11y.elements.iframe,Ed11y.options.audioContent));0<(t=t?t.concat(Array.from(Ed11y.elements.audio)):Ed11y.elements.audio).length&&t.forEach(e=>{var t=Ed11y.dismissalKey("undefined"!==e?.getAttribute("src")?e.getAttribute("src"):e.querySelector("[src]")?.getAttribute("src"));Ed11y.results.push({element:e,test:"embedAudio",content:Ed11y.M.embedAudio.tip(),position:"beforebegin",dismissalKey:t})});var i=Ed11y.srcMatchesOptions(Ed11y.elements.iframe,Ed11y.options.dataVizContent),i=(0<i.length&&i.forEach(e=>{var t=Ed11y.dismissalKey(e.getAttribute("src"));Ed11y.results.push({element:e,test:"embedVisualization",content:Ed11y.M.embedVisualization.tip(),position:"beforebegin",dismissalKey:t})}),Ed11y.srcMatchesOptions(Ed11y.elements.frame,Ed11y.options.twitterContent));0<i.length&&i.forEach(e=>{var t=e.querySelectorAll(".timeline-TweetList-tweet");t&&3<t&&(t=Ed11y.dismissalKey(e.getAttribute("src")),Ed11y.results.push({element:e,test:"embedTwitter",content:Ed11y.M.embedTwitter.tip(),position:"beforebegin",dismissalKey:t}))}),Ed11y.options.embeddedContent&&Ed11y.elements.embed?.forEach(e=>{var t=Ed11y.dismissalKey(e.getAttribute("src")+e.getAttribute("id")+e.getAttribute("class"));Ed11y.results.push({element:e,test:"embedCustom",content:Ed11y.M.embedCustom.tip(),position:"beforebegin",dismissalKey:t})})}}class Ed11yTestHeadings{check(){Ed11y.panel?.querySelectorAll("#ed11y-outline-list li, .ed11y-headings-label")?.forEach(e=>e.remove());let p=0,u=(Ed11y.headingOutline=[],"afterbegin");Ed11y.elements.h?.filter(e=>Ed11y.elementNotHidden(e))?.forEach((e,t)=>{let i;var n=[];i=e.hasAttribute("aria-level")?+e.getAttribute("aria-level"):+e.tagName.slice(1),i=parseInt(i);let s="",a="";var o,d=Ed11y.computeText(e),r=d.length;let l=!1;r<1?(o=e.querySelector("img")?.getAttribute("alt"))&&0!==o.length||(a+=Ed11y.M.errorOutlinePrefixHeadingEmpty,s="headingEmpty",l=!1,n.push({element:e,test:s,content:Ed11y.M.headingEmpty.tip(),position:u,dismissalKey:l})):160<r&&(a+=Ed11y.M.errorOutlinePrefixHeadingIsLong,l=Ed11y.dismissalKey(i+d),s="headingIsLong",n.push({element:e,test:s,content:Ed11y.M.headingIsLong.tip(),position:u,dismissalKey:l})),1<i-p&&0!==t&&(l=Ed11y.dismissalKey(i+d),a+=Ed11y.M.errorOutlinePrefixSkippedLevel,s="headingLevelSkipped",n.push({element:e,test:s,content:Ed11y.M.headingLevelSkipped.tip(p,i),position:u,dismissalKey:l})),p=i,""!==s&&(null!==e.closest(Ed11y.options.checkRoots)||Ed11y.options.shadowComponents&&void 0!==e.getRootNode()?.host?.matches(Ed11y.options.shadowComponents)?n.forEach(e=>{Ed11y.results.push(e)}):a=""),Ed11y.headingOutline.push([e,i,a,l])}),Ed11y.elements.blockquote?.forEach(e=>{var t,i=Ed11y.getText(e);i.length<25&&(i=Ed11y.dismissalKey(i),t=Ed11y.M.blockquoteIsShort.tip(),Ed11y.results.push({element:e,test:"blockquoteIsShort",content:t,position:u,dismissalKey:i}))})}}class Ed11yTestImages{check(){Ed11y.imageAlts=[],Ed11y.elements.img.forEach(e=>{let i=e.getAttribute("alt"),n=Ed11y.M.altLabelPrefix;var t=e.getAttribute("src");let s=!1,a=!0;var o=Ed11y.parentLink(e);if("string"!=typeof i)s="altMissing",a=!1,n+=Ed11y.M.errorAltMissing;else if(Ed11y.options.altPlaceholder&&-1!==i.indexOf(Ed11y.options.altPlaceholder)||0===i.length&&!o)s="altNull",n+=Ed11y.M.errorAltNull;else{n+=i;var d=[".png",".jpg",".jpeg",".gif"],r=Ed11y.M.suspiciousWords;let t=[null,null];d.forEach(e=>{0<=i.toLowerCase().indexOf(e)&&(t[0]="URL")}),r.forEach(e=>{0<=i.toLowerCase().indexOf(e)&&(t[1]=e)}),"URL"===t[0]?(s="altURL",a=!1):null!==t[1]?s="altImageOf":null===o&&""!==i&&""===i.replace(/"|'|\s+/g,"")?(s="altDeadspace",a=!1):160<i.length&&(s="altLong"),null!==o&&(e=o,s=!s&&""!==i&&1<Ed11y.linkText(o.textContent).length?"altPartOfLinkWithText":s&&s+"Linked")}let l="pass";s&&(d=Ed11y.M[s].tip(Ed11y.sanitizeForHTML(i)),r=t?t.split("?")[0]:"nosrc_",a=!!a&&Ed11y.dismissalKey(r+i),Ed11y.results.push({element:e,test:s,content:d,position:"beforebegin",dismissalKey:a}),l=!1===a?"error":"warning"),Ed11y.imageAlts.push([e,t,n,l])})}}class Ed11yTestLinks{check(){Ed11y.elements.a?.forEach(i=>{var n=Ed11y.computeText(i),s=0<i.querySelectorAll("img").length;let e=!1,t=(i.matches(Ed11y.options.documentLinks)&&(e=!0),Ed11y.options.linkIgnoreStrings?n.replace(Ed11y.options.linkIgnoreStrings,""):n);var a=(t=t.toLowerCase()).replace(Ed11y.M.linkStringsNewWindows,"");if("_blank"===i?.getAttribute("target")&&n.length===a.length&&(a=Ed11y.dismissalKey(n),Ed11y.results.push({element:i,test:"linkNewWindow",content:Ed11y.M.linkNewWindow.tip(),position:"beforebegin",dismissalKey:a})),0===(t=t.replace(/'|"|-|\.|\s+/g,"")).length)!1==s?Ed11y.results.push({element:i,test:"linkNoText",content:Ed11y.M.linkNoText.tip(),position:"beforebegin",dismissalKey:!1}):Ed11y.results.push({element:i,test:"altEmptyLinked",content:Ed11y.M.altEmptyLinked.tip(),position:"beforebegin",dismissalKey:!1});else{var a=function(t){var i=Ed11y.options.linksUrls||Ed11y.M.linksUrls,e=Ed11y.options.linksMeaningless||Ed11y.M.linksMeaningless;let n="none";if(0===t.replace(e,"").length)n="generic";else for(let e=0;e<i.length;e++)if(-1<t.indexOf(i[e])){n="url";break}return n}(t);if("none"!==a){let e=!1,t=!1;s||(t="linkTextIsURL",e=Ed11y.dismissalKey(n)),"generic"===a&&(t="linkTextIsGeneric",e=Ed11y.dismissalKey(n)),t&&Ed11y.results.push({element:i,test:t,content:Ed11y.M[t].tip(Ed11y.sanitizeForHTML(n)),position:"beforebegin",dismissalKey:e})}}!s&&e&&(a=Ed11y.dismissalKey(i?.getAttribute("href")),Ed11y.results.push({element:i,test:"linkDocument",content:Ed11y.M.linkDocument.tip(),position:"beforebegin",dismissalKey:a}))})}}class Ed11yTestText{check(){function d(e){return e.replace(/^b|^B|^2/,function(e){return i[e]})}function t(e){let t="";"LI"===e.tagName?e.childNodes.forEach(e=>{3===e.nodeType&&(t+=e.textContent)}):t=Ed11y.getText(e);var i,n=t.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);n&&10<n[0].length&&(n=Ed11y.dismissalKey(t),(i=e.closest("a, button"))?Ed11y.results.push({element:i,test:"textUppercase",content:Ed11y.M.textUppercase.tip(),position:"beforebegin",dismissalKey:n}):Ed11y.results.push({element:e,test:"textUppercase",content:Ed11y.M.textUppercase.tip(),position:"afterbegin",dismissalKey:n}))}let r="",l="",i={b:"a",B:"A",2:"1"},p=new RegExp(/([aA1]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),u=new RegExp(/\p{Emoji}/,"u"),c=!1;Ed11y.elements.p?.forEach((t,e)=>{let i="",n=!1,s=!1;l||(l=Ed11y.getText(t),i=l.substring(0,2));var a=i.match(p);if(0<i.length&&i!==r&&(a||i.match(u))){var e=Ed11y.elements.p[e+1];if(e&&"A"!==(n=Ed11y.getText(e).substring(0,2))&&(e=d(n),a?(c=!1,"A "!==i&&i===e&&(s=!0)):c||(e.match(u)&&(s=!0),c=s)),!s){let e=t?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),i!==d(e)&&(a||c||!e.match(u))||(s=!0))}r=s?(e=Ed11y.dismissalKey(l),Ed11y.results.push({element:t,test:"textPossibleList",content:Ed11y.M.textPossibleList.tip(i),position:"afterbegin",dismissalKey:e}),i):""}else{var o,a=t.querySelector("strong:not(table strong), b:not(table b)");a&&!t.querySelector("a")&&(e=(a=Ed11y.getText(a)).length,o=null!==a.match(/[.:;?!"']/),e<121)&&5<e&&e===l.length&&!1==o&&(e=Ed11y.dismissalKey(a),Ed11y.results.push({element:t,test:"textPossibleHeading",content:Ed11y.M.textPossibleHeading.tip(),position:"afterbegin",dismissalKey:e}))}l=n&&""});Ed11y.elements.h?.forEach(e=>{t(e)}),Ed11y.elements.p?.forEach(e=>{t(e)}),Ed11y.elements.blockquote?.forEach(e=>{t(e)}),Ed11y.elements.li?.forEach(e=>{t(e)}),Ed11y.elements.table.forEach(e=>{var t=e.querySelectorAll("th"),i=e.querySelectorAll("h1, h2, h3, h4, h5, h6");0===t.length?Ed11y.results.push({element:e,test:"tableNoHeaderCells",content:Ed11y.M.tableNoHeaderCells.tip(),position:"beforebegin",dismissalKey:!1}):t.forEach(e=>{Ed11y.computeText(e).length<1&&Ed11y.results.push({element:e,test:"tableEmptyHeaderCell",content:Ed11y.M.tableEmptyHeaderCell.tip(),position:"afterbegin",dismissalKey:!1})}),i&&i.forEach(e=>{Ed11y.results.push({element:e,test:"tableContainsContentHeading",content:Ed11y.M.tableContainsContentHeading.tip(),position:"beforebegin",dismissalKey:!1})})})}}class Ed11y{constructor(e){Ed11y.version="2.1.0";Ed11y.options={checkRoots:!1,shadowComponents:!1,ignoreElements:!1,ignoreByKey:{img:"[aria-hidden], [aria-label], [aria-labelledby], [aria-hidden] img, [aria-label] img, [aria-labelledby] img",a:"[aria-hidden][tabindex]"},alertMode:"polite",currentPage:!1,allowHide:!0,allowOK:!0,syncedDismissals:!1,showDismissed:!1,ignoreAllIfAbsent:!1,ignoreAllIfPresent:!1,preventCheckingIfPresent:!1,preventCheckingIfAbsent:!1,linkIgnoreStrings:!1,checkVisible:!0,hiddenHandlers:"",lang:"en",theme:"sleekTheme",sleekTheme:{bg:"#fffffe",bgHighlight:"#7b1919",text:"#20160c",primary:"#276499",primaryText:"#fffdf7",secondary:"#20160c",button:"transparent",panelBar:"#fffffe",panelBarText:"#20160c",panelBarShadow:"inset 0 -1px #0002, -1px 0 #0002",panelBorder:0,activeTab:"#276499",activeTabText:"#fffffe",outlineWidth:0,borderRadius:1,ok:"#1f5381",warning:"#fad859",alert:"#b80519",focusRing:"#007aff"},darkTheme:{bg:"#0a2051",bgHighlight:"#7b1919",text:"#f4f7ff",primary:"#3052a0",primaryText:"#f4f7ff",secondary:"#20160c",button:"transparent",panelBar:"#3052a0",panelBarText:"#f4f7ff",panelBarShadow:"inset 0 -1px #0002, -1px 0 #0002",panelBorder:2,activeTab:"#0a2051",activeTabText:"#fffffe",focusRing:"cyan",outlineWidth:2,borderRadius:3,ok:"#0a307a",warning:"#fad859",alert:"#b80519"},lightTheme:{bg:"#fffffe",bgHighlight:"#7b1919",text:"#20160c",primary:"#0a307a",primaryText:"#fffdf7",secondary:"#20160c",panelBar:"#0a307a",panelBarText:"#f4f7ff",panelBarShadow:"inset 0 -1px #0002, -1px 0 #0002",panelBorder:2,button:"transparent",activeTab:"#b9c0cf",activeTabText:"#20160c",focusRing:"#007aff",outlineWidth:2,borderRadius:3,ok:"#0a307a",warning:"#fad859",alert:"#b80519"},buttonZIndex:9999,embeddedContent:!1,embeddedContentTitle:"",embeddedContentMessage:"",videoContent:"youtube.com, vimeo.com, yuja.com, panopto.com",audioContent:"soundcloud.com, simplecast.com, podbean.com, buzzsprout.com, blubrry.com, transistor.fm, fusebox.fm, libsyn.com",dataVizContent:"datastudio.google.com, tableau",twitterContent:"twitter-timeline",documentLinks:"a[href$='.pdf'], a[href*='.pdf?'], a[href$='.doc'], a[href$='.docx'], a[href*='.doc?'], a[href*='.docx?'], a[href$='.ppt'], a[href$='.pptx'], a[href*='.ppt?'], a[href*='.pptx?'], a[href^='https://docs.google']",linksUrls:!1,linksMeaningless:!1,altPlaceholder:!1,customTests:0,...e},Ed11y.M={...ed11yLang.en,...ed11yLang[Ed11y.options.lang]},Ed11y.theme=Ed11y.options[Ed11y.options.theme],!1===Ed11y.options.currentPage&&(Ed11y.options.currentPage=window.location.pathname),Ed11y.elements=[],Ed11y.onLoad=!0,Ed11y.showPanel="show",Ed11y.initialize=()=>{Ed11y.checkRunPrevent=()=>{let e=!!Ed11y.options.preventCheckingIfPresent&&document.querySelector(Ed11y.options.preventCheckingIfPresent);return e=!e&&Ed11y.options.preventCheckingIfAbsent?null===document.querySelector(`:is(${Ed11y.options.preventCheckingIfAbsent})`):e};var e;e=()=>{if(!Ed11y.checkRunPrevent()){Ed11y.running=!0;var e=localStorage.getItem("editoria11yResultCount");if(Ed11y.seen=e?JSON.parse(e):{},!1===Ed11y.options.syncedDismissals?(Ed11y.dismissedAlerts=localStorage.getItem("ed11ydismissed"),Ed11y.dismissedAlerts=Ed11y.dismissedAlerts?JSON.parse(Ed11y.dismissedAlerts):{}):(Ed11y.dismissedAlerts={},Ed11y.dismissedAlerts[Ed11y.options.currentPage]=Ed11y.options.syncedDismissals),Ed11y.options.currentPage in Ed11y.dismissedAlerts)for(var[t]of Object.entries(Ed11y.dismissedAlerts[Ed11y.options.currentPage]))if(t in Ed11y.dismissedAlerts[Ed11y.options.currentPage])for(var[i,n]of Object.entries(Ed11y.dismissedAlerts[Ed11y.options.currentPage][t])){var s=Ed11y.dismissalKey(i);s!==i&&(Ed11y.dismissedAlerts[Ed11y.options.currentPage][t][s]=n,delete Ed11y.dismissedAlerts[Ed11y.options.currentPage][t][i])}Ed11y.testEmbeds=new Ed11yTestEmbeds,Ed11y.testHeadings=new Ed11yTestHeadings,Ed11y.testImages=new Ed11yTestImages,Ed11y.testLinks=new Ed11yTestLinks,Ed11y.testText=new Ed11yTestText,Ed11y.ignore=Ed11y.options.ignoreElements?`:not(${Ed11y.options.ignoreElements})`:"",Ed11y.options.checkRoots||(Ed11y.options.checkRoots=null!==document.querySelector("main")?"main":"body"),Ed11y.ignoreAll=!(!Ed11y.options.ignoreAllIfAbsent||null!==document.querySelector(`:is(${Ed11y.options.ignoreAllIfAbsent})`)),!Ed11y.ignoreAll&&Ed11y.options.ignoreAllIfPresent&&(Ed11y.ignoreAll=null!==document.querySelector(`:is(${Ed11y.options.ignoreAllIfPresent})`)),Ed11y.checkAll(!0,"hide"),window.addEventListener("resize",function(){Ed11y.windowResize()})}},"complete"===document.readyState?e():window.addEventListener("load",e)},Ed11y.checkAll=()=>{var e;Ed11y.checkRunPrevent()?(Ed11y.reset(),Ed11y.panelToggle?.classList.add("disabled"),Ed11y.panelToggle?.removeAttribute("aria-expanded"),Ed11y.panelToggle?.setAttribute("title",Ed11y.M.toggleDisabled)):(Ed11y.results=[],Ed11y.elements=[],Ed11y.mediaCount=0,Ed11y.customTestsRunning=!1,0===(e=document.querySelectorAll(`:is(${Ed11y.options.checkRoots})`)).length?(Ed11y.roots=[document.querySelector("html, body")],0===e.length?console.warn("Check Editoria11y configuration; specified root element not found"):console.warn("Editoria11y found no user editable content on this page"),Ed11y.reset()):(Ed11y.roots=[],e.forEach((e,t)=>{e.shadowRoot?Ed11y.roots[t]=e.shadowRoot:Ed11y.roots[t]=e}),Ed11y.buildElementList(),["testLinks","testImages","testHeadings","testText","testEmbeds"].forEach(e=>{window.setTimeout(function(){Ed11y[e].check()},0,e)}),0<Ed11y.options.customTests&&(Ed11y.customTestsRunning=!0,Ed11y.customTestsFinished=0,document.addEventListener("ed11yResume",function(){Ed11y.customTestsFinished++,Ed11y.customTestsFinished===Ed11y.options.customTests&&(Ed11y.customTestsRunning=!1,Ed11y.panelToggle?.setAttribute("title",Ed11y.M.toggleAccessibilityTools),Ed11y.updatePanel())}),window.setTimeout(function(){!0===Ed11y.customTestsRunning&&(Ed11y.customTestsRunning=!1,Ed11y.panelToggle?.setAttribute("title",Ed11y.M.toggleAccessibilityTools),Ed11y.updatePanel(),console.error("Editoria11y was told to wait for custom tests, but no tests were returned."))},1e3),window.setTimeout(function(){var e=new CustomEvent("ed11yRunCustomTests");document.dispatchEvent(e)},0))),Ed11y.customTestsRunning||window.setTimeout(function(){Ed11y.panelToggle?.setAttribute("title",Ed11y.M.toggleAccessibilityTools),Ed11y.updatePanel()},0))},Ed11y.countAlerts=function(){if(Ed11y.errorCount=0,Ed11y.warningCount=0,Ed11y.dismissedCount=0,Ed11y.ignoreAll)Ed11y.dismissedCount=0<Ed11y.results.length?1:0;else{Ed11y.dismissedCount=0;for(let e=Ed11y.results.length-1;0<=e;e--){var t=Ed11y.results[e].test,i=Ed11y.dismissalKey(Ed11y.results[e].dismissalKey);!1!==i&&Ed11y.options.currentPage in Ed11y.dismissedAlerts&&t in Ed11y.dismissedAlerts[Ed11y.options.currentPage]&&i in Ed11y.dismissedAlerts[Ed11y.options.currentPage][t]?(Ed11y.dismissedCount++,Ed11y.results[e].dismissalStatus=Ed11y.dismissedAlerts[Ed11y.options.currentPage][t][i]):(Ed11y.results[e].dismissalKey?Ed11y.warningCount++:Ed11y.errorCount++,Ed11y.results[e].dismissalStatus=!1)}}Ed11y.totalCount=Ed11y.errorCount+Ed11y.warningCount,window.setTimeout(function(){var e=new CustomEvent("ed11yResults");document.dispatchEvent(e)},0)},Ed11y.updatePanel=function(){if(Ed11y.countAlerts(),"headless"!==Ed11y.options.alertMode){var e;if(!0!==Ed11y.onLoad||(Ed11y.onLoad=!1,e=document.createElement("ed11y-element-panel"),document.querySelector("body").appendChild(e),0<Ed11y.totalCount&&!Ed11y.ignoreAll&&"assertive"===Ed11y.options.alertMode&&Ed11y.seen[encodeURI(Ed11y.options.currentPage)]!==Ed11y.totalCount)||Ed11y.options.showDismissed&&(0<Ed11y.dismissedCount||0<Ed11y.totalCount)?Ed11y.showPanel=!0:Ed11y.showPanel=!1,0<Ed11y.totalCount?(Ed11y.seen[encodeURI(Ed11y.options.currentPage)]=Ed11y.totalCount,localStorage.setItem("editoria11yResultCount",JSON.stringify(Ed11y.seen))):delete Ed11y.seen[encodeURI(Ed11y.options.currentPage)],Ed11y.showPanel?(Ed11y.panel.classList.remove("shut"),Ed11y.panel.classList.add("active"),Ed11y.panelToggle.setAttribute("aria-expanded","true"),0<Ed11y.dismissedCount?(e=1===Ed11y.dismissedCount?Ed11y.M.buttonShowHiddenAlert:Ed11y.M.buttonShowHiddenAlerts(Ed11y.dismissedCount),Ed11y.showDismissed.textContent=e,Ed11y.showDismissed.removeAttribute("hidden")):!0===Ed11y.options.showDismissed&&(Ed11y.showDismissed.setAttribute("hidden",""),Ed11y.showDismissed.setAttribute("aria-pressed","false"),Ed11y.options.showDismissed=!1),window.setTimeout(function(){document.dispatchEvent(new CustomEvent("ed11yPanelOpened")),Ed11y.ignoreAll||Ed11y.showResults()},0),!1===Ed11y.onLoad&&window.setTimeout(function(){Ed11y.panelMessage.focus()},500)):(Ed11y.reset(),Ed11y.bodyStyle||Ed11y.paintReady()),0<Ed11y.totalCount||Ed11y.options.showDismissed&&0<Ed11y.dismissedCount){Ed11y.panelJumpNext.removeAttribute("hidden"),Ed11y.totalCount<2||"0"===Ed11y.panelJumpPrev.getAttribute("data-ed11y-goto")?Ed11y.panelJumpPrev.setAttribute("hidden",""):Ed11y.panelJumpPrev.removeAttribute("hidden"),0<Ed11y.errorCount?(Ed11y.panel.classList.remove("warnings","pass"),Ed11y.panel.classList.add("errors")):0<Ed11y.warningCount&&(Ed11y.panel.classList.remove("errors","pass"),Ed11y.panel.classList.add("warnings")),Ed11y.panelCount.textCount=Ed11y.totalCount,Ed11y.panelCount.style.display="inline-block";let e=1===Ed11y.totalCount?Ed11y.M.panelCount1:Ed11y.totalCount+Ed11y.M.panelCountMultiple;Ed11y.panelMessage.textContent=e,window.setTimeout(function(){Ed11y.announce.textContent=e},1500),Ed11y.panel.querySelector(".toggle-count").textContent=Ed11y.totalCount}else Ed11y.panelJumpNext.setAttribute("hidden",""),Ed11y.panelJumpPrev.setAttribute("hidden",""),Ed11y.panelCount.style.display="display: none;",Ed11y.panel.classList.remove("warnings","errors"),Ed11y.panel.classList.add("pass"),0<Ed11y.dismissedCount?(Ed11y.panel.querySelector(".toggle-count").textContent="i",Ed11y.panelMessage.innerText=Ed11y.M.panelCountAllDismissed):(Ed11y.panel.querySelector(".toggle-count").textContent="✓",Ed11y.panelMessage.innerText=Ed11y.M.panelCount0);Ed11y.panel.classList.remove("ed11y-preload"),Ed11y.panelToggle.classList.remove("disabled"),Ed11y.panelToggle.removeAttribute("aria-disabled")}Ed11y.running=!1},Ed11y.result=function(e,t){var i=document.createElement("ed11y-element-result");let n=e.element.closest("a"),s="beforebegin";n||(n=e.element,s=e.position),i.setAttribute("id","ed11y-result-"+t),i.setAttribute("data-ed11y-result",t),i.setAttribute("data-ed11y-open","false"),n.insertAdjacentElement(s,i)},Ed11y.reset=function(){Ed11y.resetClass(["ed11y-ring-red","ed11y-ring-yellow","ed11y-hidden-highlight"]),Ed11y.findElements("reset","ed11y-element-result, ed11y-element-tip, .ed11y-element-heading-label, .ed11y-element-alt, ed11y-element-heading-label, ed11y-element-alt",!1),Ed11y.elements.reset.forEach(e=>e.remove()),Ed11y.panelJumpNext?.setAttribute("data-ed11y-goto","0"),Ed11y.panelJumpPrev?.setAttribute("data-ed11y-goto","0"),Ed11y.panel?.classList.add("shut"),Ed11y.panel?.classList.remove("active"),Ed11y.panelToggle?.setAttribute("aria-expanded","false"),Ed11y.running=!1},Ed11y.linkText=e=>e=(e=e.replace(Ed11y.options.linkIgnoreStrings,"")).replace(/'|"|-|\.|\s+/g,""),Ed11y.findElements=function(t,i,e=!0){Ed11y.findElements.key=[];let n=Ed11y.options.shadowComponents?", "+Ed11y.options.shadowComponents:"",s="";if(s=Ed11y.options.ignoreElements?Ed11y.options.ignoreByKey[t]?`:not(${Ed11y.options.ignoreElements}, ${Ed11y.options.ignoreByKey[t]})`:`:not(${Ed11y.options.ignoreElements})`:Ed11y.options.ignoreByKey[t]?`:not(${Ed11y.options.ignoreByKey[t]})`:"",Ed11y.elements[t]=[],e?Ed11y.roots.forEach(e=>{Ed11y.elements[t]=Ed11y.elements[t].concat(Array.from(e.querySelectorAll(`:is(${i}${n})`+s)))}):Ed11y.elements[t]=Ed11y.elements[t].concat(Array.from(document.querySelectorAll(`:is(${i}${n})`+s))),Ed11y.options.shadowComponents)for(let e=Ed11y.elements[t].length-1;0<=e;e--){var a;Ed11y.elements[t][e].matches(Ed11y.options.shadowComponents)&&("object"==typeof(a=Ed11y.elements[t][e].shadowRoot?.querySelectorAll(`:is(${i})`+s))&&0<a.length?Ed11y.elements[t].splice(e,1,...a):(console.warn("Editoria11y: A specified shadow host has no shadowRoot."),Ed11y.elements[t].splice(e,1)))}},Ed11y.buildElementList=function(){Ed11y.findElements("p","p"),Ed11y.findElements("h",'h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',!1),Ed11y.findElements("img","img"),Ed11y.findElements("a","a[href]"),Ed11y.findElements("li","li"),Ed11y.findElements("blockquote","blockquote"),Ed11y.findElements("iframe","iframe"),Ed11y.findElements("audio","audio"),Ed11y.findElements("video","video"),Ed11y.findElements("table","table"),Ed11y.options.embeddedContent&&Ed11y.findElements("embed",Ed11y.options.embeddedContent)},Ed11y.dismissalKey=function(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,512)},Ed11y.dismissThis=function(e){var t,i=Ed11y.getOpenTip(),n=i.dataset.ed11yResult,s=Ed11y.results[n].test,n=Ed11y.dismissalKey(Ed11y.results[n].dismissalKey),i=(Ed11y.resetClass(["ed11y-hidden-highlight","ed11y-ring-red","ed11y-ring-yellow"]),i.parentNode.removeChild(i),Ed11y.elements.openButton[0]);i.parentNode.removeChild(i),"reset"===e?(delete Ed11y.dismissedAlerts[Ed11y.options.currentPage][s][n],0===Object.keys(Ed11y.dismissedAlerts[Ed11y.options.currentPage][s]).length&&delete Ed11y.dismissedAlerts[Ed11y.options.currentPage][s],0===Object.keys(Ed11y.dismissedAlerts[Ed11y.options.currentPage]).length&&delete Ed11y.dismissedAlerts[Ed11y.options.currentPage],Ed11y.updatePanel()):((i={})[n]=e,void 0===Ed11y.dismissedAlerts[Ed11y.options.currentPage]?((t={})[s]=i,Ed11y.dismissedAlerts[Ed11y.options.currentPage]=t):void 0===Ed11y.dismissedAlerts[Ed11y.options.currentPage][s]?Ed11y.dismissedAlerts[Ed11y.options.currentPage][s]=i:Ed11y.dismissedAlerts[Ed11y.options.currentPage][s][n]=e,Ed11y.showDismissed.removeAttribute("hidden")),!1===Ed11y.options.syncedDismissals?localStorage.setItem("ed11ydismissed",JSON.stringify(Ed11y.dismissedAlerts)):(t={dismissPage:Ed11y.options.currentPage,dismissTest:s,dismissKey:n,dismissAction:e},i=new CustomEvent("ed11yDismissalUpdate",{detail:t}),document.dispatchEvent(i)),Ed11y.reset(),Ed11y.checkAll(!1,"show");let a=Ed11y.goto;window.setTimeout(function(){Ed11y.buildJumpList(),0<Ed11y.elements.jumpList.length?(Ed11y.goto=a-1,Ed11y.setCurrentJump(),Ed11y.panelJumpNext.focus()):window.setTimeout(function(){Ed11y.panel.querySelector("#issues-tab").focus()},100)},500,a)},Ed11y.toggleShowDismissals=function(){Ed11y.ignoreAll=!1,Ed11y.options.showDismissed=!Ed11y.options.showDismissed,Ed11y.reset(),Ed11y.checkAll(!1,"show"),Ed11y.showDismissed.setAttribute("aria-pressed",!!Ed11y.options.showDismissed),Ed11y.showDismissed.textContent=Ed11y.options.showDismissed?Ed11y.M.buttonHideHiddenAlertsContent:Ed11y.M.buttonShowHiddenAlertsContent},Ed11y.dismissHelp=function(e){var t=document.createElement("ul"),i=(t.setAttribute("tabindex","-1"),t.classList.add("help"),Ed11y.options.allowHide&&((i=document.createElement("li")).textContent=Ed11y.M.elementDismissalHelpHide,t.append(i)),Ed11y.options.allowOK&&((i=document.createElement("li")).textContent=Ed11y.M.elementDismissalHelpOK,t.append(i)),document.createElement("li"));i.textContent=Ed11y.M.elementDismissalHelpAll,t.append(i),e.parentElement.append(t),t.focus(),e.remove()},Ed11y.showResults=function(){Ed11y.results?.forEach(function(e,t){Ed11y.results[t].dismissalStatus&&!Ed11y.options.showDismissed||Ed11y.result(e,t)}),Ed11y.buildJumpList(),document.dispatchEvent(new CustomEvent("ed11yPanelOpened")),Ed11y.alignButtons()},Ed11y.alignButtons=function(){window.setTimeout(function(){let n=window.innerWidth,s=[],a=0,o=0,d=0;Ed11y.elements.jumpList.forEach(e=>{e.hasAttribute("style")&&e.removeAttribute("style");var t=e.getBoundingClientRect();let i=0;t.top>o-30&&t.top<o+30&&t.left>a-30&&t.left<o+30&&(i=30+d),t.left<8?s.push([e,8-t.left,i]):t.left+80>n?s.push([e,n-t.left-80,i]):0<i&&s.push([e,0,i]),a=t.left,o=t.top+i,d=i}),s.forEach(e=>{e[0].style.transform=`translate(${e[1]}px, ${e[2]}px)`}),Ed11y.bodyStyle||Ed11y.paintReady()},0)},Ed11y.paintReady=function(){var e=`ed11y-element-result, ed11y-element-panel {
727
+ opacity: 1;
728
+ outline: 0 !important;
729
+ }
730
+ .ed11y-hidden-highlight {
731
+ box-shadow: inset 0 0 0 1px ${Ed11y.theme.warning}, inset 0 0 0 2px ${Ed11y.theme.primary}, 0 0 0 1px ${Ed11y.theme.warning}, 0 0 0 3px ${Ed11y.theme.primary}, 0 0 1px 3px !important;
732
+ }
733
+ .ed11y-ring-red {
734
+ box-shadow: 0 0 0 1px #fff, inset 0 0 0 2px ${Ed11y.theme.alert}, 0 0 0 3px ${Ed11y.theme.alert}, 0 0 1px 3px;
735
+ outline: 2px solid ${Ed11y.theme.alert};
736
+ outline-offset: 1px;
737
+ }
738
+ .ed11y-ring-yellow {
739
+ box-shadow: 0 0 0 1px #fff, inset 0 0 0 2px ${Ed11y.theme.warning}, 0 0 0 3px ${Ed11y.theme.warning}, 0 0 1px 3px;
740
+ outline: 2px solid ${Ed11y.theme.warning};
741
+ outline-offset: 1px;
742
+ }
743
+ `;let i=document.createElement("style");i.textContent=e,document.querySelector("body")?.appendChild(i),Ed11y.roots.forEach(e=>{Ed11y.options.shadowComponents&&e.querySelectorAll(Ed11y.options.shadowComponents)?.forEach(e=>{var t=i.cloneNode(!0);e.shadowRoot?.appendChild(t)})}),Ed11y.bodyStyle=!0},Ed11y.alignTip=function(e,t,i=0){var n=t.shadowRoot.querySelector(".arrow"),s=n.nextElementSibling;let a=i+1;i<3&&Ed11y.options.hiddenHandlers&&0<Ed11y.options.hiddenHandlers.length&&e.getRootNode().host.closest(Ed11y.options.hiddenHandlers)&&window.setTimeout(function(){Ed11y.alignTip(e,t,a)},150,a),s.setAttribute("style",""),n.setAttribute("style","");i=window.scrollY;let o=e.getBoundingClientRect();var d=(o=0===o.top&&0===o.left&&(d=Ed11y.firstVisibleParent(e.getRootNode().host))?d.getBoundingClientRect():o).left+document.body.scrollLeft,r=(t.style.setProperty("top",o.top+i+"px"),t.style.setProperty("left",o.left+"px"),s.offsetWidth),s=s.offsetHeight,l=window.innerWidth,p=i+window.innerHeight;let u="under",c=(o.top+s+i+50>p&&(1.5*r<l&&0<l-(d+r+90)&&o.top+130<window.innerHeight?u="right":o.top>s+15?u="above":1.5*r<l&&0<d-r-50?u="left":o.bottom+s>document.documentElement.clientHeight-50&&(u="above")),0),y=0;"under"===u?(r+o.left+20>l||o.left-20-r/5<0?r-15>o.left?(c=15-o.left,n.style.setProperty("left",Math.max(o.left,15)-9+"px")):(n.style.setProperty("left",r-26+"px"),c=31-r):(c=40-r/5,n.style.setProperty("left",r/5-34+"px")),n.dataset.direction="under",y=50):"above"===u?(y=-1*(s+15+Ed11y.theme.outlineWidth),n.style.setProperty("top",s),r+o.left+20>l||o.left-20-r/5<0?r-15>o.left?(c=15-o.left,n.style.setProperty("left",o.left-9+"px")):(n.style.setProperty("left",r-26+"px"),c=31-r):(c=40-r/5,n.style.setProperty("left",r/5-34+"px")),n.dataset.direction="above",n.style.setProperty("top",s+15+Ed11y.theme.outlineWidth+"px")):(p<(d=o.top+i+s)&&(l=-1*(y=p-(d+90))+7,l=Math.min(l,s-25),n.style.setProperty("top",l+"px")),"left"===u?(c=0-(r+17),n.style.setProperty("left",r-9+"px"),n.dataset.direction="left"):(c=50,n.dataset.direction="right")),t.style.setProperty("transform",`translate(${c}px, ${y}px)`)},Ed11y.baseCSS=`
744
+ :host{all: initial;}
745
+ .hidden{display:none;}
746
+ .wrapper{font-size:14px;line-height: 1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;}
747
+ `,Ed11y.clickTab=function(e){Ed11y.activateTab(e.target,!1)},Ed11y.togglePanel=function(){return Ed11y.doubleClickPrevent||(Ed11y.panel.classList.contains("active")&&Ed11y.panel.classList.contains("shut")?Ed11y.minimize():!0!==Ed11y.running&&(!(Ed11y.running=!0)===Ed11y.panel.classList.contains("active")?(Ed11y.onLoad=!1,Ed11y.showPanel=!0,Ed11y.checkAll()):Ed11y.reset())),Ed11y.doubleClickPrevent=!0,window.setTimeout(function(){Ed11y.doubleClickPrevent=!1},200),!1},Ed11y.showHeadingsPanel=function(){let a=Ed11y.panel.querySelector("#outline");Ed11y.headingOutline.length?(a.innerHTML="",Ed11y.headingOutline.forEach((e,t)=>{var i=document.createElement("ed11y-element-heading-label"),i=(i.dataset.ed11yHeadingOutline=t,i.setAttribute("id","ed11y-heading-"+t),i.setAttribute("tabindex","-1"),e[0].insertAdjacentElement("afterbegin",i),e[1]),n=10*i-10,s=document.createElement("li"),n=(s.classList.add("level"+i),s.style.setProperty("margin-left",n+"px"),document.createElement("a")),t=(n.setAttribute("href","#ed11y-heading-"+t),s.append(n),document.createElement("strong")),i=(t.textContent=`H${i}: `,n.append(t),document.createElement("span"));i.textContent=Ed11y.computeText(e[0]),n.append(i),e[2]&&(t=e[3]?"warning":"error",s.classList.add(t),(i=document.createElement("em")).classList.add("ed11y-small"),i.textContent=" "+e[2],n.append(i)),a.append(s)})):a.innerHTML="<p><em>No heading structure found.</em></p>"},Ed11y.switchPanel=function(e){switch(Ed11y.panel.querySelector(".content > div:not(.hidden)")?.classList.add("hidden"),Ed11y.panel.querySelector("[aria-selected=true]")?.setAttribute("aria-selected","false"),Ed11y.panel.querySelector("#"+e).setAttribute("aria-selected","true"),Ed11y.panel.querySelector("#"+e+"-tab")?.classList.remove("hidden"),Ed11y.findElements("reset","ed11y-element-heading-label, ed11y-element-alt"),Ed11y.elements.reset?.forEach(e=>{e.remove()}),e){case"alts":Ed11y.showAltPanel();break;case"headings":Ed11y.showHeadingsPanel();break;case"help":Ed11y.showHelpPanel()}},Ed11y.alignAlts=function(){Ed11y.findElements("altMark","ed11y-element-alt"),Ed11y.elements.altMark?.forEach(e=>{var t=e.dataset.ed11yImg;e.setAttribute("style","");let i=Ed11y.imageAlts[t][0];"IMG"!==i.tagName&&(i=i.querySelector("img"));var t=e.getClientRects(),t=i.getClientRects().left-t.left,n="auto"===(n=getComputedStyle(i).height)?i.offsetHeight:Math.max(i.offsetHeight,parseInt(n));e.setAttribute("style",`transform: translate(${t}px, 0px); height: ${n}px; width: ${i.offsetWidth}px;`)})},Ed11y.showAltPanel=function(){let s=Ed11y.panel.querySelector("#alt-list");Ed11y.imageAlts.length?(s.innerHTML="",Ed11y.imageAlts.forEach((e,t)=>{var i=document.createElement("ed11y-element-alt"),t=(i.dataset.ed11yImg=t,e[0].insertAdjacentElement("beforebegin",i),document.createElement("span")),i=(t.textContent=e[2],document.createElement("li")),n=(i.classList.add(e[3]),document.createElement("img"));n.setAttribute("src",e[1]),n.setAttribute("alt",""),i.append(n),i.append(t),s.append(i)}),Ed11y.alignAlts()):s.innerHTML="<p><em>No images found.</em></p>"},Ed11y.showHelpPanel=function(){Ed11y.panel.querySelector("#help-tab").innerHTML=Ed11y.M.panelHelp},Ed11y.buildJumpList=function(){Ed11y.findElements("jumpList","ed11y-element-result",!1),Ed11y.elements.jumpList.forEach((e,t)=>{e.dataset.ed11yJumpPosition=t})},Ed11y.setCurrentJump=function(){var e=Ed11y.elements.jumpList.length-1;let t=0,i=(1<Ed11y.totalCount&&Ed11y.panelJumpPrev.removeAttribute("hidden"),Ed11y.goto==e||Ed11y.goto>e?(t=0,Ed11y.nextText=Ed11y.M.buttonFirstContent):(t=parseInt(Ed11y.goto)+1,Ed11y.nextText=Ed11y.M.buttonNextContent),t-2);i<0&&(i=1+e+i),Ed11y.panelJumpNext.dataset.ed11yGoto=t,Ed11y.panelJumpPrev.dataset.ed11yGoto=i,window.setTimeout(function(){Ed11y.panelJumpNext.querySelector(".jump-next").textContent=Ed11y.nextText},250)},Ed11y.minimize=function(){var e="true"===Ed11y.panel.classList.contains("shut");Ed11y.panel.classList.toggle("shut"),!1==e&&window.setTimeout(function(){Ed11y.panelToggle.focus()},500)},Ed11y.windowResize=function(){!0===Ed11y.panel?.classList.contains("active")&&(Ed11y.alignAlts(),Ed11y.alignButtons());var e=Ed11y.getOpenTip();e&&Ed11y.alignTip(Ed11y.elements.openButton[0].shadowRoot.querySelector("button"),e)},Ed11y.escapeWatch=function(e){27===e.keyCode&&(e.target.closest("ed11y-element-panel")&&"true"===Ed11y.panelToggle.getAttribute("aria-expanded")?(Ed11y.panelToggle.focus(),Ed11y.panelToggle.click()):e.target.hasAttribute("data-ed11y-open")&&Ed11y.getOpenTip()&&(Ed11y.toggledFrom.focus(),Ed11y.elements.openButton[0].shadowRoot.querySelector("button").click()))},document.addEventListener("keyup",function(e){Ed11y.escapeWatch(e)}),Ed11y.activateTab=function(e,t){t=t||!0,Ed11y.deactivateTabs(),e.setAttribute("tabindex","0"),e.setAttribute("aria-selected","true");var i=e.getAttribute("aria-controls");Ed11y.panel.querySelector("#"+i).classList.remove("hidden"),t&&e.focus()},Ed11y.deactivateTabs=function(){Ed11y.panelTabs.forEach(e=>{e.setAttribute("tabindex","-1"),e.setAttribute("aria-selected","false")}),Ed11y.panel.querySelectorAll('[role="tabpanel"]').forEach(e=>{e.classList.add("hidden")})},Ed11y.getText=function(e){return e.textContent.replace(/[\n\r]+|[\s]{2,}/g," ").trim()},Ed11y.parents=function(e){var t=[];for(t.push(e);e&&e.parentElement&&"HTML"!==e.parentElement.tagName;)t.push(e.parentElement),e=e.parentElement;return t},Ed11y.computeAriaLabel=function(e,i=!1){var t=e.getAttribute("aria-labelledby");if(!i&&t){i=t.split(/\s+/);if(0<i.length){let t="";return i.forEach(e=>{e=document.querySelector("#"+CSS.escape(e));t+=e?Ed11y.computeText(e,1):""}),t}}return e.ariaLabel&&0<e.ariaLabel.trim().length?e.ariaLabel:"noAria"},Ed11y.wrapPseudoContent=function(e,t){var i=[];return i[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),i[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),i[0]="none"===i[0]?"":i[0].replace(/^"(.*)"$/,"$1"),i[1]="none"===i[1]?"":i[1].replace(/^"(.*)"$/,"$1")," "+i[0]+t+i[1]},Ed11y.nextTreeBranch=function(t){for(let e=0;e<1e3;e++){if(t.nextSibling())return t.previousNode();if(!t.parentNode())return!1}return!1},Ed11y.computeText=function(e,t=0){var i=Ed11y.computeAriaLabel(e,t);if("noAria"!==i)return i;let n="";if(!e.children.length)return!(n=Ed11y.wrapPseudoContent(e,e.textContent)).trim()&&e.hasAttribute("title")?e.getAttribute("title"):t?n:n.replace(/[\n\r]+|[\s]{2,}/g," ").trim();var s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let a=!1,o=!1,d=0;e:for(;s.nextNode();)if(d++,s.currentNode.nodeType===Node.TEXT_NODE)n+=" "+s.currentNode.nodeValue;else{if(a&&!s.currentNode.closest("a")&&(o===n&&(n+=a),a=!1,o=!1),s.currentNode.hasAttribute("aria-hidden")&&!(t&&d<3)){if(Ed11y.nextTreeBranch(s))continue;break}var r=Ed11y.computeAriaLabel(s.currentNode,t);if("noAria"!==r){if(n+=" "+r,Ed11y.nextTreeBranch(s))continue;break}switch(s.currentNode.tagName){case"STYLE":case"NOSCRIPT":if(Ed11y.nextTreeBranch(s))continue;break e;case"IMG":s.currentNode.hasAttribute("alt")&&(n+=s.currentNode.getAttribute("alt"));continue;case"SVG":case"svg":if("image"===s.currentNode.getAttribute("role")&&s.currentNode.hasAttribute("alt")&&(n+=Ed11y.wrapPseudoContent(s.currentNode,s.currentNode.getAttribute("alt")),!Ed11y.nextTreeBranch(s)))break e;continue;case"A":o=s.currentNode.hasAttribute("title")?(a=s.currentNode.getAttribute("title"),n):a=!1,n+=Ed11y.wrapPseudoContent(s.currentNode,"");break;default:n+=Ed11y.wrapPseudoContent(s.currentNode,"")}}return a&&!o&&(n+=" "+a),!n.trim()&&e.hasAttribute("title")?e.getAttribute("title"):t?n:n.replace(/[\n\r]+|[\s]{2,}/g," ").trim()},Ed11y.resetClass=function(e){e?.forEach(e=>{let t=e;Ed11y.findElements("reset","."+t),Ed11y.elements.reset?.forEach(e=>{e.classList.remove(t)})})},Ed11y.keyboardClick=function(e){switch(e.preventDefault(),e.keyCode){case 13:case 32:e.target.click()}},Ed11y.siblings=function(t){return null===t.parentNode?[]:Array.prototype.filter.call(t.parentNode.children,function(e){return e!==t})},Ed11y.nextUntil=function(e,t){let i=e.nextElementSibling;if(i){if(i.matches(t))return i;i=Ed11y.nextUntil(i,t)}return i},Ed11y.visibleElement=function(e){var t;if(e)return t=window.getComputedStyle(e),e.classList.contains("ed11y-ring-red")||e.classList.contains("ed11y-ring-yellow")?"none"!==t.getPropertyValue("display")&&"hidden"!==t.getPropertyValue("visibility")&&"0"!==t.getPropertyValue("opacity")&&!e.hasAttribute("hidden"):"none"!==t.getPropertyValue("display")&&"hidden"!==t.getPropertyValue("visibility")&&"0"!==t.getPropertyValue("opacity")&&0!==e.offsetWidth&&0!==e.offsetHeight&&!e.hasAttribute("hidden")},Ed11y.visible=function(e){return!!Ed11y.visibleElement(e)&&Ed11y.parents(e).every(e=>Ed11y.visibleElement(e))},Ed11y.firstVisibleParent=function(e){let t=e.parentElement;return!!t&&(Ed11y.visibleElement(t)?t:t=Ed11y.firstVisibleParent(t))},Ed11y.hiddenElementCheck=function(e){var t=window.getComputedStyle(e);return"none"!==t.getPropertyValue("display")&&"hidden"!==t.getPropertyValue("visibility")&&!e.hasAttribute("aria-hidden")&&!e.hasAttribute("hidden")},Ed11y.elementNotHidden=function(e){return!!Ed11y.hiddenElementCheck(e)&&Ed11y.parents(e).every(e=>Ed11y.hiddenElementCheck(e))},Ed11y.parentLink=function(e){return e.closest("a[href]")},Ed11y.getOpenTip=function(){return Ed11y.findElements("openButton",'ed11y-element-result[data-ed11y-open="true"]'),document.querySelector('ed11y-element-tip[data-ed11y-open="true"]')},Ed11y.focusActiveResult=function(){Ed11y.getOpenTip(),window.setTimeout(function(){Ed11y.elements.openButton[0]?.shadowRoot.querySelector("button").focus()},0)},Ed11y.srcMatchesOptions=function(e,i){if(0<i.length&&0<e?.length){let t=i.split(/\s*[\s,]\s*/).map(e=>"[src*='"+e+"']").join(", ");return Array.from(e).filter(e=>e.matches(t))}return[]},Ed11y.sanitizeForHTML=function(e){let t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(e).replace(/[&<>"'`=/]/g,function(e){return t[e]})},Ed11y.builder=function(e,t,i,n,s){let a=document.createElement(e);return t&&a.setAttribute("id",t),i&&("string"==typeof i?a.classList.add(i):i.forEach(e=>{a.classList.add(e)})),"object"==typeof n&&Object.entries(n).forEach(([e,t])=>{a.setAttribute(e,t)}),s&&(a.textContent=s),a},CSS.supports("selector(:is(body))")?Ed11y.initialize():console.warn(Ed11y.M.consoleNotSupported)}}