diff --git a/bookmarklet/v2-en.js b/bookmarklet/v2-en.js index e7a45a84..f083ab14 100644 --- a/bookmarklet/v2-en.js +++ b/bookmarklet/v2-en.js @@ -1 +1 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";const e="3.1.5";(()=>{const n=document.createElement("div");n.id="sa11y-loading";const t=n.attachShadow({mode:"open"}),o=document.createElement("div");o.classList.add("loader"),o.innerHTML='\n\n\n\x3c!-- Credit: https://codepen.io/aurer/pen/ZEJxpO --\x3e\n\n \n \n \n',t.appendChild(o),document.body.appendChild(n),new Promise(((n,t)=>{const o=document.createElement("link");o.rel="stylesheet",o.href=`https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@${e}/dist/css/sa11y.min.css`,o.onload=n,o.onerror=t,document.head.appendChild(o)})).then((()=>new Promise(((n,t)=>{const o=document.createElement("script");o.src=`https://cdn.jsdelivr.net/combine/gh/ryersondmp/sa11y@${e}/dist/js/lang/en.umd.min.js,gh/ryersondmp/sa11y@${e}/dist/js/sa11y.umd.min.js`,o.onload=n,o.onerror=t,document.body.appendChild(o)})))).then((()=>(()=>{const e=()=>{Sa11y.Lang.addI18n(Sa11yLangEn.strings),new Sa11y.Sa11y({autoDetectShadowComponents:!0,customChecks:!1,exportResultsPlugin:!0,detectSPArouting:!0})};if(window.location.href.includes("https://360.articulate.com/review/content")){const n=document.querySelector("iframe.player"),t=n.getAttribute("src");n&&t?window.confirm("Press OK to be redirected to a page where you can check the accessibility of the content. The page will open in a new tab.")&&window.open(t,"_blank"):e()}else e(),document.getElementById("sa11y-loading").remove()})())).catch((e=>new Error("Error loading Sa11y:",e)))})()})); +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";const e="3.2.0";(()=>{const n=document.createElement("div");n.id="sa11y-loading";const t=n.attachShadow({mode:"open"}),o=document.createElement("div");o.classList.add("loader"),o.innerHTML='\n\n\n\x3c!-- Credit: https://codepen.io/aurer/pen/ZEJxpO --\x3e\n\n \n \n \n',t.appendChild(o),document.body.appendChild(n),new Promise(((n,t)=>{const o=document.createElement("link");o.rel="stylesheet",o.href=`https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@${e}/dist/css/sa11y.min.css`,o.onload=n,o.onerror=t,document.head.appendChild(o)})).then((()=>new Promise(((n,t)=>{const o=document.createElement("script");o.src=`https://cdn.jsdelivr.net/combine/gh/ryersondmp/sa11y@${e}/dist/js/lang/en.umd.min.js,gh/ryersondmp/sa11y@${e}/dist/js/sa11y.umd.min.js`,o.onload=n,o.onerror=t,document.body.appendChild(o)})))).then((()=>(()=>{const e=()=>{Sa11y.Lang.addI18n(Sa11yLangEn.strings),new Sa11y.Sa11y({autoDetectShadowComponents:!0,customChecks:!1,exportResultsPlugin:!0,detectSPArouting:!0})};if(window.location.href.includes("https://360.articulate.com/review/content")){const n=document.querySelector("iframe.player"),t=n.getAttribute("src");n&&t?window.confirm("Press OK to be redirected to a page where you can check the accessibility of the content. The page will open in a new tab.")&&window.open(t,"_blank"):e()}else e(),document.getElementById("sa11y-loading").remove()})())).catch((e=>new Error("Error loading Sa11y:",e)))})()})); diff --git a/bookmarklet/v2.js b/bookmarklet/v2.js index 7fcc6cdb..b8d089f6 100644 --- a/bookmarklet/v2.js +++ b/bookmarklet/v2.js @@ -1 +1 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";const e="3.1.5";(()=>{const n=document.createElement("div");n.id="sa11y-loading";const t=n.attachShadow({mode:"open"}),o=document.createElement("div");o.classList.add("loader"),o.innerHTML='\n\n\n\x3c!-- Credit: https://codepen.io/aurer/pen/ZEJxpO --\x3e\n\n \n \n \n',t.appendChild(o),document.body.appendChild(n);const s=(document.documentElement.lang||"en").split("-");let i=s[0];const r=s[1]?s[1].toLowerCase():"";["bg","cs","da","de","el","en","es","et","fi","fr","hu","id","it","ja","ko","lt","lv","nb","nl","pl","pt","ro","sl","sk","sv","tr","uk","ua","zh"].includes(i)?"pt"===i?i="br"===r?"ptBR":"ptPT":"uk"===i?i="ua":"en"===i&&(i="us"===r?"enUS":"en"):i="en",new Promise(((n,t)=>{const o=document.createElement("link");o.rel="stylesheet",o.href=`https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@${e}/dist/css/sa11y.min.css`,o.onload=n,o.onerror=t,document.head.appendChild(o)})).then((()=>(n=>new Promise(((t,o)=>{const s=document.createElement("script");s.src=`https://cdn.jsdelivr.net/combine/gh/ryersondmp/sa11y@${e}/dist/js/lang/${n}.umd.min.js,gh/ryersondmp/sa11y@${e}/dist/js/sa11y.umd.min.js`,s.onload=t,s.onerror=o,document.body.appendChild(s)})))(i))).then((()=>(e=>{const n=()=>{const n=`Sa11yLang${e.charAt(0).toUpperCase()+e.slice(1)}`;Sa11y.Lang.addI18n(window[n].strings),new Sa11y.Sa11y({autoDetectShadowComponents:!0,customChecks:!1,exportResultsPlugin:!0,detectSPArouting:!0})};if(window.location.href.includes("https://360.articulate.com/review/content")){const e=document.querySelector("iframe.player"),t=e.getAttribute("src");e&&t?window.confirm("Press OK to be redirected to a page where you can check the accessibility of the content. The page will open in a new tab.")&&window.open(t,"_blank"):n()}else n(),document.getElementById("sa11y-loading").remove()})(i))).catch((e=>new Error("Error loading Sa11y:",e)))})()})); +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";const e="3.2.0";(()=>{const n=document.createElement("div");n.id="sa11y-loading";const t=n.attachShadow({mode:"open"}),o=document.createElement("div");o.classList.add("loader"),o.innerHTML='\n\n\n\x3c!-- Credit: https://codepen.io/aurer/pen/ZEJxpO --\x3e\n\n \n \n \n',t.appendChild(o),document.body.appendChild(n);const s=(document.documentElement.lang||"en").split("-");let i=s[0];const r=s[1]?s[1].toLowerCase():"";["bg","cs","da","de","el","en","es","et","fi","fr","hu","id","it","ja","ko","lt","lv","nb","nl","pl","pt","ro","sl","sk","sv","tr","uk","ua","zh"].includes(i)?"pt"===i?i="br"===r?"ptBR":"ptPT":"uk"===i?i="ua":"en"===i&&(i="us"===r?"enUS":"en"):i="en",new Promise(((n,t)=>{const o=document.createElement("link");o.rel="stylesheet",o.href=`https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@${e}/dist/css/sa11y.min.css`,o.onload=n,o.onerror=t,document.head.appendChild(o)})).then((()=>(n=>new Promise(((t,o)=>{const s=document.createElement("script");s.src=`https://cdn.jsdelivr.net/combine/gh/ryersondmp/sa11y@${e}/dist/js/lang/${n}.umd.min.js,gh/ryersondmp/sa11y@${e}/dist/js/sa11y.umd.min.js`,s.onload=t,s.onerror=o,document.body.appendChild(s)})))(i))).then((()=>(e=>{const n=()=>{const n=`Sa11yLang${e.charAt(0).toUpperCase()+e.slice(1)}`;Sa11y.Lang.addI18n(window[n].strings),new Sa11y.Sa11y({autoDetectShadowComponents:!0,customChecks:!1,exportResultsPlugin:!0,detectSPArouting:!0})};if(window.location.href.includes("https://360.articulate.com/review/content")){const e=document.querySelector("iframe.player"),t=e.getAttribute("src");e&&t?window.confirm("Press OK to be redirected to a page where you can check the accessibility of the content. The page will open in a new tab.")&&window.open(t,"_blank"):n()}else n(),document.getElementById("sa11y-loading").remove()})(i))).catch((e=>new Error("Error loading Sa11y:",e)))})()})); diff --git a/dist/css/control-panel.css b/dist/css/control-panel.css index adcf2eb7..cabd96b1 100644 --- a/dist/css/control-panel.css +++ b/dist/css/control-panel.css @@ -173,7 +173,7 @@ audio { inset-inline-start: 42px; } #panel.top-right, #panel.top-left { - top: 45px; + top: 35px; bottom: unset; } #panel.active { @@ -225,6 +225,11 @@ audio { border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } +.top-left #panel-alert-content, +.top-right #panel-alert-content { + border: 0; +} + #panel-alert-preview .close-tooltip { display: none; } @@ -282,7 +287,7 @@ strong { font-weight: 600; } -a:not(#outline-list a) { +a:not(#outline-list a):not(.edit) { color: var(--sa11y-hyperlink); text-decoration: underline; cursor: pointer; @@ -434,6 +439,7 @@ hr { /* 9. Outline and Settings shared styles */ /* ***************************************** */ #page-issues, +#images-panel, #settings-panel, #outline-panel { display: none; @@ -442,6 +448,7 @@ hr { } #page-issues.active, +#images-panel.active, #settings-panel.active, #outline-panel.active { display: block; @@ -453,13 +460,24 @@ hr { text-align: start; } +#about-content { + padding-top: 5px; +} +#about-content p { + display: block; + margin-block-end: 1em; +} + #page-issues-content, +#images-content, #settings-content, #outline-content { padding: 0 15px 10px; border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } .top-right #page-issues-content, .top-left #page-issues-content, +.top-right #images-content, +.top-left #images-content, .top-right #settings-content, .top-left #settings-content, .top-right #outline-content, @@ -472,6 +490,13 @@ hr { overflow-y: auto; } +#settings-content { + max-height: 400px; + overflow-y: auto; +} + +/* Note to self: stop tinkering with the max-height. This is the max height that will accommodate the Page Issues and Readability panel on your average 13" screen. */ +#images-content, #outline-content { max-height: 250px; overflow-y: auto; @@ -528,34 +553,82 @@ hr { margin-inline-start: 75px; } -/* **************************************** */ -/* 11. Page Outline extras */ -/* **************************************** */ -/* Badges */ -.badge { - display: inline; - min-width: 10px; - padding: 2px 5px; - font-size: 13px; - font-weight: 700; +/* ***************************************** */ +/* 10A. Images list */ +/* ***************************************** */ +#images-list { + display: block; + padding: 0; + margin: 0; +} +#images-list li { + display: block; + width: 100%; + margin: 15px 0; + overflow: hidden; + list-style-type: none; + border-bottom: 1px solid var(--sa11y-panel-bg-splitter); +} +#images-list li:first-child { + margin-top: 5px; +} +#images-list li:last-child { + margin-bottom: 0; + border: none; +} +#images-list li .alt { + padding: 2px 5px 10px; +} +#images-list li .edit { + position: relative; + padding: 4px 7px; color: var(--sa11y-panel-primary); - text-align: center; - white-space: nowrap; - background-color: var(--sa11y-panel-badge); - border: 1px solid transparent; - border-radius: 10px; + text-decoration: none; + cursor: pointer; + background: var(--sa11y-panel-bg-secondary); + border: 2px solid var(--sa11y-button-outline); + border-radius: 5px; } - -.error-badge { - color: var(--sa11y-error-text); - background: var(--sa11y-error); +#images-list li .edit:hover, #images-list li .edit:focus { + background-color: var(--sa11y-shortcut-hover); } - -.warning-badge { - color: var(--sa11y-panel-bg); - background: var(--sa11y-yellow-text); +#images-list li .edit::before { + position: absolute; + top: -10px; + right: -10px; + bottom: -10px; + left: -10px; + content: ""; +} +#images-list li .badge { + margin-inline-end: 4px; +} +#images-list li img { + float: inline-start; + max-width: 110px; + margin-inline-end: 10px; + margin-block-end: 15px; + border-radius: 5px; +} +#images-list li.warning .alt { + color: var(--sa11y-yellow-text); +} +#images-list li.warning img { + border: 5px solid var(--sa11y-yellow-text); +} +#images-list li.error .alt { + color: var(--sa11y-error); +} +#images-list li.error img { + border: 5px solid var(--sa11y-error); +} +#images-list li.good img { + border: 5px solid var(--sa11y-panel-badge); } +/* **************************************** */ +/* 11. Page Outline extras */ +/* **************************************** */ /* Error icon */ .error-icon { display: inline-block; @@ -600,8 +673,7 @@ hr { border-radius: 0 0 4px 4px; } -#settings-toggle, -#outline-toggle { +#panel-controls button { position: relative; display: block; width: 100%; @@ -618,26 +690,18 @@ hr { background-color: var(--sa11y-panel-bg-secondary); border-top: 1px solid var(--sa11y-panel-bg-splitter); border-bottom: 1px solid var(--sa11y-panel-bg-splitter); + border-inline-end: 1px solid var(--sa11y-panel-bg-splitter); outline: 0; opacity: 1; transition: background 0.2s; } -#settings-toggle:hover, #settings-toggle.settings-active, #settings-toggle.outline-active, -#outline-toggle:hover, -#outline-toggle.settings-active, -#outline-toggle.outline-active { +#panel-controls button:hover, #panel-controls button.active { background-color: var(--sa11y-shortcut-hover); } -#settings-toggle.settings-active, #settings-toggle.outline-active, -#outline-toggle.settings-active, -#outline-toggle.outline-active { +#panel-controls button.active { font-weight: 500; } -#outline-toggle { - border-inline-end: 1px solid var(--sa11y-panel-bg-splitter); -} - #export-results-mode, label { display: inline-block; @@ -746,6 +810,13 @@ label:not(#colour-filter-mode, #export-results-mode) { display: block; } +.top-left.has-page-issues #page-issues, +.top-right.has-page-issues #page-issues { + /* Hide double border. */ + margin-top: -1px; + border-top: 1px solid var(--sa11y-panel-bg-splitter); +} + /* ************************************* */ /* 15. Colour filters plugin */ /* ************************************* */ @@ -815,16 +886,19 @@ label:not(#colour-filter-mode, #export-results-mode) { } } +.select-dropdown { + position: relative; + display: flex; + align-items: center; +} + .select-dropdown:after { position: absolute; - width: 0; - height: 0; - margin-top: 22.5px; content: " "; border-top: 5px solid var(--sa11y-setting-switch-bg-off); border-right: 5px solid transparent; border-left: 5px solid transparent; - inset-inline-end: 25px; + inset-inline-end: 14px; } #colour-filter-select { @@ -872,11 +946,20 @@ label:not(#colour-filter-mode, #export-results-mode) { opacity: 1; } +.top-left #readability-content, +.top-right #readability-content { + border-top: 1px solid var(--sa11y-panel-bg-splitter); +} + +.left #readability-content, +.right #readability-content { + border-bottom: 1px solid var(--sa11y-panel-bg-splitter); +} + #readability-content { width: 100%; padding: 10px 15px; color: var(--sa11y-panel-primary); - border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } #readability-details { @@ -944,6 +1027,15 @@ label:not(#colour-filter-mode, #export-results-mode) { padding: 0 15px !important; border-bottom: 0 !important; } +.hide-settings-border li:not(#colour-filter-item) { + display: none !important; +} +.hide-settings-border #about-content { + display: none; +} +.hide-settings-border.scrollable::before { + all: unset; +} /* ***************************************** */ /* 19. Scrollbar styling */ @@ -970,14 +1062,24 @@ label:not(#colour-filter-mode, #export-results-mode) { bottom: auto; left: 0; z-index: -1; + width: 100%; height: 250px; content: ""; - background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 70%, var(--sa11y-panel-scrollable) 100%); + background: linear-gradient(180deg, rgba(0, 0, 0, 0) 70%, var(--sa11y-panel-scrollable) 100%); background-position: bottom; transition: opacity 1s ease-in-out; animation: fade 1s ease-in-out; } +#settings-content.scrollable::before { + height: 400px; +} + +.top-right .scrollable::before, +.top-left .scrollable::before { + border-radius: 5px; +} + #page-issues-content.scrollable::before { height: 160px; } @@ -1019,7 +1121,7 @@ label:not(#colour-filter-mode, #export-results-mode) { /* 21. Internationalization (i18n) */ /* ***************************************** */ #panel { - width: 375px; + width: 400px; } #container:lang(en) #panel { @@ -1032,7 +1134,7 @@ label:not(#colour-filter-mode, #export-results-mode) { #container:lang(de) #panel, #container:lang(sv) #panel, #container:lang(zh) #panel { - width: 335px; + width: 350px; } #container:lang(bg) .switch:not(#export-results-item *), diff --git a/dist/css/control-panel.min.css b/dist/css/control-panel.min.css index 0f637cf7..b9683cd0 100644 --- a/dist/css/control-panel.min.css +++ b/dist/css/control-panel.min.css @@ -1 +1 @@ -a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px} \ No newline at end of file +a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px} \ No newline at end of file diff --git a/dist/css/shared.css b/dist/css/shared.css index 85386987..3139f4c2 100644 --- a/dist/css/shared.css +++ b/dist/css/shared.css @@ -51,16 +51,39 @@ kbd, .red-text { font-family: var(--sa11y-font-face); - font-size: var(--sa11y-normal-text); color: var(--sa11y-red-text); } .yellow-text { font-family: var(--sa11y-font-face); - font-size: var(--sa11y-normal-text); color: var(--sa11y-yellow-text); } +/* Badges */ +.badge { + display: inline; + min-width: 10px; + padding: 2px 3px; + font-size: 13px; + font-weight: 700; + color: var(--sa11y-panel-primary); + text-align: center; + white-space: nowrap; + background-color: var(--sa11y-panel-badge); + border: 1px solid transparent; + border-radius: 10px; +} + +.error-badge { + color: var(--sa11y-error-text); + background: var(--sa11y-error); +} + +.warning-badge { + color: var(--sa11y-panel-bg); + background: var(--sa11y-yellow-text); +} + /* ***************************************** */ /* Close button */ /* ***************************************** */ @@ -112,14 +135,13 @@ kbd, #container [tabindex="0"]:focus, #container [tabindex="-1"]:focus, #container select:focus, -#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus, +#container button:not(#panel-controls button):not(.switch):focus, #container a:focus { outline: 0; box-shadow: 0 0 0 5px var(--sa11y-focus-color); } #container .switch:focus, -#container #settings-toggle:focus, -#container #outline-toggle:focus { +#container #panel-controls button:focus { outline: 0; box-shadow: inset 0 0 0 4px var(--sa11y-focus-color); } @@ -131,8 +153,7 @@ kbd, #container [tabindex="-1"]:focus:not(:focus-visible), #container button:focus:not(:focus-visible), #container select:focus:not(:focus-visible), -#container #settings-toggle:focus:not(:focus-visible), -#container #outline-toggle:focus:not(:focus-visible) { +#container #panel-controls button:focus:not(:focus-visible) { outline: 0; box-shadow: none; } @@ -141,7 +162,7 @@ kbd, * C) :focus-visible is supported. **/ #container a:focus-visible, -#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible, +#container button:not(#panel-controls button):not(.switch):focus-visible, #container select:focus-visible, #container [tabindex="0"]:focus-visible, #container [tabindex="-1"]:focus-visible { @@ -149,8 +170,7 @@ kbd, box-shadow: 0 0 0 5px var(--sa11y-focus-color); } #container .switch:focus-visible, -#container #settings-toggle:focus-visible, -#container #outline-toggle:focus-visible { +#container #panel-controls button:focus-visible { outline: 0; box-shadow: inset 0 0 0 4px var(--sa11y-focus-color); } @@ -159,8 +179,7 @@ kbd, /* High contrast focus styles */ /* ***************************************** */ @media screen and (forced-colors: active) { - #outline-toggle:focus, - #settings-toggle:focus { + #panel-controls button:focus { border: inset 3px solid transparent; } .close-btn:focus { diff --git a/dist/css/shared.min.css b/dist/css/shared.min.css index a22e827b..6c3df9d8 100644 --- a/dist/css/shared.min.css +++ b/dist/css/shared.min.css @@ -1 +1 @@ -.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}} \ No newline at end of file +.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}} \ No newline at end of file diff --git a/dist/js/lang/bg.js b/dist/js/lang/bg.js index 6d64a8ad..75963f8b 100644 --- a/dist/js/lang/bg.js +++ b/dist/js/lang/bg.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var bg = { OFF: 'Изключено', ALERT_TEXT: 'Предупреждение', ALERT_CLOSE: 'Затвори', - OUTLINE: 'Конспект на страницата', + OUTLINE: 'Описание', + ALT: 'АЛТ', + IMAGES: 'Изображения', + EDIT: 'Редактиране', + IMAGES_NOT_FOUND: 'Изображения не са намерени.', + DECORATIVE: 'Декоративен', + MISSING: 'Липсващ', PAGE_ISSUES: 'Проблеми на страницата', SETTINGS: 'Настройки', CONTRAST: 'Контраст', @@ -160,7 +166,7 @@ var bg = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Недостатъчно съдържание за изчисляване на оценката за четимост.', HEADING_NON_CONSECUTIVE_LEVEL: 'Използвано е непоследователно ниво на заглавието. Заглавията никога не трябва да прескачат нива или да преминават от Heading %(prevLevel) към Heading %(level).', HEADING_EMPTY: 'Намерено е празно заглавие! За да го поправите, изтрийте този ред или променете формата му от Heading %(level) на Normal или Paragraph.', - HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
Брой символи: %(headingLength)', + HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
%(HEADING_LENGTH) Символа', HEADING_FIRST: 'Първото заглавие на страницата обикновено трябва да бъде заглавие 1 или заглавие 2. Заглавие 1 трябва да е началото на раздела с основно съдържание и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_MISSING_ONE: 'Липсва заглавие 1. Заглавие 1 трябва да е началото на основната област на съдържанието и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_EMPTY_WITH_IMAGE: 'Заглавието няма текст, но съдържа изображение. Ако това не е заглавие, променете формата му от Heading %(level) на Normal или Paragraph. В противен случай, моля, добавете alt текст към изображението, ако то не е декоративно.', @@ -169,37 +175,37 @@ var bg = { LINK_EMPTY: 'Премахване на празни връзки без текст.', LINK_EMPTY_LABELLEDBY: 'Линкът има стойност за aria-labelledby, която е празна или не съвпада със стойността на атрибута id на друг елемент на страницата.', LINK_EMPTY_LINK_NO_LABEL: 'Връзката няма различим текст, който да е видим за екранни четци и други помощни технологии. За поправка:
  • Прибавете кратък текст, който описва къде ще ви отведе връзката.
  • Ако това е връзка с икона или SVG, вероятно липсва описателен етикет.
  • Ако смятате, че тази връзка е грешка, дължаща се на грешка при копиране/вмъкване, помислете за нейното изтриване.
  • ', - LINK_LABEL: 'Етикет на връзката: %(sanitizedText)', + LINK_LABEL: 'Етикет на връзката: %(TEXT)', LINK_STOPWORD: 'Текстът на връзката може да не е достатъчно описателен извън контекста: %(грешка)
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен. Избягвайте често срещани думи като "кликнете тук" или "научете повече"', LINK_BEST_PRACTICES: 'Помислете за замяна на текста на връзката: %(грешка)
    ', - LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', + LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', LINK_DOI: 'За уеб страници или само онлайн ресурси, Ръководството за стила на АПА препоръчва да се използват описателни връзки, като URL адресът или DOI на произведението се обгръща около заглавието му. По-дългите, по-малко разбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощни технологии.', NEW_TAB_WARNING: 'Връзката се отваря в нов раздел или прозорец без предупреждение. Това може да бъде дезориентиращо, особено за хора, които трудно възприемат визуално съдържание. Второ, не винаги е добра практика да контролирате преживяването на някого или да вземате решения вместо него. Посочете, че връзката се отваря в нов прозорец в рамките на текста на връзката
    Съвет! Научете най-добрите практики: отваряне на връзки в нови прозорци и раздели на браузъра.', - FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
    Пример: Изпълнителен доклад (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(sanitizedText)', + FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
    Пример: Изпълнителен доклад (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Изображението се използва като връзка със заобикалящ го текст, въпреки че атрибутът alt трябва да бъде маркиран като декоративен или нулев.', MISSING_ALT_LINK_MESSAGE: 'Изображението се използва като връзка, но липсва алтертекст! Моля, уверете се, че алтертекстът описва мястото, до което води връзката.', MISSING_ALT_MESSAGE: 'Липсващ алт текст! Ако изображението предава история, настроение или важна информация, не забравяйте да го опишете.', - LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
    Алттекст: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
    Алт текст: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
    Алттекст: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(altText)', - ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно.
    Алттекст: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
    АЛТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
    АЛТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
    АЛТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно.
    АЛТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Връзката има aria-hidden="true", но все още може да се фокусира с клавиатурата. Ако намерите, че връзката е излишна или дублирана, добавете също tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Изображението в линка е маркирано като декоративно и няма текст на линка. Моля, добавете alt текст към изображението, който описва предназначението на връзката.', LINK_IMAGE_HAS_TEXT: 'Изображението е маркирано като декоративно, въпреки че връзката използва околния текст като описателен етикет.', - LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
    Алт текст (%(altLength) символи): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
    Алт текст: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
    Алттекст: %(altText)
    Етикет на връзката: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
    АЛТ %(altLength) Символа %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
    АЛТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
    АЛТ %(ALT_TEXT)
    Етикет на връзката: %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии.
    Въпреки че е предоставен заглавие, в повечето случаи изображението трябва да има и alt текст. Научете повече: alt срещу figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти. Learn more: alt срещу figcaption.
    Алттекст: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти. Learn more: alt срещу figcaption.
    АЛТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии. Ако изображението предава история, настроение или важна информация - не забравяйте да добавите alt текст.', - IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
    Алттекст (%(altLength) знаци): %(altText)', - IMAGE_PASS: 'Алттекст: %(altText)', + IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
    АЛТ %(altLength) Символа %(ALT_TEXT)', + IMAGE_PASS: 'АЛТ %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'В бутона за изображения липсва текст alt. Моля, добавете alt текст, за да предоставите достъпно име. Например: Издирване или Изпращане.', LABELS_INPUT_RESET_MESSAGE: 'Бутоните за нулиране не трябва да се използват, освен ако не са изрично необходими, тъй като е лесно да бъдат активирани по погрешка.
    Съвет! Научете защо бутоните за нулиране и отмяна създават проблеми с ползваемостта.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
    Етикет за вход: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
    Етикет за вход %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Няма етикет, свързан с този вход. Добавете атрибут for към етикета, който съответства на id на този вход.
    Идентификаторът на този вход е: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Няма етикет, свързан с този вход. Моля, добавете id към този вход и добавете съответстващ атрибут for към етикета.', EMBED_VIDEO: 'Моля, уверете се, че всички видеоклипове имат затворени субтитри. Осигуряването на субтитри за цялото аудио и видео съдържание е задължително изискване на ниво А. Субтитрите подпомагат хората с D/глухота или с увреден слух.', @@ -208,15 +214,15 @@ var bg = { EMBED_MISSING_TITLE: 'Вграденото съдържание изисква достъпно име, което описва съдържанието му. Моля, посочете уникален атрибут title или aria-label на елемента iframe. Научете повече за iFrames..', EMBED_GENERAL_WARNING: 'Невъзможно е да се провери вграденото съдържание. Моля, уверете се, че изображенията имат alt текст, видеоклиповете имат надписи, текстът е достатъчно контрастен, а интерактивните компоненти са достъпни от клавиатурата.', EMBED_UNFOCUSABLE: '<iframe> с фокусируеми елементи не трябва да има tabindex="-1". Вграденото съдържание няма да бъде достъпно с клавиатурата.', - QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
    Тази връзка сочи към:
    %(el)', + QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
    Тази връзка сочи към:
    %(LINK)', QA_IN_PAGE_LINK: 'Счупена връзка към същата страница. Целта на връзката не съответства на никакъв елемент на тази страница.', QA_BAD_ITALICS: 'Таговете за удебелен шрифт и курсив имат семантично значение и не трябва да се използват за подчертаване на цели параграфи. Удебеленият текст трябва да се използва за силно подчертаване на дадена дума или фраза. Курсивът трябва да се използва за подчертаване на собствени имена (т.е. заглавия на книги и статии), чужди думи, кавички. Дългите цитати трябва да се форматират като блок-цитат.', QA_PDF: 'Невъзможност за проверка на PDF файловете за достъпност. PDF файловете се считат за уеб съдържание и също трябва да бъдат достъпни. PDF файловете често съдържат проблеми за хора, които използват екранни четци (липсващи структурни тагове или липсващи етикети на полетата на формулярите), и за хора със слабо зрение (текстът не се пренарежда при увеличаване). В противен случай, моля, проверете PDF за достъпност в Acrobat DC.', QA_DOCUMENT: 'Не мога да проверя документа за достъпност. Свързаните документи се считат за уеб съдържание и също трябва да бъдат достъпни. Моля, прегледайте ръчно този документ. ', QA_PAGE_LANGUAGE: 'Езикът на страницата не е обявен! Моля, декларирайте езика в HTML тага.', QA_PAGE_TITLE: 'Липсващо заглавие на страницата! Моля, посочете заглавие на страницата.', - QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(sanitizedText)
    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', - QA_FAKE_HEADING: 'Това заглавие ли е? %(boldtext)
    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', + QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(TEXT)
    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', + QA_FAKE_HEADING: 'Това заглавие ли е? %(TEXT)
    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', QA_SHOULD_BE_LIST: 'Опитвате се да създадете списък? Намерен е възможен елемент от списък: %(firstPrefix)
    Уверете се, че използвате семантични списъци, като вместо това използвате бутоните за форматиране на курсив или число. Когато се използва семантичен списък, помощните технологии могат да предадат информация като общия брой елементи и относителната позиция на всеки елемент в списъка. Научете повече за семантичните списъци.', QA_UPPERCASE_WARNING: 'Намерени са всички главни букви. Някои екранни четци могат да интерпретират текста с главни букви като акроним и да четат всяка буква поотделно. Освен това някои хора смятат, че всички главни букви се четат по-трудно и могат да създадат впечатлението, че се крещи.', QA_DUPLICATE_ID: 'Намерен е дубликат на ID. Известно е, че грешките с дублиращи се идентификатори причиняват проблеми на помощните технологии, когато те се опитват да взаимодействат със съдържанието.
    Моля, премахнете или променете следния ID: %(id)', @@ -225,9 +231,9 @@ var bg = { TABLES_MISSING_HEADINGS: 'Липсват заглавия на таблици! Достъпните таблици се нуждаят от HTML маркировка, която обозначава клетките със заглавия и клетките с данни и определя тяхната връзка. Тази информация осигурява контекст за хората, които използват помощни технологии. Таблиците трябва да се използват само за таблични данни.
    Научете повече за достъпните таблици.', TABLES_SEMANTIC_HEADING: 'Семантичните заглавия, като например Heading 2 или Heading 3, трябва да се използват само за части от съдържанието; не в HTML таблици. Вместо това посочвайте заглавия на таблици, като използвате елемента <th>.
    Научете повече за достъпните таблици.', TABLES_EMPTY_HEADING: 'Открито е празно заглавие на таблица! Заглавията на таблиците никога не трябва да са празни. Важно е да се обозначат заглавията на редовете и/или колоните, за да се предаде тяхната връзка. Тази информация предоставя контекст на хората, които използват помощни технологии. Моля, имайте предвид, че таблиците трябва да се използват само за таблични данни.
    Научете повече за достъпните таблици.', - CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношението на контраста е %(cratio) за следния текст: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Моля, прегледайте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Контрастно съотношение: %(cratio)', + CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношение на контраста %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Моля, прегледайте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношение на контраста %(RATIO)', }, }; diff --git a/dist/js/lang/bg.umd.js b/dist/js/lang/bg.umd.js index 5b120d6c..3cf912a4 100644 --- a/dist/js/lang/bg.umd.js +++ b/dist/js/lang/bg.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Изключено', ALERT_TEXT: 'Предупреждение', ALERT_CLOSE: 'Затвори', - OUTLINE: 'Конспект на страницата', + OUTLINE: 'Описание', + ALT: 'АЛТ', + IMAGES: 'Изображения', + EDIT: 'Редактиране', + IMAGES_NOT_FOUND: 'Изображения не са намерени.', + DECORATIVE: 'Декоративен', + MISSING: 'Липсващ', PAGE_ISSUES: 'Проблеми на страницата', SETTINGS: 'Настройки', CONTRAST: 'Контраст', @@ -166,7 +172,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Недостатъчно съдържание за изчисляване на оценката за четимост.', HEADING_NON_CONSECUTIVE_LEVEL: 'Използвано е непоследователно ниво на заглавието. Заглавията никога не трябва да прескачат нива или да преминават от Heading %(prevLevel) към Heading %(level).', HEADING_EMPTY: 'Намерено е празно заглавие! За да го поправите, изтрийте този ред или променете формата му от Heading %(level) на Normal или Paragraph.', - HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
    Брой символи: %(headingLength)', + HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
    %(HEADING_LENGTH) Символа', HEADING_FIRST: 'Първото заглавие на страницата обикновено трябва да бъде заглавие 1 или заглавие 2. Заглавие 1 трябва да е началото на раздела с основно съдържание и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_MISSING_ONE: 'Липсва заглавие 1. Заглавие 1 трябва да е началото на основната област на съдържанието и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_EMPTY_WITH_IMAGE: 'Заглавието няма текст, но съдържа изображение. Ако това не е заглавие, променете формата му от Heading %(level) на Normal или Paragraph. В противен случай, моля, добавете alt текст към изображението, ако то не е декоративно.', @@ -175,37 +181,37 @@ LINK_EMPTY: 'Премахване на празни връзки без текст.', LINK_EMPTY_LABELLEDBY: 'Линкът има стойност за aria-labelledby, която е празна или не съвпада със стойността на атрибута id на друг елемент на страницата.', LINK_EMPTY_LINK_NO_LABEL: 'Връзката няма различим текст, който да е видим за екранни четци и други помощни технологии. За поправка:
  • Прибавете кратък текст, който описва къде ще ви отведе връзката.
  • Ако това е връзка с икона или SVG, вероятно липсва описателен етикет.
  • Ако смятате, че тази връзка е грешка, дължаща се на грешка при копиране/вмъкване, помислете за нейното изтриване.
  • ', - LINK_LABEL: 'Етикет на връзката: %(sanitizedText)', + LINK_LABEL: 'Етикет на връзката: %(TEXT)', LINK_STOPWORD: 'Текстът на връзката може да не е достатъчно описателен извън контекста: %(грешка)
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен. Избягвайте често срещани думи като "кликнете тук" или "научете повече"', LINK_BEST_PRACTICES: 'Помислете за замяна на текста на връзката: %(грешка)
    ', - LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', + LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', LINK_DOI: 'За уеб страници или само онлайн ресурси, Ръководството за стила на АПА препоръчва да се използват описателни връзки, като URL адресът или DOI на произведението се обгръща около заглавието му. По-дългите, по-малко разбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощни технологии.', NEW_TAB_WARNING: 'Връзката се отваря в нов раздел или прозорец без предупреждение. Това може да бъде дезориентиращо, особено за хора, които трудно възприемат визуално съдържание. Второ, не винаги е добра практика да контролирате преживяването на някого или да вземате решения вместо него. Посочете, че връзката се отваря в нов прозорец в рамките на текста на връзката
    Съвет! Научете най-добрите практики: отваряне на връзки в нови прозорци и раздели на браузъра.', - FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
    Пример: Изпълнителен доклад (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(sanitizedText)', + FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
    Пример: Изпълнителен доклад (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Изображението се използва като връзка със заобикалящ го текст, въпреки че атрибутът alt трябва да бъде маркиран като декоративен или нулев.', MISSING_ALT_LINK_MESSAGE: 'Изображението се използва като връзка, но липсва алтертекст! Моля, уверете се, че алтертекстът описва мястото, до което води връзката.', MISSING_ALT_MESSAGE: 'Липсващ алт текст! Ако изображението предава история, настроение или важна информация, не забравяйте да го опишете.', - LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
    Алттекст: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
    Алт текст: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
    Алттекст: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(altText)', - ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно.
    Алттекст: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
    АЛТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
    АЛТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
    АЛТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно.
    АЛТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Връзката има aria-hidden="true", но все още може да се фокусира с клавиатурата. Ако намерите, че връзката е излишна или дублирана, добавете също tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Изображението в линка е маркирано като декоративно и няма текст на линка. Моля, добавете alt текст към изображението, който описва предназначението на връзката.', LINK_IMAGE_HAS_TEXT: 'Изображението е маркирано като декоративно, въпреки че връзката използва околния текст като описателен етикет.', - LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
    Алт текст (%(altLength) символи): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
    Алт текст: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
    Алттекст: %(altText)
    Етикет на връзката: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
    АЛТ %(altLength) Символа %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
    АЛТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
    АЛТ %(ALT_TEXT)
    Етикет на връзката: %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии.
    Въпреки че е предоставен заглавие, в повечето случаи изображението трябва да има и alt текст. Научете повече: alt срещу figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти. Learn more: alt срещу figcaption.
    Алттекст: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти. Learn more: alt срещу figcaption.
    АЛТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии. Ако изображението предава история, настроение или важна информация - не забравяйте да добавите alt текст.', - IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
    Алттекст (%(altLength) знаци): %(altText)', - IMAGE_PASS: 'Алттекст: %(altText)', + IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
    АЛТ %(altLength) Символа %(ALT_TEXT)', + IMAGE_PASS: 'АЛТ %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'В бутона за изображения липсва текст alt. Моля, добавете alt текст, за да предоставите достъпно име. Например: Издирване или Изпращане.', LABELS_INPUT_RESET_MESSAGE: 'Бутоните за нулиране не трябва да се използват, освен ако не са изрично необходими, тъй като е лесно да бъдат активирани по погрешка.
    Съвет! Научете защо бутоните за нулиране и отмяна създават проблеми с ползваемостта.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
    Етикет за вход: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
    Етикет за вход %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Няма етикет, свързан с този вход. Добавете атрибут for към етикета, който съответства на id на този вход.
    Идентификаторът на този вход е: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Няма етикет, свързан с този вход. Моля, добавете id към този вход и добавете съответстващ атрибут for към етикета.', EMBED_VIDEO: 'Моля, уверете се, че всички видеоклипове имат затворени субтитри. Осигуряването на субтитри за цялото аудио и видео съдържание е задължително изискване на ниво А. Субтитрите подпомагат хората с D/глухота или с увреден слух.', @@ -214,15 +220,15 @@ EMBED_MISSING_TITLE: 'Вграденото съдържание изисква достъпно име, което описва съдържанието му. Моля, посочете уникален атрибут title или aria-label на елемента iframe. Научете повече за iFrames..', EMBED_GENERAL_WARNING: 'Невъзможно е да се провери вграденото съдържание. Моля, уверете се, че изображенията имат alt текст, видеоклиповете имат надписи, текстът е достатъчно контрастен, а интерактивните компоненти са достъпни от клавиатурата.', EMBED_UNFOCUSABLE: '<iframe> с фокусируеми елементи не трябва да има tabindex="-1". Вграденото съдържание няма да бъде достъпно с клавиатурата.', - QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
    Тази връзка сочи към:
    %(el)', + QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
    Тази връзка сочи към:
    %(LINK)', QA_IN_PAGE_LINK: 'Счупена връзка към същата страница. Целта на връзката не съответства на никакъв елемент на тази страница.', QA_BAD_ITALICS: 'Таговете за удебелен шрифт и курсив имат семантично значение и не трябва да се използват за подчертаване на цели параграфи. Удебеленият текст трябва да се използва за силно подчертаване на дадена дума или фраза. Курсивът трябва да се използва за подчертаване на собствени имена (т.е. заглавия на книги и статии), чужди думи, кавички. Дългите цитати трябва да се форматират като блок-цитат.', QA_PDF: 'Невъзможност за проверка на PDF файловете за достъпност. PDF файловете се считат за уеб съдържание и също трябва да бъдат достъпни. PDF файловете често съдържат проблеми за хора, които използват екранни четци (липсващи структурни тагове или липсващи етикети на полетата на формулярите), и за хора със слабо зрение (текстът не се пренарежда при увеличаване). В противен случай, моля, проверете PDF за достъпност в Acrobat DC.', QA_DOCUMENT: 'Не мога да проверя документа за достъпност. Свързаните документи се считат за уеб съдържание и също трябва да бъдат достъпни. Моля, прегледайте ръчно този документ. ', QA_PAGE_LANGUAGE: 'Езикът на страницата не е обявен! Моля, декларирайте езика в HTML тага.', QA_PAGE_TITLE: 'Липсващо заглавие на страницата! Моля, посочете заглавие на страницата.', - QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(sanitizedText)
    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', - QA_FAKE_HEADING: 'Това заглавие ли е? %(boldtext)
    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', + QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(TEXT)
    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', + QA_FAKE_HEADING: 'Това заглавие ли е? %(TEXT)
    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', QA_SHOULD_BE_LIST: 'Опитвате се да създадете списък? Намерен е възможен елемент от списък: %(firstPrefix)
    Уверете се, че използвате семантични списъци, като вместо това използвате бутоните за форматиране на курсив или число. Когато се използва семантичен списък, помощните технологии могат да предадат информация като общия брой елементи и относителната позиция на всеки елемент в списъка. Научете повече за семантичните списъци.', QA_UPPERCASE_WARNING: 'Намерени са всички главни букви. Някои екранни четци могат да интерпретират текста с главни букви като акроним и да четат всяка буква поотделно. Освен това някои хора смятат, че всички главни букви се четат по-трудно и могат да създадат впечатлението, че се крещи.', QA_DUPLICATE_ID: 'Намерен е дубликат на ID. Известно е, че грешките с дублиращи се идентификатори причиняват проблеми на помощните технологии, когато те се опитват да взаимодействат със съдържанието.
    Моля, премахнете или променете следния ID: %(id)', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Липсват заглавия на таблици! Достъпните таблици се нуждаят от HTML маркировка, която обозначава клетките със заглавия и клетките с данни и определя тяхната връзка. Тази информация осигурява контекст за хората, които използват помощни технологии. Таблиците трябва да се използват само за таблични данни.
    Научете повече за достъпните таблици.', TABLES_SEMANTIC_HEADING: 'Семантичните заглавия, като например Heading 2 или Heading 3, трябва да се използват само за части от съдържанието; не в HTML таблици. Вместо това посочвайте заглавия на таблици, като използвате елемента <th>.
    Научете повече за достъпните таблици.', TABLES_EMPTY_HEADING: 'Открито е празно заглавие на таблица! Заглавията на таблиците никога не трябва да са празни. Важно е да се обозначат заглавията на редовете и/или колоните, за да се предаде тяхната връзка. Тази информация предоставя контекст на хората, които използват помощни технологии. Моля, имайте предвид, че таблиците трябва да се използват само за таблични данни.
    Научете повече за достъпните таблици.', - CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношението на контраста е %(cratio) за следния текст: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Моля, прегледайте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Контрастно съотношение: %(cratio)', + CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношение на контраста %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Моля, прегледайте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
    Съотношение на контраста %(RATIO)', }, }; diff --git a/dist/js/lang/cs.js b/dist/js/lang/cs.js index 4a2c616c..cee5dc26 100644 --- a/dist/js/lang/cs.js +++ b/dist/js/lang/cs.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var cs = { OFF: 'Vypnuto', ALERT_TEXT: 'Upozornění', ALERT_CLOSE: 'Zavřít', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Obsah', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upravit', + IMAGES_NOT_FOUND: 'Žádné obrázky nenalezeny.', + DECORATIVE: 'Dekorativní', + MISSING: 'Chybějící', PAGE_ISSUES: 'Problémy se stránkami', SETTINGS: 'Nastavení', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var cs = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatečný obsah pro výpočet skóre čitelnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá úroveň nadpisu, která není po sobě jdoucí. Nadpisy by nikdy neměly přeskakovat úrovně nebo přecházet z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nalezena prázdná rubrika! Chcete-li to opravit, odstraňte tento řádek nebo změňte jeho formát z Záhlaví %(level) na Normální nebo Odstavec.', - HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
    Počet znaků: %(headingLength) Počet znaků je omezen.', + HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
    %(HEADING_LENGTH) Znaků', HEADING_FIRST: 'Prvním nadpisem na stránce by obvykle měl být nadpis 1 nebo nadpis 2. Nadpis 1 by měl být začátkem hlavní části obsahu a je hlavním nadpisem, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_MISSING_ONE: 'Chybějící nadpis 1. Nadpis 1 by měl být začátkem hlavní oblasti obsahu a je to hlavní nadpis, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žádný text, ale obrázek. Pokud se nejedná o nadpis, změňte jeho formát z Nadpis %(level) na Normální nebo Odstavec. V opačném případě přidejte k obrázku alt text, pokud není ozdobný.', @@ -157,37 +163,37 @@ var cs = { LINK_EMPTY: 'Odstranění prázdných odkazů bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, která je prázdná nebo neodpovídá hodnotě atributu id jiného prvku na stránce.', LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá čitelný text, který by byl viditelný pro čtečky obrazovky a další asistenční technologie. Oprava:
  • Přidejte stručný text, který popisuje, kam odkaz vede.
  • Jestliže se jedná o odkaz na ikonu nebo SVG, pravděpodobně chybí popisný štítek.
  • Pokud si myslíte, že tento odkaz je chybou způsobenou chybou kopírování/vkládání, zvažte jeho odstranění.
  • .', - LINK_LABEL: 'Značka odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(error)
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', - LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(error)
    ', + LINK_LABEL: 'Značka odkazu: %(TEXT)', + LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(ERROR)
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', + LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(ERROR)
    ', LINK_URL: 'Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být obtížně poslouchatelné pomocí asistenční technologie. Ve většině případů je lepší použít místo adresy URL lidsky čitelný text. Krátké adresy URL (například domovská stránka webu) jsou v pořádku.
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný, aby mohl být pochopen i mimo kontext.', LINK_DOI: 'Pro webové stránky nebo zdroje pouze online doporučuje průvodce stylem APA používat popisné odkazy tak, že kolem názvu díla uvedete adresu URL nebo DOI. Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být při přístupu pomocí asistenčních technologií obtížně srozumitelné.', NEW_TAB_WARNING: 'Odkaz se bez varování otevře v nové kartě nebo okně. To může být dezorientující, zejména pro lidi, kteří mají potíže s vnímáním vizuálního obsahu. Za druhé, není vždy vhodné kontrolovat něčí zážitek nebo rozhodovat za něj. Uveďte, že se odkaz otevírá v novém okně, v textu odkazu
    Tip! Naučte se osvědčené postupy: otevírání odkazů v nových oknech a kartách prohlížeče.', FILE_TYPE_WARNING: 'Odkaz odkazuje na soubor PDF nebo soubor ke stažení (např. MP3, Zip, dokument Word) bez varování. Typ souboru uveďte v textu odkazu. Pokud se jedná o velký soubor, zvažte uvedení jeho velikosti.
    Příklad: Výkonná zpráva (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(sanitizedText).', + LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázek se používá jako odkaz s okolním textem, ačkoli atribut alt by měl být označen jako dekorativní nebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázek se používá jako odkaz, ale chybí text alt! Ujistěte se, že text alt popisuje, kam odkaz vede.', MISSING_ALT_MESSAGE: 'Chybějící text alt! Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(error).
    Text alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(error).
    Text altu: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(altText).', - ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné.
    Textuální text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je dostupný pomocí klávesnice. Pokud plánujete skrýt nadbytečný nebo duplicitní odkaz, přidejte také tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázek v odkazu je označen jako dekorativní a není v něm žádný text odkazu. Přidejte prosím k obrázku text alt, který popisuje cíl odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázek je označen jako dekorativní, ačkoli odkaz používá okolní text jako popisek.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    Alt text (%(altLength) znaků): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    Textu alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
    Textuální text: %(altText)
    Značka odkazu: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    ALT %(altLength) Znaků %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
    ALT %(ALT_TEXT)
    Značka odkazu %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat.
    Přestože byl uveden nadpis, obrázek by měl mít ve většině případů také alt text. Zjistěte více: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát. Další informace: alt versus figcaption.
    Titulky: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát. Další informace: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci - nezapomeňte přidat alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
    Textuální text (%(altLength) znaků): %(altText)', - IMAGE_PASS: 'Textuální text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
    ALT %(altLength) Znaků %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'U tlačítka obrázku chybí text alt. Přidejte prosím text alt a uveďte přístupný název. Například: Hledat nebo Odeslat.', LABELS_INPUT_RESET_MESSAGE: 'Tlačítka resetování by se neměla používat, pokud to není výslovně nutné, protože je lze snadno aktivovat omylem.
    Tip! Přečtěte si, proč tlačítka Reset a Cancel představují problém s použitelností.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
    Štítek vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
    Štítek vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte atribut for ke štítku, který odpovídá id tohoto vstupu.
    ID tohoto vstupu je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte prosím k tomuto vstupu id a ke štítku přidejte odpovídající atribut for.', EMBED_VIDEO: 'Zajistěte, aby všechna videa byla opatřena skrytými titulky. Poskytování titulků pro veškerý audio a video obsah je povinným požadavkem úrovně A. Titulky podporují osoby s postižením D/neslyšící nebo nedoslýchavé.', @@ -196,26 +202,26 @@ var cs = { EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje přístupný název, který popisuje jeho obsah. Uveďte jedinečný atribut title nebo aria-label na elementu iframe. Další informace o iFrame..', EMBED_GENERAL_WARNING: 'Nelze zkontrolovat vložený obsah. Ujistěte se prosím, že obrázky mají alt text, videa mají titulky, text je dostatečně kontrastní a interaktivní komponenty jsou přístupné z klávesnice..', EMBED_UNFOCUSABLE: '<iframe> s nezaměřitelnými prvky by nemělo mít tabindex="-1". Vložený obsah nebude přístupný klávesnicí.', - QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
    Tento odkaz odkazuje na:
    %(el)', + QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
    Tento odkaz odkazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Porušený odkaz na stejnou stránku. Cíl odkazu neodpovídá žádnému prvku na této stránce.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva mají sémantický význam a neměly by se používat ke zvýraznění celých odstavců. Tučný text by měl být používán k výraznému zdůraznění slova nebo slovního spojení. Kurzíva by se měla používat ke zvýraznění vlastních jmen (tj. názvů knih a článků), cizích slov, citátů. Dlouhé citace by měly být formátovány jako blokové citace.', QA_PDF: 'Nelze zkontrolovat přístupnost souborů PDF. Soubory PDF jsou považovány za webový obsah a musí být také zpřístupněny. Soubory PDF často obsahují problémy pro lidi, kteří používají čtečky obrazovky (chybějící strukturální značky nebo chybějící popisky formulářových polí), a pro lidi se slabým zrakem (text se při zvětšení nezvětšuje). V opačném případě zkontrolujte PDF pro přístupnost v Acrobatu DC..', QA_DOCUMENT: 'Nelze zkontrolovat přístupnost dokumentu. Propojené dokumenty jsou považovány za webový obsah a musí být rovněž zpřístupněny. Zkontrolujte prosím tento dokument ručně. .', QA_PAGE_LANGUAGE: 'Jazyk stránky není deklarován! Prosím deklarujte jazyk v tagu HTML.', QA_PAGE_TITLE: 'Chybí název stránky! Uveďte prosím název stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', QA_SHOULD_BE_LIST: 'Snažíte se vytvořit seznam? Nalezena možná položka seznamu: %(firstPrefix)
    Ujistěte se, že používáte sémantické seznamy tak, že místo nich použijete tlačítka pro formátování odrážek nebo čísel. Při použití sémantického seznamu jsou asistenční technologie schopny zprostředkovat informace, jako je celkový počet položek a relativní pozice každé položky v seznamu. Další informace o sémantických seznamech..', QA_UPPERCASE_WARNING: 'Nalezena všechna velká písmena. Některé čtečky obrazovky mohou text psaný velkými písmeny interpretovat jako zkratku a budou číst každé písmeno zvlášť. Kromě toho se některým lidem všechna velká písmena hůře čtou a mohou působit dojmem, jako by se jednalo o KŘIK.', - QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
    Odstraňte nebo změňte následující ID: %(id).', + QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
    Odstraňte nebo změňte následující ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podtržený text může být zaměněn za odkazy. Zvažte použití jiného stylu, například <strong>důležitost</strong> nebo <em>důraz</em>.', QA_SUBSCRIPT_WARNING: 'Možnosti formátování dolního a horního indexu by se měly používat pouze ke změně pozice textu kvůli typografickým konvencím nebo normám. Neměly by se používat výhradně pro účely prezentace nebo vzhledu. Formátování celých vět představuje problém s čitelností. Mezi vhodné případy použití patří zobrazování exponentů, řadových čísel, jako je 4th místo fourth, a chemických vzorců (např. H2O).', TABLES_MISSING_HEADINGS: 'Chybějící záhlaví tabulky! Přístupné tabulky potřebují značku HTML, která označuje buňky záhlaví a datové buňky a definuje jejich vzájemný vztah. Tyto informace poskytují kontext lidem, kteří používají asistenční technologie. Tabulky by se měly používat pouze pro tabulková data.
    Další informace o přístupných tabulkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, jako je Nadpis 2 nebo Nadpis 3, by se měly používat pouze pro části obsahu; ne v tabulkách HTML. Nadpisy tabulek označujte místo toho pomocí elementu <th>.
    Další informace o přístupných tabulkách.', TABLES_EMPTY_HEADING: 'Nalezeno prázdné záhlaví tabulky! Záhlaví tabulky by nikdy nemělo být prázdné. Je důležité označit záhlaví řádků a/nebo sloupců, aby byl vyjádřen jejich vztah. Tyto informace poskytují kontext osobám, které používají asistenční technologie. Mějte na paměti, že tabulky by se měly používat pouze pro tabulková data.
    Další informace o přístupných tabulkách..', - CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Pro následující text je kontrastní poměr %(cratio): %(sanitizedText).', - CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Prosím, zkontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr: %(cratio).', + CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Prosím, zkontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr %(RATIO)', }, }; diff --git a/dist/js/lang/cs.umd.js b/dist/js/lang/cs.umd.js index b9fe7ab7..cf9b1513 100644 --- a/dist/js/lang/cs.umd.js +++ b/dist/js/lang/cs.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Vypnuto', ALERT_TEXT: 'Upozornění', ALERT_CLOSE: 'Zavřít', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Obsah', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upravit', + IMAGES_NOT_FOUND: 'Žádné obrázky nenalezeny.', + DECORATIVE: 'Dekorativní', + MISSING: 'Chybějící', PAGE_ISSUES: 'Problémy se stránkami', SETTINGS: 'Nastavení', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatečný obsah pro výpočet skóre čitelnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá úroveň nadpisu, která není po sobě jdoucí. Nadpisy by nikdy neměly přeskakovat úrovně nebo přecházet z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nalezena prázdná rubrika! Chcete-li to opravit, odstraňte tento řádek nebo změňte jeho formát z Záhlaví %(level) na Normální nebo Odstavec.', - HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
    Počet znaků: %(headingLength) Počet znaků je omezen.', + HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
    %(HEADING_LENGTH) Znaků', HEADING_FIRST: 'Prvním nadpisem na stránce by obvykle měl být nadpis 1 nebo nadpis 2. Nadpis 1 by měl být začátkem hlavní části obsahu a je hlavním nadpisem, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_MISSING_ONE: 'Chybějící nadpis 1. Nadpis 1 by měl být začátkem hlavní oblasti obsahu a je to hlavní nadpis, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žádný text, ale obrázek. Pokud se nejedná o nadpis, změňte jeho formát z Nadpis %(level) na Normální nebo Odstavec. V opačném případě přidejte k obrázku alt text, pokud není ozdobný.', @@ -163,37 +169,37 @@ LINK_EMPTY: 'Odstranění prázdných odkazů bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, která je prázdná nebo neodpovídá hodnotě atributu id jiného prvku na stránce.', LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá čitelný text, který by byl viditelný pro čtečky obrazovky a další asistenční technologie. Oprava:
  • Přidejte stručný text, který popisuje, kam odkaz vede.
  • Jestliže se jedná o odkaz na ikonu nebo SVG, pravděpodobně chybí popisný štítek.
  • Pokud si myslíte, že tento odkaz je chybou způsobenou chybou kopírování/vkládání, zvažte jeho odstranění.
  • .', - LINK_LABEL: 'Značka odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(error)
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', - LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(error)
    ', + LINK_LABEL: 'Značka odkazu: %(TEXT)', + LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(ERROR)
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', + LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(ERROR)
    ', LINK_URL: 'Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být obtížně poslouchatelné pomocí asistenční technologie. Ve většině případů je lepší použít místo adresy URL lidsky čitelný text. Krátké adresy URL (například domovská stránka webu) jsou v pořádku.
    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný, aby mohl být pochopen i mimo kontext.', LINK_DOI: 'Pro webové stránky nebo zdroje pouze online doporučuje průvodce stylem APA používat popisné odkazy tak, že kolem názvu díla uvedete adresu URL nebo DOI. Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být při přístupu pomocí asistenčních technologií obtížně srozumitelné.', NEW_TAB_WARNING: 'Odkaz se bez varování otevře v nové kartě nebo okně. To může být dezorientující, zejména pro lidi, kteří mají potíže s vnímáním vizuálního obsahu. Za druhé, není vždy vhodné kontrolovat něčí zážitek nebo rozhodovat za něj. Uveďte, že se odkaz otevírá v novém okně, v textu odkazu
    Tip! Naučte se osvědčené postupy: otevírání odkazů v nových oknech a kartách prohlížeče.', FILE_TYPE_WARNING: 'Odkaz odkazuje na soubor PDF nebo soubor ke stažení (např. MP3, Zip, dokument Word) bez varování. Typ souboru uveďte v textu odkazu. Pokud se jedná o velký soubor, zvažte uvedení jeho velikosti.
    Příklad: Výkonná zpráva (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(sanitizedText).', + LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázek se používá jako odkaz s okolním textem, ačkoli atribut alt by měl být označen jako dekorativní nebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázek se používá jako odkaz, ale chybí text alt! Ujistěte se, že text alt popisuje, kam odkaz vede.', MISSING_ALT_MESSAGE: 'Chybějící text alt! Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(error).
    Text alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(error).
    Text altu: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(altText).', - ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné.
    Textuální text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je dostupný pomocí klávesnice. Pokud plánujete skrýt nadbytečný nebo duplicitní odkaz, přidejte také tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázek v odkazu je označen jako dekorativní a není v něm žádný text odkazu. Přidejte prosím k obrázku text alt, který popisuje cíl odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázek je označen jako dekorativní, ačkoli odkaz používá okolní text jako popisek.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    Alt text (%(altLength) znaků): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    Textu alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
    Textuální text: %(altText)
    Značka odkazu: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    ALT %(altLength) Znaků %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
    ALT %(ALT_TEXT)
    Značka odkazu %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat.
    Přestože byl uveden nadpis, obrázek by měl mít ve většině případů také alt text. Zjistěte více: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát. Další informace: alt versus figcaption.
    Titulky: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát. Další informace: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci - nezapomeňte přidat alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
    Textuální text (%(altLength) znaků): %(altText)', - IMAGE_PASS: 'Textuální text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
    ALT %(altLength) Znaků %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'U tlačítka obrázku chybí text alt. Přidejte prosím text alt a uveďte přístupný název. Například: Hledat nebo Odeslat.', LABELS_INPUT_RESET_MESSAGE: 'Tlačítka resetování by se neměla používat, pokud to není výslovně nutné, protože je lze snadno aktivovat omylem.
    Tip! Přečtěte si, proč tlačítka Reset a Cancel představují problém s použitelností.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
    Štítek vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
    Štítek vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte atribut for ke štítku, který odpovídá id tohoto vstupu.
    ID tohoto vstupu je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte prosím k tomuto vstupu id a ke štítku přidejte odpovídající atribut for.', EMBED_VIDEO: 'Zajistěte, aby všechna videa byla opatřena skrytými titulky. Poskytování titulků pro veškerý audio a video obsah je povinným požadavkem úrovně A. Titulky podporují osoby s postižením D/neslyšící nebo nedoslýchavé.', @@ -202,26 +208,26 @@ EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje přístupný název, který popisuje jeho obsah. Uveďte jedinečný atribut title nebo aria-label na elementu iframe. Další informace o iFrame..', EMBED_GENERAL_WARNING: 'Nelze zkontrolovat vložený obsah. Ujistěte se prosím, že obrázky mají alt text, videa mají titulky, text je dostatečně kontrastní a interaktivní komponenty jsou přístupné z klávesnice..', EMBED_UNFOCUSABLE: '<iframe> s nezaměřitelnými prvky by nemělo mít tabindex="-1". Vložený obsah nebude přístupný klávesnicí.', - QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
    Tento odkaz odkazuje na:
    %(el)', + QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
    Tento odkaz odkazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Porušený odkaz na stejnou stránku. Cíl odkazu neodpovídá žádnému prvku na této stránce.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva mají sémantický význam a neměly by se používat ke zvýraznění celých odstavců. Tučný text by měl být používán k výraznému zdůraznění slova nebo slovního spojení. Kurzíva by se měla používat ke zvýraznění vlastních jmen (tj. názvů knih a článků), cizích slov, citátů. Dlouhé citace by měly být formátovány jako blokové citace.', QA_PDF: 'Nelze zkontrolovat přístupnost souborů PDF. Soubory PDF jsou považovány za webový obsah a musí být také zpřístupněny. Soubory PDF často obsahují problémy pro lidi, kteří používají čtečky obrazovky (chybějící strukturální značky nebo chybějící popisky formulářových polí), a pro lidi se slabým zrakem (text se při zvětšení nezvětšuje). V opačném případě zkontrolujte PDF pro přístupnost v Acrobatu DC..', QA_DOCUMENT: 'Nelze zkontrolovat přístupnost dokumentu. Propojené dokumenty jsou považovány za webový obsah a musí být rovněž zpřístupněny. Zkontrolujte prosím tento dokument ručně. .', QA_PAGE_LANGUAGE: 'Jazyk stránky není deklarován! Prosím deklarujte jazyk v tagu HTML.', QA_PAGE_TITLE: 'Chybí název stránky! Uveďte prosím název stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', QA_SHOULD_BE_LIST: 'Snažíte se vytvořit seznam? Nalezena možná položka seznamu: %(firstPrefix)
    Ujistěte se, že používáte sémantické seznamy tak, že místo nich použijete tlačítka pro formátování odrážek nebo čísel. Při použití sémantického seznamu jsou asistenční technologie schopny zprostředkovat informace, jako je celkový počet položek a relativní pozice každé položky v seznamu. Další informace o sémantických seznamech..', QA_UPPERCASE_WARNING: 'Nalezena všechna velká písmena. Některé čtečky obrazovky mohou text psaný velkými písmeny interpretovat jako zkratku a budou číst každé písmeno zvlášť. Kromě toho se některým lidem všechna velká písmena hůře čtou a mohou působit dojmem, jako by se jednalo o KŘIK.', - QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
    Odstraňte nebo změňte následující ID: %(id).', + QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
    Odstraňte nebo změňte následující ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podtržený text může být zaměněn za odkazy. Zvažte použití jiného stylu, například <strong>důležitost</strong> nebo <em>důraz</em>.', QA_SUBSCRIPT_WARNING: 'Možnosti formátování dolního a horního indexu by se měly používat pouze ke změně pozice textu kvůli typografickým konvencím nebo normám. Neměly by se používat výhradně pro účely prezentace nebo vzhledu. Formátování celých vět představuje problém s čitelností. Mezi vhodné případy použití patří zobrazování exponentů, řadových čísel, jako je 4th místo fourth, a chemických vzorců (např. H2O).', TABLES_MISSING_HEADINGS: 'Chybějící záhlaví tabulky! Přístupné tabulky potřebují značku HTML, která označuje buňky záhlaví a datové buňky a definuje jejich vzájemný vztah. Tyto informace poskytují kontext lidem, kteří používají asistenční technologie. Tabulky by se měly používat pouze pro tabulková data.
    Další informace o přístupných tabulkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, jako je Nadpis 2 nebo Nadpis 3, by se měly používat pouze pro části obsahu; ne v tabulkách HTML. Nadpisy tabulek označujte místo toho pomocí elementu <th>.
    Další informace o přístupných tabulkách.', TABLES_EMPTY_HEADING: 'Nalezeno prázdné záhlaví tabulky! Záhlaví tabulky by nikdy nemělo být prázdné. Je důležité označit záhlaví řádků a/nebo sloupců, aby byl vyjádřen jejich vztah. Tyto informace poskytují kontext osobám, které používají asistenční technologie. Mějte na paměti, že tabulky by se měly používat pouze pro tabulková data.
    Další informace o přístupných tabulkách..', - CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Pro následující text je kontrastní poměr %(cratio): %(sanitizedText).', - CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Prosím, zkontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr: %(cratio).', + CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Prosím, zkontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
    Kontrastní poměr %(RATIO)', }, }; diff --git a/dist/js/lang/da.js b/dist/js/lang/da.js index 3ac33577..c62b73ea 100644 --- a/dist/js/lang/da.js +++ b/dist/js/lang/da.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var da = { ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Luk', OUTLINE: 'Sideoversigt', + ALT: 'ALT', + IMAGES: 'Billeder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen billeder fundet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Manglende', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Indstillinger', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var da = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok indhold til at beregne læsbarhedsscore.', HEADING_NON_CONSECUTIVE_LEVEL: 'Ikke-fortløbende overskriftsniveau brugt. Overskrifter bør aldrig springe niveauer over, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift fundet! For at rette skal du slette denne linje eller ændre dens format fra Overskrift %(level) til Normal eller Afsnit.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
    Antal tegn: %(headingLength)', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
    %(HEADING_LENGTH) Tegn', HEADING_FIRST: 'Den første overskrift på en side bør normalt være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hovedindholdssektionen og er den hovedoverskrift, der beskriver det overordnede formål med siden. Læs mere om Overskriftsstruktur.', HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedindholdsområdet og er den hovedoverskrift, der beskriver sidens overordnede formål. Læs mere om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Heading har ingen tekst, men indeholder et billede. Hvis det ikke er en overskrift, skal du ændre formatet fra Overskrift %(level) til Normal eller Afsnit. Ellers bedes du tilføje alt-tekst til billedet, hvis det ikke er dekorativt.', @@ -157,37 +163,37 @@ var da = { LINK_EMPTY: 'Fjern tomme links uden tekst.', LINK_EMPTY_LABELLEDBY: 'Linket har en værdi for aria-labelledby, der enten er tom eller ikke matcher værdien af attributten id for et andet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Linket har ikke tydelig tekst, der er synlig for skærmlæsere og andre hjælpemidler. Sådan rettes det: ', - LINK_LABEL: 'Link-etiket: %(sanitizedText)', - LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(error)
    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', - LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(error)
    ', - LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', + LINK_LABEL: 'Link-etiket %(TEXT)', + LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(ERROR)
    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', + LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(ERROR)
    ', + LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', LINK_DOI: 'For websider eller ressourcer, der kun er online, anbefaler APA Style guide at bruge beskrivende links ved at omslutte værkets URL eller DOI omkring dets titel. Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at forstå, når de tilgås med hjælpemidler.', - NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten
    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', - FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten.
    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', + FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Billedet bruges som et link med omgivende tekst, selvom alt-attributten burde være markeret som dekorativ eller nul.', MISSING_ALT_LINK_MESSAGE: 'Billedet bliver brugt som et link, men mangler alt-tekst! Sørg for, at alt-teksten beskriver, hvor linket fører dig hen.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linket har aria-hidden="true", men er stadig tastaturfokuserbar. Hvis du har til hensigt at skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Billedet i linket er markeret som dekorativt, og der er ingen linktekst. Tilføj venligst alt-tekst til billedet, der beskriver linkets destination.', LINK_IMAGE_HAS_TEXT: 'Billedet er markeret som dekorativt, selvom linket bruger den omgivende tekst som en beskrivende label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
    Alt-tekst: %(altText)
    Link-etiket: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
    ALT %(ALT_TEXT)
    Link-etiket %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler.
    Selvom der er angivet en caption, bør billedet i de fleste tilfælde også have en alt-tekst. Lær mere: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange. Lær mere: alt versus figcaption.
    Alttekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange. Lær mere: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler. Hvis billedet formidler en historie, stemning eller vigtig information - så sørg for at tilføje alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
    Alt-tekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Billedknappen mangler alt-tekst. Tilføj venligst alt-tekst for at give et tilgængeligt navn. For eksempel: Søg eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Nulstillingsknapper bør ikke bruges, medmindre det er specifikt nødvendigt, fordi de er lette at aktivere ved en fejl.
    Tip! Lær, hvorfor Reset- og Cancel-knapper giver problemer med brugervenligheden.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
    Indtastningsmærke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
    Indtastningsmærke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj en for-attribut til den label, der matcher id for dette input.
    ID\'et for dette input er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj venligst et id til dette input, og tilføj en matchende for-attribut til etiketten.', EMBED_VIDEO: 'Sørg for, at alle videoer har undertekster. Det er et obligatorisk krav på niveau A at levere undertekster til alt lyd- og videoindhold. Undertekster støtter mennesker, der er døve eller hørehæmmede.', @@ -196,15 +202,15 @@ var da = { EMBED_MISSING_TITLE: 'Indlejret indhold kræver et tilgængeligt navn, der beskriver dets indhold. Angiv venligst en unik title eller aria-label attribut på iframe-elementet. Få mere at vide om iFrames.', EMBED_GENERAL_WARNING: 'Kan ikke kontrollere indlejret indhold. Sørg for, at billeder har alt-tekst, videoer har undertekster, tekst har tilstrækkelig kontrast, og interaktive komponenter er tilgængelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke have tabindex="-1". Det indlejrede indhold vil ikke være tilgængeligt med tastaturet.', - QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
    Dette link peger på:
    %(el)', + QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
    Dette link peger på:
    %(LINK)', QA_IN_PAGE_LINK: 'Brudt samme-sides link. Linkmålet stemmer ikke overens med nogen element på denne side.', QA_BAD_ITALICS: 'Fede og kursive tags har semantisk betydning og bør ikke bruges til at fremhæve hele afsnit. Fed tekst skal bruges til at give stærk fremhævelse af et ord eller en sætning. Kursiv bør bruges til at fremhæve egennavne (f.eks. bog- og artikeltitler), fremmedord og citater. Lange citater skal formateres som blokcitater.', QA_PDF: 'Kan ikke tjekke PDF\'er for tilgængelighed. PDF\'er betragtes som webindhold og skal også gøres tilgængelige. PDF\'er indeholder ofte problemer for folk, der bruger skærmlæsere (manglende strukturelle tags eller manglende formularfeltetiketter) og folk, der ser dårligt (teksten flyder ikke ud igen, når den forstørres). Ellers bedes du tjekke PDF for tilgængelighed i Acrobat DC.', QA_DOCUMENT: 'Kan ikke tjekke dokumentet for tilgængelighed. Linkede dokumenter betragtes som webindhold og skal også gøres tilgængelige. Gennemgå venligst dette dokument manuelt. ', QA_PAGE_LANGUAGE: 'Sidens sprog er ikke angivet! Venligst deklarer sprog på HTML-tag.', QA_PAGE_TITLE: 'Manglende sidetitel! Angiv venligst en sidetitel.', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', QA_SHOULD_BE_LIST: 'Prøver du at oprette en liste? Muligt listeelement fundet: %(firstPrefix)
    Sørg for at bruge semantiske lister ved at bruge punkt- eller talformateringsknapperne i stedet. Når du bruger en semantisk liste, kan hjælpeteknologier formidle oplysninger som det samlede antal elementer og den relative placering af hvert element i listen. Få mere at vide om semantiske lister.', QA_UPPERCASE_WARNING: 'Fundet med store bogstaver. Nogle skærmlæsere kan fortolke tekst med store bogstaver som et akronym og vil læse hvert bogstav individuelt. Derudover synes nogle mennesker, at store bogstaver er sværere at læse, og det kan se ud, som om man råber.', QA_DUPLICATE_ID: 'Fandt duplikat-ID. Fejl med dublerede ID\'er er kendt for at give problemer for hjælpeteknologier, når de forsøger at interagere med indhold.
    Fjern eller ændr venligst følgende ID: %(id)', @@ -213,9 +219,9 @@ var da = { TABLES_MISSING_HEADINGS: 'Manglende tabeloverskrifter! Tilgængelige tabeller har brug for HTML-markup, der angiver overskriftsceller og dataceller, som definerer deres forhold. Disse oplysninger giver kontekst til folk, der bruger hjælpemidler. Tabeller bør kun bruges til tabeldata.
    Få mere at vide om tilgængelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som Heading 2 eller Heading 3 bør kun bruges til sektioner af indhold; ikke i HTML-tabeller. Angiv tabeloverskrifter ved hjælp af <th>-elementet i stedet.
    Få mere at vide om tilgængelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabeloverskrift fundet! Tabeloverskrifter bør aldrig være tomme. Det er vigtigt at udpege række- og/eller kolonneoverskrifter for at formidle deres relation. Disse oplysninger giver kontekst til personer, der bruger hjælpemidler. Husk, at tabeller kun bør bruges til tabeldata.
    Få mere at vide om tilgængelige tabeller.', - CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforholdet er %(cratio) for den følgende tekst: %(sanitizedText) for følgende tekst', - CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vær venlig at gennemgå: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vær venlig at gennemgå: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO)', }, }; diff --git a/dist/js/lang/da.umd.js b/dist/js/lang/da.umd.js index 5390dac0..b70b8ce0 100644 --- a/dist/js/lang/da.umd.js +++ b/dist/js/lang/da.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Luk', OUTLINE: 'Sideoversigt', + ALT: 'ALT', + IMAGES: 'Billeder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen billeder fundet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Manglende', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Indstillinger', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok indhold til at beregne læsbarhedsscore.', HEADING_NON_CONSECUTIVE_LEVEL: 'Ikke-fortløbende overskriftsniveau brugt. Overskrifter bør aldrig springe niveauer over, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift fundet! For at rette skal du slette denne linje eller ændre dens format fra Overskrift %(level) til Normal eller Afsnit.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
    Antal tegn: %(headingLength)', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
    %(HEADING_LENGTH) Tegn', HEADING_FIRST: 'Den første overskrift på en side bør normalt være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hovedindholdssektionen og er den hovedoverskrift, der beskriver det overordnede formål med siden. Læs mere om Overskriftsstruktur.', HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedindholdsområdet og er den hovedoverskrift, der beskriver sidens overordnede formål. Læs mere om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Heading har ingen tekst, men indeholder et billede. Hvis det ikke er en overskrift, skal du ændre formatet fra Overskrift %(level) til Normal eller Afsnit. Ellers bedes du tilføje alt-tekst til billedet, hvis det ikke er dekorativt.', @@ -163,37 +169,37 @@ LINK_EMPTY: 'Fjern tomme links uden tekst.', LINK_EMPTY_LABELLEDBY: 'Linket har en værdi for aria-labelledby, der enten er tom eller ikke matcher værdien af attributten id for et andet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Linket har ikke tydelig tekst, der er synlig for skærmlæsere og andre hjælpemidler. Sådan rettes det: ', - LINK_LABEL: 'Link-etiket: %(sanitizedText)', - LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(error)
    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', - LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(error)
    ', - LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', + LINK_LABEL: 'Link-etiket %(TEXT)', + LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(ERROR)
    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', + LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(ERROR)
    ', + LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', LINK_DOI: 'For websider eller ressourcer, der kun er online, anbefaler APA Style guide at bruge beskrivende links ved at omslutte værkets URL eller DOI omkring dets titel. Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at forstå, når de tilgås med hjælpemidler.', - NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten
    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', - FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten.
    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', + FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Billedet bruges som et link med omgivende tekst, selvom alt-attributten burde være markeret som dekorativ eller nul.', MISSING_ALT_LINK_MESSAGE: 'Billedet bliver brugt som et link, men mangler alt-tekst! Sørg for, at alt-teksten beskriver, hvor linket fører dig hen.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linket har aria-hidden="true", men er stadig tastaturfokuserbar. Hvis du har til hensigt at skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Billedet i linket er markeret som dekorativt, og der er ingen linktekst. Tilføj venligst alt-tekst til billedet, der beskriver linkets destination.', LINK_IMAGE_HAS_TEXT: 'Billedet er markeret som dekorativt, selvom linket bruger den omgivende tekst som en beskrivende label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
    Alt-tekst: %(altText)
    Link-etiket: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
    ALT %(ALT_TEXT)
    Link-etiket %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler.
    Selvom der er angivet en caption, bør billedet i de fleste tilfælde også have en alt-tekst. Lær mere: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange. Lær mere: alt versus figcaption.
    Alttekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange. Lær mere: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler. Hvis billedet formidler en historie, stemning eller vigtig information - så sørg for at tilføje alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
    Alt-tekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Billedknappen mangler alt-tekst. Tilføj venligst alt-tekst for at give et tilgængeligt navn. For eksempel: Søg eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Nulstillingsknapper bør ikke bruges, medmindre det er specifikt nødvendigt, fordi de er lette at aktivere ved en fejl.
    Tip! Lær, hvorfor Reset- og Cancel-knapper giver problemer med brugervenligheden.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
    Indtastningsmærke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
    Indtastningsmærke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj en for-attribut til den label, der matcher id for dette input.
    ID\'et for dette input er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj venligst et id til dette input, og tilføj en matchende for-attribut til etiketten.', EMBED_VIDEO: 'Sørg for, at alle videoer har undertekster. Det er et obligatorisk krav på niveau A at levere undertekster til alt lyd- og videoindhold. Undertekster støtter mennesker, der er døve eller hørehæmmede.', @@ -202,15 +208,15 @@ EMBED_MISSING_TITLE: 'Indlejret indhold kræver et tilgængeligt navn, der beskriver dets indhold. Angiv venligst en unik title eller aria-label attribut på iframe-elementet. Få mere at vide om iFrames.', EMBED_GENERAL_WARNING: 'Kan ikke kontrollere indlejret indhold. Sørg for, at billeder har alt-tekst, videoer har undertekster, tekst har tilstrækkelig kontrast, og interaktive komponenter er tilgængelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke have tabindex="-1". Det indlejrede indhold vil ikke være tilgængeligt med tastaturet.', - QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
    Dette link peger på:
    %(el)', + QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
    Dette link peger på:
    %(LINK)', QA_IN_PAGE_LINK: 'Brudt samme-sides link. Linkmålet stemmer ikke overens med nogen element på denne side.', QA_BAD_ITALICS: 'Fede og kursive tags har semantisk betydning og bør ikke bruges til at fremhæve hele afsnit. Fed tekst skal bruges til at give stærk fremhævelse af et ord eller en sætning. Kursiv bør bruges til at fremhæve egennavne (f.eks. bog- og artikeltitler), fremmedord og citater. Lange citater skal formateres som blokcitater.', QA_PDF: 'Kan ikke tjekke PDF\'er for tilgængelighed. PDF\'er betragtes som webindhold og skal også gøres tilgængelige. PDF\'er indeholder ofte problemer for folk, der bruger skærmlæsere (manglende strukturelle tags eller manglende formularfeltetiketter) og folk, der ser dårligt (teksten flyder ikke ud igen, når den forstørres). Ellers bedes du tjekke PDF for tilgængelighed i Acrobat DC.', QA_DOCUMENT: 'Kan ikke tjekke dokumentet for tilgængelighed. Linkede dokumenter betragtes som webindhold og skal også gøres tilgængelige. Gennemgå venligst dette dokument manuelt. ', QA_PAGE_LANGUAGE: 'Sidens sprog er ikke angivet! Venligst deklarer sprog på HTML-tag.', QA_PAGE_TITLE: 'Manglende sidetitel! Angiv venligst en sidetitel.', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', QA_SHOULD_BE_LIST: 'Prøver du at oprette en liste? Muligt listeelement fundet: %(firstPrefix)
    Sørg for at bruge semantiske lister ved at bruge punkt- eller talformateringsknapperne i stedet. Når du bruger en semantisk liste, kan hjælpeteknologier formidle oplysninger som det samlede antal elementer og den relative placering af hvert element i listen. Få mere at vide om semantiske lister.', QA_UPPERCASE_WARNING: 'Fundet med store bogstaver. Nogle skærmlæsere kan fortolke tekst med store bogstaver som et akronym og vil læse hvert bogstav individuelt. Derudover synes nogle mennesker, at store bogstaver er sværere at læse, og det kan se ud, som om man råber.', QA_DUPLICATE_ID: 'Fandt duplikat-ID. Fejl med dublerede ID\'er er kendt for at give problemer for hjælpeteknologier, når de forsøger at interagere med indhold.
    Fjern eller ændr venligst følgende ID: %(id)', @@ -219,9 +225,9 @@ TABLES_MISSING_HEADINGS: 'Manglende tabeloverskrifter! Tilgængelige tabeller har brug for HTML-markup, der angiver overskriftsceller og dataceller, som definerer deres forhold. Disse oplysninger giver kontekst til folk, der bruger hjælpemidler. Tabeller bør kun bruges til tabeldata.
    Få mere at vide om tilgængelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som Heading 2 eller Heading 3 bør kun bruges til sektioner af indhold; ikke i HTML-tabeller. Angiv tabeloverskrifter ved hjælp af <th>-elementet i stedet.
    Få mere at vide om tilgængelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabeloverskrift fundet! Tabeloverskrifter bør aldrig være tomme. Det er vigtigt at udpege række- og/eller kolonneoverskrifter for at formidle deres relation. Disse oplysninger giver kontekst til personer, der bruger hjælpemidler. Husk, at tabeller kun bør bruges til tabeldata.
    Få mere at vide om tilgængelige tabeller.', - CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforholdet er %(cratio) for den følgende tekst: %(sanitizedText) for følgende tekst', - CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vær venlig at gennemgå: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vær venlig at gennemgå: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO)', }, }; diff --git a/dist/js/lang/de.js b/dist/js/lang/de.js index bd4db5ad..95f3070f 100644 --- a/dist/js/lang/de.js +++ b/dist/js/lang/de.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,6 +26,12 @@ var de = { ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Schließen', OUTLINE: 'Seitenumriss', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Bearbeiten', + IMAGES_NOT_FOUND: 'Keine Bilder gefunden.', + DECORATIVE: 'Dekorativ', + MISSING: 'Fehlend', PAGE_ISSUES: 'Seitenprobleme', SETTINGS: 'Einstellungen', CONTRAST: 'Kontrast', @@ -149,7 +155,7 @@ var de = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nicht-konsekutive Überschriftenebene verwendet. Überschriften sollten niemals Ebenen überspringen oder von Überschrift %(prevLevel) zu Überschrift %(level) gehen.', HEADING_EMPTY: 'Leere Überschrift gefunden! Um dies zu beheben, löschen Sie diese Zeile oder ändern Sie ihr Format von Überschrift %(level) zu Normal oder Absatz (p).', - HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
    Zeichen Anzahl: %(headingLength)', + HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
    %(HEADING_LENGTH) Zeichen', HEADING_FIRST: 'Die erste Überschrift auf einer Seite sollte in der Regel Überschrift 1 oder Überschrift 2 sein. Überschrift 1 sollte der Beginn des Hauptinhaltsabschnitts sein und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_MISSING_ONE: 'Fehlende Überschrift 1: Überschrift 1 sollte am Anfang des Hauptinhaltsbereichs stehen und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_EMPTY_WITH_IMAGE: 'Die Überschrift hat keinen Text, enthält aber ein Bild. Wenn es sich nicht um eine Überschrift handelt, ändere das Format von Überschrift %(level) zu Normal oder Absatz (p). Andernfalls füge bitte einen Alt-Text zum Bild hinzu, wenn es nicht dekorativ ist.', @@ -160,43 +166,43 @@ var de = { LINK_EMPTY: 'Entferne leere Links ohne Text.', LINK_EMPTY_LABELLEDBY: 'Der Link hat einen Wert für aria-labelledby, der leer ist oder nicht mit dem Wert des id-Attributs eines anderen Elements auf der Seite übereinstimmt.', LINK_EMPTY_LINK_NO_LABEL: 'Der Link hat keinen erkennbaren Text, der für Bildschirmleser und andere unterstützenden Technologien sichtbar ist. Zu beheben: ', - LINK_LABEL: 'Link Label: %(sanitizedText)', - LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(error)
    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', - LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(error)
    ', - LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', + LINK_LABEL: 'Link Label %(TEXT)', + LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(ERROR)
    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', + LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(ERROR)
    ', + LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', LINK_DOI: 'Für Webseiten oder reine Online-Ressourcen empfiehlt der APA Style guide die Verwendung von deskriptiven Links, indem die URL oder DOI des Werks um den Titel herumgeschrieben wird. Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein.', // Links advanced - NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', - FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(sanitizedText)', + NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', + FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Das Bild wird als Link mit umliegendem Text verwendet, obwohl das alt-Attribut als dekorativ oder null markiert sein sollte.', MISSING_ALT_LINK_MESSAGE: 'Das Bild wird als Link verwendet, aber es fehlt der Alt-Text! Bitte stellen Sie sicher, dass der Alt-Text beschreibt, wohin der Link Dich führt.', MISSING_ALT_MESSAGE: 'Fehlender Alt text! Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt.', - LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Der Link hat aria-hidden="true", ist aber trotzdem tastaturfokussierbar. Wenn du beabsichtigst, einen überflüssigen oder doppelten Link zu verbergen, füge auch tabindex="-1" hinzu.', LINK_IMAGE_NO_ALT_TEXT: 'Das Bild innerhalb des Links ist als dekorativ gekennzeichnet und es gibt keinen Linktext. Bitte füge dem Bild einen Alt-Text hinzu, der das Ziel des Links beschreibt.', LINK_IMAGE_HAS_TEXT: 'Das Bild ist als dekorativ gekennzeichnet, obwohl der Link den umgebenden Text als beschreibende Bezeichnung verwendet.', - LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
    Alt text: %(altText)
    Link Label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
    ALT %(altLength) Zeichen %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert.
    Obwohl eine Beschriftung angegeben wurde, sollte das Bild in den meisten Fällen auch einen Alt-Text haben. Erfahre mehr: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt. Erfahre mehr: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt. Erfahre mehr: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert. Wenn das Bild eine Geschichte, eine Stimmung oder wichtige Informationen vermittelt - füge unbedingt einen Alt-Text hinzu.', - IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
    Alt text (%(altLength) Zeichen): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
    ALT %(altLength) Zeichen %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildschaltfläche fehlt Alt-Text. Bitte füge alternativen Text hinzu, um einen barrierefreien Namen bereitzustellen. Zum Beispiel: Suchen oder Senden.', - LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
    Tipp! Erfahre, warum Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.< /a>', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
    Eingabelabel: %(sanitizedText)', + LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
    Tipp! Erfahre, warum
    Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
    Eingabelabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Füge dem Label ein for-Attribut hinzu, das der id dieser Eingabe entspricht.
    Die ID für diese Eingabe lautet: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Bitte füge dieser Eingabe eine id hinzu und füge dem Label ein passendes for-Attribut hinzu.', @@ -209,19 +215,19 @@ var de = { EMBED_UNFOCUSABLE: '<iframe> mit nicht fokussierbaren Elementen sollte kein tabindex="-1" haben. Der eingebettete Inhalt wird nicht mit der Tastatur erreichbar sein.', // Quality assurance - QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
    Dieser Link verweist auf:
    %(el)', + QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
    Dieser Link verweist auf:
    %(LINK)', QA_IN_PAGE_LINK: 'Defekter Verweis innerhalb der Seite. Das Ziel des Verweises stimmt mit keinem Element auf dieser Seite überein.', QA_BAD_ITALICS: 'Fett- und Kursiv-Tags haben semantische Bedeutung und sollten nicht verwendet werden, um ganze Absätze hervorzuheben. Fettgedruckter Text sollte verwendet werden, um ein Wort oder einen Ausdruck stark zu betonen. Kursiv sollte verwendet werden, um Eigennamen (z. B. Buch- und Artikeltitel), Fremdwörter, Zitate hervorzuheben. Lange Zitate sollten als Blockquote formatiert werden.', - QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ). Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', + QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ). Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', QA_DOCUMENT: 'Das Dokument kann nicht auf Zugänglichkeit geprüft werden. Verknüpfte Dokumente gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. Bitte überprüfen Sie dieses Dokument manuell. ', QA_PAGE_LANGUAGE: 'Seitensprache nicht angegeben! Bitte deklariere die Sprache im HTML-Tag.', QA_PAGE_TITLE: 'Seitentitel fehlt! Bitte gib einen Seitentitel an.', - QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(sanitizedText)
    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', - QA_FAKE_HEADING: 'Ist das eine Überschrift? %(boldtext)
    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', - QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', + QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(TEXT)
    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', + QA_FAKE_HEADING: 'Ist das eine Überschrift? %(TEXT)
    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', + QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', QA_UPPERCASE_WARNING: 'Text in Großbuchstaben gefunden. Einige Screenreader interpretieren Text in Großbuchstaben möglicherweise als Akronym und lesen jeden Buchstaben einzeln. Außerdem finden manche Leute, dass Großbuchstaben schwieriger zu lesen sind, und es kann den Anschein erwecken, als würden man SCHREIEN.', QA_DUPLICATE_ID: 'Doppelte ID gefunden. Doppelte ID-Fehler verursachen bekanntermaßen Probleme für Hilfstechnologien, wenn man versucht, mit Inhalten zu interagieren.
    Bitte entferne oder ändere die folgende ID: %(id)', - QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', + QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', QA_SUBSCRIPT_WARNING: 'Die Formatierungsoptionen für tiefgestellten und hochgestellten Text sollten nur verwendet werden, um die Textposition für typografische Konventionen oder Standards zu ändern. Es sollte nicht ausschließlich zu Präsentations- oder Erscheinungszwecken verwendet werden. Das Formatieren ganzer Sätze wirft Lesbarkeitsprobleme auf. Geeignete Anwendungsfälle wären die Anzeige von Exponenten, Ordnungszahlen wie 4th anstelle von 4 und chemischen Formeln (z. B. H2O).', // Tables @@ -230,9 +236,9 @@ var de = { TABLES_EMPTY_HEADING: 'Leerer Tabellenkopf gefunden! Tabellenüberschriften sollten niemals leer sein. Es ist wichtig, Zeilen- und/oder Spaltenüberschriften zu benennen, um ihre Beziehung zu verdeutlichen. Diese Informationen bieten Menschen, die Hilfsmittel verwenden, einen Kontext. Bitte beachte, dass Tabellen nur für tabellarische Daten verwendet werden sollten.
    Erfahre mehr über barrierefreie Tabellen.', // Contrast - CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Das Kontrastverhältnis beträgt %(cratio) für den folgenden Text: %(sanitizedText)', - CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Bitte überprüfen: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis: %(cratio)', + CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Bitte überprüfen: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis %(RATIO)', }, }; diff --git a/dist/js/lang/de.umd.js b/dist/js/lang/de.umd.js index 557e92ca..d5dd3ac9 100644 --- a/dist/js/lang/de.umd.js +++ b/dist/js/lang/de.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,6 +32,12 @@ ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Schließen', OUTLINE: 'Seitenumriss', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Bearbeiten', + IMAGES_NOT_FOUND: 'Keine Bilder gefunden.', + DECORATIVE: 'Dekorativ', + MISSING: 'Fehlend', PAGE_ISSUES: 'Seitenprobleme', SETTINGS: 'Einstellungen', CONTRAST: 'Kontrast', @@ -155,7 +161,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nicht-konsekutive Überschriftenebene verwendet. Überschriften sollten niemals Ebenen überspringen oder von Überschrift %(prevLevel) zu Überschrift %(level) gehen.', HEADING_EMPTY: 'Leere Überschrift gefunden! Um dies zu beheben, löschen Sie diese Zeile oder ändern Sie ihr Format von Überschrift %(level) zu Normal oder Absatz (p).', - HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
    Zeichen Anzahl: %(headingLength)', + HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
    %(HEADING_LENGTH) Zeichen', HEADING_FIRST: 'Die erste Überschrift auf einer Seite sollte in der Regel Überschrift 1 oder Überschrift 2 sein. Überschrift 1 sollte der Beginn des Hauptinhaltsabschnitts sein und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_MISSING_ONE: 'Fehlende Überschrift 1: Überschrift 1 sollte am Anfang des Hauptinhaltsbereichs stehen und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_EMPTY_WITH_IMAGE: 'Die Überschrift hat keinen Text, enthält aber ein Bild. Wenn es sich nicht um eine Überschrift handelt, ändere das Format von Überschrift %(level) zu Normal oder Absatz (p). Andernfalls füge bitte einen Alt-Text zum Bild hinzu, wenn es nicht dekorativ ist.', @@ -166,43 +172,43 @@ LINK_EMPTY: 'Entferne leere Links ohne Text.', LINK_EMPTY_LABELLEDBY: 'Der Link hat einen Wert für aria-labelledby, der leer ist oder nicht mit dem Wert des id-Attributs eines anderen Elements auf der Seite übereinstimmt.', LINK_EMPTY_LINK_NO_LABEL: 'Der Link hat keinen erkennbaren Text, der für Bildschirmleser und andere unterstützenden Technologien sichtbar ist. Zu beheben: ', - LINK_LABEL: 'Link Label: %(sanitizedText)', - LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(error)
    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', - LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(error)
    ', - LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', + LINK_LABEL: 'Link Label %(TEXT)', + LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(ERROR)
    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', + LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(ERROR)
    ', + LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', LINK_DOI: 'Für Webseiten oder reine Online-Ressourcen empfiehlt der APA Style guide die Verwendung von deskriptiven Links, indem die URL oder DOI des Werks um den Titel herumgeschrieben wird. Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein.', // Links advanced - NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', - FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(sanitizedText)', + NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', + FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Das Bild wird als Link mit umliegendem Text verwendet, obwohl das alt-Attribut als dekorativ oder null markiert sein sollte.', MISSING_ALT_LINK_MESSAGE: 'Das Bild wird als Link verwendet, aber es fehlt der Alt-Text! Bitte stellen Sie sicher, dass der Alt-Text beschreibt, wohin der Link Dich führt.', MISSING_ALT_MESSAGE: 'Fehlender Alt text! Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt.', - LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Der Link hat aria-hidden="true", ist aber trotzdem tastaturfokussierbar. Wenn du beabsichtigst, einen überflüssigen oder doppelten Link zu verbergen, füge auch tabindex="-1" hinzu.', LINK_IMAGE_NO_ALT_TEXT: 'Das Bild innerhalb des Links ist als dekorativ gekennzeichnet und es gibt keinen Linktext. Bitte füge dem Bild einen Alt-Text hinzu, der das Ziel des Links beschreibt.', LINK_IMAGE_HAS_TEXT: 'Das Bild ist als dekorativ gekennzeichnet, obwohl der Link den umgebenden Text als beschreibende Bezeichnung verwendet.', - LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
    Alt text: %(altText)
    Link Label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
    ALT %(altLength) Zeichen %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert.
    Obwohl eine Beschriftung angegeben wurde, sollte das Bild in den meisten Fällen auch einen Alt-Text haben. Erfahre mehr: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt. Erfahre mehr: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt. Erfahre mehr: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert. Wenn das Bild eine Geschichte, eine Stimmung oder wichtige Informationen vermittelt - füge unbedingt einen Alt-Text hinzu.', - IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
    Alt text (%(altLength) Zeichen): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
    ALT %(altLength) Zeichen %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildschaltfläche fehlt Alt-Text. Bitte füge alternativen Text hinzu, um einen barrierefreien Namen bereitzustellen. Zum Beispiel: Suchen oder Senden.', - LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
    Tipp! Erfahre, warum Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.< /a>', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
    Eingabelabel: %(sanitizedText)', + LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
    Tipp! Erfahre, warum
    Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
    Eingabelabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Füge dem Label ein for-Attribut hinzu, das der id dieser Eingabe entspricht.
    Die ID für diese Eingabe lautet: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Bitte füge dieser Eingabe eine id hinzu und füge dem Label ein passendes for-Attribut hinzu.', @@ -215,19 +221,19 @@ EMBED_UNFOCUSABLE: '<iframe> mit nicht fokussierbaren Elementen sollte kein tabindex="-1" haben. Der eingebettete Inhalt wird nicht mit der Tastatur erreichbar sein.', // Quality assurance - QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
    Dieser Link verweist auf:
    %(el)', + QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
    Dieser Link verweist auf:
    %(LINK)', QA_IN_PAGE_LINK: 'Defekter Verweis innerhalb der Seite. Das Ziel des Verweises stimmt mit keinem Element auf dieser Seite überein.', QA_BAD_ITALICS: 'Fett- und Kursiv-Tags haben semantische Bedeutung und sollten nicht verwendet werden, um ganze Absätze hervorzuheben. Fettgedruckter Text sollte verwendet werden, um ein Wort oder einen Ausdruck stark zu betonen. Kursiv sollte verwendet werden, um Eigennamen (z. B. Buch- und Artikeltitel), Fremdwörter, Zitate hervorzuheben. Lange Zitate sollten als Blockquote formatiert werden.', - QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ). Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', + QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ). Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', QA_DOCUMENT: 'Das Dokument kann nicht auf Zugänglichkeit geprüft werden. Verknüpfte Dokumente gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. Bitte überprüfen Sie dieses Dokument manuell. ', QA_PAGE_LANGUAGE: 'Seitensprache nicht angegeben! Bitte deklariere die Sprache im HTML-Tag.', QA_PAGE_TITLE: 'Seitentitel fehlt! Bitte gib einen Seitentitel an.', - QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(sanitizedText)
    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', - QA_FAKE_HEADING: 'Ist das eine Überschrift? %(boldtext)
    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', - QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', + QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(TEXT)
    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', + QA_FAKE_HEADING: 'Ist das eine Überschrift? %(TEXT)
    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', + QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', QA_UPPERCASE_WARNING: 'Text in Großbuchstaben gefunden. Einige Screenreader interpretieren Text in Großbuchstaben möglicherweise als Akronym und lesen jeden Buchstaben einzeln. Außerdem finden manche Leute, dass Großbuchstaben schwieriger zu lesen sind, und es kann den Anschein erwecken, als würden man SCHREIEN.', QA_DUPLICATE_ID: 'Doppelte ID gefunden. Doppelte ID-Fehler verursachen bekanntermaßen Probleme für Hilfstechnologien, wenn man versucht, mit Inhalten zu interagieren.
    Bitte entferne oder ändere die folgende ID: %(id)', - QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', + QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', QA_SUBSCRIPT_WARNING: 'Die Formatierungsoptionen für tiefgestellten und hochgestellten Text sollten nur verwendet werden, um die Textposition für typografische Konventionen oder Standards zu ändern. Es sollte nicht ausschließlich zu Präsentations- oder Erscheinungszwecken verwendet werden. Das Formatieren ganzer Sätze wirft Lesbarkeitsprobleme auf. Geeignete Anwendungsfälle wären die Anzeige von Exponenten, Ordnungszahlen wie 4th anstelle von 4 und chemischen Formeln (z. B. H2O).', // Tables @@ -236,9 +242,9 @@ TABLES_EMPTY_HEADING: 'Leerer Tabellenkopf gefunden! Tabellenüberschriften sollten niemals leer sein. Es ist wichtig, Zeilen- und/oder Spaltenüberschriften zu benennen, um ihre Beziehung zu verdeutlichen. Diese Informationen bieten Menschen, die Hilfsmittel verwenden, einen Kontext. Bitte beachte, dass Tabellen nur für tabellarische Daten verwendet werden sollten.
    Erfahre mehr über barrierefreie Tabellen.', // Contrast - CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Das Kontrastverhältnis beträgt %(cratio) für den folgenden Text: %(sanitizedText)', - CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Bitte überprüfen: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis: %(cratio)', + CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Bitte überprüfen: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
    Kontrastverhältnis %(RATIO)', }, }; diff --git a/dist/js/lang/el.js b/dist/js/lang/el.js index a6d89709..47d2afea 100644 --- a/dist/js/lang/el.js +++ b/dist/js/lang/el.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var el = { OFF: 'Ανενεργό', ALERT_TEXT: 'Ειδοποίηση', ALERT_CLOSE: 'Κλείστε το', - OUTLINE: 'Περίγραμμα σελίδας', + OUTLINE: 'Περίγραμμα', + ALT: 'ALT', + IMAGES: 'Εικόνες', + EDIT: 'Επεξεργασία', + IMAGES_NOT_FOUND: 'Δεν βρέθηκαν εικόνες.', + DECORATIVE: 'Διακοσμητικό', + MISSING: 'Λείπει', PAGE_ISSUES: 'Ζητήματα σελίδας', SETTINGS: 'Ρυθμίσεις', CONTRAST: 'Αντίθεση', @@ -146,7 +152,7 @@ var el = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Δεν υπάρχει αρκετό περιεχόμενο για τον υπολογισμό της βαθμολογίας αναγνωσιμότητας.', HEADING_NON_CONSECUTIVE_LEVEL: 'Χρησιμοποιήθηκε μη διαδοχικό επίπεδο επικεφαλίδας. Οι επικεφαλίδες δεν πρέπει ποτέ να παραλείπουν επίπεδα ή να πηγαίνουν από Κεφαλίδα %(prevLevel) σε Κεφαλίδα %(level).', HEADING_EMPTY: 'Βρέθηκε κενή επικεφαλίδα! Για να το διορθώσετε, διαγράψτε αυτή τη γραμμή ή αλλάξτε τη μορφή της από επικεφαλίδα %(επίπεδο) σε κανονική ή παράγραφος.', - HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
    Αριθμός χαρακτήρων: %(headingLength)', + HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
    %(HEADING_LENGTH) χαρακτήρες', HEADING_FIRST: 'Η πρώτη επικεφαλίδα σε μια σελίδα θα πρέπει συνήθως να είναι επικεφαλίδα 1 ή επικεφαλίδα 2. Η επικεφαλίδα 1 θα πρέπει να αποτελεί την αρχή της κύριας ενότητας περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει το γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_MISSING_ONE: 'Λείπει η επικεφαλίδα 1. Η επικεφαλίδα 1 πρέπει να αποτελεί την αρχή της κύριας περιοχής περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει τον γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_EMPTY_WITH_IMAGE: 'Η επικεφαλίδα δεν έχει κείμενο, αλλά περιέχει μια εικόνα. Αν δεν πρόκειται για επικεφαλίδα, αλλάξτε τη μορφή της από Κεφαλίδα %(επίπεδο) σε Κανονική ή Παράγραφος. Διαφορετικά, προσθέστε κείμενο alt στην εικόνα, αν δεν είναι διακοσμητικό.', @@ -155,37 +161,37 @@ var el = { LINK_EMPTY: 'Αφαίρεση κενών συνδέσμων χωρίς κείμενο.', LINK_EMPTY_LABELLEDBY: 'Ο σύνδεσμος έχει μια τιμή για το aria-labelledby, η οποία είναι άδεια ή δεν ταιριάζει με την τιμή του χαρακτηριστικού id ενός άλλου στοιχείου στη σελίδα.', LINK_EMPTY_LINK_NO_LABEL: 'Ο σύνδεσμος δεν έχει ευδιάκριτο κείμενο που να είναι ορατό σε προγράμματα ανάγνωσης οθόνης και άλλες υποστηρικτικές τεχνολογίες. Για να το διορθώσετε: ', - LINK_LABEL: 'Ετικέτα συνδέσμου: %(sanitizedText)', - LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(error)
    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', + LINK_LABEL: 'Ετικέτα συνδέσμου %(TEXT)', + LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(ERROR)
    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', LINK_BEST_PRACTICES: 'Εξετάστε το ενδεχόμενο αντικατάστασης του κειμένου του συνδέσμου: %(σφάλμα)
    ', - LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', + LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', LINK_DOI: 'Για ιστοσελίδες ή αποκλειστικά διαδικτυακούς πόρους, ο Οδηγός στυλ της ΑΡΑ συνιστά τη χρήση περιγραφικών συνδέσμων, τυλίγοντας τη διεύθυνση URL ή το DOI του έργου γύρω από τον τίτλο του. Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία.', NEW_TAB_WARNING: 'Ο σύνδεσμος ανοίγει σε νέα καρτέλα ή παράθυρο χωρίς προειδοποίηση. Κάτι τέτοιο μπορεί να αποπροσανατολίσει, ειδικά τα άτομα που δυσκολεύονται να αντιληφθούν το οπτικό περιεχόμενο. Δεύτερον, δεν είναι πάντα καλή πρακτική να ελέγχετε την εμπειρία κάποιου ή να παίρνετε αποφάσεις για λογαριασμό του. Αναφέρετε ότι ο σύνδεσμος ανοίγει σε νέο παράθυρο μέσα στο κείμενο του συνδέσμου
    Σύμβουλος! Μάθετε τις βέλτιστες πρακτικές: Ανοιγμα συνδέσμων σε νέα παράθυρα και καρτέλες του προγράμματος περιήγησης.', FILE_TYPE_WARNING: 'Ο σύνδεσμος παραπέμπει σε αρχείο PDF ή αρχείο με δυνατότητα λήψης (π.χ. MP3, Zip, Word Doc) χωρίς προειδοποίηση. Αναφέρετε τον τύπο του αρχείου στο κείμενο του συνδέσμου. Εάν πρόκειται για μεγάλο αρχείο, εξετάστε το ενδεχόμενο να συμπεριλάβετε το μέγεθος του αρχείου.
    Παράδειγμα: Εκτελεστική έκθεση (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος με περιβάλλων κείμενο, αν και το χαρακτηριστικό alt θα πρέπει να επισημανθεί ως διακοσμητικό ή μηδενικό.', MISSING_ALT_LINK_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος, αλλά λείπει το κείμενο alt! Βεβαιωθείτε ότι το alt text περιγράφει πού σας οδηγεί ο σύνδεσμος.', MISSING_ALT_MESSAGE: 'Λείπει το κείμενο alt! Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία - φροντίστε να περιγράψετε την εικόνα.', - LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(σφάλμα).
    Κείμενο alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
    Κείμενο alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(σφάλμα).
    Κείμενο alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(altText)', - ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό.
    Κείμενο άλτου: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Ο σύνδεσμος έχει aria-hidden="true" αλλά εξακολουθεί να είναι προσβάσιμος με το πληκτρολόγιο. Αν σκοπεύετε να κρύψετε έναν περιττό ή διπλό σύνδεσμο, προσθέστε επίσης tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Η εικόνα εντός του συνδέσμου χαρακτηρίζεται ως διακοσμητική και δεν υπάρχει κείμενο συνδέσμου. Προσθέστε κείμενο alt στην εικόνα που περιγράφει τον προορισμό του συνδέσμου.', LINK_IMAGE_HAS_TEXT: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική, αν και ο σύνδεσμος χρησιμοποιεί το περιβάλλον κείμενο ως περιγραφική ετικέτα.', - LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    Κείμενο alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
    Κείμενο alt: %(altText)
    Ετικέτα συνδέσμου: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
    ALT %(ALT_TEXT)
    Ετικέτα συνδέσμου %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία.
    Παρόλο που δόθηκε επικεφαλίδα, η εικόνα θα πρέπει επίσης να έχει κείμενο alt στις περισσότερες περιπτώσεις. Μάθετε περισσότερα: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές. Μάθετε περισσότερα: alt versus figcaption.
    Κείμενο alt: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές. Μάθετε περισσότερα: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία. Εάν η εικόνα μεταφέρει μια ιστορία, διάθεση ή σημαντικές πληροφορίες - φροντίστε να προσθέσετε κείμενο alt.', - IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - IMAGE_PASS: 'Κείμενο alt: %(altText)', + IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Από το κουμπί εικόνας λείπει το κείμενο alt. Παρακαλούμε προσθέστε κείμενο alt για να δώσετε ένα προσβάσιμο όνομα. Για παράδειγμα: Αναζήτηση ή Υποβολή.', LABELS_INPUT_RESET_MESSAGE: 'Τα κουμπιά επαναφοράς δεν πρέπει να χρησιμοποιούνται, εκτός αν είναι ειδικά απαραίτητα, διότι είναι εύκολο να ενεργοποιηθούν κατά λάθος.
    Συμβουλή! Μάθετε γιατί τα κουμπιά Reset και Cancel δημιουργούν προβλήματα ευχρηστίας.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
    Ετικέτα εισόδου: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
    Ετικέτα εισόδου %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα χαρακτηριστικό for στην ετικέτα που ταιριάζει με το id αυτής της εισόδου.
    Το αναγνωριστικό αυτής της εισόδου είναι: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα id σε αυτή την είσοδο και προσθέστε ένα αντίστοιχο χαρακτηριστικό for στην ετικέτα.', EMBED_VIDEO: 'Παρακαλούμε βεβαιωθείτε ότι όλα τα βίντεο διαθέτουν κλειστούς υπότιτλους. Η παροχή υπότιτλων για όλο το περιεχόμενο ήχου και βίντεο αποτελεί υποχρεωτική απαίτηση του επιπέδου Α. Οι λεζάντες υποστηρίζουν τα άτομα που είναι κωφά ή βαρήκοα.', @@ -194,15 +200,15 @@ var el = { EMBED_MISSING_TITLE: 'Το ενσωματωμένο περιεχόμενο απαιτεί ένα προσβάσιμο όνομα που περιγράφει το περιεχόμενό του. Παρακαλείστε να δώσετε ένα μοναδικό χαρακτηριστικό title ή aria-label στο στοιχείο iframe. Μάθετε περισσότερα για τα iFrames.', EMBED_GENERAL_WARNING: 'Δεν είναι δυνατός ο έλεγχος του ενσωματωμένου περιεχομένου. Παρακαλούμε βεβαιωθείτε ότι οι εικόνες έχουν alt κείμενο, τα βίντεο έχουν λεζάντες, το κείμενο έχει επαρκή αντίθεση και τα διαδραστικά στοιχεία είναι προσβάσιμα στο πληκτρολόγιο.', EMBED_UNFOCUSABLE: 'Το <iframe> με στοιχεία που δεν είναι εστιασμένα δεν πρέπει να έχει tabindex="-1". Το ενσωματωμένο περιεχόμενο δεν θα είναι προσβάσιμο με το πληκτρολόγιο.', - QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
    Αυτός ο σύνδεσμος παραπέμπει σε:
    %(el)', + QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
    Αυτός ο σύνδεσμος παραπέμπει σε:
    %(LINK)', QA_IN_PAGE_LINK: 'Σπασμένος σύνδεσμος στην ίδια σελίδα. Το στόχος του συνδέσμου δεν αντιστοιχεί σε κανένα στοιχείο σε αυτήν τη σελίδα.', QA_BAD_ITALICS: 'Οι ετικέτες bold και italic έχουν σημασιολογική σημασία και δεν πρέπει να χρησιμοποιούνται για να τονίζουν ολόκληρες παραγράφους. Το κείμενο με έντονη γραφή θα πρέπει να χρησιμοποιείται για να παρέχει ισχυρή έμφαση σε μια λέξη ή φράση. Η πλάγια γραφή θα πρέπει να χρησιμοποιείται για να τονίζονται τα κύρια ονόματα (π.χ. τίτλοι βιβλίων και άρθρων), ξένες λέξεις, εισαγωγικά. Τα μακροσκελή εισαγωγικά θα πρέπει να μορφοποιούνται ως blockquote.', QA_PDF: 'Αδυναμία ελέγχου PDF για προσβασιμότητα. Τα PDF θεωρούνται περιεχόμενο ιστού και πρέπει επίσης να είναι προσβάσιμα. Τα PDF περιέχουν συχνά προβλήματα για άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης (λείπουν δομικές ετικέτες ή λείπουν ετικέτες πεδίων φόρμας) και άτομα με χαμηλή όραση (το κείμενο δεν ανακυκλώνεται όταν μεγεθύνεται). Αλλιώς, ελέγξτε το PDF για προσβασιμότητα στο Acrobat DC.', QA_DOCUMENT: 'Αδυναμία ελέγχου του εγγράφου για προσβασιμότητα. Τα συνδεδεμένα έγγραφα θεωρούνται διαδικτυακό περιεχόμενο και πρέπει επίσης να είναι προσβάσιμα. Παρακαλούμε ελέγξτε αυτό το έγγραφο με μη αυτόματο τρόπο. ', QA_PAGE_LANGUAGE: 'Η γλώσσα της σελίδας δεν έχει δηλωθεί! Παρακαλούμε δήλωσε τη γλώσσα στην ετικέτα HTML.', QA_PAGE_TITLE: 'Λείπει ο τίτλος της σελίδας! Παρακαλούμε δώστε έναν τίτλο σελίδας.', - QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(sanitizedText)
    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', - QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(boldtext)
    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', + QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(TEXT)
    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', + QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(TEXT)
    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', QA_SHOULD_BE_LIST: "Προσπαθείτε να δημιουργήσετε μια λίστα; Βρέθηκε πιθανό στοιχείο λίστας: %(firstPrefix)
    Βεβαιωθείτε ότι χρησιμοποιείτε σημασιολογικές λίστες, χρησιμοποιώντας αντ' αυτού τα κουμπιά μορφοποίησης κουκκίδων ή αριθμών. Όταν χρησιμοποιείτε μια σημασιολογική λίστα, οι υποστηρικτικές τεχνολογίες είναι σε θέση να μεταφέρουν πληροφορίες όπως ο συνολικός αριθμός των στοιχείων και η σχετική θέση κάθε στοιχείου στη λίστα. Μάθετε περισσότερα για τις σημασιολογικές λίστες.", QA_UPPERCASE_WARNING: 'Βρέθηκαν όλα τα κεφαλαία. Ορισμένα προγράμματα ανάγνωσης οθόνης ενδέχεται να ερμηνεύσουν το κείμενο με κεφαλαία γράμματα ως ακρωνύμιο και θα διαβάσουν κάθε γράμμα ξεχωριστά. Επιπλέον, ορισμένοι άνθρωποι βρίσκουν τα κεφαλαία γράμματα πιο δυσανάγνωστα και μπορεί να δώσουν την εντύπωση ότι φωνάζουν.', QA_DUPLICATE_ID: 'Βρέθηκε διπλό αναγνωριστικό. Τα σφάλματα διπλού αναγνωριστικού είναι γνωστό ότι προκαλούν προβλήματα στις υποστηρικτικές τεχνολογίες όταν αυτές προσπαθούν να αλληλεπιδράσουν με το περιεχόμενο.
    Παρακαλούμε αφαιρέστε ή αλλάξτε το ακόλουθο ID: %(id)', @@ -211,9 +217,9 @@ var el = { TABLES_MISSING_HEADINGS: 'Λείπουν οι επικεφαλίδες των πινάκων! Οι προσβάσιμοι πίνακες χρειάζονται σήμανση HTML που να υποδεικνύει τα κελιά κεφαλίδας και τα κελιά δεδομένων που καθορίζουν τη σχέση τους. Αυτές οι πληροφορίες παρέχουν περιεχόμενο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε μορφή πίνακα.
    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.', TABLES_SEMANTIC_HEADING: "Σημασιολογικές επικεφαλίδες όπως οι επικεφαλίδες 2 ή 3 θα πρέπει να χρησιμοποιούνται μόνο για τμήματα περιεχομένου- όχι σε πίνακες HTML. Υποδείξτε επικεφαλίδες πινάκων χρησιμοποιώντας αντ' αυτού το στοιχείο <th>.
    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.", TABLES_EMPTY_HEADING: 'Βρέθηκε κενή επικεφαλίδα πίνακα! Οι επικεφαλίδες των πινάκων δεν πρέπει να είναι ποτέ κενές. Είναι σημαντικό να ορίζονται επικεφαλίδες γραμμών ή/και στηλών για να αποδίδεται η σχέση τους. Αυτές οι πληροφορίες παρέχουν πλαίσιο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Λάβετε υπόψη σας ότι οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε πίνακες.
    Μάθετε περισσότερα σχετικά με τους προσβάσιμους πίνακες.', - CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Ο λόγος αντίθεσης είναι %(cratio) για το ακόλουθο κείμενο: %(sanitizedText)', - CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Παρακαλούμε ελέγξτε: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αναλογία αντίθεσης: %(cratio)', + CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αντίθεση Αναλογία %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Παρακαλούμε ελέγξτε: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αντίθεση Αναλογία %(RATIO)', }, }; diff --git a/dist/js/lang/el.umd.js b/dist/js/lang/el.umd.js index 03259f8f..d638f9c4 100644 --- a/dist/js/lang/el.umd.js +++ b/dist/js/lang/el.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Ανενεργό', ALERT_TEXT: 'Ειδοποίηση', ALERT_CLOSE: 'Κλείστε το', - OUTLINE: 'Περίγραμμα σελίδας', + OUTLINE: 'Περίγραμμα', + ALT: 'ALT', + IMAGES: 'Εικόνες', + EDIT: 'Επεξεργασία', + IMAGES_NOT_FOUND: 'Δεν βρέθηκαν εικόνες.', + DECORATIVE: 'Διακοσμητικό', + MISSING: 'Λείπει', PAGE_ISSUES: 'Ζητήματα σελίδας', SETTINGS: 'Ρυθμίσεις', CONTRAST: 'Αντίθεση', @@ -152,7 +158,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Δεν υπάρχει αρκετό περιεχόμενο για τον υπολογισμό της βαθμολογίας αναγνωσιμότητας.', HEADING_NON_CONSECUTIVE_LEVEL: 'Χρησιμοποιήθηκε μη διαδοχικό επίπεδο επικεφαλίδας. Οι επικεφαλίδες δεν πρέπει ποτέ να παραλείπουν επίπεδα ή να πηγαίνουν από Κεφαλίδα %(prevLevel) σε Κεφαλίδα %(level).', HEADING_EMPTY: 'Βρέθηκε κενή επικεφαλίδα! Για να το διορθώσετε, διαγράψτε αυτή τη γραμμή ή αλλάξτε τη μορφή της από επικεφαλίδα %(επίπεδο) σε κανονική ή παράγραφος.', - HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
    Αριθμός χαρακτήρων: %(headingLength)', + HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
    %(HEADING_LENGTH) χαρακτήρες', HEADING_FIRST: 'Η πρώτη επικεφαλίδα σε μια σελίδα θα πρέπει συνήθως να είναι επικεφαλίδα 1 ή επικεφαλίδα 2. Η επικεφαλίδα 1 θα πρέπει να αποτελεί την αρχή της κύριας ενότητας περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει το γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_MISSING_ONE: 'Λείπει η επικεφαλίδα 1. Η επικεφαλίδα 1 πρέπει να αποτελεί την αρχή της κύριας περιοχής περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει τον γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_EMPTY_WITH_IMAGE: 'Η επικεφαλίδα δεν έχει κείμενο, αλλά περιέχει μια εικόνα. Αν δεν πρόκειται για επικεφαλίδα, αλλάξτε τη μορφή της από Κεφαλίδα %(επίπεδο) σε Κανονική ή Παράγραφος. Διαφορετικά, προσθέστε κείμενο alt στην εικόνα, αν δεν είναι διακοσμητικό.', @@ -161,37 +167,37 @@ LINK_EMPTY: 'Αφαίρεση κενών συνδέσμων χωρίς κείμενο.', LINK_EMPTY_LABELLEDBY: 'Ο σύνδεσμος έχει μια τιμή για το aria-labelledby, η οποία είναι άδεια ή δεν ταιριάζει με την τιμή του χαρακτηριστικού id ενός άλλου στοιχείου στη σελίδα.', LINK_EMPTY_LINK_NO_LABEL: 'Ο σύνδεσμος δεν έχει ευδιάκριτο κείμενο που να είναι ορατό σε προγράμματα ανάγνωσης οθόνης και άλλες υποστηρικτικές τεχνολογίες. Για να το διορθώσετε: ', - LINK_LABEL: 'Ετικέτα συνδέσμου: %(sanitizedText)', - LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(error)
    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', + LINK_LABEL: 'Ετικέτα συνδέσμου %(TEXT)', + LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(ERROR)
    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', LINK_BEST_PRACTICES: 'Εξετάστε το ενδεχόμενο αντικατάστασης του κειμένου του συνδέσμου: %(σφάλμα)
    ', - LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', + LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', LINK_DOI: 'Για ιστοσελίδες ή αποκλειστικά διαδικτυακούς πόρους, ο Οδηγός στυλ της ΑΡΑ συνιστά τη χρήση περιγραφικών συνδέσμων, τυλίγοντας τη διεύθυνση URL ή το DOI του έργου γύρω από τον τίτλο του. Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία.', NEW_TAB_WARNING: 'Ο σύνδεσμος ανοίγει σε νέα καρτέλα ή παράθυρο χωρίς προειδοποίηση. Κάτι τέτοιο μπορεί να αποπροσανατολίσει, ειδικά τα άτομα που δυσκολεύονται να αντιληφθούν το οπτικό περιεχόμενο. Δεύτερον, δεν είναι πάντα καλή πρακτική να ελέγχετε την εμπειρία κάποιου ή να παίρνετε αποφάσεις για λογαριασμό του. Αναφέρετε ότι ο σύνδεσμος ανοίγει σε νέο παράθυρο μέσα στο κείμενο του συνδέσμου
    Σύμβουλος! Μάθετε τις βέλτιστες πρακτικές: Ανοιγμα συνδέσμων σε νέα παράθυρα και καρτέλες του προγράμματος περιήγησης.', FILE_TYPE_WARNING: 'Ο σύνδεσμος παραπέμπει σε αρχείο PDF ή αρχείο με δυνατότητα λήψης (π.χ. MP3, Zip, Word Doc) χωρίς προειδοποίηση. Αναφέρετε τον τύπο του αρχείου στο κείμενο του συνδέσμου. Εάν πρόκειται για μεγάλο αρχείο, εξετάστε το ενδεχόμενο να συμπεριλάβετε το μέγεθος του αρχείου.
    Παράδειγμα: Εκτελεστική έκθεση (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος με περιβάλλων κείμενο, αν και το χαρακτηριστικό alt θα πρέπει να επισημανθεί ως διακοσμητικό ή μηδενικό.', MISSING_ALT_LINK_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος, αλλά λείπει το κείμενο alt! Βεβαιωθείτε ότι το alt text περιγράφει πού σας οδηγεί ο σύνδεσμος.', MISSING_ALT_MESSAGE: 'Λείπει το κείμενο alt! Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία - φροντίστε να περιγράψετε την εικόνα.', - LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(σφάλμα).
    Κείμενο alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
    Κείμενο alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(σφάλμα).
    Κείμενο alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(altText)', - ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό.
    Κείμενο άλτου: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Ο σύνδεσμος έχει aria-hidden="true" αλλά εξακολουθεί να είναι προσβάσιμος με το πληκτρολόγιο. Αν σκοπεύετε να κρύψετε έναν περιττό ή διπλό σύνδεσμο, προσθέστε επίσης tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Η εικόνα εντός του συνδέσμου χαρακτηρίζεται ως διακοσμητική και δεν υπάρχει κείμενο συνδέσμου. Προσθέστε κείμενο alt στην εικόνα που περιγράφει τον προορισμό του συνδέσμου.', LINK_IMAGE_HAS_TEXT: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική, αν και ο σύνδεσμος χρησιμοποιεί το περιβάλλον κείμενο ως περιγραφική ετικέτα.', - LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    Κείμενο alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
    Κείμενο alt: %(altText)
    Ετικέτα συνδέσμου: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
    ALT %(ALT_TEXT)
    Ετικέτα συνδέσμου %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία.
    Παρόλο που δόθηκε επικεφαλίδα, η εικόνα θα πρέπει επίσης να έχει κείμενο alt στις περισσότερες περιπτώσεις.
    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
    Μάθετε περισσότερα: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
    Μάθετε περισσότερα: alt versus figcaption.
    Κείμενο alt: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
    Μάθετε περισσότερα: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία. Εάν η εικόνα μεταφέρει μια ιστορία, διάθεση ή σημαντικές πληροφορίες - φροντίστε να προσθέσετε κείμενο alt.', - IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - IMAGE_PASS: 'Κείμενο alt: %(altText)', + IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Από το κουμπί εικόνας λείπει το κείμενο alt. Παρακαλούμε προσθέστε κείμενο alt για να δώσετε ένα προσβάσιμο όνομα. Για παράδειγμα: Αναζήτηση ή Υποβολή.', LABELS_INPUT_RESET_MESSAGE: 'Τα κουμπιά επαναφοράς δεν πρέπει να χρησιμοποιούνται, εκτός αν είναι ειδικά απαραίτητα, διότι είναι εύκολο να ενεργοποιηθούν κατά λάθος.
    Συμβουλή! Μάθετε γιατί τα κουμπιά Reset και Cancel δημιουργούν προβλήματα ευχρηστίας.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
    Ετικέτα εισόδου: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
    Ετικέτα εισόδου %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα χαρακτηριστικό for στην ετικέτα που ταιριάζει με το id αυτής της εισόδου.
    Το αναγνωριστικό αυτής της εισόδου είναι: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα id σε αυτή την είσοδο και προσθέστε ένα αντίστοιχο χαρακτηριστικό for στην ετικέτα.', EMBED_VIDEO: 'Παρακαλούμε βεβαιωθείτε ότι όλα τα βίντεο διαθέτουν κλειστούς υπότιτλους. Η παροχή υπότιτλων για όλο το περιεχόμενο ήχου και βίντεο αποτελεί υποχρεωτική απαίτηση του επιπέδου Α. Οι λεζάντες υποστηρίζουν τα άτομα που είναι κωφά ή βαρήκοα.', @@ -200,15 +206,15 @@ EMBED_MISSING_TITLE: 'Το ενσωματωμένο περιεχόμενο απαιτεί ένα προσβάσιμο όνομα που περιγράφει το περιεχόμενό του. Παρακαλείστε να δώσετε ένα μοναδικό χαρακτηριστικό title ή aria-label στο στοιχείο iframe. Μάθετε περισσότερα για τα iFrames.', EMBED_GENERAL_WARNING: 'Δεν είναι δυνατός ο έλεγχος του ενσωματωμένου περιεχομένου. Παρακαλούμε βεβαιωθείτε ότι οι εικόνες έχουν alt κείμενο, τα βίντεο έχουν λεζάντες, το κείμενο έχει επαρκή αντίθεση και τα διαδραστικά στοιχεία είναι προσβάσιμα στο πληκτρολόγιο.', EMBED_UNFOCUSABLE: 'Το <iframe> με στοιχεία που δεν είναι εστιασμένα δεν πρέπει να έχει tabindex="-1". Το ενσωματωμένο περιεχόμενο δεν θα είναι προσβάσιμο με το πληκτρολόγιο.', - QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
    Αυτός ο σύνδεσμος παραπέμπει σε:
    %(el)', + QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
    Αυτός ο σύνδεσμος παραπέμπει σε:
    %(LINK)', QA_IN_PAGE_LINK: 'Σπασμένος σύνδεσμος στην ίδια σελίδα. Το στόχος του συνδέσμου δεν αντιστοιχεί σε κανένα στοιχείο σε αυτήν τη σελίδα.', QA_BAD_ITALICS: 'Οι ετικέτες bold και italic έχουν σημασιολογική σημασία και δεν πρέπει να χρησιμοποιούνται για να τονίζουν ολόκληρες παραγράφους. Το κείμενο με έντονη γραφή θα πρέπει να χρησιμοποιείται για να παρέχει ισχυρή έμφαση σε μια λέξη ή φράση. Η πλάγια γραφή θα πρέπει να χρησιμοποιείται για να τονίζονται τα κύρια ονόματα (π.χ. τίτλοι βιβλίων και άρθρων), ξένες λέξεις, εισαγωγικά. Τα μακροσκελή εισαγωγικά θα πρέπει να μορφοποιούνται ως blockquote.', QA_PDF: 'Αδυναμία ελέγχου PDF για προσβασιμότητα. Τα PDF θεωρούνται περιεχόμενο ιστού και πρέπει επίσης να είναι προσβάσιμα. Τα PDF περιέχουν συχνά προβλήματα για άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης (λείπουν δομικές ετικέτες ή λείπουν ετικέτες πεδίων φόρμας) και άτομα με χαμηλή όραση (το κείμενο δεν ανακυκλώνεται όταν μεγεθύνεται).
    • Αν πρόκειται για φόρμα, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια προσβάσιμη φόρμα HTML ως εναλλακτική λύση.
    • Αν πρόκειται για έγγραφο, εξετάστε το ενδεχόμενο να το μετατρέψετε σε ιστοσελίδα.
    Αλλιώς, ελέγξτε το PDF για προσβασιμότητα στο Acrobat DC.', QA_DOCUMENT: 'Αδυναμία ελέγχου του εγγράφου για προσβασιμότητα. Τα συνδεδεμένα έγγραφα θεωρούνται διαδικτυακό περιεχόμενο και πρέπει επίσης να είναι προσβάσιμα. Παρακαλούμε ελέγξτε αυτό το έγγραφο με μη αυτόματο τρόπο. ', QA_PAGE_LANGUAGE: 'Η γλώσσα της σελίδας δεν έχει δηλωθεί! Παρακαλούμε δήλωσε τη γλώσσα στην ετικέτα HTML.', QA_PAGE_TITLE: 'Λείπει ο τίτλος της σελίδας! Παρακαλούμε δώστε έναν τίτλο σελίδας.', - QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(sanitizedText)
    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', - QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(boldtext)
    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', + QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(TEXT)
    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', + QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(TEXT)
    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', QA_SHOULD_BE_LIST: "Προσπαθείτε να δημιουργήσετε μια λίστα; Βρέθηκε πιθανό στοιχείο λίστας: %(firstPrefix)
    Βεβαιωθείτε ότι χρησιμοποιείτε σημασιολογικές λίστες, χρησιμοποιώντας αντ' αυτού τα κουμπιά μορφοποίησης κουκκίδων ή αριθμών. Όταν χρησιμοποιείτε μια σημασιολογική λίστα, οι υποστηρικτικές τεχνολογίες είναι σε θέση να μεταφέρουν πληροφορίες όπως ο συνολικός αριθμός των στοιχείων και η σχετική θέση κάθε στοιχείου στη λίστα. Μάθετε περισσότερα για τις σημασιολογικές λίστες.", QA_UPPERCASE_WARNING: 'Βρέθηκαν όλα τα κεφαλαία. Ορισμένα προγράμματα ανάγνωσης οθόνης ενδέχεται να ερμηνεύσουν το κείμενο με κεφαλαία γράμματα ως ακρωνύμιο και θα διαβάσουν κάθε γράμμα ξεχωριστά. Επιπλέον, ορισμένοι άνθρωποι βρίσκουν τα κεφαλαία γράμματα πιο δυσανάγνωστα και μπορεί να δώσουν την εντύπωση ότι φωνάζουν.', QA_DUPLICATE_ID: 'Βρέθηκε διπλό αναγνωριστικό. Τα σφάλματα διπλού αναγνωριστικού είναι γνωστό ότι προκαλούν προβλήματα στις υποστηρικτικές τεχνολογίες όταν αυτές προσπαθούν να αλληλεπιδράσουν με το περιεχόμενο.
    Παρακαλούμε αφαιρέστε ή αλλάξτε το ακόλουθο ID: %(id)', @@ -217,9 +223,9 @@ TABLES_MISSING_HEADINGS: 'Λείπουν οι επικεφαλίδες των πινάκων! Οι προσβάσιμοι πίνακες χρειάζονται σήμανση HTML που να υποδεικνύει τα κελιά κεφαλίδας και τα κελιά δεδομένων που καθορίζουν τη σχέση τους. Αυτές οι πληροφορίες παρέχουν περιεχόμενο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε μορφή πίνακα.
    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.', TABLES_SEMANTIC_HEADING: "Σημασιολογικές επικεφαλίδες όπως οι επικεφαλίδες 2 ή 3 θα πρέπει να χρησιμοποιούνται μόνο για τμήματα περιεχομένου- όχι σε πίνακες HTML. Υποδείξτε επικεφαλίδες πινάκων χρησιμοποιώντας αντ' αυτού το στοιχείο <th>.
    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.", TABLES_EMPTY_HEADING: 'Βρέθηκε κενή επικεφαλίδα πίνακα! Οι επικεφαλίδες των πινάκων δεν πρέπει να είναι ποτέ κενές. Είναι σημαντικό να ορίζονται επικεφαλίδες γραμμών ή/και στηλών για να αποδίδεται η σχέση τους. Αυτές οι πληροφορίες παρέχουν πλαίσιο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Λάβετε υπόψη σας ότι οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε πίνακες.
    Μάθετε περισσότερα σχετικά με τους προσβάσιμους πίνακες.', - CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Ο λόγος αντίθεσης είναι %(cratio) για το ακόλουθο κείμενο: %(sanitizedText)', - CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Παρακαλούμε ελέγξτε: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αναλογία αντίθεσης: %(cratio)', + CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αντίθεση Αναλογία %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Παρακαλούμε ελέγξτε: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
    Αντίθεση Αναλογία %(RATIO)', }, }; diff --git a/dist/js/lang/en.js b/dist/js/lang/en.js index a8db543f..5deede54 100644 --- a/dist/js/lang/en.js +++ b/dist/js/lang/en.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var en = { OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', + MISSING: 'Missing', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -75,8 +81,8 @@ var en = { COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Colour filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -131,7 +137,7 @@ var en = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -142,43 +148,43 @@ var en = { LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
    • Add some concise text that describes where the link takes you.
    • If it is an icon link or SVG, it is likely missing a descriptive label.
    • If you think this link is an error due to a copy/paste bug, consider deleting it.
    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
    ', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
    ', LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
    Tip! Learn best practices: opening links in new browser windows and tabs.', - FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example:
    Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    Alt text: %(altText)
    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
    Although a caption was provided, the image should also have alt text in most cases.
    • The alt text should provide a concise description of what is in the image.
    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
    Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
    • The alt text should provide a concise description of what is in the image.
    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
    Learn more: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
    • The alt text should provide a concise description of what is in the image.
    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
    Learn more: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -191,14 +197,14 @@ var en = { EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
    • If this is a form, consider using an accessible HTML form as an alternative.
    • If this is a document, consider converting it into a web page.
    Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
    Please remove or change the following ID: %(id)', @@ -212,9 +218,9 @@ var en = { TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO)', }, }; diff --git a/dist/js/lang/en.umd.js b/dist/js/lang/en.umd.js index bdbe9e19..4e00c833 100644 --- a/dist/js/lang/en.umd.js +++ b/dist/js/lang/en.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', + MISSING: 'Missing', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -81,8 +87,8 @@ COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Colour filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -137,7 +143,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -148,43 +154,43 @@ LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
    • Add some concise text that describes where the link takes you.
    • If it is an icon link or SVG, it is likely missing a descriptive label.
    • If you think this link is an error due to a copy/paste bug, consider deleting it.
    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
    ', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
    ', LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
    Tip! Learn best practices: opening links in new browser windows and tabs.', - FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example:
    Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    Alt text: %(altText)
    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
    Although a caption was provided, the image should also have alt text in most cases. Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -197,14 +203,14 @@ EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged). Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
    Please remove or change the following ID: %(id)', @@ -218,9 +224,9 @@ TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO)', }, }; diff --git a/dist/js/lang/enUS.js b/dist/js/lang/enUS.js index b951bf39..2ec4e873 100644 --- a/dist/js/lang/enUS.js +++ b/dist/js/lang/enUS.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,12 @@ var enUS = { OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -75,8 +80,8 @@ var enUS = { COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Color filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -131,7 +136,7 @@ var enUS = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -142,43 +147,43 @@ var enUS = { LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix: ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
    ', - LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
    ', + LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced - NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text
    Tip! Learn best practices: opening links in new browser windows and tabs.', + NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
    Tip! Learn best practices: opening links in new browser windows and tabs.', FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    Alt text: %(altText)
    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
    Although a caption was provided, the image should also have alt text in most cases. Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -191,14 +196,14 @@ var enUS = { EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged). Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
    Please remove or change the following ID: %(id)', @@ -212,9 +217,9 @@ var enUS = { TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO)', }, }; diff --git a/dist/js/lang/enUS.umd.js b/dist/js/lang/enUS.umd.js index 1feced4c..e6cc945e 100644 --- a/dist/js/lang/enUS.umd.js +++ b/dist/js/lang/enUS.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,12 @@ OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -81,8 +86,8 @@ COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Color filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -137,7 +142,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -148,43 +153,43 @@ LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix: ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
    ', - LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
    ', + LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced - NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text
    Tip! Learn best practices: opening links in new browser windows and tabs.', + NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
    Tip! Learn best practices: opening links in new browser windows and tabs.', FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    Alt text: %(altText)
    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
    ALT %(ALT_TEXT)
    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
    Although a caption was provided, the image should also have alt text in most cases. Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice. Learn more: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -197,14 +202,14 @@ EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
    This link points to:
    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged). Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
    Please remove or change the following ID: %(id)', @@ -218,9 +223,9 @@ TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast Ratio %(RATIO)', }, }; diff --git a/dist/js/lang/es.js b/dist/js/lang/es.js index 6abc10fa..7136b41d 100644 --- a/dist/js/lang/es.js +++ b/dist/js/lang/es.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var es = { OFF: 'Desactivado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Cerrar', - OUTLINE: 'Esquema de Página', + OUTLINE: 'Esquema', + ALT: 'ALT', + IMAGES: 'Imágenes', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'No se encontraron imágenes.', + DECORATIVE: 'Decorativo', + MISSING: 'Faltante', PAGE_ISSUES: 'Problemas de la Página', SETTINGS: 'Ajustes', CONTRAST: 'Contraste', @@ -129,7 +135,7 @@ var es = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de encabezamiento no consecutivo utilizado. Los encabezados nunca deben saltar niveles, o ir de Título %(prevLevel) en Título %(level).', HEADING_EMPTY: 'Encabezado vacío encontrado! Para corregir, elimine esta línea o cambie su formato de Encabezado %(level) a Normal o Párrafo.', - HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración)
    Número de caracteres: %(headingLength)', + HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'El primer encabezado de una página generalmente debe ser un encabezado 1 o un encabezado 2. El encabezado 1 debe ser el comienzo de la sección de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_MISSING_ONE: 'Falta el encabezado 1. El encabezado 1 debe ser el comienzo del área de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_EMPTY_WITH_IMAGE: 'El encabezado no tiene texto, pero contiene una imagen. Si no es un encabezado, cambie su formato de Título %(level) a Normal o Párrafo. De lo contrario, agregue texto alternativo a la imagen si no es decorativa.', @@ -140,43 +146,43 @@ var es = { LINK_EMPTY: 'Eliminar enlaces vacíos sin texto.', LINK_EMPTY_LABELLEDBY: 'El enlace tiene un valor para aria-labelledby que está vacío o no coincide con el valor del atributo id de otro elemento en la página.', LINK_EMPTY_LINK_NO_LABEL: 'El enlace no tiene texto perceptible que sea visible para los lectores de pantalla y otras tecnologías de asistencia. Para solucionarlo: ', - LINK_LABEL: 'Etiqueta de enlace: %(sanitizedText)', - LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(error)
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', - LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(error)
    ', - LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', + LINK_LABEL: 'Etiqueta de enlace %(TEXT)', + LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(ERROR)
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', + LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(ERROR)
    ', + LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', LINK_DOI: 'En el caso de páginas web o recursos en línea, la Guía de estilo de la APA recomienda utilizar enlaces descriptivos que incluyan la URL o el DOI de la obra alrededor de su título. Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden resultar difíciles de comprender cuando se accede a ellas con tecnología de asistencia.', // Links advanced NEW_TAB_WARNING: 'El enlace se abre en una nueva pestaña o ventana sin previo aviso. Si lo hace, puede ser desorientador, especialmente para las personas que tienen dificultades para percibir el contenido visual. En segundo lugar, no siempre es una buena práctica controlar la experiencia de alguien o tomar decisiones por ellos. Indique que el enlace se abre en una nueva ventana dentro del texto del enlace.
    ¡Consejo! Aprenda las mejores prácticas: abrir enlaces en nuevas ventanas y pestañas del navegador.', FILE_TYPE_WARNING: 'El enlace apunta a un archivo PDF o descargable (por ejemplo, MP3, Zip, Word Doc) sin previo aviso. Indique el tipo de archivo dentro del texto del enlace. Si es un archivo grande, considere incluir el tamaño del archivo.
    Ejemplo: Informe ejecutivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'La imagen se utiliza como vínculo con el texto circundante, aunque el atributo alt debe marcarse como decorativo o nulo.', MISSING_ALT_LINK_MESSAGE: 'La imagen se está utilizando como enlace, ¡pero falta el texto alternativo! Asegúrese de que el texto alternativo describa a dónde lo lleva el enlace.', MISSING_ALT_MESSAGE: '¡Falta el texto alternativo! Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(error).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(altText)', - ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'El enlace tiene aria-hidden="true" pero sigue siendo enfocable por el teclado. Si tienes la intención de ocultar un enlace redundante o duplicado, añade también tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'La imagen dentro del enlace está marcada como decorativa y no hay texto de enlace. Agregue texto alternativo a la imagen que describa el destino del enlace.', LINK_IMAGE_HAS_TEXT: 'La imagen está marcada como decorativa, aunque el enlace utiliza el texto circundante como etiqueta descriptiva.', - LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
    Texto alternativo: %(altText)
    Etiqueta de enlace: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
    ALT %(ALT_TEXT)
    Etiqueta de enlace %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará.
    Aunque se proporcionó un título, la imagen también debe tener texto alternativo en la mayoría de los casos. Más información: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces. Obtenga más información: alt versus figcaption.
    Texto alternativo: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces. Obtenga más información: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de agregar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Al botón de imagen le falta el texto alternativo. Agregue texto alternativo para proporcionar un nombre accesible. Por ejemplo: Buscar o Enviar.', LABELS_INPUT_RESET_MESSAGE: 'Los botones de reinicio no deben usarse a menos que se necesiten específicamente porque son fáciles de activar por error.
    ¡Consejo! Descubra por qué los botones Restablecer y Cancelar plantean problemas de uso.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
    Etiqueta de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
    Etiqueta de entrada %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un atributo for a la etiqueta que coincida con el id de esta entrada.
    El ID de esta entrada es: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un id a esta entrada y agregue un atributo for coincidente a la etiqueta.', @@ -190,14 +196,14 @@ var es = { EMBED_UNFOCUSABLE: '<iframe> con elementos no enfocables no debe tener tabindex="-1". El contenido incrustado no será accesible mediante el teclado.', // Quality assurance - QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
    Este enlace apunta a:
    %(el)', + QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
    Este enlace apunta a:
    %(LINK)', QA_BAD_ITALICS: 'Las etiquetas en negrita y cursiva tienen un significado semántico y no deben usarse para resaltar párrafos completos. El texto en negrita se debe utilizar para dar un fuerte énfasis a una palabra o frase. Se debe usar cursiva para resaltar nombres propios (es decir, títulos de libros y artículos), palabras extranjeras, citas. Las comillas largas deben formatearse como comillas en bloque.', QA_PDF: 'No se pueden verificar los archivos PDF para accesibilidad. Los archivos PDF se consideran contenido web y también deben ser accesibles. Los archivos PDF a menudo contienen problemas para las personas que usan lectores de pantalla (faltan etiquetas estructurales o etiquetas de campos de formulario) y personas con problemas de visión (el texto no se ajusta cuando se amplía). De lo contrario, consulte PDF para conocer la accesibilidad en Acrobat DC.', QA_DOCUMENT: 'No se puede comprobar la accesibilidad del documento. Los documentos vinculados se consideran contenido web y también deben ser accesibles. Por favor revise manualmente este documento. ', QA_PAGE_LANGUAGE: '¡Idioma de la página no declarado! declare el idioma en la etiqueta HTML.', QA_PAGE_TITLE: '¡Falta el título de la página! Proporcione un título de página.', - QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(sanitizedText)
    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', - QA_FAKE_HEADING: '¿Es esto un encabezado? %(boldtext)
    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', + QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(TEXT)
    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', + QA_FAKE_HEADING: '¿Es esto un encabezado? %(TEXT)
    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', QA_SHOULD_BE_LIST: '¿Estás tratando de crear una lista? Posible elemento de lista encontrado: %(firstPrefix)
    Asegúrese de usar listas semánticas utilizando los botones de formato de viñetas o números en su lugar. Cuando se utiliza una lista semántica, las tecnologías de asistencia pueden transmitir información como el número total de elementos y la posición relativa de cada elemento en la lista. Obtenga más información sobre las listas semánticas.', QA_UPPERCASE_WARNING: 'Encontrado todo en mayúsculas. Algunos lectores de pantalla pueden interpretar todo el texto en mayúsculas como un acrónimo y leerán cada letra individualmente. Además, algunas personas encuentran que las mayúsculas son más difíciles de leer y puede dar la apariencia de GRITO.', QA_DUPLICATE_ID: 'Identificación duplicada encontrada. Se sabe que los errores de ID duplicados causan problemas a las tecnologías de asistencia cuando intentan interactuar con el contenido.
    Elimine o cambie el siguiente ID: %(id)', @@ -211,9 +217,9 @@ var es = { TABLES_EMPTY_HEADING: '¡Encabezado de tabla vacío encontrado! Los encabezados de las tablas nunca deben estar vacíos. Es importante designar encabezados de fila y/o columna para transmitir su relación. Esta información brinda contexto a las personas que usan tecnología de asistencia. Tenga en cuenta que las tablas deben usarse solo para datos tabulares.
    Más información sobre las tablas accesibles.', // Contrast - CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    La relación de contraste es %(cratio) para el siguiente texto: %(sanitizedText)', - CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/es.umd.js b/dist/js/lang/es.umd.js index 8c47c426..6df616bc 100644 --- a/dist/js/lang/es.umd.js +++ b/dist/js/lang/es.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Desactivado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Cerrar', - OUTLINE: 'Esquema de Página', + OUTLINE: 'Esquema', + ALT: 'ALT', + IMAGES: 'Imágenes', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'No se encontraron imágenes.', + DECORATIVE: 'Decorativo', + MISSING: 'Faltante', PAGE_ISSUES: 'Problemas de la Página', SETTINGS: 'Ajustes', CONTRAST: 'Contraste', @@ -135,7 +141,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de encabezamiento no consecutivo utilizado. Los encabezados nunca deben saltar niveles, o ir de Título %(prevLevel) en Título %(level).', HEADING_EMPTY: 'Encabezado vacío encontrado! Para corregir, elimine esta línea o cambie su formato de Encabezado %(level) a Normal o Párrafo.', - HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración)
    Número de caracteres: %(headingLength)', + HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'El primer encabezado de una página generalmente debe ser un encabezado 1 o un encabezado 2. El encabezado 1 debe ser el comienzo de la sección de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_MISSING_ONE: 'Falta el encabezado 1. El encabezado 1 debe ser el comienzo del área de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_EMPTY_WITH_IMAGE: 'El encabezado no tiene texto, pero contiene una imagen. Si no es un encabezado, cambie su formato de Título %(level) a Normal o Párrafo. De lo contrario, agregue texto alternativo a la imagen si no es decorativa.', @@ -146,43 +152,43 @@ LINK_EMPTY: 'Eliminar enlaces vacíos sin texto.', LINK_EMPTY_LABELLEDBY: 'El enlace tiene un valor para aria-labelledby que está vacío o no coincide con el valor del atributo id de otro elemento en la página.', LINK_EMPTY_LINK_NO_LABEL: 'El enlace no tiene texto perceptible que sea visible para los lectores de pantalla y otras tecnologías de asistencia. Para solucionarlo: ', - LINK_LABEL: 'Etiqueta de enlace: %(sanitizedText)', - LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(error)
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', - LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(error)
    ', - LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', + LINK_LABEL: 'Etiqueta de enlace %(TEXT)', + LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(ERROR)
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', + LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(ERROR)
    ', + LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', LINK_DOI: 'En el caso de páginas web o recursos en línea, la Guía de estilo de la APA recomienda utilizar enlaces descriptivos que incluyan la URL o el DOI de la obra alrededor de su título. Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden resultar difíciles de comprender cuando se accede a ellas con tecnología de asistencia.', // Links advanced NEW_TAB_WARNING: 'El enlace se abre en una nueva pestaña o ventana sin previo aviso. Si lo hace, puede ser desorientador, especialmente para las personas que tienen dificultades para percibir el contenido visual. En segundo lugar, no siempre es una buena práctica controlar la experiencia de alguien o tomar decisiones por ellos. Indique que el enlace se abre en una nueva ventana dentro del texto del enlace.
    ¡Consejo! Aprenda las mejores prácticas: abrir enlaces en nuevas ventanas y pestañas del navegador.', FILE_TYPE_WARNING: 'El enlace apunta a un archivo PDF o descargable (por ejemplo, MP3, Zip, Word Doc) sin previo aviso. Indique el tipo de archivo dentro del texto del enlace. Si es un archivo grande, considere incluir el tamaño del archivo.
    Ejemplo: Informe ejecutivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'La imagen se utiliza como vínculo con el texto circundante, aunque el atributo alt debe marcarse como decorativo o nulo.', MISSING_ALT_LINK_MESSAGE: 'La imagen se está utilizando como enlace, ¡pero falta el texto alternativo! Asegúrese de que el texto alternativo describa a dónde lo lleva el enlace.', MISSING_ALT_MESSAGE: '¡Falta el texto alternativo! Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(error).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(altText)', - ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'El enlace tiene aria-hidden="true" pero sigue siendo enfocable por el teclado. Si tienes la intención de ocultar un enlace redundante o duplicado, añade también tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'La imagen dentro del enlace está marcada como decorativa y no hay texto de enlace. Agregue texto alternativo a la imagen que describa el destino del enlace.', LINK_IMAGE_HAS_TEXT: 'La imagen está marcada como decorativa, aunque el enlace utiliza el texto circundante como etiqueta descriptiva.', - LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
    Texto alternativo: %(altText)
    Etiqueta de enlace: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
    ALT %(ALT_TEXT)
    Etiqueta de enlace %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará.
    Aunque se proporcionó un título, la imagen también debe tener texto alternativo en la mayoría de los casos. Más información: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces. Obtenga más información: alt versus figcaption.
    Texto alternativo: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces. Obtenga más información: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de agregar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Al botón de imagen le falta el texto alternativo. Agregue texto alternativo para proporcionar un nombre accesible. Por ejemplo: Buscar o Enviar.', LABELS_INPUT_RESET_MESSAGE: 'Los botones de reinicio no deben usarse a menos que se necesiten específicamente porque son fáciles de activar por error.
    ¡Consejo! Descubra por qué los botones Restablecer y Cancelar plantean problemas de uso.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
    Etiqueta de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
    Etiqueta de entrada %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un atributo for a la etiqueta que coincida con el id de esta entrada.
    El ID de esta entrada es: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un id a esta entrada y agregue un atributo for coincidente a la etiqueta.', @@ -196,14 +202,14 @@ EMBED_UNFOCUSABLE: '<iframe> con elementos no enfocables no debe tener tabindex="-1". El contenido incrustado no será accesible mediante el teclado.', // Quality assurance - QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
    Este enlace apunta a:
    %(el)', + QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
    Este enlace apunta a:
    %(LINK)', QA_BAD_ITALICS: 'Las etiquetas en negrita y cursiva tienen un significado semántico y no deben usarse para resaltar párrafos completos. El texto en negrita se debe utilizar para dar un fuerte énfasis a una palabra o frase. Se debe usar cursiva para resaltar nombres propios (es decir, títulos de libros y artículos), palabras extranjeras, citas. Las comillas largas deben formatearse como comillas en bloque.', QA_PDF: 'No se pueden verificar los archivos PDF para accesibilidad. Los archivos PDF se consideran contenido web y también deben ser accesibles. Los archivos PDF a menudo contienen problemas para las personas que usan lectores de pantalla (faltan etiquetas estructurales o etiquetas de campos de formulario) y personas con problemas de visión (el texto no se ajusta cuando se amplía). De lo contrario, consulte PDF para conocer la accesibilidad en Acrobat DC.', QA_DOCUMENT: 'No se puede comprobar la accesibilidad del documento. Los documentos vinculados se consideran contenido web y también deben ser accesibles. Por favor revise manualmente este documento. ', QA_PAGE_LANGUAGE: '¡Idioma de la página no declarado! declare el idioma en la etiqueta HTML.', QA_PAGE_TITLE: '¡Falta el título de la página! Proporcione un título de página.', - QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(sanitizedText)
    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', - QA_FAKE_HEADING: '¿Es esto un encabezado? %(boldtext)
    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', + QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(TEXT)
    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', + QA_FAKE_HEADING: '¿Es esto un encabezado? %(TEXT)
    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', QA_SHOULD_BE_LIST: '¿Estás tratando de crear una lista? Posible elemento de lista encontrado: %(firstPrefix)
    Asegúrese de usar listas semánticas utilizando los botones de formato de viñetas o números en su lugar. Cuando se utiliza una lista semántica, las tecnologías de asistencia pueden transmitir información como el número total de elementos y la posición relativa de cada elemento en la lista. Obtenga más información sobre las listas semánticas.', QA_UPPERCASE_WARNING: 'Encontrado todo en mayúsculas. Algunos lectores de pantalla pueden interpretar todo el texto en mayúsculas como un acrónimo y leerán cada letra individualmente. Además, algunas personas encuentran que las mayúsculas son más difíciles de leer y puede dar la apariencia de GRITO.', QA_DUPLICATE_ID: 'Identificación duplicada encontrada. Se sabe que los errores de ID duplicados causan problemas a las tecnologías de asistencia cuando intentan interactuar con el contenido.
    Elimine o cambie el siguiente ID: %(id)', @@ -217,9 +223,9 @@ TABLES_EMPTY_HEADING: '¡Encabezado de tabla vacío encontrado! Los encabezados de las tablas nunca deben estar vacíos. Es importante designar encabezados de fila y/o columna para transmitir su relación. Esta información brinda contexto a las personas que usan tecnología de asistencia. Tenga en cuenta que las tablas deben usarse solo para datos tabulares.
    Más información sobre las tablas accesibles.', // Contrast - CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    La relación de contraste es %(cratio) para el siguiente texto: %(sanitizedText)', - CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
    Relación de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/et.js b/dist/js/lang/et.js index bcb409c1..a9dc3733 100644 --- a/dist/js/lang/et.js +++ b/dist/js/lang/et.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var et = { OFF: 'Väljaspool', ALERT_TEXT: 'Hoiatus', ALERT_CLOSE: 'Sulge', - OUTLINE: 'Lehekülje ülevaade', + OUTLINE: 'Ülevaade', + ALT: 'ALT', + IMAGES: 'Pildid', + EDIT: 'Muuda', + IMAGES_NOT_FOUND: 'Pilte ei leitud.', + DECORATIVE: 'Dekoratiivne', + MISSING: 'Puudu', PAGE_ISSUES: 'Lehekülje probleemid', SETTINGS: 'Seaded', CONTRAST: 'Kontrast', @@ -153,7 +159,7 @@ var et = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Loetavuse hinde arvutamiseks ei ole piisavalt sisu.', HEADING_NON_CONSECUTIVE_LEVEL: 'Kasutatakse mittejärjepideva pealkirja tasandit. Pealkirjad ei tohiks kunagi taset vahele jätta ega minna pealkirjast %(prevLevel) kuni pealkirjast %(level).', HEADING_EMPTY: 'Tühi rubriik leitud! Parandamiseks kustutage see rida või muutke selle vorming pealkiri %(level) normaalseks või paragrahviks.', - HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
    Märkide arv: %(headingLength)', + HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
    %(HEADING_LENGTH) Tähemärki', HEADING_FIRST: 'Lehekülje esimene pealkiri peaks tavaliselt olema pealkiri 1 või 2. Pealkiri 1 peaks olema peamise sisuosa algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirjade struktuuri kohta.', HEADING_MISSING_ONE: 'Puudub pealkiri 1. Pealkiri 1 peaks olema peamise sisuala algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirja struktuur.', HEADING_EMPTY_WITH_IMAGE: 'Pealkiri ei sisalda teksti, kuid sisaldab pilti. Kui see ei ole pealkiri, muutke selle formaat pealkiri %(level)-st normaalseks või paragrahviks. Vastasel juhul lisage pildile alt-tekst, kui see ei ole dekoratiivne.', @@ -161,38 +167,38 @@ var et = { PANEL_NO_HEADINGS: 'Pealkirju ei leitud.', LINK_EMPTY: 'Eemaldage tühjad lingid ilma tekstita.', LINK_EMPTY_LABELLEDBY: 'Lingil on väärtus aria-labelledby, mis on tühi või ei ühti lehe teise elemendi atribuudi id väärtusega.', - LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada: Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.', - LINK_LABEL: 'Linki silt: %(sanitizedText)', - LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(error)
    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', - LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(error)
    ', - LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', + LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada: ', + LINK_LABEL: 'Linki silt %(TEXT)', + LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(ERROR)
    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', + LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(ERROR)
    ', + LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', LINK_DOI: 'Veebilehtede või ainult veebipõhiste ressursside puhul soovitab APA stiilijuhend kasutada kirjeldavaid linke, ümbritsedes teose URL-i või DOI-d selle pealkirja ümber. Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil.', - NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas
    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', - FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
    Näide: Juhtkonna aruanne (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(sanitizedText)', + NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas.
    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', + FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
    Näide: Juhtkonna aruanne (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Pilti kasutatakse lingina koos ümbritseva tekstiga, kuigi alt-atribuut peaks olema märgitud dekoratiivseks või null.', MISSING_ALT_LINK_MESSAGE: 'Pilti kasutatakse lingina, kuid puudub alt-tekst! Palun veenduge, et alt-tekst kirjeldab, kuhu link viib.', MISSING_ALT_MESSAGE: 'Puuduv alt-tekst! Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(error).
    Alt tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(error)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
    Alt tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(error).
    Alt tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(altText)', - ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(error)" võib olla üleliigne.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(ERROR)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(ERROR)" võib olla üleliigne.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lingil on aria-hidden="true", kuid see on ikkagi klaviatuuriga fookuses. Kui kavatsete peita ülearuse või topeltlingi, lisage ka tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linki sees olev pilt on märgitud dekoratiivseks ja lingi tekst puudub. Palun lisage pildile alt-tekst, mis kirjeldab lingi sihtkohta.', LINK_IMAGE_HAS_TEXT: 'Pilt on märgitud dekoratiivseks, kuigi link kasutab ümbritsevat teksti kirjeldava märgisena.', - LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
    Alt-tekst (%(altLength) tähemärki): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
    Alt tekst: %(altText)
    Linki silt: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
    ALT %(altLength) Tähemärki %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
    ALT %(ALT_TEXT)
    Linki silt %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda.
    Kuigi on esitatud caption, peaks pildil olema enamasti ka alt-tekst. Lisaks: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada. Lisateave: alt versus figcaption.
    Alt tekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada. Lisateave: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda. Kui pilt edastab lugu, meeleolu või olulist teavet - lisage kindlasti alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
    Alt tekst (%(altLength) tähemärki): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
    ALT %(altLength) Tähemärki %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Pildi nupul puudub alt-tekst. Palun lisage alt-tekst, et anda ligipääsetav nimi. Näiteks: Search või Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset-nuppe ei tohiks ei kasutada, kui see pole spetsiaalselt vajalik, sest neid on lihtne kogemata aktiveerida.
    Nipp! Lugege, miks Reset ja Cancel nupud tekitavad kasutatavusprobleeme.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
    Sisendmärgis: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
    Sisendmärgis %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Lisage sildile for atribuut, mis vastab selle sisendi id.
    Selle sisendi ID on: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Palun lisage sellele sisendile id ja lisage sildile vastav for atribuut.', EMBED_VIDEO: 'Palun veenduge, et kõik millisel videol on kinnised subtiitrid. Kogu heli- ja videosisu puhul on subtiitrite esitamine kohustuslik A-taseme nõue. Üleskirjutused toetavad kurte ja vaegkuuljaid inimesi, kes on kurdid või vaegkuuljad.', @@ -201,26 +207,26 @@ var et = { EMBED_MISSING_TITLE: 'Varjatud sisu vajab juurdepääsetavat nime, mis kirjeldab selle sisu. Andke iframe elemendile tiitle või aria-label atribuut unikaalne tiitle või aria-label. Lisateave iFrame\'i kohta.', EMBED_GENERAL_WARNING: 'Ei saa kontrollida varjatud sisu. Palun veenduge, et piltidel on alt-tekst, videote pealkirjad, tekst on piisavalt kontrastne ja interaktiivsed komponendid on tahvlile juurdepääsetavad..', EMBED_UNFOCUSABLE: '<iframe> koos fookustamata elementidega ei tohiks olla tabindex="-1". Manustatud sisu ei ole klaviatuuriga juurdepääsetav.', - QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
    See link viitab:
    %(el)', + QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
    See link viitab:
    %(LINK)', QA_IN_PAGE_LINK: 'Katkine samalehekülje link. Lingi sihtmärk ei vasta sellel lehel ühelegi elemendile.', QA_BAD_ITALICS: 'Paks ja kursiivne märgistus on semantilise tähendusega ja neid ei tohiks ei kasutada tervete lõigete esiletõstmiseks. Häälestatud teksti tuleks kasutada selleks, et rõhutada sõna või fraasi tugevalt kõrge. Kursiivkirjas tuleks kasutada pärisnimede (st raamatute ja artiklite pealkirjade), võõrsõnade, jutumärkide esiletõstmiseks. Pikad tsitaadid tuleks vormistada plokktsitaatidena.', - QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi). Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', + QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi). Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', QA_DOCUMENT: 'Ei saa kontrollida dokumendi juurdepääsetavust. Lingitud dokumente loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. Palun vaadake see dokument käsitsi üle. ', QA_PAGE_LANGUAGE: 'Lehekülje keel ei ole deklareeritud! Palun deklareerige keel HTML-sildil.', QA_PAGE_TITLE: 'Puudub lehekülje pealkiri! Palun sisestage lehe pealkiri..', - QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(sanitizedText)
    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', - QA_FAKE_HEADING: 'Kas see on pealkiri? %(boldtext)
    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', - QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', + QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(TEXT)
    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', + QA_FAKE_HEADING: 'Kas see on pealkiri? %(TEXT)
    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', + QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', QA_UPPERCASE_WARNING: 'Leidsin kõik suurtähed. Mõned ekraanilugejad võivad tõlgendada täistähti akronüümina ja lugeda iga tähte eraldi. Lisaks sellele on mõnedel inimestel raskem lugeda ja see võib jätta mulje, nagu oleks see HÄÄLETUS.', - QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
    Palun eemaldage või muutke järgmine ID: %(id).', + QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
    Palun eemaldage või muutke järgmine ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Allakriipsutatud teksti võib segi ajada linkidega. Kaaluge teistsuguse stiili kasutamist, näiteks <strong>tugev tähtsus</strong> või <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'Alam- ja ülaindeksite vormindamise võimalusi tuleks kasutada ainult teksti asukoha muutmiseks tüpograafiliste konventsioonide või standardite alusel. Seda ei tohiks ei kasutada ainult esitlus- või välimuseesmärkidel. Tervete lausete vormindamine tekitab probleeme loetavusega. Asjakohased kasutusjuhud on näiteks eksponentide, ordinaalarvude, näiteks 4th asemel 4, ja keemiliste valemite (nt H2O) kuvamine.', TABLES_MISSING_HEADINGS: 'Puuduvad tabeli päised! Kättesaadavad tabelid vajavad HTML-märgistust, mis tähistab päise- ja andmerakke, mis määratleb nende omavahelise seose. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Tabeleid tuleks kasutada ainult tabeliandmete jaoks.
    Lisateave juurdepääsetavate tabelite kohta.', TABLES_SEMANTIC_HEADING: 'Semantilisi pealkirju, nagu pealkiri 2 või pealkiri 3, tuleks kasutada ainult sisulõikudes; ei HTML-tabelites. Märkige tabelipealkirjad hoopis elemendi <th> abil.
    Lisateave juurdepääsetavate tabelite kohta.', TABLES_EMPTY_HEADING: 'Leitud on tühi tabeli päis! Tabeli päised ei tohiks ei tohiks kunagi olla tühjad. Oluline on määrata rea ja/või veeru päised, et anda edasi nende seos. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Pidage meeles, et tabeleid tuleks kasutada ainult tabeliandmete jaoks.
    Lisateave juurdepääsetavate tabelite kohta.', - CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuse suhe on %(cratio) järgmise teksti puhul: %(sanitizedText)', - CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Palun kontrollige: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuse suhe: %(cratio)', + CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuhe %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Palun kontrollige: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuhe %(RATIO)', }, }; diff --git a/dist/js/lang/et.umd.js b/dist/js/lang/et.umd.js index 9c49da0f..3712f092 100644 --- a/dist/js/lang/et.umd.js +++ b/dist/js/lang/et.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Väljaspool', ALERT_TEXT: 'Hoiatus', ALERT_CLOSE: 'Sulge', - OUTLINE: 'Lehekülje ülevaade', + OUTLINE: 'Ülevaade', + ALT: 'ALT', + IMAGES: 'Pildid', + EDIT: 'Muuda', + IMAGES_NOT_FOUND: 'Pilte ei leitud.', + DECORATIVE: 'Dekoratiivne', + MISSING: 'Puudu', PAGE_ISSUES: 'Lehekülje probleemid', SETTINGS: 'Seaded', CONTRAST: 'Kontrast', @@ -159,7 +165,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Loetavuse hinde arvutamiseks ei ole piisavalt sisu.', HEADING_NON_CONSECUTIVE_LEVEL: 'Kasutatakse mittejärjepideva pealkirja tasandit. Pealkirjad ei tohiks kunagi taset vahele jätta ega minna pealkirjast %(prevLevel) kuni pealkirjast %(level).', HEADING_EMPTY: 'Tühi rubriik leitud! Parandamiseks kustutage see rida või muutke selle vorming pealkiri %(level) normaalseks või paragrahviks.', - HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
    Märkide arv: %(headingLength)', + HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
    %(HEADING_LENGTH) Tähemärki', HEADING_FIRST: 'Lehekülje esimene pealkiri peaks tavaliselt olema pealkiri 1 või 2. Pealkiri 1 peaks olema peamise sisuosa algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirjade struktuuri kohta.', HEADING_MISSING_ONE: 'Puudub pealkiri 1. Pealkiri 1 peaks olema peamise sisuala algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirja struktuur.', HEADING_EMPTY_WITH_IMAGE: 'Pealkiri ei sisalda teksti, kuid sisaldab pilti. Kui see ei ole pealkiri, muutke selle formaat pealkiri %(level)-st normaalseks või paragrahviks. Vastasel juhul lisage pildile alt-tekst, kui see ei ole dekoratiivne.', @@ -167,38 +173,38 @@ PANEL_NO_HEADINGS: 'Pealkirju ei leitud.', LINK_EMPTY: 'Eemaldage tühjad lingid ilma tekstita.', LINK_EMPTY_LABELLEDBY: 'Lingil on väärtus aria-labelledby, mis on tühi või ei ühti lehe teise elemendi atribuudi id väärtusega.', - LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
    Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.', - LINK_LABEL: 'Linki silt: %(sanitizedText)', - LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(error)
    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', - LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(error)
    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
    ', - LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', + LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
    • Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.
    ', + LINK_LABEL: 'Linki silt %(TEXT)', + LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(ERROR)
    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', + LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(ERROR)
    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
    ', + LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', LINK_DOI: 'Veebilehtede või ainult veebipõhiste ressursside puhul soovitab APA stiilijuhend kasutada kirjeldavaid linke, ümbritsedes teose URL-i või DOI-d selle pealkirja ümber. Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil.', - NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas
    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', - FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
    Näide: Juhtkonna aruanne (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(sanitizedText)', + NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas.
    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', + FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
    Näide: Juhtkonna aruanne (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Pilti kasutatakse lingina koos ümbritseva tekstiga, kuigi alt-atribuut peaks olema märgitud dekoratiivseks või null.', MISSING_ALT_LINK_MESSAGE: 'Pilti kasutatakse lingina, kuid puudub alt-tekst! Palun veenduge, et alt-tekst kirjeldab, kuhu link viib.', MISSING_ALT_MESSAGE: 'Puuduv alt-tekst! Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(error).
    Alt tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(error)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
    Alt tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(error).
    Alt tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(altText)', - ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(error)" võib olla üleliigne.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(ERROR)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(ERROR)" võib olla üleliigne.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lingil on aria-hidden="true", kuid see on ikkagi klaviatuuriga fookuses. Kui kavatsete peita ülearuse või topeltlingi, lisage ka tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linki sees olev pilt on märgitud dekoratiivseks ja lingi tekst puudub. Palun lisage pildile alt-tekst, mis kirjeldab lingi sihtkohta.', LINK_IMAGE_HAS_TEXT: 'Pilt on märgitud dekoratiivseks, kuigi link kasutab ümbritsevat teksti kirjeldava märgisena.', - LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
    Alt-tekst (%(altLength) tähemärki): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
    Alt tekst: %(altText)
    Linki silt: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
    ALT %(altLength) Tähemärki %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
    ALT %(ALT_TEXT)
    Linki silt %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda.
    Kuigi on esitatud caption, peaks pildil olema enamasti ka alt-tekst.
    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
    Lisaks: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
    Lisateave: alt versus figcaption.
    Alt tekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
    Lisateave: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda. Kui pilt edastab lugu, meeleolu või olulist teavet - lisage kindlasti alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
    Alt tekst (%(altLength) tähemärki): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
    ALT %(altLength) Tähemärki %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Pildi nupul puudub alt-tekst. Palun lisage alt-tekst, et anda ligipääsetav nimi. Näiteks: Search või Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset-nuppe ei tohiks ei kasutada, kui see pole spetsiaalselt vajalik, sest neid on lihtne kogemata aktiveerida.
    Nipp! Lugege, miks Reset ja Cancel nupud tekitavad kasutatavusprobleeme.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
    Sisendmärgis: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
    Sisendmärgis %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Lisage sildile for atribuut, mis vastab selle sisendi id.
    Selle sisendi ID on: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Palun lisage sellele sisendile id ja lisage sildile vastav for atribuut.', EMBED_VIDEO: 'Palun veenduge, et kõik millisel videol on kinnised subtiitrid. Kogu heli- ja videosisu puhul on subtiitrite esitamine kohustuslik A-taseme nõue. Üleskirjutused toetavad kurte ja vaegkuuljaid inimesi, kes on kurdid või vaegkuuljad.', @@ -207,26 +213,26 @@ EMBED_MISSING_TITLE: 'Varjatud sisu vajab juurdepääsetavat nime, mis kirjeldab selle sisu. Andke iframe elemendile tiitle või aria-label atribuut unikaalne tiitle või aria-label. Lisateave iFrame\'i kohta.', EMBED_GENERAL_WARNING: 'Ei saa kontrollida varjatud sisu. Palun veenduge, et piltidel on alt-tekst, videote pealkirjad, tekst on piisavalt kontrastne ja interaktiivsed komponendid on tahvlile juurdepääsetavad..', EMBED_UNFOCUSABLE: '<iframe> koos fookustamata elementidega ei tohiks olla tabindex="-1". Manustatud sisu ei ole klaviatuuriga juurdepääsetav.', - QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
    See link viitab:
    %(el)', + QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
    See link viitab:
    %(LINK)', QA_IN_PAGE_LINK: 'Katkine samalehekülje link. Lingi sihtmärk ei vasta sellel lehel ühelegi elemendile.', QA_BAD_ITALICS: 'Paks ja kursiivne märgistus on semantilise tähendusega ja neid ei tohiks ei kasutada tervete lõigete esiletõstmiseks. Häälestatud teksti tuleks kasutada selleks, et rõhutada sõna või fraasi tugevalt kõrge. Kursiivkirjas tuleks kasutada pärisnimede (st raamatute ja artiklite pealkirjade), võõrsõnade, jutumärkide esiletõstmiseks. Pikad tsitaadid tuleks vormistada plokktsitaatidena.', - QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', + QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', QA_DOCUMENT: 'Ei saa kontrollida dokumendi juurdepääsetavust. Lingitud dokumente loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. Palun vaadake see dokument käsitsi üle. ', QA_PAGE_LANGUAGE: 'Lehekülje keel ei ole deklareeritud! Palun deklareerige keel HTML-sildil.', QA_PAGE_TITLE: 'Puudub lehekülje pealkiri! Palun sisestage lehe pealkiri..', - QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(sanitizedText)
    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', - QA_FAKE_HEADING: 'Kas see on pealkiri? %(boldtext)
    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', - QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', + QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(TEXT)
    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', + QA_FAKE_HEADING: 'Kas see on pealkiri? %(TEXT)
    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', + QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', QA_UPPERCASE_WARNING: 'Leidsin kõik suurtähed. Mõned ekraanilugejad võivad tõlgendada täistähti akronüümina ja lugeda iga tähte eraldi. Lisaks sellele on mõnedel inimestel raskem lugeda ja see võib jätta mulje, nagu oleks see HÄÄLETUS.', - QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
    Palun eemaldage või muutke järgmine ID: %(id).', + QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
    Palun eemaldage või muutke järgmine ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Allakriipsutatud teksti võib segi ajada linkidega. Kaaluge teistsuguse stiili kasutamist, näiteks <strong>tugev tähtsus</strong> või <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'Alam- ja ülaindeksite vormindamise võimalusi tuleks kasutada ainult teksti asukoha muutmiseks tüpograafiliste konventsioonide või standardite alusel. Seda ei tohiks ei kasutada ainult esitlus- või välimuseesmärkidel. Tervete lausete vormindamine tekitab probleeme loetavusega. Asjakohased kasutusjuhud on näiteks eksponentide, ordinaalarvude, näiteks 4th asemel 4, ja keemiliste valemite (nt H2O) kuvamine.', TABLES_MISSING_HEADINGS: 'Puuduvad tabeli päised! Kättesaadavad tabelid vajavad HTML-märgistust, mis tähistab päise- ja andmerakke, mis määratleb nende omavahelise seose. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Tabeleid tuleks kasutada ainult tabeliandmete jaoks.
    Lisateave juurdepääsetavate tabelite kohta.', TABLES_SEMANTIC_HEADING: 'Semantilisi pealkirju, nagu pealkiri 2 või pealkiri 3, tuleks kasutada ainult sisulõikudes; ei HTML-tabelites. Märkige tabelipealkirjad hoopis elemendi <th> abil.
    Lisateave juurdepääsetavate tabelite kohta.', TABLES_EMPTY_HEADING: 'Leitud on tühi tabeli päis! Tabeli päised ei tohiks ei tohiks kunagi olla tühjad. Oluline on määrata rea ja/või veeru päised, et anda edasi nende seos. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Pidage meeles, et tabeleid tuleks kasutada ainult tabeliandmete jaoks.
    Lisateave juurdepääsetavate tabelite kohta.', - CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuse suhe on %(cratio) järgmise teksti puhul: %(sanitizedText)', - CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Palun kontrollige: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuse suhe: %(cratio)', + CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuhe %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Palun kontrollige: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
    Kontrastsuhe %(RATIO)', }, }; diff --git a/dist/js/lang/fi.js b/dist/js/lang/fi.js index c6c59960..fda61d52 100644 --- a/dist/js/lang/fi.js +++ b/dist/js/lang/fi.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var fi = { OFF: 'Pois päältä', ALERT_TEXT: 'Hälytys', ALERT_CLOSE: 'Sulje', - OUTLINE: 'Sivun pääpiirteet', + OUTLINE: 'Sivuluettelo', + ALT: 'ALT', + IMAGES: 'Kuvat', + EDIT: 'Muokkaa', + IMAGES_NOT_FOUND: 'Ei kuvia löytynyt.', + DECORATIVE: 'Koristeellinen', + MISSING: 'Puuttuva', PAGE_ISSUES: 'Sivukysymykset', SETTINGS: 'Asetukset', CONTRAST: 'Kontrasti', @@ -144,46 +150,46 @@ var fi = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ei tarpeeksi sisältöä luettavuuspisteiden laskemiseksi.', HEADING_NON_CONSECUTIVE_LEVEL: 'Käytetään muuta kuin peräkkäistä otsikkotasoa. Otsikot eivät saisi koskaan ohittaa tasoja tai siirtyä otsikko %(prevLevel):stä otsikko %(level):iin.', HEADING_EMPTY: 'Tyhjä otsikko löytyi! Korjaa ongelma poistamalla tämä rivi tai muuttamalla sen muoto otsikko %(level) muotoon Normaali tai Paragraph.', - HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
    Merkkien määrä: %(headingLength)', - HEADING_FIRST: 'Sivun ensimmäisen otsikon pitäisi yleensä olla otsikko 1 tai otsikko 2. Otsikon 1 pitäisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne.sivuotsikkorakenteesta.', + HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
    %(HEADING_LENGTH) Merkkiä', + HEADING_FIRST: 'Sivun ensimmäisen otsikon tulisi yleensä olla Otsikko 1 tai Otsikko 2. Otsikon 1 tulisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Otsikon rakenteesta.', HEADING_MISSING_ONE: 'Puuttuva otsikko 1. Otsikon 1 pitäisi olla pääsisältöalueen alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne..', - HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos kyseessä ei ole otsikko, vaihda sen muoto otsikko %(level):sta normaaliksi tai kappaleeksi. Muussa tapauksessa lisää kuvaan alt-teksti, jos se ei ole koristeellinen.', + HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos tämä ei ole otsikko, muuta sen muotoa Otsikko %(level) muotoon Normaali tai Kappale. Muussa tapauksessa, lisää alt-teksti kuvaan, jos se ei ole koristeellinen.', PANEL_HEADING_MISSING_ONE: 'Otsikko 1 puuttuu!', PANEL_NO_HEADINGS: 'Otsikoita ei löytynyt.', LINK_EMPTY: 'Poista tyhjät linkit ilman tekstiä.', LINK_EMPTY_LABELLEDBY: 'Linkillä on arvo aria-labelledby, joka on tyhjä tai ei vastaa toisen sivun elementin id-ominaisuuden arvoa.', LINK_EMPTY_LINK_NO_LABEL: 'Linkissä ei ole erottuvaa tekstiä, joka näkyy ruudunlukijoille ja muille apuvälineille. Korjaus:
    • Lisää tiivis teksti, joka kuvaa, minne linkki vie.
    • Jos kyseessä on kuvakkeellinen linkki tai SVG, siitä puuttuu todennäköisesti kuvaava merkintä.
    • Jos luulet, että linkki on kopiointi/liitä-virheestä johtuva virhe, harkitse sen poistamista.
    ', - LINK_LABEL: 'Linkki etiketti: %(sanitizedText)', - LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(error)
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', - LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(error)
    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
    ', - LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', + LINK_LABEL: 'Linkki etiketti %(TEXT)', + LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(ERROR)
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', + LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(ERROR)
    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
    ', + LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', LINK_DOI: 'Verkkosivujen tai vain verkossa olevien resurssien osalta APA:n tyyliopas suosittelee kuvailevien linkkien käyttämistä kietomalla teoksen URL-osoite tai DOI-osoite sen otsikon ympärille. Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä.', NEW_TAB_WARNING: 'Linkki avautuu uuteen välilehteen tai ikkunaan ilman varoitusta. Tämä voi olla hämmentävää erityisesti henkilöille, joilla on vaikeuksia visuaalisen sisällön hahmottamisessa. Toiseksi, ei ole aina hyvä käytäntö hallita toisen kokemusta tai tehdä päätöksiä hänen puolestaan. Ilmoita linkkitekstissä, että linkki avautuu uuteen ikkunaan
    Vinkki! Opi parhaat käytännöt: Linkkien avaaminen uusissa selainikkunoissa ja välilehdissä.', - FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(sanitizedText)', + FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Kuvaa käytetään linkkinä ympäröivän tekstin kanssa, vaikka alt-attribuutti pitäisi merkitä koristeelliseksi tai nollaksi.', MISSING_ALT_LINK_MESSAGE: 'Kuvaa käytetään linkkinä, mutta siitä puuttuu alt-teksti! Varmista, että alt-teksti kuvaa, minne linkki vie.', MISSING_ALT_MESSAGE: 'Puuttuva alt-teksti! Jos kuva välittää tarinan, tunnelman tai tärkeää tietoa - muista kuvata kuva.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(altText)', - ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linkillä on aria-hidden="true", mutta se on edelleen näppäimistöllä valittavissa. Jos aiot piilottaa tarpeettoman tai kaksoiskappaleen linkin, lisää myös tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linkissä oleva kuva on merkitty koristeeksi, eikä linkkitekstiä ole. Lisää kuvaan alt-teksti, joka kuvaa linkin kohdetta.', LINK_IMAGE_HAS_TEXT: 'Kuva on merkitty koristeelliseksi, vaikka linkki käyttää ympäröivää tekstiä kuvaavana merkintänä.', - LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
    Alt-teksti (%(altLength) merkkiä): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
    Alt text: %(altText)
    Linkki etiketti: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lisää lisää: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lue lisää: alt versus figcaption.
    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
    ALT %(altLength) Merkkiä %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
    ALT %(ALT_TEXT)
    Linkki etiketti %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lisää lisää: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lue lisää: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta. Jos kuva välittää tarinaa, tunnelmaa tai tärkeää tietoa - muista lisätä alt-teksti.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
    Alt-teksti (%(altLength) merkkiä): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
    ALT %(altLength) Merkkiä %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Kuvapainikkeesta puuttuu alt-teksti. Lisää alt-tekstiä, jotta nimi on helposti saatavilla. Esimerkiksi: Haku tai Lähetä.', LABELS_INPUT_RESET_MESSAGE: 'Nollauspainikkeita ei tulisi käyttää, ellei niitä erityisesti tarvita, koska ne on helppo aktivoida vahingossa.
    Vinkki! Lue, miksi Reset- ja Cancel-painikkeet aiheuttavat käytettävyysongelmia.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
    Syötelabeli: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
    Syötelabeli %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää for-attribuutti labeliin, joka vastaa tämän syötteen id:tä.
    Tämän syötteen tunnus on: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää tälle syötteelle id ja lisää labeliin vastaava for-attribuutti.', EMBED_VIDEO: 'Varmista, että kaikissa videoissa on kuvatekstit. Kaiken ääni- ja videosisällön tekstittäminen on pakollinen A-tason vaatimus. Kuvatekstit tukevat kuuroja ja huonokuuloisia.', @@ -192,26 +198,26 @@ var fi = { EMBED_MISSING_TITLE: 'Sulautettu sisältö edellyttää sen sisältöä kuvaavaa nimeä. Anna iframe-elementille yksilöllinen title- tai aria-label-attribuutti. Lisätietoja iFrameista.', EMBED_GENERAL_WARNING: 'Upotetun sisällön tarkistaminen ei onnistu. Varmista, että kuvissa on alt-teksti, videoissa on kuvateksti, tekstissä on riittävä kontrasti ja vuorovaikutteiset komponentit ovat näppäimistöllä käytettävissä..', EMBED_UNFOCUSABLE: '<iframe> jossa ei ole fokusointikelpoisia elementtejä, ei pitäisi olla tabindex="-1". Upotettu sisältö ei ole näppäimistöllä saavutettavissa.', - QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
    Tämä linkki osoittaa:
    %(el)', + QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
    Tämä linkki osoittaa:
    %(LINK)', QA_IN_PAGE_LINK: 'Rikkinäinen samalla sivulla oleva linkki. Linkin kohde ei vastaa mitään tämän sivun elementtiä.', QA_BAD_ITALICS: 'Lihavointi- ja kursivointitunnisteilla on semanttinen merkitys, eikä niitä tulisi ei käyttää kokonaisten kappaleiden korostamiseen. Lihavoitua tekstiä tulisi käyttää sanan tai lauseen voimakkaaseen korostamiseen. Kursivointia tulisi käyttää oikeiden nimien (esim. kirjan ja artikkelin otsikot), vierasperäisten sanojen ja lainausmerkkien korostamiseen. Pitkät lainaukset olisi muotoiltava blokkilainauksiksi.', QA_PDF: 'PDF-tiedostojen saavutettavuuden tarkistaminen ei onnistu. PDF-tiedostoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. PDF-tiedostoissa on usein ongelmia ruudunlukuohjelmia käyttäville henkilöille (puuttuvat rakennetunnisteet tai lomakekenttien merkinnät) ja heikkonäköisille (teksti ei virtaa uudelleen, kun sitä suurennetaan).
    • Jos kyseessä on lomake, harkitse esteettömän HTML-lomakkeen käyttämistä vaihtoehtona.
    • Jos kyseessä on asiakirja, harkitse sen muuntamista verkkosivuksi.
    Muussa tapauksessa tarkista PDF:n esteettömyys Acrobat DC:ssä.', - QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', + QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', QA_PAGE_LANGUAGE: 'Sivun kieltä ei ole ilmoitettu! Ole hyvä ja ilmoita kieli HTML-tagissa.', QA_PAGE_TITLE: 'Sivun otsikko puuttuu! Anna sivun otsikko..', - QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(sanitizedText)
    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', - QA_FAKE_HEADING: 'Onko tämä otsikko? %(boldtext)
    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', - QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', + QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(TEXT)
    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', + QA_FAKE_HEADING: 'Onko tämä otsikko? %(TEXT)
    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', + QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', QA_UPPERCASE_WARNING: 'Löytyi kaikki suuraakkoset. Jotkin ruudunlukuohjelmat saattavat tulkita isokirjaimellisen tekstin lyhenteeksi ja lukea jokaisen kirjaimen erikseen. Lisäksi joidenkin ihmisten mielestä isokirjaimet ovat vaikeampia lukea, ja ne voivat antaa vaikutelman huutamisesta.', - QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
    Poista tai vaihda seuraava ID: %(id).', + QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
    Poista tai vaihda seuraava ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Alleviivattu teksti voidaan sekoittaa linkkeihin. Harkitse eri tyylin, kuten <strong>strong importance</strong> tai <em>emphasis</em> käyttöä.', QA_SUBSCRIPT_WARNING: 'Ala- ja yläindeksin muotoiluvaihtoehtoja tulisi käyttää vain tekstin sijainnin muuttamiseen typografisten konventioiden tai standardien vuoksi. Niitä ei pitäisi käyttää pelkästään esitystarkoituksiin tai ulkoasuun. Kokonaisten lauseiden muotoilu aiheuttaa luettavuusongelmia. Sopivia käyttötapauksia olisivat esimerkiksi eksponenttien, järjestyslukujen, kuten 4th neljännen sijasta, ja kemiallisten kaavojen (esim. H2O) näyttäminen.', TABLES_MISSING_HEADINGS: 'Puuttuvat taulukkootsikot! Esteettömät taulukot tarvitsevat HTML-merkintää, joka osoittaa otsikkosolut ja datasolut, jotka määrittelevät niiden välisen suhteen. Tämä tieto antaa kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Taulukoita tulisi käyttää vain taulukkomuotoiseen tietoon.
    Lisätietoja saavutettavista taulukoista..', TABLES_SEMANTIC_HEADING: 'Semanttisia otsikoita, kuten Heading 2 tai Heading 3, tulisi käyttää vain sisällön osioissa; ei HTML-taulukoissa. Ilmoita taulukkootsikot sen sijaan <th>-elementillä.
    Lisätietoja saavutettavista taulukoista.', TABLES_EMPTY_HEADING: 'Tyhjä taulukkootsikko löytyi! Taulukkootsikoiden ei pitäisi ei koskaan olla tyhjiä. On tärkeää nimetä rivi- ja/tai sarakeotsikot, jotta niiden välinen suhde välittyy. Nämä tiedot tarjoavat kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Muista, että taulukoita tulisi käyttää vain taulukkomuotoisiin tietoihin.
    Lisätietoja saavutettavista taulukoista.', - CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde on %(cratio) seuraavalle tekstille: %(sanitizedText).', - CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
    Tarkista: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde: %(cratio)', + CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
    Tarkista: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde %(RATIO)', }, }; diff --git a/dist/js/lang/fi.umd.js b/dist/js/lang/fi.umd.js index 72545abc..d1da5983 100644 --- a/dist/js/lang/fi.umd.js +++ b/dist/js/lang/fi.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Pois päältä', ALERT_TEXT: 'Hälytys', ALERT_CLOSE: 'Sulje', - OUTLINE: 'Sivun pääpiirteet', + OUTLINE: 'Sivuluettelo', + ALT: 'ALT', + IMAGES: 'Kuvat', + EDIT: 'Muokkaa', + IMAGES_NOT_FOUND: 'Ei kuvia löytynyt.', + DECORATIVE: 'Koristeellinen', + MISSING: 'Puuttuva', PAGE_ISSUES: 'Sivukysymykset', SETTINGS: 'Asetukset', CONTRAST: 'Kontrasti', @@ -150,46 +156,46 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ei tarpeeksi sisältöä luettavuuspisteiden laskemiseksi.', HEADING_NON_CONSECUTIVE_LEVEL: 'Käytetään muuta kuin peräkkäistä otsikkotasoa. Otsikot eivät saisi koskaan ohittaa tasoja tai siirtyä otsikko %(prevLevel):stä otsikko %(level):iin.', HEADING_EMPTY: 'Tyhjä otsikko löytyi! Korjaa ongelma poistamalla tämä rivi tai muuttamalla sen muoto otsikko %(level) muotoon Normaali tai Paragraph.', - HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
    Merkkien määrä: %(headingLength)', - HEADING_FIRST: 'Sivun ensimmäisen otsikon pitäisi yleensä olla otsikko 1 tai otsikko 2. Otsikon 1 pitäisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne.sivuotsikkorakenteesta.', + HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
    %(HEADING_LENGTH) Merkkiä', + HEADING_FIRST: 'Sivun ensimmäisen otsikon tulisi yleensä olla Otsikko 1 tai Otsikko 2. Otsikon 1 tulisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Otsikon rakenteesta.', HEADING_MISSING_ONE: 'Puuttuva otsikko 1. Otsikon 1 pitäisi olla pääsisältöalueen alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne..', - HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos kyseessä ei ole otsikko, vaihda sen muoto otsikko %(level):sta normaaliksi tai kappaleeksi. Muussa tapauksessa lisää kuvaan alt-teksti, jos se ei ole koristeellinen.', + HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos tämä ei ole otsikko, muuta sen muotoa Otsikko %(level) muotoon Normaali tai Kappale. Muussa tapauksessa, lisää alt-teksti kuvaan, jos se ei ole koristeellinen.', PANEL_HEADING_MISSING_ONE: 'Otsikko 1 puuttuu!', PANEL_NO_HEADINGS: 'Otsikoita ei löytynyt.', LINK_EMPTY: 'Poista tyhjät linkit ilman tekstiä.', LINK_EMPTY_LABELLEDBY: 'Linkillä on arvo aria-labelledby, joka on tyhjä tai ei vastaa toisen sivun elementin id-ominaisuuden arvoa.', LINK_EMPTY_LINK_NO_LABEL: 'Linkissä ei ole erottuvaa tekstiä, joka näkyy ruudunlukijoille ja muille apuvälineille. Korjaus:
    • Lisää tiivis teksti, joka kuvaa, minne linkki vie.
    • Jos kyseessä on kuvakkeellinen linkki tai SVG, siitä puuttuu todennäköisesti kuvaava merkintä.
    • Jos luulet, että linkki on kopiointi/liitä-virheestä johtuva virhe, harkitse sen poistamista.
    ', - LINK_LABEL: 'Linkki etiketti: %(sanitizedText)', - LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(error)
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', - LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(error)
    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
    ', - LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', + LINK_LABEL: 'Linkki etiketti %(TEXT)', + LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(ERROR)
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', + LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(ERROR)
    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
    ', + LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', LINK_DOI: 'Verkkosivujen tai vain verkossa olevien resurssien osalta APA:n tyyliopas suosittelee kuvailevien linkkien käyttämistä kietomalla teoksen URL-osoite tai DOI-osoite sen otsikon ympärille. Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä.', NEW_TAB_WARNING: 'Linkki avautuu uuteen välilehteen tai ikkunaan ilman varoitusta. Tämä voi olla hämmentävää erityisesti henkilöille, joilla on vaikeuksia visuaalisen sisällön hahmottamisessa. Toiseksi, ei ole aina hyvä käytäntö hallita toisen kokemusta tai tehdä päätöksiä hänen puolestaan. Ilmoita linkkitekstissä, että linkki avautuu uuteen ikkunaan
    Vinkki! Opi parhaat käytännöt: Linkkien avaaminen uusissa selainikkunoissa ja välilehdissä.', - FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(sanitizedText)', + FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Kuvaa käytetään linkkinä ympäröivän tekstin kanssa, vaikka alt-attribuutti pitäisi merkitä koristeelliseksi tai nollaksi.', MISSING_ALT_LINK_MESSAGE: 'Kuvaa käytetään linkkinä, mutta siitä puuttuu alt-teksti! Varmista, että alt-teksti kuvaa, minne linkki vie.', MISSING_ALT_MESSAGE: 'Puuttuva alt-teksti! Jos kuva välittää tarinan, tunnelman tai tärkeää tietoa - muista kuvata kuva.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(altText)', - ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linkillä on aria-hidden="true", mutta se on edelleen näppäimistöllä valittavissa. Jos aiot piilottaa tarpeettoman tai kaksoiskappaleen linkin, lisää myös tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linkissä oleva kuva on merkitty koristeeksi, eikä linkkitekstiä ole. Lisää kuvaan alt-teksti, joka kuvaa linkin kohdetta.', LINK_IMAGE_HAS_TEXT: 'Kuva on merkitty koristeelliseksi, vaikka linkki käyttää ympäröivää tekstiä kuvaavana merkintänä.', - LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
    Alt-teksti (%(altLength) merkkiä): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
    Alt text: %(altText)
    Linkki etiketti: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lisää lisää: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lue lisää: alt versus figcaption.
    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
    ALT %(altLength) Merkkiä %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
    ALT %(ALT_TEXT)
    Linkki etiketti %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lisää lisää: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
    Lue lisää: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta. Jos kuva välittää tarinaa, tunnelmaa tai tärkeää tietoa - muista lisätä alt-teksti.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
    Alt-teksti (%(altLength) merkkiä): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
    ALT %(altLength) Merkkiä %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Kuvapainikkeesta puuttuu alt-teksti. Lisää alt-tekstiä, jotta nimi on helposti saatavilla. Esimerkiksi: Haku tai Lähetä.', LABELS_INPUT_RESET_MESSAGE: 'Nollauspainikkeita ei tulisi käyttää, ellei niitä erityisesti tarvita, koska ne on helppo aktivoida vahingossa.
    Vinkki! Lue, miksi Reset- ja Cancel-painikkeet aiheuttavat käytettävyysongelmia.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
    Syötelabeli: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
    Syötelabeli %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää for-attribuutti labeliin, joka vastaa tämän syötteen id:tä.
    Tämän syötteen tunnus on: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää tälle syötteelle id ja lisää labeliin vastaava for-attribuutti.', EMBED_VIDEO: 'Varmista, että kaikissa videoissa on kuvatekstit. Kaiken ääni- ja videosisällön tekstittäminen on pakollinen A-tason vaatimus. Kuvatekstit tukevat kuuroja ja huonokuuloisia.', @@ -198,26 +204,26 @@ EMBED_MISSING_TITLE: 'Sulautettu sisältö edellyttää sen sisältöä kuvaavaa nimeä. Anna iframe-elementille yksilöllinen title- tai aria-label-attribuutti. Lisätietoja iFrameista.', EMBED_GENERAL_WARNING: 'Upotetun sisällön tarkistaminen ei onnistu. Varmista, että kuvissa on alt-teksti, videoissa on kuvateksti, tekstissä on riittävä kontrasti ja vuorovaikutteiset komponentit ovat näppäimistöllä käytettävissä..', EMBED_UNFOCUSABLE: '<iframe> jossa ei ole fokusointikelpoisia elementtejä, ei pitäisi olla tabindex="-1". Upotettu sisältö ei ole näppäimistöllä saavutettavissa.', - QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
    Tämä linkki osoittaa:
    %(el)', + QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
    Tämä linkki osoittaa:
    %(LINK)', QA_IN_PAGE_LINK: 'Rikkinäinen samalla sivulla oleva linkki. Linkin kohde ei vastaa mitään tämän sivun elementtiä.', QA_BAD_ITALICS: 'Lihavointi- ja kursivointitunnisteilla on semanttinen merkitys, eikä niitä tulisi ei käyttää kokonaisten kappaleiden korostamiseen. Lihavoitua tekstiä tulisi käyttää sanan tai lauseen voimakkaaseen korostamiseen. Kursivointia tulisi käyttää oikeiden nimien (esim. kirjan ja artikkelin otsikot), vierasperäisten sanojen ja lainausmerkkien korostamiseen. Pitkät lainaukset olisi muotoiltava blokkilainauksiksi.', QA_PDF: 'PDF-tiedostojen saavutettavuuden tarkistaminen ei onnistu. PDF-tiedostoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. PDF-tiedostoissa on usein ongelmia ruudunlukuohjelmia käyttäville henkilöille (puuttuvat rakennetunnisteet tai lomakekenttien merkinnät) ja heikkonäköisille (teksti ei virtaa uudelleen, kun sitä suurennetaan).
    • Jos kyseessä on lomake, harkitse esteettömän HTML-lomakkeen käyttämistä vaihtoehtona.
    • Jos kyseessä on asiakirja, harkitse sen muuntamista verkkosivuksi.
    Muussa tapauksessa tarkista PDF:n esteettömyys Acrobat DC:ssä.', - QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', + QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', QA_PAGE_LANGUAGE: 'Sivun kieltä ei ole ilmoitettu! Ole hyvä ja ilmoita kieli HTML-tagissa.', QA_PAGE_TITLE: 'Sivun otsikko puuttuu! Anna sivun otsikko..', - QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(sanitizedText)
    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', - QA_FAKE_HEADING: 'Onko tämä otsikko? %(boldtext)
    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', - QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', + QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(TEXT)
    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', + QA_FAKE_HEADING: 'Onko tämä otsikko? %(TEXT)
    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', + QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', QA_UPPERCASE_WARNING: 'Löytyi kaikki suuraakkoset. Jotkin ruudunlukuohjelmat saattavat tulkita isokirjaimellisen tekstin lyhenteeksi ja lukea jokaisen kirjaimen erikseen. Lisäksi joidenkin ihmisten mielestä isokirjaimet ovat vaikeampia lukea, ja ne voivat antaa vaikutelman huutamisesta.', - QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
    Poista tai vaihda seuraava ID: %(id).', + QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
    Poista tai vaihda seuraava ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Alleviivattu teksti voidaan sekoittaa linkkeihin. Harkitse eri tyylin, kuten <strong>strong importance</strong> tai <em>emphasis</em> käyttöä.', QA_SUBSCRIPT_WARNING: 'Ala- ja yläindeksin muotoiluvaihtoehtoja tulisi käyttää vain tekstin sijainnin muuttamiseen typografisten konventioiden tai standardien vuoksi. Niitä ei pitäisi käyttää pelkästään esitystarkoituksiin tai ulkoasuun. Kokonaisten lauseiden muotoilu aiheuttaa luettavuusongelmia. Sopivia käyttötapauksia olisivat esimerkiksi eksponenttien, järjestyslukujen, kuten 4th neljännen sijasta, ja kemiallisten kaavojen (esim. H2O) näyttäminen.', TABLES_MISSING_HEADINGS: 'Puuttuvat taulukkootsikot! Esteettömät taulukot tarvitsevat HTML-merkintää, joka osoittaa otsikkosolut ja datasolut, jotka määrittelevät niiden välisen suhteen. Tämä tieto antaa kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Taulukoita tulisi käyttää vain taulukkomuotoiseen tietoon.
    Lisätietoja saavutettavista taulukoista..', TABLES_SEMANTIC_HEADING: 'Semanttisia otsikoita, kuten Heading 2 tai Heading 3, tulisi käyttää vain sisällön osioissa; ei HTML-taulukoissa. Ilmoita taulukkootsikot sen sijaan <th>-elementillä.
    Lisätietoja saavutettavista taulukoista.', TABLES_EMPTY_HEADING: 'Tyhjä taulukkootsikko löytyi! Taulukkootsikoiden ei pitäisi ei koskaan olla tyhjiä. On tärkeää nimetä rivi- ja/tai sarakeotsikot, jotta niiden välinen suhde välittyy. Nämä tiedot tarjoavat kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Muista, että taulukoita tulisi käyttää vain taulukkomuotoisiin tietoihin.
    Lisätietoja saavutettavista taulukoista.', - CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde on %(cratio) seuraavalle tekstille: %(sanitizedText).', - CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
    Tarkista: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde: %(cratio)', + CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
    Tarkista: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
    Kontrastisuhde %(RATIO)', }, }; diff --git a/dist/js/lang/fr.js b/dist/js/lang/fr.js index 70d4af75..1205015f 100644 --- a/dist/js/lang/fr.js +++ b/dist/js/lang/fr.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var fr = { OFF: 'Éteindre', ALERT_TEXT: 'Alerte', ALERT_CLOSE: 'Fermer', - OUTLINE: 'Page du schéma', + OUTLINE: 'Schéma', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Modifier', + IMAGES_NOT_FOUND: 'Aucune image trouvée.', + DECORATIVE: 'Décoratif', + MISSING: 'Manquant', PAGE_ISSUES: 'Problèmes de pages', SETTINGS: 'Paramètres', CONTRAST: 'Contraste', @@ -127,7 +133,7 @@ var fr = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Utilisation d’un niveau d’en-tête non consécutif. Les en-têtes ne doivent jamais sauter de niveaux ou aller de L’en-tête %(prevLevel) à L’en-tête %(level).', HEADING_EMPTY: 'En-tête vide trouvé! Pour résoudre, supprimer cette ligne ou changer le format de L’en-tête %(level) à Normal ou Paragraphe.', - HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
    Nombre de caractère(s): %(headingLength)', + HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
    %(HEADING_LENGTH) Caractères', HEADING_FIRST: 'Le premier en-tête sur la page doit être habituellement En-tête 1 ou En-tête 2. L’en-tête 1 doit débuter dans la section principale du contenu, car il s\'agit de l’en-tête prin-cipal qui décrit l\'objectif général de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_MISSING_ONE: 'En-tête 1 manquant. L’en-tête 1 doit débuter dans la zone principale de contenu, il est l’en-tête principal qui décrit l’objectif global de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_EMPTY_WITH_IMAGE: 'L’en-tête ne contient pas de texte, mais seulement une image. Si ce n’est pas un en-tête, veuillez changer son format pour L’en-tête %(level) à Normal ou Paragraphe. Sinon, veuillez ajouter du texte de remplacement à l’image si elle n’est pas décorative.', @@ -138,79 +144,79 @@ var fr = { LINK_EMPTY: 'Retirer les liens vides sans texte.', LINK_EMPTY_LABELLEDBY: 'Le lien a une valeur pour aria-labelledby qui est vide ou ne correspond pas à la valeur de l\'attributid d\'un autre élément de la page.', LINK_EMPTY_LINK_NO_LABEL: 'Le lien ne comporte pas de texte perceptible par les lecteurs d\'écran ou autres techno-logies d\'assistance. À corriger:
    • Ajoutez un texte bref qui décrit où le lien vous mène.
    • S’il s’agit d’un lien d’icône SVG (vectoriel), il manque alors une description.
    • Si ce lien est une erreur due à un bogue de copier/coller, tentez de supprimer.
    ', - LINK_LABEL: 'Lien de l’étiquette: %(sanitizedText)', - LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(error)
    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', - LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(error)
    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
    ', - LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', + LINK_LABEL: 'Lien de l’étiquette %(TEXT)', + LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(ERROR)
    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', + LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(ERROR)
    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
    ', + LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', LINK_DOI: 'Pour les pages web ou les ressources en ligne uniquement, le guide de style de l\'APA recommande d\'utiliser des liens descriptifs en entourant l\'URL ou le DOI de l\'œuvre autour de son titre. Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance.', // Links advanced - NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', - FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
    Exemple: Rapport de synthèse (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(sanitizedText)', + NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', + FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
    Exemple: Rapport de synthèse (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'L’image est utilisé en tant que lien avec un texte autour, alors que l’attribut de rem-placement doit être signalé comme décoratif ou nul.', MISSING_ALT_LINK_MESSAGE: 'L’image est utilisée en tant que lien mais manque de texte de remplacement! Veuillez vous assurer que le texte de remplacement décrit où le lien vous mène.', MISSING_ALT_MESSAGE: 'Texte de remplacement manquant! Si l’image transmet un message, une émotion ou des informations importantes - assurez-vous d’ajouter une description de l’image.', - LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(error).
    Texte de remplacement: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(error)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
    Texte de remplacement: %(altText)', - ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(error).
    Texte de remplacement: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(altText)', - ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(error)" peut être redondant.
    Texte de remplacement: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(ERROR)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(ERROR)" peut être redondant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Le lien a aria-hidden="true" mais reste focusable au clavier. Si vous avez l\'intention de cacher un lien redondant ou en double, ajoutez également tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'L’image dans le lien est marquée comme décorative et il n’y a pas de lien de texte. Veuillez ajouter du texte de remplacement à l’image qui décrit la destination du lien.', LINK_IMAGE_HAS_TEXT: 'L’image est marqué comme étant décorative, bien que le lien utilise le texte autour en tant que description.', - LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
    Texte de remplacement: (%(altLength) caractères): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
    Texte de remplacement: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
    Texte de remplacement: %(altText)
    Lien de l’étiquette: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).
    Texte de remplacement: %(altText)', + LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
    ALT %(altLength) Caractères %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
    ALT %(ALT_TEXT)
    Lien de l’étiquette %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'L’image est perçue de manière décorative et sera ignorée par la technologie d’assistance. Si l’image transmet un message, une émotion ou une information importante - assurez-vous d’ajouter le texte de rempla-cement.', - IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
    Texte de remplacement (%(altLength) caractères): %(altText)', - IMAGE_PASS: 'Texte de remplacement: %(altText)', + IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
    ALT %(altLength) Caractères %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Le bouton de l’image manque un texte de remplacement. Veuillez ajouter un texte de remplacement pour fournir un nom accessible. Par exemple: Rechercher ou Soumettre.', LABELS_INPUT_RESET_MESSAGE: 'Le bouton réinitialiser ne devrait pas être utiliser sauf en cas de besoin spécifique, car il est facile de l’activer par erreur.
    Conseil! En savoir plus sur les problèmes liés aux boutons Réinitialiser et Annuler.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
    Étiquette d\'entrée : %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
    Étiquette d\'entrée %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Ajouter en un pour l’attribut de l’étiquette qui correspond id à l’id(identifiant) de cette entrée.
    L’ID (L’identifiant) de cette entrée est: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Veuillez ajouter un id id (identifiant) à cette entrée et ajouter un for attribut correspondant à l’étiquette.', // Embedded content EMBED_VIDEO: 'Assurez-vous que les vidéos ont des sous-titres codés. Fournir les sous-titres pour tout type de contenu audio ou vidéo est une exigence obli-gatoire de Niveau A. Les sous-titres aident les gens qui sont malentendants.', EMBED_AUDIO: 'Assurez-vous de fournir une transcription pour tous les balados. Fournir les transcriptions pour tout type de contenu audio est une exigence obligatoire de Niveau A. Les transcriptions aident les gens qui sont malentendant, mais peuvent profiter à tout le monde. Positionnez la transcription sous ou à l’intérieur du panneau accordéon.', - EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
    En savoir plus sur les images complexes.', + EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
    En savoir plus sur les images complexes.', EMBED_MISSING_TITLE: 'Le contenu intégré requiert un nom accessible qui décrit le contenu. Veuillez fournir un titre (title) unique ou aria-label un attribut à l’élément iframe. En savoir plus sur les iFrames.', - EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', + EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', EMBED_UNFOCUSABLE: 'Les <iframe> avec des éléments non focusables ne doivent pas avoir de tabindex="-1". Le contenu incorporé ne sera pas accessible au clavier.', // Quality assurance - QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
    Le lien dirige vers:
    %(el)', + QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
    Le lien dirige vers:
    %(LINK)', QA_IN_PAGE_LINK: 'Lien interne cassé. La cible du lien ne correspond à aucun élément de cette page.', QA_BAD_ITALICS: 'Les balises Gras et Italique ont une signification sémantique et ne devraient pas être utiliser pour surligner des paragraphes en entier. Les textes en Gras doivent être utilisés pour mettre l’emphase sur un mot ou une phrase. Les textes en Italiques doivent être utilisés pour surligneur les noms propres (ex. livres et titre d’articles), les mots étrangers et les citations. Les citations longues doivent être formatées comme une citation en bloc.', - QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
    • S’il s’agit d’un document, convertissez-le en page web.
    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', - QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', - QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', + QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
    • S’il s’agit d’un document, convertissez-le en page web.
    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', + QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', + QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', QA_PAGE_TITLE: 'Titre de la page manquant ! Veuillez fournir un titre de page.', - QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(sanitizedText)
    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', - QA_FAKE_HEADING: 'Est-ce un en-tête? %(boldtext)
    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', - QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', + QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(TEXT)
    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', + QA_FAKE_HEADING: 'Est-ce un en-tête? %(TEXT)
    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', + QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', QA_UPPERCASE_WARNING: 'Majuscules trouvées. Certains lecteur d’écran pourraient interpréter les textes majus-cules en tant qu’acronyme et pourraient être tentés de les lire individuellement. De plus, certaines personnes trouvent les majuscules difficiles à lire et peuvent donner l’impression de CRIER.', QA_DUPLICATE_ID: 'ID (Identifiant) dupliqué trouvé. Les erreurs d’ID (d’identifiants) dupliqués sont re-connues pour causer des problèmes au niveau de la technologie d’assistance lors-qu’ils tentent d’interagir avec le contenu.
    Veuillez retirer ou modifier l’ID (l’identifiant) suivant: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Le texte soulignés peuvent être confondus avec les liens. Envisagez d’utiliser un style différent comme <strong>forte importance</strong> ou <em>l’emphase.</em>.', QA_SUBSCRIPT_WARNING: 'Les options de mise en forme en indice et en exposant ne doivent être utilisées que pour modifier la position du texte afin de se conformer aux conventions ou normes typographiques. Il ne doit pas être utilisé uniquement à des fins de présentation ou d’apparence. La mise en forme de phrases entières pose des problèmes de lisibilité. Les cas d’utilisation appropriés incluent l’affichage d’exposants, de nombres ordinaux tels que 4th au lieu de quatrième et de formules chimiques (H2O).', // Tables - TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
    En savoir plus sur les tableaux accessibles.', - TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
    En savoir plus sur les tableaux accessibles.', - TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
    En savoir plus sur les tableaux accessibles.', + TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
    En savoir plus sur les tableaux accessibles.', + TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
    En savoir plus sur les tableaux accessibles.', + TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
    En savoir plus sur les tableaux accessibles.', // Contrast - CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Le ratio du contraste est de %(cratio) pour le texte suivant: %(sanitizedText)', - CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
    Veuillez réviser: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio du contraste: %(cratio)', + CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
    Veuillez réviser: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/fr.umd.js b/dist/js/lang/fr.umd.js index 4a9492ef..6a3b3bfb 100644 --- a/dist/js/lang/fr.umd.js +++ b/dist/js/lang/fr.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Éteindre', ALERT_TEXT: 'Alerte', ALERT_CLOSE: 'Fermer', - OUTLINE: 'Page du schéma', + OUTLINE: 'Schéma', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Modifier', + IMAGES_NOT_FOUND: 'Aucune image trouvée.', + DECORATIVE: 'Décoratif', + MISSING: 'Manquant', PAGE_ISSUES: 'Problèmes de pages', SETTINGS: 'Paramètres', CONTRAST: 'Contraste', @@ -133,7 +139,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Utilisation d’un niveau d’en-tête non consécutif. Les en-têtes ne doivent jamais sauter de niveaux ou aller de L’en-tête %(prevLevel) à L’en-tête %(level).', HEADING_EMPTY: 'En-tête vide trouvé! Pour résoudre, supprimer cette ligne ou changer le format de L’en-tête %(level) à Normal ou Paragraphe.', - HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
    Nombre de caractère(s): %(headingLength)', + HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
    %(HEADING_LENGTH) Caractères', HEADING_FIRST: 'Le premier en-tête sur la page doit être habituellement En-tête 1 ou En-tête 2. L’en-tête 1 doit débuter dans la section principale du contenu, car il s\'agit de l’en-tête prin-cipal qui décrit l\'objectif général de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_MISSING_ONE: 'En-tête 1 manquant. L’en-tête 1 doit débuter dans la zone principale de contenu, il est l’en-tête principal qui décrit l’objectif global de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_EMPTY_WITH_IMAGE: 'L’en-tête ne contient pas de texte, mais seulement une image. Si ce n’est pas un en-tête, veuillez changer son format pour L’en-tête %(level) à Normal ou Paragraphe. Sinon, veuillez ajouter du texte de remplacement à l’image si elle n’est pas décorative.', @@ -144,79 +150,79 @@ LINK_EMPTY: 'Retirer les liens vides sans texte.', LINK_EMPTY_LABELLEDBY: 'Le lien a une valeur pour aria-labelledby qui est vide ou ne correspond pas à la valeur de l\'attributid d\'un autre élément de la page.', LINK_EMPTY_LINK_NO_LABEL: 'Le lien ne comporte pas de texte perceptible par les lecteurs d\'écran ou autres techno-logies d\'assistance. À corriger:
    • Ajoutez un texte bref qui décrit où le lien vous mène.
    • S’il s’agit d’un lien d’icône SVG (vectoriel), il manque alors une description.
    • Si ce lien est une erreur due à un bogue de copier/coller, tentez de supprimer.
    ', - LINK_LABEL: 'Lien de l’étiquette: %(sanitizedText)', - LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(error)
    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', - LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(error)
    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
    ', - LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', + LINK_LABEL: 'Lien de l’étiquette %(TEXT)', + LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(ERROR)
    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', + LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(ERROR)
    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
    ', + LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', LINK_DOI: 'Pour les pages web ou les ressources en ligne uniquement, le guide de style de l\'APA recommande d\'utiliser des liens descriptifs en entourant l\'URL ou le DOI de l\'œuvre autour de son titre. Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance.', // Links advanced - NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', - FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
    Exemple: Rapport de synthèse (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(sanitizedText)', + NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', + FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
    Exemple: Rapport de synthèse (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'L’image est utilisé en tant que lien avec un texte autour, alors que l’attribut de rem-placement doit être signalé comme décoratif ou nul.', MISSING_ALT_LINK_MESSAGE: 'L’image est utilisée en tant que lien mais manque de texte de remplacement! Veuillez vous assurer que le texte de remplacement décrit où le lien vous mène.', MISSING_ALT_MESSAGE: 'Texte de remplacement manquant! Si l’image transmet un message, une émotion ou des informations importantes - assurez-vous d’ajouter une description de l’image.', - LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(error).
    Texte de remplacement: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(error)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
    Texte de remplacement: %(altText)', - ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(error).
    Texte de remplacement: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(altText)', - ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(error)" peut être redondant.
    Texte de remplacement: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(ERROR)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(ERROR)" peut être redondant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Le lien a aria-hidden="true" mais reste focusable au clavier. Si vous avez l\'intention de cacher un lien redondant ou en double, ajoutez également tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'L’image dans le lien est marquée comme décorative et il n’y a pas de lien de texte. Veuillez ajouter du texte de remplacement à l’image qui décrit la destination du lien.', LINK_IMAGE_HAS_TEXT: 'L’image est marqué comme étant décorative, bien que le lien utilise le texte autour en tant que description.', - LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
    Texte de remplacement: (%(altLength) caractères): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
    Texte de remplacement: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
    Texte de remplacement: %(altText)
    Lien de l’étiquette: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).
    Texte de remplacement: %(altText)', + LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
    ALT %(altLength) Caractères %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
    ALT %(ALT_TEXT)
    Lien de l’étiquette %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
    • Le texte de remplacement devrait fournir une description précise de l’image.
    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
    En savoir plus: alt versus figcaption (légende de la figure).
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'L’image est perçue de manière décorative et sera ignorée par la technologie d’assistance. Si l’image transmet un message, une émotion ou une information importante - assurez-vous d’ajouter le texte de rempla-cement.', - IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
    Texte de remplacement (%(altLength) caractères): %(altText)', - IMAGE_PASS: 'Texte de remplacement: %(altText)', + IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
    ALT %(altLength) Caractères %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Le bouton de l’image manque un texte de remplacement. Veuillez ajouter un texte de remplacement pour fournir un nom accessible. Par exemple: Rechercher ou Soumettre.', LABELS_INPUT_RESET_MESSAGE: 'Le bouton réinitialiser ne devrait pas être utiliser sauf en cas de besoin spécifique, car il est facile de l’activer par erreur.
    Conseil! En savoir plus sur les problèmes liés aux boutons Réinitialiser et Annuler.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
    Étiquette d\'entrée : %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
    Étiquette d\'entrée %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Ajouter en un pour l’attribut de l’étiquette qui correspond id à l’id(identifiant) de cette entrée.
    L’ID (L’identifiant) de cette entrée est: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Veuillez ajouter un id id (identifiant) à cette entrée et ajouter un for attribut correspondant à l’étiquette.', // Embedded content EMBED_VIDEO: 'Assurez-vous que les vidéos ont des sous-titres codés. Fournir les sous-titres pour tout type de contenu audio ou vidéo est une exigence obli-gatoire de Niveau A. Les sous-titres aident les gens qui sont malentendants.', EMBED_AUDIO: 'Assurez-vous de fournir une transcription pour tous les balados. Fournir les transcriptions pour tout type de contenu audio est une exigence obligatoire de Niveau A. Les transcriptions aident les gens qui sont malentendant, mais peuvent profiter à tout le monde. Positionnez la transcription sous ou à l’intérieur du panneau accordéon.', - EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
    En savoir plus sur les images complexes.', + EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
    En savoir plus sur les images complexes.', EMBED_MISSING_TITLE: 'Le contenu intégré requiert un nom accessible qui décrit le contenu. Veuillez fournir un titre (title) unique ou aria-label un attribut à l’élément iframe. En savoir plus sur les iFrames.', - EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', + EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', EMBED_UNFOCUSABLE: 'Les <iframe> avec des éléments non focusables ne doivent pas avoir de tabindex="-1". Le contenu incorporé ne sera pas accessible au clavier.', // Quality assurance - QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
    Le lien dirige vers:
    %(el)', + QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
    Le lien dirige vers:
    %(LINK)', QA_IN_PAGE_LINK: 'Lien interne cassé. La cible du lien ne correspond à aucun élément de cette page.', QA_BAD_ITALICS: 'Les balises Gras et Italique ont une signification sémantique et ne devraient pas être utiliser pour surligner des paragraphes en entier. Les textes en Gras doivent être utilisés pour mettre l’emphase sur un mot ou une phrase. Les textes en Italiques doivent être utilisés pour surligneur les noms propres (ex. livres et titre d’articles), les mots étrangers et les citations. Les citations longues doivent être formatées comme une citation en bloc.', - QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
    • S’il s’agit d’un document, convertissez-le en page web.
    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', - QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', - QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', + QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
    • S’il s’agit d’un document, convertissez-le en page web.
    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', + QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', + QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', QA_PAGE_TITLE: 'Titre de la page manquant ! Veuillez fournir un titre de page.', - QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(sanitizedText)
    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', - QA_FAKE_HEADING: 'Est-ce un en-tête? %(boldtext)
    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', - QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', + QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(TEXT)
    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', + QA_FAKE_HEADING: 'Est-ce un en-tête? %(TEXT)
    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', + QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', QA_UPPERCASE_WARNING: 'Majuscules trouvées. Certains lecteur d’écran pourraient interpréter les textes majus-cules en tant qu’acronyme et pourraient être tentés de les lire individuellement. De plus, certaines personnes trouvent les majuscules difficiles à lire et peuvent donner l’impression de CRIER.', QA_DUPLICATE_ID: 'ID (Identifiant) dupliqué trouvé. Les erreurs d’ID (d’identifiants) dupliqués sont re-connues pour causer des problèmes au niveau de la technologie d’assistance lors-qu’ils tentent d’interagir avec le contenu.
    Veuillez retirer ou modifier l’ID (l’identifiant) suivant: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Le texte soulignés peuvent être confondus avec les liens. Envisagez d’utiliser un style différent comme <strong>forte importance</strong> ou <em>l’emphase.</em>.', QA_SUBSCRIPT_WARNING: 'Les options de mise en forme en indice et en exposant ne doivent être utilisées que pour modifier la position du texte afin de se conformer aux conventions ou normes typographiques. Il ne doit pas être utilisé uniquement à des fins de présentation ou d’apparence. La mise en forme de phrases entières pose des problèmes de lisibilité. Les cas d’utilisation appropriés incluent l’affichage d’exposants, de nombres ordinaux tels que 4th au lieu de quatrième et de formules chimiques (H2O).', // Tables - TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
    En savoir plus sur les tableaux accessibles.', - TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
    En savoir plus sur les tableaux accessibles.', - TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
    En savoir plus sur les tableaux accessibles.', + TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
    En savoir plus sur les tableaux accessibles.', + TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
    En savoir plus sur les tableaux accessibles.', + TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
    En savoir plus sur les tableaux accessibles.', // Contrast - CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Le ratio du contraste est de %(cratio) pour le texte suivant: %(sanitizedText)', - CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
    Veuillez réviser: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio du contraste: %(cratio)', + CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
    Veuillez réviser: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
    Ratio de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/hu.js b/dist/js/lang/hu.js index 70e8cd3a..81db55c5 100644 --- a/dist/js/lang/hu.js +++ b/dist/js/lang/hu.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var hu = { ALERT_TEXT: 'Riasztás', ALERT_CLOSE: 'Zárja be a', OUTLINE: 'Oldalvázlat', + ALT: 'ALT', + IMAGES: 'Képek', + EDIT: 'Szerkesztés', + IMAGES_NOT_FOUND: 'Nem találhatók képek.', + DECORATIVE: 'Dekoratív', + MISSING: 'Hiányzó', PAGE_ISSUES: 'Oldalproblémák', SETTINGS: 'Beállítások', CONTRAST: 'Kontraszt', @@ -159,64 +165,64 @@ var hu = { READABILITY_NO_P_OR_LI_MESSAGE: 'Nem lehet kiszámítani az olvashatósági pontszámot. Nem találtunk bekezdést <p> vagy listatartalmat <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nem elég tartalom az olvashatósági pontszám kiszámításához.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nem egymást követő címsorszintet használtak. A fejlécek soha nem ugorhatnak szinteket, vagy nem mehetnek Felirat %(prevLevel)-ről Felirat %(level)-ra.', - HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra.', - HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
    Karakterek száma: %(headingLength)', - HEADING_FIRST: 'Az oldal első címsorának általában az 1. vagy a 2. címsornak kell lennie. Az 1. címsornak kell a fő tartalmi rész kezdetének lennie, és ez a fő címsor írja le az oldal általános célját. Tudjon meg többet a Feliratszerkezet.-ról.', - HEADING_MISSING_ONE: 'Hiányzik az 1. címsor. Az 1. címsornak kell a fő tartalmi terület kezdetének lennie, és ez a főcím, amely leírja az oldal általános célját. Tudjon meg többet a Főcímek szerkezete.-ről.', - HEADING_EMPTY_WITH_IMAGE: 'A fejlécnek nincs szövege, de tartalmaz egy képet. Ha ez nem egy címsor, változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra. Ellenkező esetben kérjük, adjon alt szöveget a képhez, ha az nem dekoratív.', + HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(level)-ról Normál vagy Paragraph formátumra.', + HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
    %(HEADING_LENGTH) Karakterek', + HEADING_FIRST: 'Az oldal első címe általában Cím 1 vagy Cím 2 legyen.A Cím 1-nek a fő tartalom szakaszának kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját.Tudj meg többet aFejléc szerkezetéről.', + HEADING_MISSING_ONE: 'Hiányzó Cím 1. A Cím 1-nek a fő tartalom területének kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját. További információkért látogasson el ide: Fejléck struktúra.', + HEADING_EMPTY_WITH_IMAGE: 'A címsor nem tartalmaz szöveget, de képet tartalmaz. Ha ez nem címsor, akkor változtassa meg a formátumát Címsor %(level) formátumra Normál vagy Bekezdés. Ellenkező esetben kérem, adja hozzá az alternatív szöveget a képhez, ha az nem díszítőelem.', PANEL_HEADING_MISSING_ONE: 'Hiányzik az 1. címsor!', PANEL_NO_HEADINGS: 'Nem találtunk címszavakat.', LINK_EMPTY: 'Szöveg nélküli üres linkek eltávolítása.', LINK_EMPTY_LABELLEDBY: 'A hivatkozásnak van egy értéke a aria-labelledby számára, ami üres vagy nem egyezik meg egy másik elem id attribútumának az értékével az oldalon.', LINK_EMPTY_LINK_NO_LABEL: 'A link nem rendelkezik olyan szöveggel, amely a képernyőolvasók és más segítő technológiák számára is látható. A javításhoz:
    • Adjon hozzá egy tömör szöveget, amely leírja, hogy hová vezet a link.
    • Ha ikonos link vagy SVG, akkor valószínűleg hiányzik egy leíró felirat.
    • Ha úgy gondolja, hogy ez a link egy másolási/beillesztési hiba miatt hibás, akkor fontolja meg a törlését.
    .', - LINK_LABEL: 'Link címke: %(sanitizedText)', - LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', - LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(hiba)
    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
    ', - LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', + LINK_LABEL: 'Link címke %(TEXT)', + LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', + LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(ERROR)
    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
    ', + LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', LINK_DOI: 'Weboldalak vagy kizárólag online elérhető források esetében az APA Style guide leíró linkek használatát javasolja, a mű URL-jét vagy DOI-ját a cím köré tekerve. A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetőek lehetnek a segédeszközökkel.', NEW_TAB_WARNING: 'A link figyelmeztetés nélkül új lapon vagy ablakban nyílik meg. Ez zavaró lehet, különösen azok számára, akik nehezen érzékelik a vizuális tartalmakat. Másodszor, nem mindig jó gyakorlat, ha valakinek az élményét irányítjuk, vagy döntéseket hozunk helyettük. Jelezze, hogy a link új ablakban nyílik meg a link szövegében
    Tipp! Ismerje meg a legjobb gyakorlatokat: Hivatkozások megnyitása új böngészőablakban és lapon.', - FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
    Példa: Vezetői jelentés (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(sanitizedText)', + FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
    Példa: Vezetői jelentés (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A képet linkként használják a körülötte lévő szöveggel, bár az alt attribútumot dekoratívnak vagy nullának kell jelölni.', MISSING_ALT_LINK_MESSAGE: 'A képet linkként használják, de hiányzik az alt szöveg! Kérjük, gondoskodjon arról, hogy az alt szöveg leírja, hová vezet a link.', MISSING_ALT_MESSAGE: 'Hiányzó alt szöveg! Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(hiba).
    Alt szöveg: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
    Alt szöveg: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(hiba).
    Alt szöveg: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(altText)', - ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet.
    Alt szöveg: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'A hivatkozásnak van aria-hidden="true" tulajdonsága, de még mindig billentyűzettel fókuszálható. Ha felesleges vagy duplikált hivatkozást szeretnél elrejteni, adj hozzá tabindex="-1" tulajdonságot is.', LINK_IMAGE_NO_ALT_TEXT: 'A linkben lévő kép dekoratívnak van jelölve, és nincs linkszöveg. Kérjük, adjon a képhez alt szöveget, amely leírja a link célját.', LINK_IMAGE_HAS_TEXT: 'A kép dekoratívként van megjelölve, bár a link a környező szöveget használja leíró címkeként.', - LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
    Alt szöveg (%(altLength) karakterek): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
    Alt szöveg: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
    Alt szöveg: %(altText)
    Link címke: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
    Tudjon meg többet: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
    További információ: alt versus figcaption.
    Alt szöveg: %(altText)', + LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
    ALT %(altLength) Karakterek %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
    ALT %(ALT_TEXT)
    Link címke %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
    Tudjon meg többet: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
    További információ: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen adjon hozzá alt szöveget.', - IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
    Alt szöveg (%(altLength) karakterek): %(altText)', - IMAGE_PASS: 'Alt szöveg: %(altText)', + IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
    ALT %(altLength) Karakterek %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'A képgombból hiányzik az alt szöveg. Kérjük, adjon hozzá alt szöveget, hogy elérhető nevet adjon. Például: Keresés vagy Submit.', LABELS_INPUT_RESET_MESSAGE: 'A visszaállító gombokat nem szabad használni, hacsak nem kifejezetten szükséges, mert könnyen aktiválhatók tévedésből.
    Tipp! Tudja meg, hogy a A visszaállítás és a törlés gombok miért jelentenek használhatósági problémát.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
    Bemeneti címke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
    Bemeneti címke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Adjon hozzá egy for attribútumot a címkéhez, amely megfelel a bemenet id azonosítójának.
    Ennek a bemenetnek az azonosítója a következő: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Kérjük, adjon hozzá egy id-t ehhez a bemenethez, és adjon hozzá egy megfelelő for attribútumot a címkéhez.', EMBED_VIDEO: 'Kérjük, gondoskodjon arról, hogy minden videó feliratozással legyen ellátva. A feliratozás biztosítása minden hang- és videotartalomhoz kötelező A-szintű követelmény. A feliratozás a siket vagy nagyothalló embereket támogatja.', EMBED_AUDIO: 'Kérjük, gondoskodjon arról, hogy minden podcasthoz átiratot adjon. A hanganyag átiratának megadása kötelező A-szintű követelmény. Az átiratok a siket/süket vagy nagyothalló embereket támogatják, de mindenki számára hasznosak lehetnek. Fontolja meg az átirat elhelyezését alul vagy egy harmonika panelen belül.', EMBED_DATA_VIZ: 'Az ilyen adatvizualizációs widgetek gyakran problémát jelentenek azok számára, akik billentyűzetet vagy képernyőolvasót használnak a navigáláshoz, és jelentős nehézségeket okozhatnak a gyengén látók vagy színvakok számára. Javasoljuk, hogy ugyanezt az információt alternatív (szöveges vagy táblázatos) formátumban adjuk meg a widget alatt.
    Tudjon meg többet a komplex képekről.', - EMBED_MISSING_TITLE: 'A beágyazott tartalomnak olyan hozzáférhető névre van szüksége, amely leírja a tartalmát. Kérjük, adjon meg egy egyedi title vagy aria-label attribútumot a iframe elemen. Tudjon meg többet a iFrames.-ről.', + EMBED_MISSING_TITLE: 'A beágyazott tartalomhoz hozzáférhető névre van szükség, amely leírja annak tartalmát. Kérjük, adjon meg egyedi title vagy aria-label attribútumot az iframe elemen. További információkért látogasson el ide: iFrame-ek.', EMBED_GENERAL_WARNING: 'Beágyazott tartalom ellenőrzése nem lehetséges. Kérjük, győződjön meg róla, hogy a képek alt szöveggel, a videók felirattal, a szöveg megfelelő kontraszttal és az interaktív komponensek billentyűzettel elérhetőek.', EMBED_UNFOCUSABLE: 'Azoknak a <iframe>-nek, amelyek nem fókuszálható elemekkel rendelkeznek, nem kell tabindex="-1" tulajdonságot rendelni. A beágyazott tartalom nem lesz billentyűzettel elérhető.', - QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
    Ez a link a következőre mutat:
    %(el)', + QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
    Ez a link a következőre mutat:
    %(LINK)', QA_IN_PAGE_LINK: 'Sérült azonos oldalú link. A hivatkozás célja nem egyezik meg egyetlen elemmel sem ezen az oldalon.', QA_BAD_ITALICS: 'A vastag és dőlt betűs címkéknek szemantikai jelentésük van, és nem szabad egész bekezdések kiemelésére használni őket. A félkövérrel kiemelt szöveget egy szó vagy kifejezés erős kiemelésére kell használni. A dőlt betűt a tulajdonnevek (pl. könyv- és cikkcímek), idegen szavak, idézőjelek kiemelésére kell használni. A hosszú idézeteket blokkidézetként kell formázni.', QA_PDF: 'Nem lehet ellenőrizni a PDF-ek hozzáférhetőségét. A PDF-ek webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. A PDF-ek gyakran tartalmaznak problémákat a képernyőolvasót használók (hiányzó szerkezeti címkék vagy hiányzó űrlapmező-címkék) és a gyengén látók (a szöveg nagyításkor nem folyik vissza) számára.
    • Ha ez egy űrlap, fontolja meg egy hozzáférhető HTML űrlap használatát alternatívaként.
    • Ha ez egy dokumentum, fontolja meg a weboldallá alakítását.
    Máskülönben ellenőrizze a PDF hozzáférhetőségét az Acrobat DC-ben.Megközelíthetőségét az PDF-ben..', - QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', + QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', QA_PAGE_LANGUAGE: 'Az oldal nyelve nincs megadva! Kérjük, declare language on HTML tag.', QA_PAGE_TITLE: 'Hiányzik az oldal címe! Kérjük, adjon meg egy oldal címet.', - QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(sanitizedText)

    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', - QA_FAKE_HEADING: 'Ez egy címszó? %(boldtext)
    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', + QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(TEXT)
    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', + QA_FAKE_HEADING: 'Ez egy címszó? %(TEXT)
    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', QA_SHOULD_BE_LIST: 'Megpróbál listát készíteni? Lehetséges listaelemet találtunk: %(firstPrefix)
    Győződjön meg róla, hogy szemantikus listákat használ, és használja helyette a felsorolás- vagy számformázó gombokat. Szemantikus lista használata esetén a segédtechnológiák képesek olyan információkat közvetíteni, mint az elemek teljes száma és az egyes elemek relatív pozíciója a listában. További információ a szemantikus listákról.', QA_UPPERCASE_WARNING: 'Találtam minden nagybetűt. Egyes képernyőolvasók a csupa nagybetűs szöveget betűszónak értelmezhetik, és minden egyes betűt külön-külön olvasnak. Ezenkívül egyesek nehezebben olvashatónak találják a csupa nagybetűs szöveget, és úgy tűnhet, mintha kiabálnának.', QA_DUPLICATE_ID: 'Találtunk duplikált azonosítót. A duplikált azonosító hibák köztudottan problémákat okoznak a segítő technológiák számára, amikor azok megpróbálnak interakcióba lépni a tartalommal.
    Kérjük, távolítsa el vagy változtassa meg a következő azonosítót: %(id)', @@ -225,9 +231,9 @@ var hu = { TABLES_MISSING_HEADINGS: 'Hiányzó táblázatfejlécek! A hozzáférhető táblázatokhoz olyan HTML-jelölésre van szükség, amely jelzi a fejléccellákat és az adatcellákat, amelyek meghatározzák a kapcsolatukat. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. A táblázatokat csak táblázatos adatokhoz szabad használni.
    Tudjon meg többet a hozzáférhető táblázatokról.', TABLES_SEMANTIC_HEADING: 'Az olyan szemantikus címsorokat, mint a Heading 2 vagy Heading 3, csak a tartalmi részeknél szabad használni; nem a HTML táblázatokban. A táblázatcímeket ehelyett a <th> elemmel jelezze.
    Tudjon meg többet a elérhető táblázatokról.', TABLES_EMPTY_HEADING: 'Üres asztali fejlécet találtunk! A táblázat fejlécének soha nem szabad üresnek lennie. Fontos a sor- és/vagy oszlopfejlécek kijelölése a kapcsolatuk érzékeltetése érdekében. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. Ne feledje, hogy a táblázatok csak táblázatos adatokhoz használhatók.
    Tudjon meg többet a elérhető táblázatokról.', - CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    A kontrasztarány %(cratio) a következő szöveg esetében: %(sanitizedText)', - CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kérem, vizsgálja felül: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány: %(cratio)', + CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kérem, vizsgálja felül: %(TEXT)', + CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány %(RATIO)', }, }; diff --git a/dist/js/lang/hu.umd.js b/dist/js/lang/hu.umd.js index 1cf8804e..d8f77ba7 100644 --- a/dist/js/lang/hu.umd.js +++ b/dist/js/lang/hu.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Riasztás', ALERT_CLOSE: 'Zárja be a', OUTLINE: 'Oldalvázlat', + ALT: 'ALT', + IMAGES: 'Képek', + EDIT: 'Szerkesztés', + IMAGES_NOT_FOUND: 'Nem találhatók képek.', + DECORATIVE: 'Dekoratív', + MISSING: 'Hiányzó', PAGE_ISSUES: 'Oldalproblémák', SETTINGS: 'Beállítások', CONTRAST: 'Kontraszt', @@ -165,64 +171,64 @@ READABILITY_NO_P_OR_LI_MESSAGE: 'Nem lehet kiszámítani az olvashatósági pontszámot. Nem találtunk bekezdést <p> vagy listatartalmat <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nem elég tartalom az olvashatósági pontszám kiszámításához.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nem egymást követő címsorszintet használtak. A fejlécek soha nem ugorhatnak szinteket, vagy nem mehetnek Felirat %(prevLevel)-ről Felirat %(level)-ra.', - HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra.', - HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
    Karakterek száma: %(headingLength)', - HEADING_FIRST: 'Az oldal első címsorának általában az 1. vagy a 2. címsornak kell lennie. Az 1. címsornak kell a fő tartalmi rész kezdetének lennie, és ez a fő címsor írja le az oldal általános célját. Tudjon meg többet a Feliratszerkezet.-ról.', - HEADING_MISSING_ONE: 'Hiányzik az 1. címsor. Az 1. címsornak kell a fő tartalmi terület kezdetének lennie, és ez a főcím, amely leírja az oldal általános célját. Tudjon meg többet a Főcímek szerkezete.-ről.', - HEADING_EMPTY_WITH_IMAGE: 'A fejlécnek nincs szövege, de tartalmaz egy képet. Ha ez nem egy címsor, változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra. Ellenkező esetben kérjük, adjon alt szöveget a képhez, ha az nem dekoratív.', + HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(level)-ról Normál vagy Paragraph formátumra.', + HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
    %(HEADING_LENGTH) Karakterek', + HEADING_FIRST: 'Az oldal első címe általában Cím 1 vagy Cím 2 legyen.A Cím 1-nek a fő tartalom szakaszának kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját.Tudj meg többet aFejléc szerkezetéről.', + HEADING_MISSING_ONE: 'Hiányzó Cím 1. A Cím 1-nek a fő tartalom területének kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját. További információkért látogasson el ide: Fejléck struktúra.', + HEADING_EMPTY_WITH_IMAGE: 'A címsor nem tartalmaz szöveget, de képet tartalmaz. Ha ez nem címsor, akkor változtassa meg a formátumát Címsor %(level) formátumra Normál vagy Bekezdés. Ellenkező esetben kérem, adja hozzá az alternatív szöveget a képhez, ha az nem díszítőelem.', PANEL_HEADING_MISSING_ONE: 'Hiányzik az 1. címsor!', PANEL_NO_HEADINGS: 'Nem találtunk címszavakat.', LINK_EMPTY: 'Szöveg nélküli üres linkek eltávolítása.', LINK_EMPTY_LABELLEDBY: 'A hivatkozásnak van egy értéke a aria-labelledby számára, ami üres vagy nem egyezik meg egy másik elem id attribútumának az értékével az oldalon.', LINK_EMPTY_LINK_NO_LABEL: 'A link nem rendelkezik olyan szöveggel, amely a képernyőolvasók és más segítő technológiák számára is látható. A javításhoz:
    • Adjon hozzá egy tömör szöveget, amely leírja, hogy hová vezet a link.
    • Ha ikonos link vagy SVG, akkor valószínűleg hiányzik egy leíró felirat.
    • Ha úgy gondolja, hogy ez a link egy másolási/beillesztési hiba miatt hibás, akkor fontolja meg a törlését.
    .', - LINK_LABEL: 'Link címke: %(sanitizedText)', - LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', - LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(hiba)
    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
    ', - LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', + LINK_LABEL: 'Link címke %(TEXT)', + LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', + LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(ERROR)
    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
    ', + LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', LINK_DOI: 'Weboldalak vagy kizárólag online elérhető források esetében az APA Style guide leíró linkek használatát javasolja, a mű URL-jét vagy DOI-ját a cím köré tekerve. A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetőek lehetnek a segédeszközökkel.', NEW_TAB_WARNING: 'A link figyelmeztetés nélkül új lapon vagy ablakban nyílik meg. Ez zavaró lehet, különösen azok számára, akik nehezen érzékelik a vizuális tartalmakat. Másodszor, nem mindig jó gyakorlat, ha valakinek az élményét irányítjuk, vagy döntéseket hozunk helyettük. Jelezze, hogy a link új ablakban nyílik meg a link szövegében
    Tipp! Ismerje meg a legjobb gyakorlatokat: Hivatkozások megnyitása új böngészőablakban és lapon.', - FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
    Példa: Vezetői jelentés (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(sanitizedText)', + FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
    Példa: Vezetői jelentés (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A képet linkként használják a körülötte lévő szöveggel, bár az alt attribútumot dekoratívnak vagy nullának kell jelölni.', MISSING_ALT_LINK_MESSAGE: 'A képet linkként használják, de hiányzik az alt szöveg! Kérjük, gondoskodjon arról, hogy az alt szöveg leírja, hová vezet a link.', MISSING_ALT_MESSAGE: 'Hiányzó alt szöveg! Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(hiba).
    Alt szöveg: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
    Alt szöveg: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(hiba).
    Alt szöveg: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(altText)', - ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet.
    Alt szöveg: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'A hivatkozásnak van aria-hidden="true" tulajdonsága, de még mindig billentyűzettel fókuszálható. Ha felesleges vagy duplikált hivatkozást szeretnél elrejteni, adj hozzá tabindex="-1" tulajdonságot is.', LINK_IMAGE_NO_ALT_TEXT: 'A linkben lévő kép dekoratívnak van jelölve, és nincs linkszöveg. Kérjük, adjon a képhez alt szöveget, amely leírja a link célját.', LINK_IMAGE_HAS_TEXT: 'A kép dekoratívként van megjelölve, bár a link a környező szöveget használja leíró címkeként.', - LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
    Alt szöveg (%(altLength) karakterek): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
    Alt szöveg: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
    Alt szöveg: %(altText)
    Link címke: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
    Tudjon meg többet: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
    További információ: alt versus figcaption.
    Alt szöveg: %(altText)', + LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
    ALT %(altLength) Karakterek %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
    ALT %(ALT_TEXT)
    Link címke %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
    Tudjon meg többet: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
    További információ: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen adjon hozzá alt szöveget.', - IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
    Alt szöveg (%(altLength) karakterek): %(altText)', - IMAGE_PASS: 'Alt szöveg: %(altText)', + IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
    ALT %(altLength) Karakterek %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'A képgombból hiányzik az alt szöveg. Kérjük, adjon hozzá alt szöveget, hogy elérhető nevet adjon. Például: Keresés vagy Submit.', LABELS_INPUT_RESET_MESSAGE: 'A visszaállító gombokat nem szabad használni, hacsak nem kifejezetten szükséges, mert könnyen aktiválhatók tévedésből.
    Tipp! Tudja meg, hogy a A visszaállítás és a törlés gombok miért jelentenek használhatósági problémát.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
    Bemeneti címke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
    Bemeneti címke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Adjon hozzá egy for attribútumot a címkéhez, amely megfelel a bemenet id azonosítójának.
    Ennek a bemenetnek az azonosítója a következő: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Kérjük, adjon hozzá egy id-t ehhez a bemenethez, és adjon hozzá egy megfelelő for attribútumot a címkéhez.', EMBED_VIDEO: 'Kérjük, gondoskodjon arról, hogy minden videó feliratozással legyen ellátva. A feliratozás biztosítása minden hang- és videotartalomhoz kötelező A-szintű követelmény. A feliratozás a siket vagy nagyothalló embereket támogatja.', EMBED_AUDIO: 'Kérjük, gondoskodjon arról, hogy minden podcasthoz átiratot adjon. A hanganyag átiratának megadása kötelező A-szintű követelmény. Az átiratok a siket/süket vagy nagyothalló embereket támogatják, de mindenki számára hasznosak lehetnek. Fontolja meg az átirat elhelyezését alul vagy egy harmonika panelen belül.', EMBED_DATA_VIZ: 'Az ilyen adatvizualizációs widgetek gyakran problémát jelentenek azok számára, akik billentyűzetet vagy képernyőolvasót használnak a navigáláshoz, és jelentős nehézségeket okozhatnak a gyengén látók vagy színvakok számára. Javasoljuk, hogy ugyanezt az információt alternatív (szöveges vagy táblázatos) formátumban adjuk meg a widget alatt.
    Tudjon meg többet a komplex képekről.', - EMBED_MISSING_TITLE: 'A beágyazott tartalomnak olyan hozzáférhető névre van szüksége, amely leírja a tartalmát. Kérjük, adjon meg egy egyedi title vagy aria-label attribútumot a iframe elemen. Tudjon meg többet a iFrames.-ről.', + EMBED_MISSING_TITLE: 'A beágyazott tartalomhoz hozzáférhető névre van szükség, amely leírja annak tartalmát. Kérjük, adjon meg egyedi title vagy aria-label attribútumot az iframe elemen. További információkért látogasson el ide: iFrame-ek.', EMBED_GENERAL_WARNING: 'Beágyazott tartalom ellenőrzése nem lehetséges. Kérjük, győződjön meg róla, hogy a képek alt szöveggel, a videók felirattal, a szöveg megfelelő kontraszttal és az interaktív komponensek billentyűzettel elérhetőek.', EMBED_UNFOCUSABLE: 'Azoknak a <iframe>-nek, amelyek nem fókuszálható elemekkel rendelkeznek, nem kell tabindex="-1" tulajdonságot rendelni. A beágyazott tartalom nem lesz billentyűzettel elérhető.', - QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
    Ez a link a következőre mutat:
    %(el)', + QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
    Ez a link a következőre mutat:
    %(LINK)', QA_IN_PAGE_LINK: 'Sérült azonos oldalú link. A hivatkozás célja nem egyezik meg egyetlen elemmel sem ezen az oldalon.', QA_BAD_ITALICS: 'A vastag és dőlt betűs címkéknek szemantikai jelentésük van, és nem szabad egész bekezdések kiemelésére használni őket. A félkövérrel kiemelt szöveget egy szó vagy kifejezés erős kiemelésére kell használni. A dőlt betűt a tulajdonnevek (pl. könyv- és cikkcímek), idegen szavak, idézőjelek kiemelésére kell használni. A hosszú idézeteket blokkidézetként kell formázni.', QA_PDF: 'Nem lehet ellenőrizni a PDF-ek hozzáférhetőségét. A PDF-ek webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. A PDF-ek gyakran tartalmaznak problémákat a képernyőolvasót használók (hiányzó szerkezeti címkék vagy hiányzó űrlapmező-címkék) és a gyengén látók (a szöveg nagyításkor nem folyik vissza) számára.
    • Ha ez egy űrlap, fontolja meg egy hozzáférhető HTML űrlap használatát alternatívaként.
    • Ha ez egy dokumentum, fontolja meg a weboldallá alakítását.
    Máskülönben ellenőrizze a PDF hozzáférhetőségét az Acrobat DC-ben.Megközelíthetőségét az PDF-ben..', - QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', + QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', QA_PAGE_LANGUAGE: 'Az oldal nyelve nincs megadva! Kérjük, declare language on HTML tag.', QA_PAGE_TITLE: 'Hiányzik az oldal címe! Kérjük, adjon meg egy oldal címet.', - QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(sanitizedText)

    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', - QA_FAKE_HEADING: 'Ez egy címszó? %(boldtext)
    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', + QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(TEXT)
    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', + QA_FAKE_HEADING: 'Ez egy címszó? %(TEXT)
    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', QA_SHOULD_BE_LIST: 'Megpróbál listát készíteni? Lehetséges listaelemet találtunk: %(firstPrefix)
    Győződjön meg róla, hogy szemantikus listákat használ, és használja helyette a felsorolás- vagy számformázó gombokat. Szemantikus lista használata esetén a segédtechnológiák képesek olyan információkat közvetíteni, mint az elemek teljes száma és az egyes elemek relatív pozíciója a listában. További információ a szemantikus listákról.', QA_UPPERCASE_WARNING: 'Találtam minden nagybetűt. Egyes képernyőolvasók a csupa nagybetűs szöveget betűszónak értelmezhetik, és minden egyes betűt külön-külön olvasnak. Ezenkívül egyesek nehezebben olvashatónak találják a csupa nagybetűs szöveget, és úgy tűnhet, mintha kiabálnának.', QA_DUPLICATE_ID: 'Találtunk duplikált azonosítót. A duplikált azonosító hibák köztudottan problémákat okoznak a segítő technológiák számára, amikor azok megpróbálnak interakcióba lépni a tartalommal.
    Kérjük, távolítsa el vagy változtassa meg a következő azonosítót: %(id)', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Hiányzó táblázatfejlécek! A hozzáférhető táblázatokhoz olyan HTML-jelölésre van szükség, amely jelzi a fejléccellákat és az adatcellákat, amelyek meghatározzák a kapcsolatukat. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. A táblázatokat csak táblázatos adatokhoz szabad használni.
    Tudjon meg többet a hozzáférhető táblázatokról.', TABLES_SEMANTIC_HEADING: 'Az olyan szemantikus címsorokat, mint a Heading 2 vagy Heading 3, csak a tartalmi részeknél szabad használni; nem a HTML táblázatokban. A táblázatcímeket ehelyett a <th> elemmel jelezze.
    Tudjon meg többet a elérhető táblázatokról.', TABLES_EMPTY_HEADING: 'Üres asztali fejlécet találtunk! A táblázat fejlécének soha nem szabad üresnek lennie. Fontos a sor- és/vagy oszlopfejlécek kijelölése a kapcsolatuk érzékeltetése érdekében. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. Ne feledje, hogy a táblázatok csak táblázatos adatokhoz használhatók.
    Tudjon meg többet a elérhető táblázatokról.', - CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    A kontrasztarány %(cratio) a következő szöveg esetében: %(sanitizedText)', - CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kérem, vizsgálja felül: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány: %(cratio)', + CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kérem, vizsgálja felül: %(TEXT)', + CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
    Kontrasztarány %(RATIO)', }, }; diff --git a/dist/js/lang/id.js b/dist/js/lang/id.js index fc52f1be..d19ad00f 100644 --- a/dist/js/lang/id.js +++ b/dist/js/lang/id.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var id = { OFF: 'Mati', ALERT_TEXT: 'Waspada', ALERT_CLOSE: 'Tutup', - OUTLINE: 'Garis Besar Halaman', + OUTLINE: 'Halaman', + ALT: 'ALT', + IMAGES: 'Gambar', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'Tidak ada gambar ditemukan.', + DECORATIVE: 'Dekoratif', + MISSING: 'Hilang', PAGE_ISSUES: 'Masalah Halaman', SETTINGS: 'Pengaturan', CONTRAST: 'Kontras', @@ -41,7 +47,7 @@ var id = { PANEL_ICON_WARNINGS: 'peringatan ditemukan.', PANEL_ICON_TOTAL: 'total masalah yang ditemukan.', NOT_VISIBLE_ALERT: 'Item yang ingin Anda lihat tidak terlihat; item tersebut mungkin tersembunyi atau berada di dalam komponen akordeon atau tab. Berikut ini adalah pratinjau:', - ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', + ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', HEADING_NOT_VISIBLE_ALERT: 'Judul tidak terlihat; judul mungkin tersembunyi atau berada di dalam komponen akordeon atau tab.', SKIP_TO_PAGE_ISSUES: 'Loncat ke Halaman Masalah', CONSOLE_ERROR_MESSAGE: 'Maaf, ada masalah dengan pemeriksa aksesibilitas di halaman ini. Bisakah Anda melaporkannya melalui formulir ini atau di GitHub?', @@ -148,11 +154,11 @@ var id = { LANG_DIFFICULT: 'Sulit', LANG_FAIRLY_DIFFICULT: 'Cukup sulit', LANG_GOOD: 'Bagus.', - READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', + READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Konten tidak cukup untuk menghitung skor keterbacaan.', HEADING_NON_CONSECUTIVE_LEVEL: 'Level heading yang digunakan tidak berurutan. Judul tidak boleh melompati level, atau berpindah dari Judul %(prevLevel) ke Judul %(level).', HEADING_EMPTY: 'Judul kosong ditemukan! Untuk memperbaikinya, hapus baris ini atau ubah formatnya dari Header %(level) ke Normal atau Paragraph.', - HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
    Jumlah karakter: %(headingLength)', + HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Judul pertama pada halaman biasanya adalah Heading 1 atau Heading 2. Heading 1 harus menjadi awal dari bagian konten utama, dan merupakan judul utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Heading.', HEADING_MISSING_ONE: 'Heading 1. Heading 1 seharusnya menjadi awal dari area konten utama, dan merupakan heading utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Judul.', HEADING_EMPTY_WITH_IMAGE: 'Judul tidak memiliki teks, namun berisi gambar. Jika ini bukan judul, ubah formatnya dari Judul %(level) ke Normal atau Paragraf. Jika tidak, tambahkan teks alt ke gambar jika tidak bersifat dekoratif.', @@ -161,65 +167,65 @@ var id = { LINK_EMPTY: 'Hapus tautan kosong tanpa teks apa pun.', LINK_EMPTY_LABELLEDBY: 'Tautan memiliki nilai untuk aria-labelledby yang kosong atau tidak cocok dengan nilai atribut id dari elemen lain di halaman.', LINK_EMPTY_LINK_NO_LABEL: 'Tautan tidak memiliki teks yang dapat dilihat oleh pembaca layar dan teknologi bantuan lainnya. Untuk memperbaiki:
    • Tambahkan beberapa teks ringkas yang menjelaskan ke mana tautan tersebut membawa Anda.
    • Jika tautan tersebut adalah tautan ikon atau SVG, kemungkinan besar tautan tersebut tidak memiliki label deskriptif.
    • Jika Anda merasa tautan tersebut merupakan kesalahan akibat bug salin/tempel, pertimbangkan untuk menghapusnya.
    ', - LINK_LABEL: 'Label tautan: %(sanitizedText)', - LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(error)
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', - LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(error)
    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
    ', - LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', + LINK_LABEL: 'Label tautan %(TEXT)', + LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(ERROR)
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', + LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(ERROR)
    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
    ', + LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', LINK_DOI: 'Untuk halaman web atau sumber daya yang hanya tersedia secara online, Panduan Gaya APA merekomendasikan penggunaan pranala deskriptif dengan membungkus URL atau DOI karya di sekeliling judulnya. URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit dipahami saat diakses dengan teknologi bantu.', - NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan
    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', - FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
    Contoh: Laporan Eksekutif (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(sanitizedText)', + NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan.
    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', + FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
    Contoh: Laporan Eksekutif (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Gambar digunakan sebagai tautan dengan teks di sekitarnya, meskipun atribut alt harus ditandai sebagai dekoratif atau nol.', MISSING_ALT_LINK_MESSAGE: 'Gambar digunakan sebagai tautan tetapi tidak memiliki teks alt! Pastikan teks alt menjelaskan ke mana tautan tersebut membawa Anda.', MISSING_ALT_MESSAGE: 'Teks alt yang hilang! Jika gambar menyampaikan suatu cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar tersebut.', - LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(altText)', - ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Tautan memiliki aria-hidden="true" tetapi masih dapat difokuskan menggunakan keyboard. Jika Anda bermaksud menyembunyikan tautan yang redundan atau duplikat, tambahkan juga tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Gambar di dalam tautan ditandai sebagai dekoratif dan tidak ada teks tautan. Tambahkan teks alt ke gambar yang menjelaskan tujuan tautan.', LINK_IMAGE_HAS_TEXT: 'Gambar ditandai sebagai dekoratif, meskipun tautannya menggunakan teks di sekelilingnya sebagai label deskriptif.', - LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    Teks alt (%(panjang alt) karakter):%(altText)', - LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
    Alt text: %(altText)
    Label tautan: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.
    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
    ALT %(ALT_TEXT)
    Label tautan %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk menambahkan teks alternatif.', - IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
    Teks alt (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Tombol gambar tidak memiliki teks alt. Tambahkan teks alt untuk memberikan nama yang dapat diakses. Sebagai contoh: Cari atau Kirim.', LABELS_INPUT_RESET_MESSAGE: 'Tombol Reset sebaiknya tidak digunakan kecuali jika secara khusus diperlukan karena mudah diaktifkan secara tidak sengaja.
    Tip! Pelajari mengapa tombol Reset dan Batal menimbulkan masalah dalam hal kegunaan.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
    Label masukan: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
    ID untuk input ini adalah: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
    Label masukan %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
    ID untuk input ini adalah: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', EMBED_VIDEO: 'Pastikan semua video memiliki teks tertutup. Menyediakan teks untuk semua konten audio dan video adalah persyaratan Level A wajib. Teks mendukung orang-orang yang tuli atau sulit mendengar.', EMBED_AUDIO: 'Pastikan untuk menyediakan transkrip untuk semua podcast. Menyediakan transkrip untuk konten audio adalah persyaratan Level A wajib. Transkrip membantu orang-orang yang tuli atau sulit mendengar, tetapi dapat bermanfaat bagi semua orang. Pertimbangkan untuk menempatkan transkrip di bawah atau di dalam panel akordeon.', - EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
    Pelajari lebih lanjut tentang gambar kompleks.', - EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', - EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang memadai, dan komponen interaktif dapat diakses dengan keyboard.', + EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
    Pelajari lebih lanjut tentang gambar kompleks.', + EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', + EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang cukup, dan komponen interaktif dapat diakses menggunakan keyboard. Pelajari lebih lanjut tentang aksesibilitas keyboard.', EMBED_UNFOCUSABLE: '<iframe> dengan elemen yang tidak dapat difokuskan seharusnya tidak memiliki tabindex="-1". Konten yang disematkan tidak akan dapat diakses menggunakan keyboard.', - QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
    Tautan ini mengarah ke:
    %(el)', + QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
    Tautan ini mengarah ke:
    %(LINK)', QA_IN_PAGE_LINK: 'Tautan dalam halaman rusak. Tujuan tautan tidak cocok dengan elemen apa pun di halaman ini.', QA_BAD_ITALICS: 'Tag cetak tebal dan miring memiliki makna semantik, dan tidak boleh digunakan untuk menyorot seluruh paragraf. Teks yang dicetak tebal harus digunakan untuk memberikan penekanan yang kuat pada sebuah kata atau frasa. Huruf miring harus digunakan untuk menyoroti nama diri (misalnya judul buku dan artikel), kata-kata asing, kutipan. Kutipan panjang harus diformat sebagai kutipan blok.', - QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', + QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', QA_DOCUMENT: 'Tidak dapat memeriksa aksesibilitas dokumen. Dokumen yang ditautkan dianggap sebagai konten web dan harus dapat diakses juga. Silakan tinjau dokumen ini secara manual. ', QA_PAGE_LANGUAGE: 'Bahasa halaman tidak dideklarasikan! Silakan deklarasikan bahasa pada tag HTML.', QA_PAGE_TITLE: 'Judul halaman tidak ada! Harap berikan judul halaman.', - QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(sanitizedText)
    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', - QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(boldtext)
    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', - QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', + QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(TEXT)
    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', + QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(TEXT)
    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', + QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', QA_UPPERCASE_WARNING: 'Ditemukan semua huruf besar. Beberapa pembaca layar mungkin menafsirkan teks huruf besar semua sebagai akronim dan akan membaca setiap huruf satu per satu. Selain itu, beberapa orang menganggap huruf besar lebih sulit dibaca dan mungkin memberikan kesan berteriak.', QA_DUPLICATE_ID: 'Ditemukan duplikat ID. Kesalahan ID duplikat diketahui dapat menyebabkan masalah pada teknologi bantuan saat mencoba berinteraksi dengan konten.
    Harap hapus atau ubah ID berikut ini: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Teks yang digarisbawahi dapat membingungkan dengan tautan. Pertimbangkan untuk menggunakan gaya yang berbeda seperti <strong>kepentingan yang kuat</strong> atau <em>penekanan</em>.', QA_SUBSCRIPT_WARNING: 'Opsi pemformatan subskrip dan superskrip hanya boleh digunakan untuk mengubah posisi teks untuk konvensi atau standar tipografi. Opsi ini tidak boleh tidak digunakan hanya untuk tujuan presentasi atau penampilan. Memformat seluruh kalimat dapat menimbulkan masalah keterbacaan. Kasus penggunaan yang tepat akan mencakup menampilkan eksponen, angka ordinal seperti 4th, bukan keempat, dan rumus kimia (misalnya H2O).', TABLES_MISSING_HEADINGS: 'Header tabel yang hilang! Tabel yang dapat diakses membutuhkan markup HTML yang menunjukkan sel header dan sel data yang mendefinisikan hubungannya. Informasi ini memberikan konteks kepada orang yang menggunakan teknologi bantu. Tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio kontras adalah %(cratio) untuk teks berikut ini: %(sanitizedText)', - CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Tolong tinjau: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio kontras: %(cratio)', + TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio Kontras %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Tolong tinjau: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio Kontras %(RATIO)', }, }; diff --git a/dist/js/lang/id.umd.js b/dist/js/lang/id.umd.js index 8c7eb7a7..e57e87da 100644 --- a/dist/js/lang/id.umd.js +++ b/dist/js/lang/id.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Mati', ALERT_TEXT: 'Waspada', ALERT_CLOSE: 'Tutup', - OUTLINE: 'Garis Besar Halaman', + OUTLINE: 'Halaman', + ALT: 'ALT', + IMAGES: 'Gambar', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'Tidak ada gambar ditemukan.', + DECORATIVE: 'Dekoratif', + MISSING: 'Hilang', PAGE_ISSUES: 'Masalah Halaman', SETTINGS: 'Pengaturan', CONTRAST: 'Kontras', @@ -47,7 +53,7 @@ PANEL_ICON_WARNINGS: 'peringatan ditemukan.', PANEL_ICON_TOTAL: 'total masalah yang ditemukan.', NOT_VISIBLE_ALERT: 'Item yang ingin Anda lihat tidak terlihat; item tersebut mungkin tersembunyi atau berada di dalam komponen akordeon atau tab. Berikut ini adalah pratinjau:', - ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', + ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', HEADING_NOT_VISIBLE_ALERT: 'Judul tidak terlihat; judul mungkin tersembunyi atau berada di dalam komponen akordeon atau tab.', SKIP_TO_PAGE_ISSUES: 'Loncat ke Halaman Masalah', CONSOLE_ERROR_MESSAGE: 'Maaf, ada masalah dengan pemeriksa aksesibilitas di halaman ini. Bisakah Anda melaporkannya melalui formulir ini atau di GitHub?', @@ -154,11 +160,11 @@ LANG_DIFFICULT: 'Sulit', LANG_FAIRLY_DIFFICULT: 'Cukup sulit', LANG_GOOD: 'Bagus.', - READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', + READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Konten tidak cukup untuk menghitung skor keterbacaan.', HEADING_NON_CONSECUTIVE_LEVEL: 'Level heading yang digunakan tidak berurutan. Judul tidak boleh melompati level, atau berpindah dari Judul %(prevLevel) ke Judul %(level).', HEADING_EMPTY: 'Judul kosong ditemukan! Untuk memperbaikinya, hapus baris ini atau ubah formatnya dari Header %(level) ke Normal atau Paragraph.', - HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
    Jumlah karakter: %(headingLength)', + HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Judul pertama pada halaman biasanya adalah Heading 1 atau Heading 2. Heading 1 harus menjadi awal dari bagian konten utama, dan merupakan judul utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Heading.', HEADING_MISSING_ONE: 'Heading 1. Heading 1 seharusnya menjadi awal dari area konten utama, dan merupakan heading utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Judul.', HEADING_EMPTY_WITH_IMAGE: 'Judul tidak memiliki teks, namun berisi gambar. Jika ini bukan judul, ubah formatnya dari Judul %(level) ke Normal atau Paragraf. Jika tidak, tambahkan teks alt ke gambar jika tidak bersifat dekoratif.', @@ -167,65 +173,65 @@ LINK_EMPTY: 'Hapus tautan kosong tanpa teks apa pun.', LINK_EMPTY_LABELLEDBY: 'Tautan memiliki nilai untuk aria-labelledby yang kosong atau tidak cocok dengan nilai atribut id dari elemen lain di halaman.', LINK_EMPTY_LINK_NO_LABEL: 'Tautan tidak memiliki teks yang dapat dilihat oleh pembaca layar dan teknologi bantuan lainnya. Untuk memperbaiki:
    • Tambahkan beberapa teks ringkas yang menjelaskan ke mana tautan tersebut membawa Anda.
    • Jika tautan tersebut adalah tautan ikon atau SVG, kemungkinan besar tautan tersebut tidak memiliki label deskriptif.
    • Jika Anda merasa tautan tersebut merupakan kesalahan akibat bug salin/tempel, pertimbangkan untuk menghapusnya.
    ', - LINK_LABEL: 'Label tautan: %(sanitizedText)', - LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(error)
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', - LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(error)
    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
    ', - LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', + LINK_LABEL: 'Label tautan %(TEXT)', + LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(ERROR)
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', + LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(ERROR)
    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
    ', + LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', LINK_DOI: 'Untuk halaman web atau sumber daya yang hanya tersedia secara online, Panduan Gaya APA merekomendasikan penggunaan pranala deskriptif dengan membungkus URL atau DOI karya di sekeliling judulnya. URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit dipahami saat diakses dengan teknologi bantu.', - NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan
    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', - FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
    Contoh: Laporan Eksekutif (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(sanitizedText)', + NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan.
    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', + FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
    Contoh: Laporan Eksekutif (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Gambar digunakan sebagai tautan dengan teks di sekitarnya, meskipun atribut alt harus ditandai sebagai dekoratif atau nol.', MISSING_ALT_LINK_MESSAGE: 'Gambar digunakan sebagai tautan tetapi tidak memiliki teks alt! Pastikan teks alt menjelaskan ke mana tautan tersebut membawa Anda.', MISSING_ALT_MESSAGE: 'Teks alt yang hilang! Jika gambar menyampaikan suatu cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar tersebut.', - LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(error).
    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(error).
    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(altText)', - ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Tautan memiliki aria-hidden="true" tetapi masih dapat difokuskan menggunakan keyboard. Jika Anda bermaksud menyembunyikan tautan yang redundan atau duplikat, tambahkan juga tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Gambar di dalam tautan ditandai sebagai dekoratif dan tidak ada teks tautan. Tambahkan teks alt ke gambar yang menjelaskan tujuan tautan.', LINK_IMAGE_HAS_TEXT: 'Gambar ditandai sebagai dekoratif, meskipun tautannya menggunakan teks di sekelilingnya sebagai label deskriptif.', - LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    Teks alt (%(panjang alt) karakter):%(altText)', - LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
    Alt text: %(altText)
    Label tautan: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.
    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
    ALT %(ALT_TEXT)
    Label tautan %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
    Pelajari lebih lanjut: alt versus keterangan gambar.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk menambahkan teks alternatif.', - IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
    Teks alt (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Tombol gambar tidak memiliki teks alt. Tambahkan teks alt untuk memberikan nama yang dapat diakses. Sebagai contoh: Cari atau Kirim.', LABELS_INPUT_RESET_MESSAGE: 'Tombol Reset sebaiknya tidak digunakan kecuali jika secara khusus diperlukan karena mudah diaktifkan secara tidak sengaja.
    Tip! Pelajari mengapa tombol Reset dan Batal menimbulkan masalah dalam hal kegunaan.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
    Label masukan: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
    ID untuk input ini adalah: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
    Label masukan %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
    ID untuk input ini adalah: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', EMBED_VIDEO: 'Pastikan semua video memiliki teks tertutup. Menyediakan teks untuk semua konten audio dan video adalah persyaratan Level A wajib. Teks mendukung orang-orang yang tuli atau sulit mendengar.', EMBED_AUDIO: 'Pastikan untuk menyediakan transkrip untuk semua podcast. Menyediakan transkrip untuk konten audio adalah persyaratan Level A wajib. Transkrip membantu orang-orang yang tuli atau sulit mendengar, tetapi dapat bermanfaat bagi semua orang. Pertimbangkan untuk menempatkan transkrip di bawah atau di dalam panel akordeon.', - EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
    Pelajari lebih lanjut tentang gambar kompleks.', - EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', - EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang memadai, dan komponen interaktif dapat diakses dengan keyboard.', + EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
    Pelajari lebih lanjut tentang gambar kompleks.', + EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', + EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang cukup, dan komponen interaktif dapat diakses menggunakan keyboard. Pelajari lebih lanjut tentang aksesibilitas keyboard.', EMBED_UNFOCUSABLE: '<iframe> dengan elemen yang tidak dapat difokuskan seharusnya tidak memiliki tabindex="-1". Konten yang disematkan tidak akan dapat diakses menggunakan keyboard.', - QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
    Tautan ini mengarah ke:
    %(el)', + QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
    Tautan ini mengarah ke:
    %(LINK)', QA_IN_PAGE_LINK: 'Tautan dalam halaman rusak. Tujuan tautan tidak cocok dengan elemen apa pun di halaman ini.', QA_BAD_ITALICS: 'Tag cetak tebal dan miring memiliki makna semantik, dan tidak boleh digunakan untuk menyorot seluruh paragraf. Teks yang dicetak tebal harus digunakan untuk memberikan penekanan yang kuat pada sebuah kata atau frasa. Huruf miring harus digunakan untuk menyoroti nama diri (misalnya judul buku dan artikel), kata-kata asing, kutipan. Kutipan panjang harus diformat sebagai kutipan blok.', - QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', + QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', QA_DOCUMENT: 'Tidak dapat memeriksa aksesibilitas dokumen. Dokumen yang ditautkan dianggap sebagai konten web dan harus dapat diakses juga. Silakan tinjau dokumen ini secara manual. ', QA_PAGE_LANGUAGE: 'Bahasa halaman tidak dideklarasikan! Silakan deklarasikan bahasa pada tag HTML.', QA_PAGE_TITLE: 'Judul halaman tidak ada! Harap berikan judul halaman.', - QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(sanitizedText)
    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', - QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(boldtext)
    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', - QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', + QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(TEXT)
    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', + QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(TEXT)
    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', + QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', QA_UPPERCASE_WARNING: 'Ditemukan semua huruf besar. Beberapa pembaca layar mungkin menafsirkan teks huruf besar semua sebagai akronim dan akan membaca setiap huruf satu per satu. Selain itu, beberapa orang menganggap huruf besar lebih sulit dibaca dan mungkin memberikan kesan berteriak.', QA_DUPLICATE_ID: 'Ditemukan duplikat ID. Kesalahan ID duplikat diketahui dapat menyebabkan masalah pada teknologi bantuan saat mencoba berinteraksi dengan konten.
    Harap hapus atau ubah ID berikut ini: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Teks yang digarisbawahi dapat membingungkan dengan tautan. Pertimbangkan untuk menggunakan gaya yang berbeda seperti <strong>kepentingan yang kuat</strong> atau <em>penekanan</em>.', QA_SUBSCRIPT_WARNING: 'Opsi pemformatan subskrip dan superskrip hanya boleh digunakan untuk mengubah posisi teks untuk konvensi atau standar tipografi. Opsi ini tidak boleh tidak digunakan hanya untuk tujuan presentasi atau penampilan. Memformat seluruh kalimat dapat menimbulkan masalah keterbacaan. Kasus penggunaan yang tepat akan mencakup menampilkan eksponen, angka ordinal seperti 4th, bukan keempat, dan rumus kimia (misalnya H2O).', TABLES_MISSING_HEADINGS: 'Header tabel yang hilang! Tabel yang dapat diakses membutuhkan markup HTML yang menunjukkan sel header dan sel data yang mendefinisikan hubungannya. Informasi ini memberikan konteks kepada orang yang menggunakan teknologi bantu. Tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio kontras adalah %(cratio) untuk teks berikut ini: %(sanitizedText)', - CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Tolong tinjau: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio kontras: %(cratio)', + TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio Kontras %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Tolong tinjau: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
    Rasio Kontras %(RATIO)', }, }; diff --git a/dist/js/lang/it.js b/dist/js/lang/it.js index 1b813c89..b50a26b0 100644 --- a/dist/js/lang/it.js +++ b/dist/js/lang/it.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var it = { OFF: 'Spento', ALERT_TEXT: 'Allarme', ALERT_CLOSE: 'Chiudere', - OUTLINE: 'Schema della pagina', + OUTLINE: 'Schema', + ALT: 'ALT', + IMAGES: 'Immagini', + EDIT: 'Modifica', + IMAGES_NOT_FOUND: 'Nessuna immagine trovata.', + DECORATIVE: 'Decorativo', + MISSING: 'Mancante', PAGE_ISSUES: 'Problemi di pagina', SETTINGS: 'Impostazioni', CONTRAST: 'Contrasto', @@ -151,64 +157,64 @@ var it = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Non ci sono abbastanza contenuti per calcolare il punteggio di leggibilità.', HEADING_NON_CONSECUTIVE_LEVEL: 'È stato utilizzato un livello di intestazione non consecutivo. I titoli non devono mai saltare livelli o passare da Heading %(prevLevel) a Heading %(level).', HEADING_EMPTY: 'Titolo vuoto trovato! Per risolvere il problema, eliminare questa riga o cambiare il suo formato da Intonazione %(level) a Normale o Paragrafo.', - HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
    Conteggio dei caratteri: %(headingLength)", + HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
    %(HEADING_LENGTH) Caratteri", HEADING_FIRST: "La prima intestazione di una pagina dovrebbe essere di solito un'intestazione 1 o un'intestazione 2. L'intestazione 1 dovrebbe essere l'inizio della sezione principale del contenuto ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_MISSING_ONE: "Manca l'intestazione 1. L'intestazione 1 dovrebbe essere l'inizio dell'area di contenuto principale ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_EMPTY_WITH_IMAGE: "L'intestazione non ha testo, ma contiene un'immagine. Se non si tratta di un titolo, cambiarne il formato da Testamento %(level) a Normale o Paragrafo. Altrimenti, aggiungere un testo alt all'immagine, se non è decorativo.", PANEL_HEADING_MISSING_ONE: "Manca l'intestazione 1!", PANEL_NO_HEADINGS: 'Nessun titolo trovato.', LINK_EMPTY: 'Rimuovere i link vuoti senza testo.', - LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributoid di un altro elemento nella pagina.', + LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributo id di un altro elemento nella pagina.', LINK_EMPTY_LINK_NO_LABEL: "Il link non ha un testo distinguibile che sia visibile agli screen reader e ad altre tecnologie assistive. Per risolvere il problema:
    • Aggiungi un testo conciso che descriva dove porta il link.
    • Se si tratta di un collegamento a un'icona o a un SVG, è probabile che manchi un'etichetta descrittiva.
    • Se pensi che questo link sia un errore dovuto a un bug di copia/incolla, prendi in considerazione l'idea di cancellarlo.
    ", - LINK_LABEL: 'Etichetta del link: %(sanitizedText)', - LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(error)
    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', - LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(error)
    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
    ", - LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", + LINK_LABEL: 'Etichetta del link %(TEXT)', + LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(ERROR)
    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', + LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(ERROR)
    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
    ", + LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", LINK_DOI: 'Per le pagine web o le risorse solo online, la guida di stile dell\'APA raccomanda di utilizzare link descrittivi avvolgendo l\'URL o il DOI dell\'opera intorno al suo titolo. URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive.', - NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link
    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", - FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
    Esempio: Relazione esecutiva (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(sanitizedText)', + NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link.
    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", + FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
    Esempio: Relazione esecutiva (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: "L'immagine viene utilizzata come link con testo circostante, anche se l'attributo alt dovrebbe essere contrassegnato come decorativo o nullo.", MISSING_ALT_LINK_MESSAGE: "L'immagine viene utilizzata come link ma manca il testo alt! Assicurarsi che il testo alt descriva dove porta il link.", MISSING_ALT_MESSAGE: "Manca il testo alt! Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine.", - LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(error).
    Testo alt: %(altText)", - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(altText)", - LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
    Testo alt: %(altText)", - ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(error).
    Testo alt: %(altText)", - ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(altText)', - ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante.
    Testo alternativo: %(altText)", + LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(ERROR).
    ALT %(ALT_TEXT)", + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(ALT_TEXT)", + LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
    ALT %(ALT_TEXT)", + ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(ERROR).
    ALT %(ALT_TEXT)", + ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante.
    ALT %(ALT_TEXT)", LINK_HIDDEN_FOCUSABLE: 'Il link ha aria-hidden="true" ma è comunque selezionabile dalla tastiera. Se hai l\'intenzione di nascondere un link ridondante o duplicato, aggiungi anche tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: "L'immagine all'interno del link è contrassegnata come decorativa e non c'è testo di collegamento. Aggiungere all'immagine un testo alt che descriva la destinazione del link.", LINK_IMAGE_HAS_TEXT: "L'immagine è contrassegnata come decorativa, anche se il link utilizza il testo circostante come etichetta descrittiva.", - LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
    Testo alt (%(altLength) caratteri): %(altText)", - LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
    Testo alt: %(altText)", - LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
    Testo alt: %(altText)
    Etichetta del link: %(sanitizedText)", - IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.", - IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.
    Testo alt: %(altText)", + LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
    ALT %(altLength) Caratteri %(ALT_TEXT)", + LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
    ALT %(ALT_TEXT)", + LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
    ALT %(ALT_TEXT)
    Etichetta del link %(TEXT)", + IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.", + IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.
    ALT %(ALT_TEXT)", IMAGE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di aggiungere il testo alt.", - IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
    Testo alt (%(altLength) caratteri): %(altText)", - IMAGE_PASS: 'Testo alt: %(altText)', + IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
    ALT %(altLength) Caratteri %(ALT_TEXT)", + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: "Il pulsante dell'immagine manca del testo alt. Aggiungere il testo alt per fornire un nome accessibile. Ad esempio: Cerca o Invio.", LABELS_INPUT_RESET_MESSAGE: 'I pulsanti di reset non dovrebbero essere utilizzati se non specificamente necessari, perché è facile che si attivino per errore.
    Tip! Scoprite perché i pulsanti Reset e Cancel pongono problemi di usabilità.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
    Etichetta input: %(sanitizedText)", + LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
    Etichetta input %(TEXT)", LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un attributo for all'etichetta che corrisponda all'id di questo input.
    L'ID di questo input è: id="%(id)".", LABELS_MISSING_LABEL_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un id a questo input e aggiungere un attributo for corrispondente all'etichetta.", EMBED_VIDEO: 'Assicuratevi che tutti i video abbiano le didascalie chiuse. Fornire didascalie per tutti i contenuti audio e video è un requisito obbligatorio di livello A. Le didascalie aiutano le persone non udenti o con problemi di udito.', EMBED_AUDIO: 'Assicuratevi di fornire una trascrizione per tutti i podcast. Fornire trascrizioni per i contenuti audio è un requisito obbligatorio di Livello A. Le trascrizioni sono di supporto alle persone sorde o con problemi di udito, ma possono essere utili a tutti. Considerate la possibilità di inserire la trascrizione in basso o in un pannello a fisarmonica.', EMBED_DATA_VIZ: 'I widget di visualizzazione dei dati come questo sono spesso problematici per le persone che utilizzano una tastiera o uno screen reader per navigare e possono presentare notevoli difficoltà per le persone ipovedenti o daltoniche. Si consiglia di fornire le stesse informazioni in un formato alternativo (testo o tabella) sotto il widget.
    Per saperne di più su immagini complesse.', - EMBED_MISSING_TITLE: "Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull'elemento iframe. Per saperne di più su iFrames.", + EMBED_MISSING_TITLE: 'Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull\'elemento iframe. Per saperne di più su iFrames.', EMBED_GENERAL_WARNING: 'Impossibile controllare il contenuto incorporato. Assicuratevi che le immagini abbiano un testo alt, che i video abbiano didascalie, che il testo abbia un contrasto sufficiente e che i componenti interattivi siano accessibili alla tastiera.', EMBED_UNFOCUSABLE: 'Gli <iframe> con elementi non focalizzabili non devono avere tabindex="-1". Il contenuto incorporato non sarà accessibile tramite tastiera.', - QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
    Questo link punta a:
    %(el)', + QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
    Questo link punta a:
    %(LINK)', QA_IN_PAGE_LINK: 'Link interno rotto. Il target del link non corrisponde a nessun elemento di questa pagina.', QA_BAD_ITALICS: 'I tag grassetto e corsivo hanno un significato semantico e non devono essere usati per evidenziare interi paragrafi. Il testo in grassetto deve essere usato per dare un forte enfasi su una parola o una frase. Il corsivo deve essere usato per evidenziare nomi propri (ad esempio, titoli di libri e articoli), parole straniere e citazioni. Le citazioni lunghe devono essere formattate come blockquote.', - QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
    • Se si tratta di un documento, considerare la conversione in una pagina web.
    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", + QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
    • Se si tratta di un documento, considerare la conversione in una pagina web.
    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", QA_DOCUMENT: "Impossibile verificare l'accessibilità del documento. I documenti collegati sono considerati contenuti web e devono essere resi accessibili. Esaminare manualmente il documento. ", QA_PAGE_LANGUAGE: 'Lingua della pagina non dichiarata! Si prega di dichiarare la lingua nel tag HTML.', QA_PAGE_TITLE: 'Titolo della pagina mancante! Si prega di fornire un titolo della pagina.', - QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(sanitizedText)
    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", - QA_FAKE_HEADING: 'È un titolo? %(boldtext)
    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', - QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", + QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(TEXT)
    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", + QA_FAKE_HEADING: 'È un titolo? %(TEXT)
    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', + QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", QA_UPPERCASE_WARNING: "Trovato tutto maiuscolo. Alcuni screen reader possono interpretare il testo tutto maiuscolo come un acronimo e leggono ogni lettera singolarmente. Inoltre, per alcune persone il testo tutto maiuscolo è più difficile da leggere e può dare l'impressione di urlare.", QA_DUPLICATE_ID: 'Trovato ID duplicato. Gli errori di ID duplicato sono noti per causare problemi alle tecnologie assistive quando cercano di interagire con i contenuti.
    Si prega di rimuovere o modificare il seguente ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Il testo sottolineato può essere confuso con i link. Considerate di usare uno stile diverso, come <strong>forte importanza</strong> o <em>emphasis</em>.', @@ -216,9 +222,9 @@ var it = { TABLES_MISSING_HEADINGS: 'Intestazioni di tabella mancanti! Le tabelle accessibili necessitano di un markup HTML che indichi le celle di intestazione e le celle di dati e che definisca la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Le tabelle devono essere utilizzate solo per i dati tabellari.
    Per saperne di più su tabelle accessibili.', TABLES_SEMANTIC_HEADING: "Le intestazioni semantiche come Heading 2 o Heading 3 devono essere utilizzate solo per le sezioni di contenuto; non nelle tabelle HTML. Indicare le intestazioni delle tabelle utilizzando invece l'elemento <th>.
    Per saperne di più su tabelle accessibili.", TABLES_EMPTY_HEADING: "Trovato un'intestazione di tabella vuota! Le intestazioni delle tabelle non devono mai essere vuote. È importante designare le intestazioni di riga e/o di colonna per indicare la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Tenete presente che le tabelle devono essere utilizzate solo per i dati tabellari.
    Per saperne di più su tabelle accessibili.", - CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Il rapporto di contrasto è %(cratio) per il seguente testo: %(sanitizedText)', - CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Per favore, controllare: %(sanitizedText)', - CONTRAST_INPUT_ERROR: "Il testo all'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
    Rapporto di contrasto: %(cratio)", + CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Rapporto di contrasto %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Per favore, controllare: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Il testo all\'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
    Rapporto di contrasto %(RATIO)', }, }; diff --git a/dist/js/lang/it.umd.js b/dist/js/lang/it.umd.js index a977061e..a267cfc6 100644 --- a/dist/js/lang/it.umd.js +++ b/dist/js/lang/it.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Spento', ALERT_TEXT: 'Allarme', ALERT_CLOSE: 'Chiudere', - OUTLINE: 'Schema della pagina', + OUTLINE: 'Schema', + ALT: 'ALT', + IMAGES: 'Immagini', + EDIT: 'Modifica', + IMAGES_NOT_FOUND: 'Nessuna immagine trovata.', + DECORATIVE: 'Decorativo', + MISSING: 'Mancante', PAGE_ISSUES: 'Problemi di pagina', SETTINGS: 'Impostazioni', CONTRAST: 'Contrasto', @@ -157,64 +163,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Non ci sono abbastanza contenuti per calcolare il punteggio di leggibilità.', HEADING_NON_CONSECUTIVE_LEVEL: 'È stato utilizzato un livello di intestazione non consecutivo. I titoli non devono mai saltare livelli o passare da Heading %(prevLevel) a Heading %(level).', HEADING_EMPTY: 'Titolo vuoto trovato! Per risolvere il problema, eliminare questa riga o cambiare il suo formato da Intonazione %(level) a Normale o Paragrafo.', - HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
    Conteggio dei caratteri: %(headingLength)", + HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
    %(HEADING_LENGTH) Caratteri", HEADING_FIRST: "La prima intestazione di una pagina dovrebbe essere di solito un'intestazione 1 o un'intestazione 2. L'intestazione 1 dovrebbe essere l'inizio della sezione principale del contenuto ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_MISSING_ONE: "Manca l'intestazione 1. L'intestazione 1 dovrebbe essere l'inizio dell'area di contenuto principale ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_EMPTY_WITH_IMAGE: "L'intestazione non ha testo, ma contiene un'immagine. Se non si tratta di un titolo, cambiarne il formato da Testamento %(level) a Normale o Paragrafo. Altrimenti, aggiungere un testo alt all'immagine, se non è decorativo.", PANEL_HEADING_MISSING_ONE: "Manca l'intestazione 1!", PANEL_NO_HEADINGS: 'Nessun titolo trovato.', LINK_EMPTY: 'Rimuovere i link vuoti senza testo.', - LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributoid di un altro elemento nella pagina.', + LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributo id di un altro elemento nella pagina.', LINK_EMPTY_LINK_NO_LABEL: "Il link non ha un testo distinguibile che sia visibile agli screen reader e ad altre tecnologie assistive. Per risolvere il problema:
    • Aggiungi un testo conciso che descriva dove porta il link.
    • Se si tratta di un collegamento a un'icona o a un SVG, è probabile che manchi un'etichetta descrittiva.
    • Se pensi che questo link sia un errore dovuto a un bug di copia/incolla, prendi in considerazione l'idea di cancellarlo.
    ", - LINK_LABEL: 'Etichetta del link: %(sanitizedText)', - LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(error)
    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', - LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(error)
    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
    ", - LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", + LINK_LABEL: 'Etichetta del link %(TEXT)', + LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(ERROR)
    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', + LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(ERROR)
    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
    ", + LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", LINK_DOI: 'Per le pagine web o le risorse solo online, la guida di stile dell\'APA raccomanda di utilizzare link descrittivi avvolgendo l\'URL o il DOI dell\'opera intorno al suo titolo. URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive.', - NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link
    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", - FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
    Esempio: Relazione esecutiva (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(sanitizedText)', + NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link.
    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", + FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
    Esempio: Relazione esecutiva (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: "L'immagine viene utilizzata come link con testo circostante, anche se l'attributo alt dovrebbe essere contrassegnato come decorativo o nullo.", MISSING_ALT_LINK_MESSAGE: "L'immagine viene utilizzata come link ma manca il testo alt! Assicurarsi che il testo alt descriva dove porta il link.", MISSING_ALT_MESSAGE: "Manca il testo alt! Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine.", - LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(error).
    Testo alt: %(altText)", - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(altText)", - LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
    Testo alt: %(altText)", - ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(error).
    Testo alt: %(altText)", - ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(altText)', - ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante.
    Testo alternativo: %(altText)", + LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(ERROR).
    ALT %(ALT_TEXT)", + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(ALT_TEXT)", + LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
    ALT %(ALT_TEXT)", + ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(ERROR).
    ALT %(ALT_TEXT)", + ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante.
    ALT %(ALT_TEXT)", LINK_HIDDEN_FOCUSABLE: 'Il link ha aria-hidden="true" ma è comunque selezionabile dalla tastiera. Se hai l\'intenzione di nascondere un link ridondante o duplicato, aggiungi anche tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: "L'immagine all'interno del link è contrassegnata come decorativa e non c'è testo di collegamento. Aggiungere all'immagine un testo alt che descriva la destinazione del link.", LINK_IMAGE_HAS_TEXT: "L'immagine è contrassegnata come decorativa, anche se il link utilizza il testo circostante come etichetta descrittiva.", - LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
    Testo alt (%(altLength) caratteri): %(altText)", - LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
    Testo alt: %(altText)", - LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
    Testo alt: %(altText)
    Etichetta del link: %(sanitizedText)", - IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.", - IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.
    Testo alt: %(altText)", + LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
    ALT %(altLength) Caratteri %(ALT_TEXT)", + LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
    ALT %(ALT_TEXT)", + LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
    ALT %(ALT_TEXT)
    Etichetta del link %(TEXT)", + IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.", + IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
    Per saperne di più: alt contro figcaption.
    ALT %(ALT_TEXT)", IMAGE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di aggiungere il testo alt.", - IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
    Testo alt (%(altLength) caratteri): %(altText)", - IMAGE_PASS: 'Testo alt: %(altText)', + IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
    ALT %(altLength) Caratteri %(ALT_TEXT)", + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: "Il pulsante dell'immagine manca del testo alt. Aggiungere il testo alt per fornire un nome accessibile. Ad esempio: Cerca o Invio.", LABELS_INPUT_RESET_MESSAGE: 'I pulsanti di reset non dovrebbero essere utilizzati se non specificamente necessari, perché è facile che si attivino per errore.
    Tip! Scoprite perché i pulsanti Reset e Cancel pongono problemi di usabilità.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
    Etichetta input: %(sanitizedText)", + LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
    Etichetta input %(TEXT)", LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un attributo for all'etichetta che corrisponda all'id di questo input.
    L'ID di questo input è: id="%(id)".", LABELS_MISSING_LABEL_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un id a questo input e aggiungere un attributo for corrispondente all'etichetta.", EMBED_VIDEO: 'Assicuratevi che tutti i video abbiano le didascalie chiuse. Fornire didascalie per tutti i contenuti audio e video è un requisito obbligatorio di livello A. Le didascalie aiutano le persone non udenti o con problemi di udito.', EMBED_AUDIO: 'Assicuratevi di fornire una trascrizione per tutti i podcast. Fornire trascrizioni per i contenuti audio è un requisito obbligatorio di Livello A. Le trascrizioni sono di supporto alle persone sorde o con problemi di udito, ma possono essere utili a tutti. Considerate la possibilità di inserire la trascrizione in basso o in un pannello a fisarmonica.', EMBED_DATA_VIZ: 'I widget di visualizzazione dei dati come questo sono spesso problematici per le persone che utilizzano una tastiera o uno screen reader per navigare e possono presentare notevoli difficoltà per le persone ipovedenti o daltoniche. Si consiglia di fornire le stesse informazioni in un formato alternativo (testo o tabella) sotto il widget.
    Per saperne di più su immagini complesse.', - EMBED_MISSING_TITLE: "Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull'elemento iframe. Per saperne di più su iFrames.", + EMBED_MISSING_TITLE: 'Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull\'elemento iframe. Per saperne di più su iFrames.', EMBED_GENERAL_WARNING: 'Impossibile controllare il contenuto incorporato. Assicuratevi che le immagini abbiano un testo alt, che i video abbiano didascalie, che il testo abbia un contrasto sufficiente e che i componenti interattivi siano accessibili alla tastiera.', EMBED_UNFOCUSABLE: 'Gli <iframe> con elementi non focalizzabili non devono avere tabindex="-1". Il contenuto incorporato non sarà accessibile tramite tastiera.', - QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
    Questo link punta a:
    %(el)', + QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
    Questo link punta a:
    %(LINK)', QA_IN_PAGE_LINK: 'Link interno rotto. Il target del link non corrisponde a nessun elemento di questa pagina.', QA_BAD_ITALICS: 'I tag grassetto e corsivo hanno un significato semantico e non devono essere usati per evidenziare interi paragrafi. Il testo in grassetto deve essere usato per dare un forte enfasi su una parola o una frase. Il corsivo deve essere usato per evidenziare nomi propri (ad esempio, titoli di libri e articoli), parole straniere e citazioni. Le citazioni lunghe devono essere formattate come blockquote.', - QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
    • Se si tratta di un documento, considerare la conversione in una pagina web.
    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", + QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
    • Se si tratta di un documento, considerare la conversione in una pagina web.
    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", QA_DOCUMENT: "Impossibile verificare l'accessibilità del documento. I documenti collegati sono considerati contenuti web e devono essere resi accessibili. Esaminare manualmente il documento. ", QA_PAGE_LANGUAGE: 'Lingua della pagina non dichiarata! Si prega di dichiarare la lingua nel tag HTML.', QA_PAGE_TITLE: 'Titolo della pagina mancante! Si prega di fornire un titolo della pagina.', - QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(sanitizedText)
    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", - QA_FAKE_HEADING: 'È un titolo? %(boldtext)
    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', - QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", + QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(TEXT)
    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", + QA_FAKE_HEADING: 'È un titolo? %(TEXT)
    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', + QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", QA_UPPERCASE_WARNING: "Trovato tutto maiuscolo. Alcuni screen reader possono interpretare il testo tutto maiuscolo come un acronimo e leggono ogni lettera singolarmente. Inoltre, per alcune persone il testo tutto maiuscolo è più difficile da leggere e può dare l'impressione di urlare.", QA_DUPLICATE_ID: 'Trovato ID duplicato. Gli errori di ID duplicato sono noti per causare problemi alle tecnologie assistive quando cercano di interagire con i contenuti.
    Si prega di rimuovere o modificare il seguente ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Il testo sottolineato può essere confuso con i link. Considerate di usare uno stile diverso, come <strong>forte importanza</strong> o <em>emphasis</em>.', @@ -222,9 +228,9 @@ TABLES_MISSING_HEADINGS: 'Intestazioni di tabella mancanti! Le tabelle accessibili necessitano di un markup HTML che indichi le celle di intestazione e le celle di dati e che definisca la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Le tabelle devono essere utilizzate solo per i dati tabellari.
    Per saperne di più su tabelle accessibili.', TABLES_SEMANTIC_HEADING: "Le intestazioni semantiche come Heading 2 o Heading 3 devono essere utilizzate solo per le sezioni di contenuto; non nelle tabelle HTML. Indicare le intestazioni delle tabelle utilizzando invece l'elemento <th>.
    Per saperne di più su tabelle accessibili.", TABLES_EMPTY_HEADING: "Trovato un'intestazione di tabella vuota! Le intestazioni delle tabelle non devono mai essere vuote. È importante designare le intestazioni di riga e/o di colonna per indicare la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Tenete presente che le tabelle devono essere utilizzate solo per i dati tabellari.
    Per saperne di più su tabelle accessibili.", - CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Il rapporto di contrasto è %(cratio) per il seguente testo: %(sanitizedText)', - CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Per favore, controllare: %(sanitizedText)', - CONTRAST_INPUT_ERROR: "Il testo all'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
    Rapporto di contrasto: %(cratio)", + CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Rapporto di contrasto %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
    Per favore, controllare: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Il testo all\'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
    Rapporto di contrasto %(RATIO)', }, }; diff --git a/dist/js/lang/ja.js b/dist/js/lang/ja.js index 6395feb7..808e7454 100644 --- a/dist/js/lang/ja.js +++ b/dist/js/lang/ja.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var ja = { ALERT_TEXT: 'アラート', ALERT_CLOSE: '閉じる', OUTLINE: 'ページ概要', + ALT: 'ALT', + IMAGES: '画像', + EDIT: '編集', + IMAGES_NOT_FOUND: '画像が見つかりません。', + DECORATIVE: '装飾用', + MISSING: '不足', PAGE_ISSUES: 'ページの問題', SETTINGS: '設定方法', CONTRAST: 'コントラスト', @@ -156,76 +162,94 @@ var ja = { LANG_GOOD: '良い', READABILITY_NO_P_OR_LI_MESSAGE: '読みやすさのスコアを計算することができません。段落 <p> またはリストコンテンツ <li> が見つかりませんでした。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '読みやすさのスコアを計算するためのコンテンツが十分でない。', - HEADING_NON_CONSECUTIVE_LEVEL: '連続しない見出しレベルが使用されています。見出しはレベルを飛ばしたり、見出し %(prevLevel) から 見出し %(level) になってはなりません。', - HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、見出し %(level) から Normal または 段落 にフォーマットを変更してください。', - HEADING_LONG: '見出しが長い!見出しは、内容を整理し、構造を伝えるために使用されるべきです。また、簡潔で情報量が多く、ユニークであるべきです。見出しは160文字以内(1文以内)に収めてください。
    文字数です:%(headingLength)。', - HEADING_FIRST: 'ページの最初の見出しは、通常、見出し1または見出し2にします。見出し1はメインコンテンツセクションの始まりであるべきで、ページの全体的な目的を説明する主要な見出しです。見出しの構造についてもっと詳しく知ることができます。', - HEADING_MISSING_ONE: '見出し1がない。 見出し1はメインコンテンツエリアの始まりであるべきで、ページの全体的な目的を説明する主要な見出しである。見出しの構造について詳しくはこちら。', - HEADING_EMPTY_WITH_IMAGE: '見出しにはテキストがなく、画像が含まれています。これが見出しでない場合は、そのフォーマットを見出し %(level)から通常またはパラグラフに変更してください。それ以外の場合、画像に装飾がない場合は、altテキストを追加してください。', - PANEL_HEADING_MISSING_ONE: '見出しの欠落 1!', - PANEL_NO_HEADINGS: '見出しはありません。', - LINK_EMPTY: 'テキストのない空のリンクを削除する。', - LINK_EMPTY_LABELLEDBY: 'リンクには、ページ内の別の要素のid属性の値と一致しないか、空のaria-labelledby値があります。', - LINK_EMPTY_LINK_NO_LABEL: 'リンクに、スクリーンリーダーやその他の支援技術で表示可能な識別可能なテキストがない。修正するには
    • リンクの行き先を説明する簡潔なテキストを追加する。
    • アイコン リンクまたは SVGである場合、説明用のラベルがない可能性があります。
    • このリンクがコピー/ペーストのバグによるエラーと考えられる場合は、削除を検討してください。
    ', - LINK_LABEL: 'リンクラベル: %(sanitizedText)', - LINK_STOPWORD: 'リンクテキストは、文脈から見て十分に説明的でない場合があります:%(error)
    ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものでなければなりません。quot;ここをクリック"やquot;もっと知りたい"のような一般的な単語は避けてください;', - LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(error)
    • "ここをクリック"では、多くの人がマウスを使用しないか、モバイル機器でこのウェブサイトを見ている可能性があるのに、マウス操作に焦点が当たっています。タスクに関連する別の動詞を使用することを検討してください。
    • 支援技術に隠されていない限り、コールトゥアクションとしてHTML記号を使用しないようにしてください。', - LINK_URL: 'リンクテキストとして使用される長くて分かりにくいURLは、支援技術で聞き取るのが難しいかもしれません。ほとんどの場合、URL の代わりに人間が読めるテキストを使用する方がよいでしょう。
      ヒント! リンクテキストは、常に明確で、ユニークで、意味があり、文脈から理解できるものでなければなりません。', - LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドでは、作品のURLやDOIをタイトルに巻きつけて、説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長くて分かりにくいURLは、支援技術でアクセスしたときに理解するのが難しいかもしれません。', - NEW_TAB_WARNING: 'リンクは警告なしに新しいタブまたはウィンドウで開きます。そうすることで、特に視覚的なコンテンツを知覚することが困難な人々にとって、混乱させることができます。第二に、誰かの経験をコントロールしたり、彼らのために決定を下すことは、必ずしも良い習慣とは言えません。リンクテキスト内でリンクが新しいウィンドウで開くことを示す
      ヒント!ベストプラクティスを学びましょう:リンクを新しいブラウザのウィンドウやタブで開く。', - FILE_TYPE_WARNING: 'リンク先がPDFやダウンロード可能なファイル(例:MP3、Zip、Word Doc)であることを警告せずに示す。リンクテキスト内にファイルの種類を表示する。
      例: エグゼクティブレポート (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'リンクは別のリンクと同じテキストを持っていますが、別のページを指しています。
      他のリンクと区別するために、次のリンクをより説明的にすることを検討してください:%(sanitizedText)。', - MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像は装飾としてマークされる必要がありますが、画像は周囲のテキストへのリンクとして使用されています。', - MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストが不足しています!altテキストにリンク先が記載されていることを確認してください。', - MISSING_ALT_MESSAGE: 'altテキストがない!画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ず画像を説明すること。', - LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内のファイル拡張子が見つかりました。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するものであることを確認してください。削除してください:%(error).
      alt属性: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内のaltテキストが非記述またはプレースホルダーであることが判明しました。altテキストが、画像の文字通りの説明ではなく、リンク先を記述していることを確認してください。以下のaltテキストを置き換えてください:%(altText)とします。', - LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するようにします。
      altテキスト: %(altText)', - ALT_HAS_FILE_EXTENSION: '見つかったaltテキスト内のファイル拡張子。画像がストーリーや雰囲気、重要な情報を伝えている場合は、必ず画像を説明してください。削除してください:%(error).
      alt属性: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '非デスクリプトまたはプレースホルダーのaltテキストが見つかりました。以下のaltテキストを、より意味のあるものに置き換えてください:%(altText)となります。', - ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。
      オルトテキスト: %(altText)', - LINK_HIDDEN_FOCUSABLE: 'リンクにはaria-hidden="true"がありますが、キーボードでまだフォーカス可能です。冗長なまたは重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', - LINK_IMAGE_NO_ALT_TEXT: 'リンク内の画像は装飾と表示され、リンクテキストがありません。リンク先を示すaltテキストを画像に追加してください。', - LINK_IMAGE_HAS_TEXT: 'リンク先では周囲のテキストを説明用のラベルとして使用していますが、画像は装飾としてマークされています。', - LINK_IMAGE_LONG_ALT: 'リンク先画像のaltテキスト記述が長すぎるです。リンク先の画像のaltテキストは、画像の文字通りの説明ではなく、リンク先がどこなのかを説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
      altテキスト (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: '画像リンクにaltテキストが含まれています。altテキストは、リンク先について説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
      altテキスト: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクには、altテキストと周囲のリンクテキストの両方が含まれています。この画像が装飾的で、別のページへの機能的なリンクとして使用されている場合、画像を装飾または無効としてマークすることを検討してください -周囲のリンクテキストで十分なはずです。
      altテキスト: %(altText)
      リンクラベル: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: '画像はdecorativeとマークされており、支援技術によって無視されます。
      キャプションが提供されましたが、ほとんどの場合、画像にはaltテキストもあるべきです。
      • altテキストは、画像に何が写っているかを簡潔に説明する必要があります。
      • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させる必要があります。
      もっと学ぶ:alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'altテキストとcaptionテキストの両方に全く同じ単語を使用しないでください。スクリーン リーダは情報を 2 回通知します。
      • alt テキストは、画像に何が写っているかを簡潔に説明する必要があります。
      • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させます。
      詳細はこちら:alt versus figcaption.
      オルトテキスト: %(altText)', - IMAGE_DECORATIVE: '画像はdecorativeとマークされ、支援技術によって無視されることになります。画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ずaltテキストを追加してください。', - IMAGE_ALT_TOO_LONG: 'Altテキストの説明が長すぎる。Altテキストは、ツイートのように簡潔で、かつ意味のあるものにしましょう(100文字前後)。これが複雑な画像やグラフであれば、画像の長い説明を下のテキストに入れたり、アコーディオン・コンポーネントにすることを検討してください。
      オルトテキスト(%(altLength) 文字): %(altText)', - IMAGE_PASS: 'オルトテキスト: %(altText)', - LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセシブルな名称を提供するために、altテキストを追加してください。例えば、以下のようなものです:検索または送信。', - LABELS_INPUT_RESET_MESSAGE: 'リセット ボタンは、間違って起動しやすいので、特に必要な場合を除き、使用すべきではありません
      ヒント! リセットボタンとキャンセルボタンがユーザビリティの問題を引き起こす理由を学びましょう。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力にはアクセシブルな名前がついていますが、目に見えるラベルもつけてください。
      入力ラベル: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力に関連するラベルはありません。この入力のidに一致するラベルにfor属性を追加してください。
      この入力のIDは次のとおりです:id="%(id)" です。', - LABELS_MISSING_LABEL_MESSAGE: 'この入力に関連するラベルはありません。この入力に id を追加し、ラベルに一致する for 属性を追加してください。', - EMBED_VIDEO: 'すべてのビデオにクローズドキャプションがあることを確認してください。すべてのオーディオおよびビデオコンテンツにキャプションを提供することは、レベルAの必須要件です。キャプションは、聴覚障害者をサポートします。', - EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供するようにしてください。オーディオコンテンツにトランスクリプトを提供することは、レベルAの必須要件です。トランスクリプトは、ろう者や難聴者をサポートするものですが、誰にとっても有益なものです。トランスクリプトを下またはアコーディオンパネルに配置することを検討してください。', - EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使って操作する人にとって問題があることが多く、弱視や色覚異常の人にとっては大きな障害となることがあります。ウィジェットの下に、同じ情報を別の形式(テキストまたは表)で提供することが推奨されます。複雑な画像についてもっと詳しく知る。', - EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセシブルネームが必要です。iframe 要素にユニークな title または aria-label 属性を指定してください。iFrame.について詳しくはこちら。', - EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認することができません。画像にはaltテキスト、動画にはキャプション、テキストには十分なコントラスト、インタラクティブなコンポーネントにはキーボードアクセス可能であることを確認してください。', - EMBED_UNFOCUSABLE: 'フォーカスできない要素を含む<iframe>にはtabindex="-1"を指定しないでください。埋め込まれたコンテンツはキーボードではアクセスできません。', - QA_BAD_LINK: '不正なリンクが見つかりました。リンクは開発環境を指しているようです。
      このリンクは、次の場所を指しています:
      %(el)。', - QA_IN_PAGE_LINK: '同じページ内リンクが壊れています。リンクの対象は、このページ上のいかなる要素とも一致しません。', - QA_BAD_ITALICS: '太字と斜体のタグは意味上の意味があり、段落全体を強調するために使用すべきではありません。太字は、単語やフレーズを強く強調するために使用されるべきです。イタリックは、固有名詞(例:書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用文は、ブロッククオートとしてフォーマットされるべきである。', - QA_PDF: 'PDFのアクセシビリティをチェックできない。PDFはウェブコンテンツとみなされ、同様にアクセシビリティを確保する必要があります。PDFには、スクリーンリーダーを使用する人(構造タグがない、フォームフィールドラベルがない)や弱視の人(拡大してもテキストがリフローしない)にとって問題があることがよくあります。
      • これがフォームの場合は、アクセシブルな HTML フォームを代替として使用することを検討してください。
      • これが文書の場合は、Web ページへの変換を検討してください。
      その他、PDF を Acrobat DC. でアクセス可能か確認してください。', - QA_DOCUMENT: 'ドキュメントのアクセシビリティを確認できません。リンクされたドキュメントはウェブコンテンツとみなされ、同様にアクセシブルにする必要があります。このドキュメントを手動で確認してください。。', - QA_PAGE_LANGUAGE: 'ページの言語が宣言されていません!HTMLタグで言語を宣言してください。', - QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを記入してください。', - QA_BLOCKQUOTE_MESSAGE: 'これは見出しなのでしょうか?%(sanitizedText)
      ブロッククォートは引用にのみ使用する必要があります。もしこれが見出しとして意図されているのであれば、このブロッククオートを意味的な見出し(例:見出し2または見出し3)に変更してください。', - QA_FAKE_HEADING: 'これは見出しなのでしょうか?%(boldtext)
      太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使っている人は、それが重要であることを見分けることも、そのコンテンツに飛ぶこともできません。太字や大きなテキストは、セマンティックな見出し(見出し2~見出し6)を決して置き換えるべきではありません。', - QA_SHOULD_BE_LIST: 'リストを作成しようとしているのでしょうか?可能なリスト項目が見つかりました:%(firstPrefix)
      セマンティックリストを使用するには、代わりに箇条書きまたは数字の書式設定ボタンを使用することを確認してください。セマンティックリストを使用すると、支援技術は、項目の総数やリスト内の各項目の相対位置などの情報を伝達することができます。セマンティックリストについてもっと詳しく知ることができます。', - QA_UPPERCASE_WARNING: '全角文字が見つかりました。スクリーンリーダーによっては、全角のテキストを頭字語と解釈し、各文字を個別に読み上げる場合があります。また、全角文字が読みにくく、叫んでいるように見える方もいらっしゃいます。', - QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDのエラーは、支援技術がコンテンツと相互作用しようとするときに問題を引き起こすことが知られています。
      以下のIDを削除または変更してください:%(id)です。', - QA_TEXT_UNDERLINE_WARNING: '下線付きのテキストは、リンクと混同されることがあります。<strong>strong importance</strong> または <em></em> など別のスタイルにすることを考えてください。', - QA_SUBSCRIPT_WARNING: '下付き文字と上付き文字の書式オプションは、組版規則や標準のためにテキストの位置を変更するためにのみ使用されるべきです。プレゼンテーションや見栄えのためにのみ使用するのはNGです。文章全体をフォーマットすることは、読みやすさの問題を提起します。適切な使用例としては、指数の表示、4番目の代わりに4thのような序数、化学式(例:H2O)などが挙げられます。', - TABLES_MISSING_HEADINGS: 'テーブルのヘッダーがない!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要であり、それらの関係を定義しています。この情報は、支援技術を使用する人にコンテキストを提供します。テーブルは、表形式のデータのみに使用する必要があります。アクセシブルテーブルについてもっと詳しく知ることができます。', - TABLES_SEMANTIC_HEADING: '見出し2や見出し3のような意味上の見出しは、コンテンツのセクションにのみ使用されるべきで、HTMLテーブルでは使用できません。テーブルの見出しは、<th>要素で表すようにしましょう。アクセシブルテーブルについて詳しくはこちら。', - TABLES_EMPTY_HEADING: '空のテーブルヘッダが見つかりました!テーブルヘッダは決して空であってはなりません。行や列のヘッダーを指定して、それらの関係を伝えることが重要です。この情報は、支援技術を使用する人々にコンテキストを提供します。テーブルは表形式のデータにのみ使用されるべきであるということを心に留めておいてください。アクセシブルテーブルについてもっと詳しく知る。', - CONTRAST_ERROR: 'このテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
      以下のテキストでは、コントラスト比は %(cratio) です:%(sanitizedText)となります。', - CONTRAST_WARNING: 'このテキストのコントラストは不明なので、手動で確認する必要があります。テキストと背景が強いコントラストを持つ色であることを確認する。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
      レビューしてください: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'この入力内のテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
      コントラスト比:%(cratio)となります。', + + // Headings + HEADING_NON_CONSECUTIVE_LEVEL: '非連続の見出しレベルが使用されました。見出しはレベルをスキップしたり、見出し%(prevLevel)から見出し%(level)に移行することはありません。', + HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、その形式を見出し%(level)から通常または段落に変更してください。', + HEADING_LONG: '見出しが長すぎます!見出しはコンテンツを整理し、構造を伝えるために使用されます。簡潔で情報量があり、他と区別される必要があります。見出しは160文字未満に保つようにしてください(1文を超えないでください)。
      %(HEADING_LENGTH) 文字', + HEADING_FIRST: 'ページの最初の見出しは通常、見出し1または見出し2にする必要があります。見出し1はメインコンテンツセクションの開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_MISSING_ONE: '見出し1がありません。見出し1はメインコンテンツ領域の開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_EMPTY_WITH_IMAGE: '見出しにテキストがありませんが、画像が含まれています。これが見出しでない場合は、その形式を見出し%(level)から通常または段落に変更してください。それ以外の場合は、画像に装飾的でない alt テキストを追加してください。', + PANEL_HEADING_MISSING_ONE: '見出し1がありません!', + PANEL_NO_HEADINGS: '見出しが見つかりません。', + + // Links + LINK_EMPTY: 'テキストのない空のリンクを削除してください。', + LINK_EMPTY_LABELLEDBY: 'リンクには、空のaria-labelledby値またはページの他の要素のid値と一致しないaria-labelledby値があります。', + LINK_EMPTY_LINK_NO_LABEL: 'スクリーンリーダーやその他の支援技術で見える識別可能なテキストを持たないリンクです。修正するには:
      • リンク先を説明する簡潔なテキストを追加してください。
      • アイコンリンクやSVGの場合、おそらく説明的なラベルが不足しています。
      • このリンクがコピー/貼り付けのバグによるエラーであると考える場合は、削除を検討してください。
      ', + LINK_LABEL: 'ラベル %(TEXT)', + LINK_STOPWORD: 'コンテキストがない状況では、リンクテキストが十分に説明的ではないかもしれません:%(ERROR)
      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。"ここをクリック"や"詳細を見る"などの一般的な言葉は避けてください。', + LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(ERROR)
      • "ここをクリック"は多くの人がマウスを使用しないか、このウェブサイトをモバイルデバイスで表示している可能性があるため、マウスの操作に焦点を当てています。タスクに関連する別の動詞を使用することを検討してください。
      • 補助技術には非表示にされていない限り、HTMLシンボルをコールツーアクションとして使用しないでください。
      ', + LINK_URL: 'リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。ほとんどの場合、URLの代わりに読みやすいテキストを使用する方が良いでしょう。短いURL(サイトのホームページなど)は問題ありません。
      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。コンテキストがない状況でも理解できるようにしてください。', + LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドは、作品のURLまたはDOIをタイトルにラップすることで説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。', + + // Links advanced + NEW_TAB_WARNING: 'リンクが警告なしに新しいタブまたはウィンドウで開きます。これは、視覚的コンテンツを認識するのが難しい人々にとって特に混乱を招く可能性があります。さらに、誰かの体験を制御したり、代わりに決定したりするのは常に良い慣行ではありません。リンクテキスト内でリンクが新しいウィンドウで開くことを示してください。
      ヒント! ベストプラクティスを学ぶ:新しいブラウザウィンドウとタブでのリンクの開き方。', + FILE_TYPE_WARNING: 'リンクが警告なしにPDFやダウンロード可能なファイル(MP3、Zip、Word Docなど)を指しています。リンクテキスト内にファイルの種類を示してください。ファイルが大きい場合は、ファイルサイズを含めることを検討してください。
      例: 実行レポート(PDF、3MB)', + LINK_IDENTICAL_NAME: 'リンクが他のリンクと同じテキストを持っていますが、異なるページを指しています。同じテキストを持つ複数のリンクは、スクリーンリーダーを使用する人々に混乱を招く可能性があります。
      他のリンクと区別するために、次のリンクをより具体的にすることを検討してください:%(TEXT)', + + // Images + MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像が周囲のテキストと一緒にリンクとして使用されていますが、alt属性は装飾用としてマークされる必要があります。', + MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストがありません!リンクがどこに向かうかを説明するaltテキストを確認してください。', + MISSING_ALT_MESSAGE: 'altテキストがありません!画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。', + LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。altテキストが画像のリンク先を説明しているかどうか、画像の文字通りの説明ではないことを確認してください。ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内の記述のないまたはプレースホルダーのaltテキストが見つかりました。altテキストが画像のリンク先を説明していることを確認してください。%(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。altテキストが画像のリンク先を説明していることを確認してください。
      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '記述のないまたはプレースホルダーのaltテキストが見つかりました。次のaltテキストをより意味のあるものに置き換えてください:%(ALT_TEXT)', + ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。
      ALT %(ALT_TEXT)', + LINK_HIDDEN_FOCUSABLE: 'aria-hidden="true"を持つリンクですが、キーボードでフォーカスが可能です。冗長または重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', + LINK_IMAGE_NO_ALT_TEXT: '画像内のリンクが装飾用としてマークされており、リンクテキストがありません。リンクの目的を説明するaltテキストを画像に追加してください。', + LINK_IMAGE_HAS_TEXT: '画像が装飾用としてマークされていますが、リンクが周囲のテキストを説明するラベルとして使用されています。', + LINK_IMAGE_LONG_ALT: 'リンクされた画像のaltテキストの説明が長すぎます。リンクされた画像のaltテキストは、画像の文字通りの説明ではなく、リンクの目的を説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
      ALT %(altLength) 文字 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '画像リンクにはaltテキストが含まれています。altテキストがリンク先を説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクにはaltテキストと周囲のリンクテキストの両方が含まれています。 この画像が装飾用であり、他のページへの機能的なリンクとして使用されている場合は、画像を装飾用としてマークすることを検討してください。周囲のリンクテキストで十分です。
      ALT %(ALT_TEXT)
      ラベル %(TEXT)', + IMAGE_FIGURE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。
      キャプションが提供されていますが、ほとんどの場合、画像にはaltテキストも必要です。
      • altテキストは画像の内容を簡潔に説明する必要があります。
      • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
      詳細はこちら:altとfigcaptionの比較。', + IMAGE_FIGURE_DUPLICATE_ALT: 'altとキャプションテキストにはまったく同じ単語を使用しないでください。スクリーンリーダーは情報を二重に発表します。
      • altテキストは画像の内容を簡潔に説明する必要があります。
      • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
      詳細はこちら:altとfigcaptionの比較
      ALT %(ALT_TEXT)', + IMAGE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。画像が物語やムード、重要な情報を伝えている場合は、altテキストを追加してください。', + IMAGE_ALT_TOO_LONG: 'altテキストの説明が長すぎます。altテキストは簡潔でありながら意味のあるものである必要があります(ツイートのように、約100文字)。これが複雑な画像やグラフの場合は、画像の長い説明を以下のテキストまたは折りたたみコンポーネントに入れることを検討してください。
      ALT %(altLength) 文字 %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', + + // Labels + LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセス可能な名前を提供するためにaltテキストを追加してください。例:検索または送信。', + LABELS_INPUT_RESET_MESSAGE: 'リセットボタンは、特に必要な場合を除いて使用しないでください。間違って簡単にアクティブ化される可能性があります。
      ヒント! リセットおよびキャンセルボタンが使用性の問題を引き起こす理由を学んでください。', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力フィールドにはアクセス可能な名前がありますが、見えるラベルもあることを確認してください。
      入力ラベル %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドのラベルに一致するfor属性を追加してください。
      この入力フィールドのIDは:id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドにidを追加し、ラベルに一致するfor属性を追加してください。', + + // Embedded content + EMBED_VIDEO: 'すべての動画に字幕を表示してください。 音声および動画コンテンツのすべてに字幕を提供することは、必須のレベルAの要件です。字幕は、聴覚障害者や難聴者をサポートします。', + EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供してください。 音声コンテンツのすべてにトランスクリプトを提供することは、必須のレベルAの要件です。トランスクリプトは、聴覚障害者や難聴者をサポートしますが、誰にでも利益をもたらすことがあります。トランスクリプトを下部に配置するか、アコーディオンパネル内に配置することを検討してください。', + EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使用してナビゲートする人々や、視力が低い人々や色覚異常の人々にとって問題が発生することがよくあります。ウィジェットの下に代替(テキストまたは表)形式で同じ情報を提供することが推奨されています。
      複雑な画像について詳しく学びます。', + EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセス可能な名前が必要です。 iframe要素にユニークなtitleまたはaria-label属性を提供してください。iFramesについて詳しく学びます。', + EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認できません。画像にはaltテキスト、動画には字幕、テキストには十分なコントラスト、対話型コンポーネントにはキーボードアクセス可能性があることを確認してください。', + EMBED_UNFOCUSABLE: '<iframe>にフォーカス可能な要素が含まれている場合、tabindex="-1"を持つべきではありません。埋め込みコンテンツはキーボードでアクセスできません。', + + // QA + QA_BAD_LINK: '悪いリンクが見つかりました。リンクは開発環境を指しているようです。
      このリンクの先は:
      %(LINK)', + QA_BAD_ITALICS: '太字および斜体タグには意味があり、段落全体を強調表示するために使用してはいけません。強調するためには、太字が使用されるべきです。斜体は固有名詞(つまり、書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用は引用ブロックとしてフォーマットする必要があります。', + QA_PDF: 'PDFのアクセシビリティをチェックできません。PDFはWebコンテンツと見なされ、アクセシブルにする必要があります。PDFには、スクリーンリーダーを使用する人や視力が低い人向けの問題がよく含まれます(構造タグの欠落やフォームフィールドのラベルの欠落など)。
      • これがフォームである場合は、代替としてアクセシブルなHTMLフォームを使用してください。
      • これが文書である場合は、Webページに変換してください。
      それ以外の場合は、Acrobat DCでのPDFのアクセシビリティを確認してください。', + QA_DOCUMENT: '文書のアクセシビリティをチェックできません。リンクされた文書はWebコンテンツと見なされ、アクセシブルにする必要があります。この文書を手動で確認してください。', + QA_PAGE_LANGUAGE: 'ページ言語が宣言されていません!HTMLタグで言語を宣言してください。', + QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを入力してください。', + QA_BLOCKQUOTE_MESSAGE: 'これは見出しですか?%(TEXT)
      ブロック引用は引用のためにのみ使用する必要があります。これが見出しである場合は、このブロック引用をセマンティックな見出し(例:見出し2または見出し3)に変更してください。', + QA_FAKE_HEADING: 'これは見出しですか?%(TEXT)
      太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使用している人はそれが重要であるかどうかを判断したり、その内容にジャンプしたりすることができません。太字や大きなテキストはセマンティックな見出し(見出し2から見出し6)を置き換えるべきではありません。', + QA_SHOULD_BE_LIST: 'リストを作成しようとしていますか?可能なリスト項目が見つかりました:%(firstPrefix)
      ブルレットまたは番号の書式設定ボタンを使用してセマンティックなリストを使用してください。セマンティックなリストを使用すると、支援技術が合計アイテム数やリスト内の各アイテムの相対位置などの情報を伝えることができます。セマンティックリストについて詳しく学びます。', + QA_UPPERCASE_WARNING: 'すべて大文字が見つかりました。一部のスクリーンリーダーはすべて大文字のテキストを略語と解釈し、各文字を個別に読み上げます。また、一部の人々はすべて大文字のテキストを読むのが難しく、それが叫んでいるように見えるかもしれません。', + QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDは、支援技術がコンテンツとの相互作用を試みる際に問題を引き起こすことが知られています。
      次のIDを削除または変更してください:%(id)', + QA_TEXT_UNDERLINE_WARNING: '下線付きテキストはリンクと混同される可能性があります。<strong>strong importance</strong><em>emphasis</em>など、異なるスタイルを使用してください。', + QA_SUBSCRIPT_WARNING: '下付き文字および上付き文字の書式設定オプションは、テキストの位置を変更するためのものであるべきです。それは単にプレゼンテーションや外観の目的でのみ使用されるべきではありません。文章全体のフォーマットは読みにくさの問題を引き起こします。適切な使用例には、指数の表示、序数(たとえば4th)、化学式(例:H2O)などが含まれます。', + QA_IN_PAGE_LINK: 'リンクが壊れた同じページのリンクです。リンクのターゲットはページ上のいずれの要素とも一致しません。', + + // Tables + TABLES_MISSING_HEADINGS: 'テーブルヘッダーがありません!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
      アクセシブルなテーブルについて詳しく学びます。', + TABLES_SEMANTIC_HEADING: '見出し2や見出し3などのセマンティックな見出しは、コンテンツのセクションにのみ使用すべきです。HTMLテーブルでは使用しないでください。代わりに<th>要素を使用してテーブルの見出しを示します。
      アクセシブルなテーブルについて詳しく学びます。', + TABLES_EMPTY_HEADING: '空のテーブルヘッダーが見つかりました!テーブルヘッダーは空にしてはいけません。行や列のヘッダーを指定して関係性を伝えることが重要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
      アクセシブルなテーブルについて詳しく学びます。', + + // Contrast + CONTRAST_ERROR: 'このテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
      コントラスト比 %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'このテキストの対比は不明であり、手動で確認する必要があります。テキストと背景が強い対比色を持つことを確認してください。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
      確認してください:%(TEXT)', + CONTRAST_INPUT_ERROR: 'この入力内のテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
      コントラスト比 %(RATIO)', }, }; diff --git a/dist/js/lang/ja.umd.js b/dist/js/lang/ja.umd.js index 820fcc88..fef7e380 100644 --- a/dist/js/lang/ja.umd.js +++ b/dist/js/lang/ja.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'アラート', ALERT_CLOSE: '閉じる', OUTLINE: 'ページ概要', + ALT: 'ALT', + IMAGES: '画像', + EDIT: '編集', + IMAGES_NOT_FOUND: '画像が見つかりません。', + DECORATIVE: '装飾用', + MISSING: '不足', PAGE_ISSUES: 'ページの問題', SETTINGS: '設定方法', CONTRAST: 'コントラスト', @@ -162,76 +168,94 @@ LANG_GOOD: '良い', READABILITY_NO_P_OR_LI_MESSAGE: '読みやすさのスコアを計算することができません。段落 <p> またはリストコンテンツ <li> が見つかりませんでした。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '読みやすさのスコアを計算するためのコンテンツが十分でない。', - HEADING_NON_CONSECUTIVE_LEVEL: '連続しない見出しレベルが使用されています。見出しはレベルを飛ばしたり、見出し %(prevLevel) から 見出し %(level) になってはなりません。', - HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、見出し %(level) から Normal または 段落 にフォーマットを変更してください。', - HEADING_LONG: '見出しが長い!見出しは、内容を整理し、構造を伝えるために使用されるべきです。また、簡潔で情報量が多く、ユニークであるべきです。見出しは160文字以内(1文以内)に収めてください。
      文字数です:%(headingLength)。', - HEADING_FIRST: 'ページの最初の見出しは、通常、見出し1または見出し2にします。見出し1はメインコンテンツセクションの始まりであるべきで、ページの全体的な目的を説明する主要な見出しです。見出しの構造についてもっと詳しく知ることができます。', - HEADING_MISSING_ONE: '見出し1がない。 見出し1はメインコンテンツエリアの始まりであるべきで、ページの全体的な目的を説明する主要な見出しである。見出しの構造について詳しくはこちら。', - HEADING_EMPTY_WITH_IMAGE: '見出しにはテキストがなく、画像が含まれています。これが見出しでない場合は、そのフォーマットを見出し %(level)から通常またはパラグラフに変更してください。それ以外の場合、画像に装飾がない場合は、altテキストを追加してください。', - PANEL_HEADING_MISSING_ONE: '見出しの欠落 1!', - PANEL_NO_HEADINGS: '見出しはありません。', - LINK_EMPTY: 'テキストのない空のリンクを削除する。', - LINK_EMPTY_LABELLEDBY: 'リンクには、ページ内の別の要素のid属性の値と一致しないか、空のaria-labelledby値があります。', - LINK_EMPTY_LINK_NO_LABEL: 'リンクに、スクリーンリーダーやその他の支援技術で表示可能な識別可能なテキストがない。修正するには
      • リンクの行き先を説明する簡潔なテキストを追加する。
      • アイコン リンクまたは SVGである場合、説明用のラベルがない可能性があります。
      • このリンクがコピー/ペーストのバグによるエラーと考えられる場合は、削除を検討してください。
      ', - LINK_LABEL: 'リンクラベル: %(sanitizedText)', - LINK_STOPWORD: 'リンクテキストは、文脈から見て十分に説明的でない場合があります:%(error)
      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものでなければなりません。quot;ここをクリック"やquot;もっと知りたい"のような一般的な単語は避けてください;', - LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(error)
      • "ここをクリック"では、多くの人がマウスを使用しないか、モバイル機器でこのウェブサイトを見ている可能性があるのに、マウス操作に焦点が当たっています。タスクに関連する別の動詞を使用することを検討してください。
      • 支援技術に隠されていない限り、コールトゥアクションとしてHTML記号を使用しないようにしてください。', - LINK_URL: 'リンクテキストとして使用される長くて分かりにくいURLは、支援技術で聞き取るのが難しいかもしれません。ほとんどの場合、URL の代わりに人間が読めるテキストを使用する方がよいでしょう。
        ヒント! リンクテキストは、常に明確で、ユニークで、意味があり、文脈から理解できるものでなければなりません。', - LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドでは、作品のURLやDOIをタイトルに巻きつけて、説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長くて分かりにくいURLは、支援技術でアクセスしたときに理解するのが難しいかもしれません。', - NEW_TAB_WARNING: 'リンクは警告なしに新しいタブまたはウィンドウで開きます。そうすることで、特に視覚的なコンテンツを知覚することが困難な人々にとって、混乱させることができます。第二に、誰かの経験をコントロールしたり、彼らのために決定を下すことは、必ずしも良い習慣とは言えません。リンクテキスト内でリンクが新しいウィンドウで開くことを示す
        ヒント!ベストプラクティスを学びましょう:リンクを新しいブラウザのウィンドウやタブで開く。', - FILE_TYPE_WARNING: 'リンク先がPDFやダウンロード可能なファイル(例:MP3、Zip、Word Doc)であることを警告せずに示す。リンクテキスト内にファイルの種類を表示する。
        例: エグゼクティブレポート (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'リンクは別のリンクと同じテキストを持っていますが、別のページを指しています。
        他のリンクと区別するために、次のリンクをより説明的にすることを検討してください:%(sanitizedText)。', - MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像は装飾としてマークされる必要がありますが、画像は周囲のテキストへのリンクとして使用されています。', - MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストが不足しています!altテキストにリンク先が記載されていることを確認してください。', - MISSING_ALT_MESSAGE: 'altテキストがない!画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ず画像を説明すること。', - LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内のファイル拡張子が見つかりました。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するものであることを確認してください。削除してください:%(error).
        alt属性: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内のaltテキストが非記述またはプレースホルダーであることが判明しました。altテキストが、画像の文字通りの説明ではなく、リンク先を記述していることを確認してください。以下のaltテキストを置き換えてください:%(altText)とします。', - LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するようにします。
        altテキスト: %(altText)', - ALT_HAS_FILE_EXTENSION: '見つかったaltテキスト内のファイル拡張子。画像がストーリーや雰囲気、重要な情報を伝えている場合は、必ず画像を説明してください。削除してください:%(error).
        alt属性: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '非デスクリプトまたはプレースホルダーのaltテキストが見つかりました。以下のaltテキストを、より意味のあるものに置き換えてください:%(altText)となります。', - ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。
        オルトテキスト: %(altText)', - LINK_HIDDEN_FOCUSABLE: 'リンクにはaria-hidden="true"がありますが、キーボードでまだフォーカス可能です。冗長なまたは重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', - LINK_IMAGE_NO_ALT_TEXT: 'リンク内の画像は装飾と表示され、リンクテキストがありません。リンク先を示すaltテキストを画像に追加してください。', - LINK_IMAGE_HAS_TEXT: 'リンク先では周囲のテキストを説明用のラベルとして使用していますが、画像は装飾としてマークされています。', - LINK_IMAGE_LONG_ALT: 'リンク先画像のaltテキスト記述が長すぎるです。リンク先の画像のaltテキストは、画像の文字通りの説明ではなく、リンク先がどこなのかを説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
        altテキスト (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: '画像リンクにaltテキストが含まれています。altテキストは、リンク先について説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
        altテキスト: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクには、altテキストと周囲のリンクテキストの両方が含まれています。この画像が装飾的で、別のページへの機能的なリンクとして使用されている場合、画像を装飾または無効としてマークすることを検討してください -周囲のリンクテキストで十分なはずです。
        altテキスト: %(altText)
        リンクラベル: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: '画像はdecorativeとマークされており、支援技術によって無視されます。
        キャプションが提供されましたが、ほとんどの場合、画像にはaltテキストもあるべきです。
        • altテキストは、画像に何が写っているかを簡潔に説明する必要があります。
        • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させる必要があります。
        もっと学ぶ:alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'altテキストとcaptionテキストの両方に全く同じ単語を使用しないでください。スクリーン リーダは情報を 2 回通知します。
        • alt テキストは、画像に何が写っているかを簡潔に説明する必要があります。
        • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させます。
        詳細はこちら:alt versus figcaption.
        オルトテキスト: %(altText)', - IMAGE_DECORATIVE: '画像はdecorativeとマークされ、支援技術によって無視されることになります。画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ずaltテキストを追加してください。', - IMAGE_ALT_TOO_LONG: 'Altテキストの説明が長すぎる。Altテキストは、ツイートのように簡潔で、かつ意味のあるものにしましょう(100文字前後)。これが複雑な画像やグラフであれば、画像の長い説明を下のテキストに入れたり、アコーディオン・コンポーネントにすることを検討してください。
        オルトテキスト(%(altLength) 文字): %(altText)', - IMAGE_PASS: 'オルトテキスト: %(altText)', - LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセシブルな名称を提供するために、altテキストを追加してください。例えば、以下のようなものです:検索または送信。', - LABELS_INPUT_RESET_MESSAGE: 'リセット ボタンは、間違って起動しやすいので、特に必要な場合を除き、使用すべきではありません
        ヒント! リセットボタンとキャンセルボタンがユーザビリティの問題を引き起こす理由を学びましょう。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力にはアクセシブルな名前がついていますが、目に見えるラベルもつけてください。
        入力ラベル: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力に関連するラベルはありません。この入力のidに一致するラベルにfor属性を追加してください。
        この入力のIDは次のとおりです:id="%(id)" です。', - LABELS_MISSING_LABEL_MESSAGE: 'この入力に関連するラベルはありません。この入力に id を追加し、ラベルに一致する for 属性を追加してください。', - EMBED_VIDEO: 'すべてのビデオにクローズドキャプションがあることを確認してください。すべてのオーディオおよびビデオコンテンツにキャプションを提供することは、レベルAの必須要件です。キャプションは、聴覚障害者をサポートします。', - EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供するようにしてください。オーディオコンテンツにトランスクリプトを提供することは、レベルAの必須要件です。トランスクリプトは、ろう者や難聴者をサポートするものですが、誰にとっても有益なものです。トランスクリプトを下またはアコーディオンパネルに配置することを検討してください。', - EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使って操作する人にとって問題があることが多く、弱視や色覚異常の人にとっては大きな障害となることがあります。ウィジェットの下に、同じ情報を別の形式(テキストまたは表)で提供することが推奨されます。複雑な画像についてもっと詳しく知る。', - EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセシブルネームが必要です。iframe 要素にユニークな title または aria-label 属性を指定してください。iFrame.について詳しくはこちら。', - EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認することができません。画像にはaltテキスト、動画にはキャプション、テキストには十分なコントラスト、インタラクティブなコンポーネントにはキーボードアクセス可能であることを確認してください。', - EMBED_UNFOCUSABLE: 'フォーカスできない要素を含む<iframe>にはtabindex="-1"を指定しないでください。埋め込まれたコンテンツはキーボードではアクセスできません。', - QA_BAD_LINK: '不正なリンクが見つかりました。リンクは開発環境を指しているようです。
        このリンクは、次の場所を指しています:
        %(el)。', - QA_IN_PAGE_LINK: '同じページ内リンクが壊れています。リンクの対象は、このページ上のいかなる要素とも一致しません。', - QA_BAD_ITALICS: '太字と斜体のタグは意味上の意味があり、段落全体を強調するために使用すべきではありません。太字は、単語やフレーズを強く強調するために使用されるべきです。イタリックは、固有名詞(例:書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用文は、ブロッククオートとしてフォーマットされるべきである。', - QA_PDF: 'PDFのアクセシビリティをチェックできない。PDFはウェブコンテンツとみなされ、同様にアクセシビリティを確保する必要があります。PDFには、スクリーンリーダーを使用する人(構造タグがない、フォームフィールドラベルがない)や弱視の人(拡大してもテキストがリフローしない)にとって問題があることがよくあります。
        • これがフォームの場合は、アクセシブルな HTML フォームを代替として使用することを検討してください。
        • これが文書の場合は、Web ページへの変換を検討してください。
        その他、PDF を Acrobat DC. でアクセス可能か確認してください。', - QA_DOCUMENT: 'ドキュメントのアクセシビリティを確認できません。リンクされたドキュメントはウェブコンテンツとみなされ、同様にアクセシブルにする必要があります。このドキュメントを手動で確認してください。。', - QA_PAGE_LANGUAGE: 'ページの言語が宣言されていません!HTMLタグで言語を宣言してください。', - QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを記入してください。', - QA_BLOCKQUOTE_MESSAGE: 'これは見出しなのでしょうか?%(sanitizedText)
        ブロッククォートは引用にのみ使用する必要があります。もしこれが見出しとして意図されているのであれば、このブロッククオートを意味的な見出し(例:見出し2または見出し3)に変更してください。', - QA_FAKE_HEADING: 'これは見出しなのでしょうか?%(boldtext)
        太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使っている人は、それが重要であることを見分けることも、そのコンテンツに飛ぶこともできません。太字や大きなテキストは、セマンティックな見出し(見出し2~見出し6)を決して置き換えるべきではありません。', - QA_SHOULD_BE_LIST: 'リストを作成しようとしているのでしょうか?可能なリスト項目が見つかりました:%(firstPrefix)
        セマンティックリストを使用するには、代わりに箇条書きまたは数字の書式設定ボタンを使用することを確認してください。セマンティックリストを使用すると、支援技術は、項目の総数やリスト内の各項目の相対位置などの情報を伝達することができます。セマンティックリストについてもっと詳しく知ることができます。', - QA_UPPERCASE_WARNING: '全角文字が見つかりました。スクリーンリーダーによっては、全角のテキストを頭字語と解釈し、各文字を個別に読み上げる場合があります。また、全角文字が読みにくく、叫んでいるように見える方もいらっしゃいます。', - QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDのエラーは、支援技術がコンテンツと相互作用しようとするときに問題を引き起こすことが知られています。
        以下のIDを削除または変更してください:%(id)です。', - QA_TEXT_UNDERLINE_WARNING: '下線付きのテキストは、リンクと混同されることがあります。<strong>strong importance</strong> または <em></em> など別のスタイルにすることを考えてください。', - QA_SUBSCRIPT_WARNING: '下付き文字と上付き文字の書式オプションは、組版規則や標準のためにテキストの位置を変更するためにのみ使用されるべきです。プレゼンテーションや見栄えのためにのみ使用するのはNGです。文章全体をフォーマットすることは、読みやすさの問題を提起します。適切な使用例としては、指数の表示、4番目の代わりに4thのような序数、化学式(例:H2O)などが挙げられます。', - TABLES_MISSING_HEADINGS: 'テーブルのヘッダーがない!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要であり、それらの関係を定義しています。この情報は、支援技術を使用する人にコンテキストを提供します。テーブルは、表形式のデータのみに使用する必要があります。アクセシブルテーブルについてもっと詳しく知ることができます。', - TABLES_SEMANTIC_HEADING: '見出し2や見出し3のような意味上の見出しは、コンテンツのセクションにのみ使用されるべきで、HTMLテーブルでは使用できません。テーブルの見出しは、<th>要素で表すようにしましょう。アクセシブルテーブルについて詳しくはこちら。', - TABLES_EMPTY_HEADING: '空のテーブルヘッダが見つかりました!テーブルヘッダは決して空であってはなりません。行や列のヘッダーを指定して、それらの関係を伝えることが重要です。この情報は、支援技術を使用する人々にコンテキストを提供します。テーブルは表形式のデータにのみ使用されるべきであるということを心に留めておいてください。アクセシブルテーブルについてもっと詳しく知る。', - CONTRAST_ERROR: 'このテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
        以下のテキストでは、コントラスト比は %(cratio) です:%(sanitizedText)となります。', - CONTRAST_WARNING: 'このテキストのコントラストは不明なので、手動で確認する必要があります。テキストと背景が強いコントラストを持つ色であることを確認する。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
        レビューしてください: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'この入力内のテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
        コントラスト比:%(cratio)となります。', + + // Headings + HEADING_NON_CONSECUTIVE_LEVEL: '非連続の見出しレベルが使用されました。見出しはレベルをスキップしたり、見出し%(prevLevel)から見出し%(level)に移行することはありません。', + HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、その形式を見出し%(level)から通常または段落に変更してください。', + HEADING_LONG: '見出しが長すぎます!見出しはコンテンツを整理し、構造を伝えるために使用されます。簡潔で情報量があり、他と区別される必要があります。見出しは160文字未満に保つようにしてください(1文を超えないでください)。
        %(HEADING_LENGTH) 文字', + HEADING_FIRST: 'ページの最初の見出しは通常、見出し1または見出し2にする必要があります。見出し1はメインコンテンツセクションの開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_MISSING_ONE: '見出し1がありません。見出し1はメインコンテンツ領域の開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_EMPTY_WITH_IMAGE: '見出しにテキストがありませんが、画像が含まれています。これが見出しでない場合は、その形式を見出し%(level)から通常または段落に変更してください。それ以外の場合は、画像に装飾的でない alt テキストを追加してください。', + PANEL_HEADING_MISSING_ONE: '見出し1がありません!', + PANEL_NO_HEADINGS: '見出しが見つかりません。', + + // Links + LINK_EMPTY: 'テキストのない空のリンクを削除してください。', + LINK_EMPTY_LABELLEDBY: 'リンクには、空のaria-labelledby値またはページの他の要素のid値と一致しないaria-labelledby値があります。', + LINK_EMPTY_LINK_NO_LABEL: 'スクリーンリーダーやその他の支援技術で見える識別可能なテキストを持たないリンクです。修正するには:
        • リンク先を説明する簡潔なテキストを追加してください。
        • アイコンリンクやSVGの場合、おそらく説明的なラベルが不足しています。
        • このリンクがコピー/貼り付けのバグによるエラーであると考える場合は、削除を検討してください。
        ', + LINK_LABEL: 'ラベル %(TEXT)', + LINK_STOPWORD: 'コンテキストがない状況では、リンクテキストが十分に説明的ではないかもしれません:%(ERROR)
        ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。"ここをクリック"や"詳細を見る"などの一般的な言葉は避けてください。', + LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(ERROR)
        • "ここをクリック"は多くの人がマウスを使用しないか、このウェブサイトをモバイルデバイスで表示している可能性があるため、マウスの操作に焦点を当てています。タスクに関連する別の動詞を使用することを検討してください。
        • 補助技術には非表示にされていない限り、HTMLシンボルをコールツーアクションとして使用しないでください。
        ', + LINK_URL: 'リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。ほとんどの場合、URLの代わりに読みやすいテキストを使用する方が良いでしょう。短いURL(サイトのホームページなど)は問題ありません。
        ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。コンテキストがない状況でも理解できるようにしてください。', + LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドは、作品のURLまたはDOIをタイトルにラップすることで説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。', + + // Links advanced + NEW_TAB_WARNING: 'リンクが警告なしに新しいタブまたはウィンドウで開きます。これは、視覚的コンテンツを認識するのが難しい人々にとって特に混乱を招く可能性があります。さらに、誰かの体験を制御したり、代わりに決定したりするのは常に良い慣行ではありません。リンクテキスト内でリンクが新しいウィンドウで開くことを示してください。
        ヒント! ベストプラクティスを学ぶ:新しいブラウザウィンドウとタブでのリンクの開き方。', + FILE_TYPE_WARNING: 'リンクが警告なしにPDFやダウンロード可能なファイル(MP3、Zip、Word Docなど)を指しています。リンクテキスト内にファイルの種類を示してください。ファイルが大きい場合は、ファイルサイズを含めることを検討してください。
        例: 実行レポート(PDF、3MB)', + LINK_IDENTICAL_NAME: 'リンクが他のリンクと同じテキストを持っていますが、異なるページを指しています。同じテキストを持つ複数のリンクは、スクリーンリーダーを使用する人々に混乱を招く可能性があります。
        他のリンクと区別するために、次のリンクをより具体的にすることを検討してください:%(TEXT)', + + // Images + MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像が周囲のテキストと一緒にリンクとして使用されていますが、alt属性は装飾用としてマークされる必要があります。', + MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストがありません!リンクがどこに向かうかを説明するaltテキストを確認してください。', + MISSING_ALT_MESSAGE: 'altテキストがありません!画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。', + LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。altテキストが画像のリンク先を説明しているかどうか、画像の文字通りの説明ではないことを確認してください。ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内の記述のないまたはプレースホルダーのaltテキストが見つかりました。altテキストが画像のリンク先を説明していることを確認してください。%(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。altテキストが画像のリンク先を説明していることを確認してください。
        ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '記述のないまたはプレースホルダーのaltテキストが見つかりました。次のaltテキストをより意味のあるものに置き換えてください:%(ALT_TEXT)', + ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。
        ALT %(ALT_TEXT)', + LINK_HIDDEN_FOCUSABLE: 'aria-hidden="true"を持つリンクですが、キーボードでフォーカスが可能です。冗長または重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', + LINK_IMAGE_NO_ALT_TEXT: '画像内のリンクが装飾用としてマークされており、リンクテキストがありません。リンクの目的を説明するaltテキストを画像に追加してください。', + LINK_IMAGE_HAS_TEXT: '画像が装飾用としてマークされていますが、リンクが周囲のテキストを説明するラベルとして使用されています。', + LINK_IMAGE_LONG_ALT: 'リンクされた画像のaltテキストの説明が長すぎます。リンクされた画像のaltテキストは、画像の文字通りの説明ではなく、リンクの目的を説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
        ALT %(altLength) 文字 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '画像リンクにはaltテキストが含まれています。altテキストがリンク先を説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
        ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクにはaltテキストと周囲のリンクテキストの両方が含まれています。 この画像が装飾用であり、他のページへの機能的なリンクとして使用されている場合は、画像を装飾用としてマークすることを検討してください。周囲のリンクテキストで十分です。
        ALT %(ALT_TEXT)
        ラベル %(TEXT)', + IMAGE_FIGURE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。
        キャプションが提供されていますが、ほとんどの場合、画像にはaltテキストも必要です。
        • altテキストは画像の内容を簡潔に説明する必要があります。
        • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
        詳細はこちら:altとfigcaptionの比較。', + IMAGE_FIGURE_DUPLICATE_ALT: 'altとキャプションテキストにはまったく同じ単語を使用しないでください。スクリーンリーダーは情報を二重に発表します。
        • altテキストは画像の内容を簡潔に説明する必要があります。
        • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
        詳細はこちら:altとfigcaptionの比較
        ALT %(ALT_TEXT)', + IMAGE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。画像が物語やムード、重要な情報を伝えている場合は、altテキストを追加してください。', + IMAGE_ALT_TOO_LONG: 'altテキストの説明が長すぎます。altテキストは簡潔でありながら意味のあるものである必要があります(ツイートのように、約100文字)。これが複雑な画像やグラフの場合は、画像の長い説明を以下のテキストまたは折りたたみコンポーネントに入れることを検討してください。
        ALT %(altLength) 文字 %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', + + // Labels + LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセス可能な名前を提供するためにaltテキストを追加してください。例:検索または送信。', + LABELS_INPUT_RESET_MESSAGE: 'リセットボタンは、特に必要な場合を除いて使用しないでください。間違って簡単にアクティブ化される可能性があります。
        ヒント! リセットおよびキャンセルボタンが使用性の問題を引き起こす理由を学んでください。', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力フィールドにはアクセス可能な名前がありますが、見えるラベルもあることを確認してください。
        入力ラベル %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドのラベルに一致するfor属性を追加してください。
        この入力フィールドのIDは:id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドにidを追加し、ラベルに一致するfor属性を追加してください。', + + // Embedded content + EMBED_VIDEO: 'すべての動画に字幕を表示してください。 音声および動画コンテンツのすべてに字幕を提供することは、必須のレベルAの要件です。字幕は、聴覚障害者や難聴者をサポートします。', + EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供してください。 音声コンテンツのすべてにトランスクリプトを提供することは、必須のレベルAの要件です。トランスクリプトは、聴覚障害者や難聴者をサポートしますが、誰にでも利益をもたらすことがあります。トランスクリプトを下部に配置するか、アコーディオンパネル内に配置することを検討してください。', + EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使用してナビゲートする人々や、視力が低い人々や色覚異常の人々にとって問題が発生することがよくあります。ウィジェットの下に代替(テキストまたは表)形式で同じ情報を提供することが推奨されています。
        複雑な画像について詳しく学びます。', + EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセス可能な名前が必要です。 iframe要素にユニークなtitleまたはaria-label属性を提供してください。iFramesについて詳しく学びます。', + EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認できません。画像にはaltテキスト、動画には字幕、テキストには十分なコントラスト、対話型コンポーネントにはキーボードアクセス可能性があることを確認してください。', + EMBED_UNFOCUSABLE: '<iframe>にフォーカス可能な要素が含まれている場合、tabindex="-1"を持つべきではありません。埋め込みコンテンツはキーボードでアクセスできません。', + + // QA + QA_BAD_LINK: '悪いリンクが見つかりました。リンクは開発環境を指しているようです。
        このリンクの先は:
        %(LINK)', + QA_BAD_ITALICS: '太字および斜体タグには意味があり、段落全体を強調表示するために使用してはいけません。強調するためには、太字が使用されるべきです。斜体は固有名詞(つまり、書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用は引用ブロックとしてフォーマットする必要があります。', + QA_PDF: 'PDFのアクセシビリティをチェックできません。PDFはWebコンテンツと見なされ、アクセシブルにする必要があります。PDFには、スクリーンリーダーを使用する人や視力が低い人向けの問題がよく含まれます(構造タグの欠落やフォームフィールドのラベルの欠落など)。
        • これがフォームである場合は、代替としてアクセシブルなHTMLフォームを使用してください。
        • これが文書である場合は、Webページに変換してください。
        それ以外の場合は、Acrobat DCでのPDFのアクセシビリティを確認してください。', + QA_DOCUMENT: '文書のアクセシビリティをチェックできません。リンクされた文書はWebコンテンツと見なされ、アクセシブルにする必要があります。この文書を手動で確認してください。', + QA_PAGE_LANGUAGE: 'ページ言語が宣言されていません!HTMLタグで言語を宣言してください。', + QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを入力してください。', + QA_BLOCKQUOTE_MESSAGE: 'これは見出しですか?%(TEXT)
        ブロック引用は引用のためにのみ使用する必要があります。これが見出しである場合は、このブロック引用をセマンティックな見出し(例:見出し2または見出し3)に変更してください。', + QA_FAKE_HEADING: 'これは見出しですか?%(TEXT)
        太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使用している人はそれが重要であるかどうかを判断したり、その内容にジャンプしたりすることができません。太字や大きなテキストはセマンティックな見出し(見出し2から見出し6)を置き換えるべきではありません。', + QA_SHOULD_BE_LIST: 'リストを作成しようとしていますか?可能なリスト項目が見つかりました:%(firstPrefix)
        ブルレットまたは番号の書式設定ボタンを使用してセマンティックなリストを使用してください。セマンティックなリストを使用すると、支援技術が合計アイテム数やリスト内の各アイテムの相対位置などの情報を伝えることができます。セマンティックリストについて詳しく学びます。', + QA_UPPERCASE_WARNING: 'すべて大文字が見つかりました。一部のスクリーンリーダーはすべて大文字のテキストを略語と解釈し、各文字を個別に読み上げます。また、一部の人々はすべて大文字のテキストを読むのが難しく、それが叫んでいるように見えるかもしれません。', + QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDは、支援技術がコンテンツとの相互作用を試みる際に問題を引き起こすことが知られています。
        次のIDを削除または変更してください:%(id)', + QA_TEXT_UNDERLINE_WARNING: '下線付きテキストはリンクと混同される可能性があります。<strong>strong importance</strong><em>emphasis</em>など、異なるスタイルを使用してください。', + QA_SUBSCRIPT_WARNING: '下付き文字および上付き文字の書式設定オプションは、テキストの位置を変更するためのものであるべきです。それは単にプレゼンテーションや外観の目的でのみ使用されるべきではありません。文章全体のフォーマットは読みにくさの問題を引き起こします。適切な使用例には、指数の表示、序数(たとえば4th)、化学式(例:H2O)などが含まれます。', + QA_IN_PAGE_LINK: 'リンクが壊れた同じページのリンクです。リンクのターゲットはページ上のいずれの要素とも一致しません。', + + // Tables + TABLES_MISSING_HEADINGS: 'テーブルヘッダーがありません!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
        アクセシブルなテーブルについて詳しく学びます。', + TABLES_SEMANTIC_HEADING: '見出し2や見出し3などのセマンティックな見出しは、コンテンツのセクションにのみ使用すべきです。HTMLテーブルでは使用しないでください。代わりに<th>要素を使用してテーブルの見出しを示します。
        アクセシブルなテーブルについて詳しく学びます。', + TABLES_EMPTY_HEADING: '空のテーブルヘッダーが見つかりました!テーブルヘッダーは空にしてはいけません。行や列のヘッダーを指定して関係性を伝えることが重要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
        アクセシブルなテーブルについて詳しく学びます。', + + // Contrast + CONTRAST_ERROR: 'このテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
        コントラスト比 %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'このテキストの対比は不明であり、手動で確認する必要があります。テキストと背景が強い対比色を持つことを確認してください。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
        確認してください:%(TEXT)', + CONTRAST_INPUT_ERROR: 'この入力内のテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
        コントラスト比 %(RATIO)', }, }; diff --git a/dist/js/lang/ko.js b/dist/js/lang/ko.js index 66ffa536..74c392d9 100644 --- a/dist/js/lang/ko.js +++ b/dist/js/lang/ko.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -21,47 +21,53 @@ var ko = { ERRORS: '오류', WARNING: '경고', WARNINGS: '경고', - GOOD: '양호', - ON: '켜기', + GOOD: '양호함', + ON: '켜짐', OFF: '꺼짐', - ALERT_TEXT: '알림', + ALERT_TEXT: '경고', ALERT_CLOSE: '닫기', - OUTLINE: '페이지 개요', + OUTLINE: '윤곽', + ALT: '대체 텍스트', + IMAGES: '이미지', + EDIT: '편집', + IMAGES_NOT_FOUND: '이미지를 찾을 수 없음', + DECORATIVE: '장식용', + MISSING: '누락됨', PAGE_ISSUES: '페이지 문제', SETTINGS: '설정', CONTRAST: '대비', FORM_LABELS: '양식 레이블', - LINKS_ADVANCED: '링크(고급)', + LINKS_ADVANCED: '링크 (고급)', DARK_MODE: '다크 모드', - SHORTCUT_SCREEN_READER: '이슈로 건너뛰기. 키보드 단축키: Alt S', - SHORTCUT_TOOLTIP: '이슈로 건너뛰기', + SHORTCUT_SCREEN_READER: '문제로 건너뛰기. 키보드 단축키: Alt S', + SHORTCUT_TOOLTIP: '문제로 건너뛰기', NEW_TAB: '새 탭에서 열기', PANEL_HEADING: '접근성 확인', - PANEL_STATUS_NONE: '오류를 찾을 수 없습니다.', - PANEL_ICON_WARNINGS: '경고가 발견되었습니다.', - PANEL_ICON_TOTAL: '발견된 총 문제 수입니다.', - NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다. 다음은 미리 보기입니다:', - ERROR_MISSING_ROOT_TARGET: '대상 영역 <코드>%(root)가 존재하지 않으므로 전체 페이지의 접근성을 확인하지 못했습니다.', - HEADING_NOT_VISIBLE_ALERT: '제목은 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다.', - SKIP_TO_PAGE_ISSUES: '페이지로 건너뛰기 이슈', - CONSOLE_ERROR_MESSAGE: '죄송하지만 이 페이지의 접근성 검사기에 문제가 있습니다. 이 양식 또는 GitHub에서 신고해 주시겠어요?', - - // Dismiss - PANEL_DISMISS_BUTTON: '%(dismissCount) 해제된 경고 표시', - DISMISS: '해지', - DISMISSED: '기각된 경고', - DISMISS_REMINDER: '경고는 일시적으로만 해제됩니다. 브라우저 기록과 쿠키를 지우면 모든 페이지에서 이전에 해제된 경고가 모두 복원됩니다.', + PANEL_STATUS_NONE: '오류 없음.', + PANEL_ICON_WARNINGS: '경고 발견.', + PANEL_ICON_TOTAL: '총 문제 발견.', + NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않습니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다. 미리 보기:', + ERROR_MISSING_ROOT_TARGET: '타겟 영역 %(root)이(가) 없기 때문에 전체 페이지에 대한 접근성을 확인했습니다.', + HEADING_NOT_VISIBLE_ALERT: '표시되지 않는 제목입니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다.', + SKIP_TO_PAGE_ISSUES: '페이지 문제로 건너뛰기', + CONSOLE_ERROR_MESSAGE: '죄송합니다. 이 페이지에서 접근성 점검기에 문제가 있습니다. 이 양식이나 GitHub을 통해 신고해 주십시오.', // Export DATE: '날짜', PAGE_TITLE: '페이지 제목', RESULTS: '결과', EXPORT_RESULTS: '결과 내보내기', - GENERATED: '%(tool)로 생성된 결과.', - PREVIEW: '미리보기', + GENERATED: '%(TOOL)로 생성된 결과입니다.', + PREVIEW: '미리 보기', ELEMENT: '요소', PATH: '경로', + // Dismiss + PANEL_DISMISS_BUTTON: '%(dismissCount)개의 숨겨진 경고 보기', + DISMISS: '닫기', + DISMISSED: '숨겨진 경고', + DISMISS_REMINDER: '경고는 일시적으로만 숨겨집니다. 브라우저 기록 및 쿠키를 지우면 이전에 숨겨진 모든 경고가 모든 페이지에서 복원됩니다.', + // Colour filters COLOUR_FILTER: '컬러 필터', PROTANOPIA: '프로타노피아', @@ -156,11 +162,11 @@ var ko = { LANG_DIFFICULT: '어려움', LANG_FAIRLY_DIFFICULT: '상당히 어려움', LANG_GOOD: '양호', - READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <코드><p> 또는 목록 콘텐츠 <코드><li>를 찾을 수 없습니다.', + READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <p> 또는 목록 콘텐츠 < code><li>를 찾을 수 없습니다.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '가독성 점수를 계산할 콘텐츠가 충분하지 않습니다.', HEADING_NON_CONSECUTIVE_LEVEL: '비연속적인 머리글 레벨이 사용되었습니다. 제목은 레벨을 건너뛰거나 헤딩 %(level)에서 헤딩 %(level)로 이동하지 않아야 합니다.', HEADING_EMPTY: '빈 제목이 발견되었습니다! 수정하려면 이 줄을 삭제하거나 형식을 헤딩 %(level)에서 일반 또는 단락으로 변경하세요.', - HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
        글자 수입니다: %(headingLength)', + HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
        %(HEADING_LENGTH) 문자', HEADING_FIRST: '페이지의 첫 번째 제목은 일반적으로 제목 1 또는 제목 2여야 합니다. 제목 1은 주요 콘텐츠 섹션의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 주요 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_MISSING_ONE: '제목 1이 누락되었습니다. 제목 1은 주요 콘텐츠 영역의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 기본 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_EMPTY_WITH_IMAGE: '제목에 텍스트가 없지만 이미지가 포함되어 있습니다. 제목이 아닌 경우 형식을 제목 %(level)에서 일반 또는 단락으로 변경합니다. 그렇지 않으면 장식용 이미지가 아닌 경우 이미지에 대체 텍스트를 추가하세요.', @@ -168,66 +174,66 @@ var ko = { PANEL_NO_HEADINGS: '제목을 찾을 수 없습니다.', LINK_EMPTY: '텍스트가 없는 빈 링크를 제거합니다.', LINK_EMPTY_LABELLEDBY: '링크에는 다른 페이지 요소의 id 속성 값과 일치하지 않거나 비어 있는 aria-labelledby 값이 있습니다.', - LINK_EMPTY_LINK_NO_LABEL: '링크에 화면 리더 및 기타 보조 기술에서 볼 수 있는 식별 가능한 텍스트가 없습니다. 수정하려면: ', - LINK_LABEL: '링크 레이블: %(sanitizedText)', - LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(error)
        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요;", - LINK_BEST_PRACTICES: '링크 텍스트를 바꾸는 것이 좋습니다: %(error)
        • "여기를 클릭하세요"는 마우스를 사용하지 않거나 모바일 장치에서 이 웹사이트를 볼 수 있는 많은 사람들을 위해 마우스 메커니즘에 중점을 둔 위치입니다. 작업과 관련된 다른 동사를 사용하는 것이 좋습니다.
        • 보조 기술에 숨겨져 있지 않는 한 HTML 기호를 콜투액션으로 사용하지 마세요.
        ', - LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', + LINK_EMPTY_LINK_NO_LABEL: '링크에는 스크린 리더 및 기타 보조 기술에서 볼 수 있는 구별 가능한 텍스트가 없습니다. 해결 방법:
        ', + LINK_LABEL: '링크 레이블 %(TEXT)', + LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(ERROR)
        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요", + LINK_BEST_PRACTICES: '맥락 없이 링크 텍스트가 충분히 설명적이지 않을 수 있습니다: %(ERROR)
        팁! 링크 텍스트는 항상 명확하고 유일하며 의미 있어야 합니다. "여기를 클릭하세요"나 "자세히 알아보기"와 같은 흔한 단어를 피하세요"', + LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', LINK_DOI: '웹 페이지 또는 온라인 전용 리소스의 경우 APA 스타일 가이드에서는 제목 주위에 저작물의 URL 또는 DOI를 감싸는 설명 링크를 사용할 것을 권장합니다. 링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술을 사용하여 이해하기 어려울 수 있습니다.', - NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
        팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', - FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
        예시: 임원 보고서(PDF, 3MB)', - LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
        다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(sanitizedText)', + NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
        팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', + FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
        예시: 임원 보고서(PDF, 3MB)', + LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
        다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '이미지가 주변 텍스트와 함께 링크로 사용되고 있지만 alt 속성은 장식용 또는 null로 표시되어야 합니다.', MISSING_ALT_LINK_MESSAGE: '이미지가 링크로 사용 중이지만 대체 텍스트가 누락되었습니다! 링크가 어디로 연결되는지 설명하는 대체 텍스트를 입력하세요.', MISSING_ALT_MESSAGE: '대체 텍스트가 누락되었습니다! 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지에 대한 설명을 반드시 기재하세요.', - LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(error).
        대체 텍스트: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
        대체 텍스트: %(altText)', - ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(error).
        대체 텍스트: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(altText)', - ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다.
        대체 텍스트: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(ERROR).
        대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
        대체 텍스트 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(ERROR).
        대체 텍스트 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다.
        대체 텍스트 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '링크에는 aria-hidden="true" 속성이 있지만 키보드로 여전히 초점을 맞출 수 있습니다. 중복되거나 불필요한 링크를 숨기려면 tabindex="-1"도 추가하세요.', LINK_IMAGE_NO_ALT_TEXT: '링크 내 이미지는 장식용으로 표시되어 있으며 링크 텍스트가 없습니다. 링크의 목적지를 설명하는 대체 텍스트를 이미지에 추가하세요.', LINK_IMAGE_HAS_TEXT: '링크가 주변 텍스트를 설명 레이블로 사용하고 있지만 이미지는 장식용으로 표시됩니다.', - LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
        대체 텍스트(%(altLength) 문자): %(altText)', - LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
        대체 텍스트: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
        대체 텍스트: %(altText)
        링크 레이블: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
        대체 %(altLength) 문자 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
        대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
        대체 텍스트 %(ALT_TEXT)
        링크 레이블 %(TEXT)', IMAGE_FIGURE_DECORATIVE: '이미지가 장식으로 표시되어 보조 기술에서 무시됩니다.
        캡션이 제공되었더라도 이미지에는 대부분의 경우 대체 텍스트가 있어야 합니다.
        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주의를 기울일 수 있도록 맥락을 제공해야 합니다.
        자세히 알아보기: 알트 대 그림 캡션.', - IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
        자세히 알아보기: 알트 대 그림 캡션.
        대체 텍스트: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
        자세히 알아보기: 알트 대 그림 캡션.
        대체 텍스트 %(ALT_TEXT)', IMAGE_DECORATIVE: "이미지는 '장식용'으로 표시되어 보조 기술에서 무시됩니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 대체 텍스트를 추가해야 합니다.", - IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
        대체 텍스트(%(altLength) 문자): %(altText)', - IMAGE_PASS: '대체 텍스트: %(altText)', + IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
        대체 %(altLength) 문자 %(ALT_TEXT)', + IMAGE_PASS: '대체 텍스트 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '이미지 버튼에 대체 텍스트가 없습니다. 접근 가능한 이름을 제공하기 위해 대체 텍스트를 추가하세요. 예: 검색 또는 제출.', LABELS_INPUT_RESET_MESSAGE: '재설정 버튼은 실수로 활성화하기 쉬우므로 특별히 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다.
        Tip! 재설정 및 취소 버튼이 사용성 문제를 일으키는 이유에 대해 알아보세요.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
        입력 레이블: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 <코드>ID와 일치하는 레이블에 <코드>용 속성을 추가합니다.
        이 입력의 ID는 다음과 같습니다: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 <코드>아이디를 추가하고 레이블에 일치하는 <코드>용 속성을 추가하세요.', - EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요.
        모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', - EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
        입력 레이블 %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 ID와 일치하는 레이블에 속성을 추가합니다.
        이 입력의 ID는 다음과 같습니다: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 아이디를 추가하고 레이블에 일치하는 속성을 추가하세요.', + EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요. 모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', + EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', EMBED_DATA_VIZ: '이와 같은 데이터 시각화 위젯은 키보드나 화면 리더를 사용하여 탐색하는 사람들에게 종종 문제가 되며, 저시력자나 색맹인 사람들에게는 상당한 어려움을 초래할 수 있습니다. 위젯 아래에 동일한 정보를 다른 형식(텍스트 또는 표)으로 제공하는 것이 좋습니다.
        복잡한 이미지에 대해 자세히 알아보기 컴플렉스 이미지.', EMBED_MISSING_TITLE: '임베드된 콘텐츠에는 콘텐츠를 설명하는 접근 가능한 이름이 필요합니다. iframe 요소에 고유한 title 또는 aria-label 속성을 제공하세요. iFrames.에 대해 자세히 알아보기', EMBED_GENERAL_WARNING: '삽입된 콘텐츠를 확인할 수 없습니다. 이미지에 대체 텍스트가 있는지, 동영상에 캡션이 있는지, 텍스트의 대비가 충분한지, 인터랙티브 구성 요소가 키보드에 액세스할 수 있는지 확인하세요.', EMBED_UNFOCUSABLE: '포커스할 수 없는 요소를 포함한 <iframe>tabindex="-1"을 가져서는 안 됩니다. 포함된 콘텐츠는 키보드로 접근할 수 없습니다.', - QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
        이 링크는 다음을 가리킵니다:
        %(el)', + QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
        이 링크는 다음을 가리킵니다:
        %(LINK)', QA_IN_PAGE_LINK: '부서진 동일 페이지 링크입니다. 링크 대상이 이 페이지에 있는 어떤 요소와도 일치하지 않습니다.', QA_BAD_ITALICS: '굵게 및 이탤릭체 태그는 의미론적 의미가 있으며, 전체 단락을 강조할 때는 <강함>이 아닌 <강함>을 사용해야 합니다. 굵은 텍스트는 단어나 문구에 강한 <강한> 강조를 제공할 때 사용해야 합니다. 고유명사(예: 책 및 기사 제목), 외래어, 따옴표는 이탤릭체로 강조 표시해야 합니다. 긴 따옴표는 블록 따옴표로 서식을 지정해야 합니다.', - QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. PDF에는 화면 리더를 사용하는 사용자(구조 태그 누락 또는 양식 필드 레이블 누락)와 저시력 사용자(확대 시 텍스트가 리플로우되지 않음)를 위한 문제가 포함되어 있는 경우가 많습니다.
        • 양식인 경우 접근 가능한 HTML 양식을 대안으로 사용해 보십시오.
        • 문서인 경우 웹 페이지로 변환해 보십시오.
        그렇지 않은 경우
        PDF의 접근성을 확인하십시오.를 확인하십시오.', - QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
      • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
      ', + QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되며 접근성을 확보해야 합니다. PDF에는 종종 스크린 리더를 사용하는 사람들을 위한 문제가 있습니다(구조 태그가 누락되거나 양식 필드 레이블이 누락됨) 및 시각이 낮은 사람들(텍스트가 확대되면 재배치되지 않음).
      • 이것이 양식이면 접근 가능한 HTML 양식을 대안으로 사용하는 것을 고려하십시오.
      • 이것이 문서인 경우 웹 페이지로 변환하는 것을 고려하십시오.
      그렇지 않으면, Acrobat DC에서 PDF의 접근성을 확인하세요.', + QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
    • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
    ', QA_PAGE_LANGUAGE: '페이지 언어가 선언되지 않았습니다! HTML 태그에 언어를 선언하세요.', QA_PAGE_TITLE: '페이지 제목이 누락되었습니다! 페이지 제목을 입력하세요.', - QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(sanitizedText)
    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', - QA_FAKE_HEADING: '이것이 제목인가요? %(boldtext)
    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', - QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', + QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(TEXT)
    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', + QA_FAKE_HEADING: '이것이 제목인가요? %(TEXT)
    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', + QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', QA_UPPERCASE_WARNING: '모든 대문자를 찾았습니다. 일부 화면 리더는 대문자 텍스트를 약어로 해석하여 각 문자를 개별적으로 읽을 수 있습니다. 또한 일부 사람들은 대문자를 더 읽기 어려워하며 소리치는 것처럼 보일 수 있습니다.', - QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
    다음 ID를 제거하거나 변경하세요: %(id)', + QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
    다음 ID를 제거하거나 변경하세요: %(id)', QA_TEXT_UNDERLINE_WARNING: '밑줄 친 텍스트는 링크와 혼동될 수 있습니다. <strong>강조</strong> 또는 <em>강조</em>와 같은 다른 스타일을 사용하는 것을 고려하세요.', - QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', + QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', TABLES_MISSING_HEADINGS: '표 헤더가 누락되었습니다! 접근 가능한 표에는 머리글 셀과 데이터 셀의 관계를 정의하는 HTML 마크업이 필요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 컨텍스트를 제공합니다. 표는 표 형식의 데이터에만 사용해야 합니다.
    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_SEMANTIC_HEADING: '제목 2 또는 제목 3과 같은 시맨틱 제목은 콘텐츠 섹션에만 사용해야 하며, HTML 표에는 이 아닌을 사용해야 합니다. 대신 <th> 요소를 사용하여 표 제목을 표시하세요.
    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_EMPTY_HEADING: '빈 테이블 헤더가 발견되었습니다! 테이블 헤더는 비어 있으면 안 됩니다. 행 및/또는 열 머리글을 지정하여 관계를 전달하는 것이 중요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 맥락을 제공합니다. 표는 표 형식의 데이터에만 사용해야 한다는 점에 유의하세요.
    액세스 가능한 테이블에 대해 자세히 알아보기.', - CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    다음 텍스트의 대비 비율은 %(cratio)입니다: %(sanitizedText)', - CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    검토해 주세요: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대비 비율: %(cratio)', + CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대조 비율 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    검토해 주세요: %(TEXT)', + CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대조 비율 %(RATIO)', }, }; diff --git a/dist/js/lang/ko.umd.js b/dist/js/lang/ko.umd.js index e7412dc8..8c2578b2 100644 --- a/dist/js/lang/ko.umd.js +++ b/dist/js/lang/ko.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,47 +27,53 @@ ERRORS: '오류', WARNING: '경고', WARNINGS: '경고', - GOOD: '양호', - ON: '켜기', + GOOD: '양호함', + ON: '켜짐', OFF: '꺼짐', - ALERT_TEXT: '알림', + ALERT_TEXT: '경고', ALERT_CLOSE: '닫기', - OUTLINE: '페이지 개요', + OUTLINE: '윤곽', + ALT: '대체 텍스트', + IMAGES: '이미지', + EDIT: '편집', + IMAGES_NOT_FOUND: '이미지를 찾을 수 없음', + DECORATIVE: '장식용', + MISSING: '누락됨', PAGE_ISSUES: '페이지 문제', SETTINGS: '설정', CONTRAST: '대비', FORM_LABELS: '양식 레이블', - LINKS_ADVANCED: '링크(고급)', + LINKS_ADVANCED: '링크 (고급)', DARK_MODE: '다크 모드', - SHORTCUT_SCREEN_READER: '이슈로 건너뛰기. 키보드 단축키: Alt S', - SHORTCUT_TOOLTIP: '이슈로 건너뛰기', + SHORTCUT_SCREEN_READER: '문제로 건너뛰기. 키보드 단축키: Alt S', + SHORTCUT_TOOLTIP: '문제로 건너뛰기', NEW_TAB: '새 탭에서 열기', PANEL_HEADING: '접근성 확인', - PANEL_STATUS_NONE: '오류를 찾을 수 없습니다.', - PANEL_ICON_WARNINGS: '경고가 발견되었습니다.', - PANEL_ICON_TOTAL: '발견된 총 문제 수입니다.', - NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다. 다음은 미리 보기입니다:', - ERROR_MISSING_ROOT_TARGET: '대상 영역 <코드>%(root)가 존재하지 않으므로 전체 페이지의 접근성을 확인하지 못했습니다.', - HEADING_NOT_VISIBLE_ALERT: '제목은 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다.', - SKIP_TO_PAGE_ISSUES: '페이지로 건너뛰기 이슈', - CONSOLE_ERROR_MESSAGE: '죄송하지만 이 페이지의 접근성 검사기에 문제가 있습니다. 이 양식 또는 GitHub에서 신고해 주시겠어요?', - - // Dismiss - PANEL_DISMISS_BUTTON: '%(dismissCount) 해제된 경고 표시', - DISMISS: '해지', - DISMISSED: '기각된 경고', - DISMISS_REMINDER: '경고는 일시적으로만 해제됩니다. 브라우저 기록과 쿠키를 지우면 모든 페이지에서 이전에 해제된 경고가 모두 복원됩니다.', + PANEL_STATUS_NONE: '오류 없음.', + PANEL_ICON_WARNINGS: '경고 발견.', + PANEL_ICON_TOTAL: '총 문제 발견.', + NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않습니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다. 미리 보기:', + ERROR_MISSING_ROOT_TARGET: '타겟 영역 %(root)이(가) 없기 때문에 전체 페이지에 대한 접근성을 확인했습니다.', + HEADING_NOT_VISIBLE_ALERT: '표시되지 않는 제목입니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다.', + SKIP_TO_PAGE_ISSUES: '페이지 문제로 건너뛰기', + CONSOLE_ERROR_MESSAGE: '죄송합니다. 이 페이지에서 접근성 점검기에 문제가 있습니다. 이 양식이나 GitHub을 통해 신고해 주십시오.', // Export DATE: '날짜', PAGE_TITLE: '페이지 제목', RESULTS: '결과', EXPORT_RESULTS: '결과 내보내기', - GENERATED: '%(tool)로 생성된 결과.', - PREVIEW: '미리보기', + GENERATED: '%(TOOL)로 생성된 결과입니다.', + PREVIEW: '미리 보기', ELEMENT: '요소', PATH: '경로', + // Dismiss + PANEL_DISMISS_BUTTON: '%(dismissCount)개의 숨겨진 경고 보기', + DISMISS: '닫기', + DISMISSED: '숨겨진 경고', + DISMISS_REMINDER: '경고는 일시적으로만 숨겨집니다. 브라우저 기록 및 쿠키를 지우면 이전에 숨겨진 모든 경고가 모든 페이지에서 복원됩니다.', + // Colour filters COLOUR_FILTER: '컬러 필터', PROTANOPIA: '프로타노피아', @@ -162,11 +168,11 @@ LANG_DIFFICULT: '어려움', LANG_FAIRLY_DIFFICULT: '상당히 어려움', LANG_GOOD: '양호', - READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <코드><p> 또는 목록 콘텐츠 <코드><li>를 찾을 수 없습니다.', + READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <p> 또는 목록 콘텐츠 < code><li>를 찾을 수 없습니다.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '가독성 점수를 계산할 콘텐츠가 충분하지 않습니다.', HEADING_NON_CONSECUTIVE_LEVEL: '비연속적인 머리글 레벨이 사용되었습니다. 제목은 레벨을 건너뛰거나 헤딩 %(level)에서 헤딩 %(level)로 이동하지 않아야 합니다.', HEADING_EMPTY: '빈 제목이 발견되었습니다! 수정하려면 이 줄을 삭제하거나 형식을 헤딩 %(level)에서 일반 또는 단락으로 변경하세요.', - HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
    글자 수입니다: %(headingLength)', + HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
    %(HEADING_LENGTH) 문자', HEADING_FIRST: '페이지의 첫 번째 제목은 일반적으로 제목 1 또는 제목 2여야 합니다. 제목 1은 주요 콘텐츠 섹션의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 주요 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_MISSING_ONE: '제목 1이 누락되었습니다. 제목 1은 주요 콘텐츠 영역의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 기본 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_EMPTY_WITH_IMAGE: '제목에 텍스트가 없지만 이미지가 포함되어 있습니다. 제목이 아닌 경우 형식을 제목 %(level)에서 일반 또는 단락으로 변경합니다. 그렇지 않으면 장식용 이미지가 아닌 경우 이미지에 대체 텍스트를 추가하세요.', @@ -174,66 +180,66 @@ PANEL_NO_HEADINGS: '제목을 찾을 수 없습니다.', LINK_EMPTY: '텍스트가 없는 빈 링크를 제거합니다.', LINK_EMPTY_LABELLEDBY: '링크에는 다른 페이지 요소의 id 속성 값과 일치하지 않거나 비어 있는 aria-labelledby 값이 있습니다.', - LINK_EMPTY_LINK_NO_LABEL: '링크에 화면 리더 및 기타 보조 기술에서 볼 수 있는 식별 가능한 텍스트가 없습니다. 수정하려면: ', - LINK_LABEL: '링크 레이블: %(sanitizedText)', - LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(error)
    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요;", - LINK_BEST_PRACTICES: '링크 텍스트를 바꾸는 것이 좋습니다: %(error)
    • "여기를 클릭하세요"는 마우스를 사용하지 않거나 모바일 장치에서 이 웹사이트를 볼 수 있는 많은 사람들을 위해 마우스 메커니즘에 중점을 둔 위치입니다. 작업과 관련된 다른 동사를 사용하는 것이 좋습니다.
    • 보조 기술에 숨겨져 있지 않는 한 HTML 기호를 콜투액션으로 사용하지 마세요.
    ', - LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', + LINK_EMPTY_LINK_NO_LABEL: '링크에는 스크린 리더 및 기타 보조 기술에서 볼 수 있는 구별 가능한 텍스트가 없습니다. 해결 방법:
    ', + LINK_LABEL: '링크 레이블 %(TEXT)', + LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(ERROR)
    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요", + LINK_BEST_PRACTICES: '맥락 없이 링크 텍스트가 충분히 설명적이지 않을 수 있습니다: %(ERROR)
    팁! 링크 텍스트는 항상 명확하고 유일하며 의미 있어야 합니다. "여기를 클릭하세요"나 "자세히 알아보기"와 같은 흔한 단어를 피하세요"', + LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', LINK_DOI: '웹 페이지 또는 온라인 전용 리소스의 경우 APA 스타일 가이드에서는 제목 주위에 저작물의 URL 또는 DOI를 감싸는 설명 링크를 사용할 것을 권장합니다. 링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술을 사용하여 이해하기 어려울 수 있습니다.', - NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
    팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', - FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
    예시: 임원 보고서(PDF, 3MB)', - LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
    다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(sanitizedText)', + NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
    팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', + FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
    예시: 임원 보고서(PDF, 3MB)', + LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
    다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '이미지가 주변 텍스트와 함께 링크로 사용되고 있지만 alt 속성은 장식용 또는 null로 표시되어야 합니다.', MISSING_ALT_LINK_MESSAGE: '이미지가 링크로 사용 중이지만 대체 텍스트가 누락되었습니다! 링크가 어디로 연결되는지 설명하는 대체 텍스트를 입력하세요.', MISSING_ALT_MESSAGE: '대체 텍스트가 누락되었습니다! 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지에 대한 설명을 반드시 기재하세요.', - LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(error).
    대체 텍스트: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
    대체 텍스트: %(altText)', - ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(error).
    대체 텍스트: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(altText)', - ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다.
    대체 텍스트: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(ERROR).
    대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
    대체 텍스트 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(ERROR).
    대체 텍스트 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다.
    대체 텍스트 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '링크에는 aria-hidden="true" 속성이 있지만 키보드로 여전히 초점을 맞출 수 있습니다. 중복되거나 불필요한 링크를 숨기려면 tabindex="-1"도 추가하세요.', LINK_IMAGE_NO_ALT_TEXT: '링크 내 이미지는 장식용으로 표시되어 있으며 링크 텍스트가 없습니다. 링크의 목적지를 설명하는 대체 텍스트를 이미지에 추가하세요.', LINK_IMAGE_HAS_TEXT: '링크가 주변 텍스트를 설명 레이블로 사용하고 있지만 이미지는 장식용으로 표시됩니다.', - LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
    대체 텍스트(%(altLength) 문자): %(altText)', - LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
    대체 텍스트: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
    대체 텍스트: %(altText)
    링크 레이블: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
    대체 %(altLength) 문자 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
    대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
    대체 텍스트 %(ALT_TEXT)
    링크 레이블 %(TEXT)', IMAGE_FIGURE_DECORATIVE: '이미지가 장식으로 표시되어 보조 기술에서 무시됩니다.
    캡션이 제공되었더라도 이미지에는 대부분의 경우 대체 텍스트가 있어야 합니다.
    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주의를 기울일 수 있도록 맥락을 제공해야 합니다.
    자세히 알아보기: 알트 대 그림 캡션.', - IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
    자세히 알아보기: 알트 대 그림 캡션.
    대체 텍스트: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
    자세히 알아보기: 알트 대 그림 캡션.
    대체 텍스트 %(ALT_TEXT)', IMAGE_DECORATIVE: "이미지는 '장식용'으로 표시되어 보조 기술에서 무시됩니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 대체 텍스트를 추가해야 합니다.", - IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
    대체 텍스트(%(altLength) 문자): %(altText)', - IMAGE_PASS: '대체 텍스트: %(altText)', + IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
    대체 %(altLength) 문자 %(ALT_TEXT)', + IMAGE_PASS: '대체 텍스트 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '이미지 버튼에 대체 텍스트가 없습니다. 접근 가능한 이름을 제공하기 위해 대체 텍스트를 추가하세요. 예: 검색 또는 제출.', LABELS_INPUT_RESET_MESSAGE: '재설정 버튼은 실수로 활성화하기 쉬우므로 특별히 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다.
    Tip! 재설정 및 취소 버튼이 사용성 문제를 일으키는 이유에 대해 알아보세요.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
    입력 레이블: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 <코드>ID와 일치하는 레이블에 <코드>용 속성을 추가합니다.
    이 입력의 ID는 다음과 같습니다: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 <코드>아이디를 추가하고 레이블에 일치하는 <코드>용 속성을 추가하세요.', - EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요.
    모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', - EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
    입력 레이블 %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 ID와 일치하는 레이블에 속성을 추가합니다.
    이 입력의 ID는 다음과 같습니다: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 아이디를 추가하고 레이블에 일치하는 속성을 추가하세요.', + EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요. 모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', + EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', EMBED_DATA_VIZ: '이와 같은 데이터 시각화 위젯은 키보드나 화면 리더를 사용하여 탐색하는 사람들에게 종종 문제가 되며, 저시력자나 색맹인 사람들에게는 상당한 어려움을 초래할 수 있습니다. 위젯 아래에 동일한 정보를 다른 형식(텍스트 또는 표)으로 제공하는 것이 좋습니다.
    복잡한 이미지에 대해 자세히 알아보기 컴플렉스 이미지.', EMBED_MISSING_TITLE: '임베드된 콘텐츠에는 콘텐츠를 설명하는 접근 가능한 이름이 필요합니다. iframe 요소에 고유한 title 또는 aria-label 속성을 제공하세요. iFrames.에 대해 자세히 알아보기', EMBED_GENERAL_WARNING: '삽입된 콘텐츠를 확인할 수 없습니다. 이미지에 대체 텍스트가 있는지, 동영상에 캡션이 있는지, 텍스트의 대비가 충분한지, 인터랙티브 구성 요소가 키보드에 액세스할 수 있는지 확인하세요.', EMBED_UNFOCUSABLE: '포커스할 수 없는 요소를 포함한 <iframe>tabindex="-1"을 가져서는 안 됩니다. 포함된 콘텐츠는 키보드로 접근할 수 없습니다.', - QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
    이 링크는 다음을 가리킵니다:
    %(el)', + QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
    이 링크는 다음을 가리킵니다:
    %(LINK)', QA_IN_PAGE_LINK: '부서진 동일 페이지 링크입니다. 링크 대상이 이 페이지에 있는 어떤 요소와도 일치하지 않습니다.', QA_BAD_ITALICS: '굵게 및 이탤릭체 태그는 의미론적 의미가 있으며, 전체 단락을 강조할 때는 <강함>이 아닌 <강함>을 사용해야 합니다. 굵은 텍스트는 단어나 문구에 강한 <강한> 강조를 제공할 때 사용해야 합니다. 고유명사(예: 책 및 기사 제목), 외래어, 따옴표는 이탤릭체로 강조 표시해야 합니다. 긴 따옴표는 블록 따옴표로 서식을 지정해야 합니다.', - QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. PDF에는 화면 리더를 사용하는 사용자(구조 태그 누락 또는 양식 필드 레이블 누락)와 저시력 사용자(확대 시 텍스트가 리플로우되지 않음)를 위한 문제가 포함되어 있는 경우가 많습니다.
    • 양식인 경우 접근 가능한 HTML 양식을 대안으로 사용해 보십시오.
    • 문서인 경우 웹 페이지로 변환해 보십시오.
    그렇지 않은 경우
    PDF의 접근성을 확인하십시오.를 확인하십시오.', - QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
  • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
  • ', + QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되며 접근성을 확보해야 합니다. PDF에는 종종 스크린 리더를 사용하는 사람들을 위한 문제가 있습니다(구조 태그가 누락되거나 양식 필드 레이블이 누락됨) 및 시각이 낮은 사람들(텍스트가 확대되면 재배치되지 않음).
    • 이것이 양식이면 접근 가능한 HTML 양식을 대안으로 사용하는 것을 고려하십시오.
    • 이것이 문서인 경우 웹 페이지로 변환하는 것을 고려하십시오.
    그렇지 않으면, Acrobat DC에서 PDF의 접근성을 확인하세요.', + QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
  • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
  • ', QA_PAGE_LANGUAGE: '페이지 언어가 선언되지 않았습니다! HTML 태그에 언어를 선언하세요.', QA_PAGE_TITLE: '페이지 제목이 누락되었습니다! 페이지 제목을 입력하세요.', - QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(sanitizedText)
    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', - QA_FAKE_HEADING: '이것이 제목인가요? %(boldtext)
    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', - QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', + QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(TEXT)
    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', + QA_FAKE_HEADING: '이것이 제목인가요? %(TEXT)
    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', + QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', QA_UPPERCASE_WARNING: '모든 대문자를 찾았습니다. 일부 화면 리더는 대문자 텍스트를 약어로 해석하여 각 문자를 개별적으로 읽을 수 있습니다. 또한 일부 사람들은 대문자를 더 읽기 어려워하며 소리치는 것처럼 보일 수 있습니다.', - QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
    다음 ID를 제거하거나 변경하세요: %(id)', + QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
    다음 ID를 제거하거나 변경하세요: %(id)', QA_TEXT_UNDERLINE_WARNING: '밑줄 친 텍스트는 링크와 혼동될 수 있습니다. <strong>강조</strong> 또는 <em>강조</em>와 같은 다른 스타일을 사용하는 것을 고려하세요.', - QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', + QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', TABLES_MISSING_HEADINGS: '표 헤더가 누락되었습니다! 접근 가능한 표에는 머리글 셀과 데이터 셀의 관계를 정의하는 HTML 마크업이 필요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 컨텍스트를 제공합니다. 표는 표 형식의 데이터에만 사용해야 합니다.
    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_SEMANTIC_HEADING: '제목 2 또는 제목 3과 같은 시맨틱 제목은 콘텐츠 섹션에만 사용해야 하며, HTML 표에는 이 아닌을 사용해야 합니다. 대신 <th> 요소를 사용하여 표 제목을 표시하세요.
    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_EMPTY_HEADING: '빈 테이블 헤더가 발견되었습니다! 테이블 헤더는 비어 있으면 안 됩니다. 행 및/또는 열 머리글을 지정하여 관계를 전달하는 것이 중요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 맥락을 제공합니다. 표는 표 형식의 데이터에만 사용해야 한다는 점에 유의하세요.
    액세스 가능한 테이블에 대해 자세히 알아보기.', - CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    다음 텍스트의 대비 비율은 %(cratio)입니다: %(sanitizedText)', - CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    검토해 주세요: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대비 비율: %(cratio)', + CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대조 비율 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    검토해 주세요: %(TEXT)', + CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
    대조 비율 %(RATIO)', }, }; diff --git a/dist/js/lang/lt.js b/dist/js/lang/lt.js index b43157ae..579e4024 100644 --- a/dist/js/lang/lt.js +++ b/dist/js/lang/lt.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var lt = { OFF: 'Išjungta', ALERT_TEXT: 'Įspėjimas', ALERT_CLOSE: 'Uždaryti', - OUTLINE: 'Puslapio metmenys', + OUTLINE: 'Apžvalga', + ALT: 'ALT', + IMAGES: 'Vaizdai', + EDIT: 'Redaguoti', + IMAGES_NOT_FOUND: 'Vaizdų nerasta.', + DECORATIVE: 'Dekoratyvinis', + MISSING: 'Trūksta', PAGE_ISSUES: 'Puslapio problemos', SETTINGS: 'Nustatymai', CONTRAST: 'Kontrastas', @@ -154,7 +160,7 @@ var lt = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepakankamai turinio, kad būtų galima apskaičiuoti skaitomumo balą.', HEADING_NON_CONSECUTIVE_LEVEL: 'Naudojamas ne nuoseklus antraštės lygis. Antraštės niekada neturėtų praleisti lygių arba pereiti iš Pavadinimo %(prevLevel) į Pavadinimą %(level).', HEADING_EMPTY: 'Rasta tuščia antraštė! Norėdami ištaisyti, ištrinkite šią eilutę arba pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph.', - HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
    Ženklų skaičius: %(headingLength)', + HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
    %(HEADING_LENGTH) Ženklai', HEADING_FIRST: 'Pirmoji puslapio antraštė paprastai turėtų būti 1 arba 2 antraštė. 1 antraštė turėtų būti pagrindinio turinio skyriaus pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Galvutės struktūrą.', HEADING_MISSING_ONE: 'Trūksta 1 antraštės. 1 antraštė turėtų būti pagrindinės turinio srities pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Pavadinimų struktūrą.', HEADING_EMPTY_WITH_IMAGE: 'Antraštėje nėra teksto, bet yra paveikslėlis. Jei tai nėra antraštė, pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph. Kitu atveju pridėkite paveikslėlio alt tekstą, jei jis nėra dekoratyvinis.', @@ -162,38 +168,38 @@ var lt = { PANEL_NO_HEADINGS: 'Antraščių nerasta.', LINK_EMPTY: 'Pašalinkite tuščias nuorodas be jokio teksto.', LINK_EMPTY_LABELLEDBY: 'Nuoroda turi aria-labelledby reikšmę, kuri yra tuščia arba neatitinka kito puslapio elemento atributo id reikšmės.', - LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
  • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
  • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
  • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
  • .', - LINK_LABEL: 'Etiketė su nuoroda: %(sanitizedText)', - LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(error)

    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau";', - LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(error)
    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
    ', - LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', + LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
    • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
    • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
    • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
    .', + LINK_LABEL: 'Etiketė su nuoroda %(TEXT)', + LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(ERROR)
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau"', + LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(ERROR)
    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
    ', + LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', LINK_DOI: 'Interneto puslapiuose arba tik internete esančiuose ištekliuose APA stiliaus vadove rekomenduojama naudoti aprašomąsias nuorodas, aplink kūrinio pavadinimą nurodant jo URL arba DOI. Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis.', - NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange
    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', - FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(sanitizedText)', + NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange.
    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', + FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Paveikslas naudojamas kaip nuoroda su aplinkiniu tekstu, nors atributas alt turėtų būti pažymėtas kaip dekoratyvinis arba nulinis.', MISSING_ALT_LINK_MESSAGE: 'Paveiksliukas naudojamas kaip nuoroda, bet nėra teksto alt! Užtikrinkite, kad alt tekste būtų aprašyta, kur nukreipia nuoroda.', MISSING_ALT_MESSAGE: 'Trūksta alt teksto! Jei paveikslėlis perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai jį aprašykite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(error).
    Alt tekstas: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
    Alt tekstas: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(error).
    Alt tekstas: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(altText)', - ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas.
    Alt tekstas: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Nuoroda turi aria-hidden="true", bet vis dar gali būti fokusuojama naudojant klaviatūrą. Jei ketinate paslėpti nereikalingą arba pasikartojantį nuorodą, taip pat pridėkite tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Nuorodoje esantis paveikslėlis pažymėtas kaip dekoratyvinis, o nuorodos teksto nėra. Prie paveikslėlio pridėkite alt tekstą, kuriame būtų aprašyta nuorodos paskirtis.', LINK_IMAGE_HAS_TEXT: 'Paveikslas pažymėtas kaip dekoratyvinis, nors nuorodoje aplinkinis tekstas naudojamas kaip aprašomoji etiketė.', - LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    Alt tekstas (%(altLength) ženklai): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    Alt tekstas: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
    Alt tekstas: %(altText)
    Etiketė su nuoroda: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    ALT %(altLength) Ženklai %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
    ALT %(ALT_TEXT)
    Etiketė su nuoroda %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos.
    Nors buvo pateikta antrašė, daugeliu atvejų paveikslėlis taip pat turėtų turėti alt tekstą.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Paprastai antraštėje turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu, arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.
    Alt tekstas: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją - būtinai pridėkite alt tekstą.', - IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
    Alt tekstas (%(altLength) ženklų): %(altText)', - IMAGE_PASS: 'Alt tekstas: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
    ALT %(altLength) Ženklai %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Nėra paveikslėlio mygtuko alt teksto. Pridėkite alt tekstą ir pateikite prieinamą pavadinimą. Pavyzdžiui: Ieškoti arba Pateikti.', LABELS_INPUT_RESET_MESSAGE: 'Atstatymo mygtukai turėtų būti nenaudojami, nebent jų specialiai reikia, nes juos lengva įjungti per klaidą.
    Tipas! Sužinokite, kodėl Mygtukai "Reset" ir "Cancel" kelia patogumo problemų.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
    Įvesties žymė: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
    Įvesties žymė %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite for atributą prie etiketės, atitinkančios šios įvesties id.
    Šios įvesties ID yra: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite id prie šios įvesties ir pridėkite atitinkamą for atributą prie etiketės.', EMBED_VIDEO: 'Užtikrinkite, kad visuose vaizdo įrašuose būtų uždaros antraštės. Visų garso ir vaizdo įrašų titrų pateikimas yra privalomas A lygio reikalavimas. Titrai padeda kurtiesiems ir neprigirdintiesiems.', @@ -202,16 +208,16 @@ var lt = { EMBED_MISSING_TITLE: 'Įterptajam turiniui reikalingas prieinamas pavadinimas, apibūdinantis jo turinį. Elemente iframe nurodykite unikalų title arba aria-label atributą. Sužinokite daugiau apie iRėmus..', EMBED_GENERAL_WARNING: 'Nepavyksta patikrinti įterpto turinio. Įsitikinkite, kad paveikslėliuose yra "alt" tekstas, vaizdo įrašuose - antraštės, tekstas pakankamai kontrastingas, o interaktyvūs komponentai yra prieinami klaviatūra.', EMBED_UNFOCUSABLE: '<iframe> su elementais, į kuriuos negalima sutelkti dėmesio, neturėtų turėti tabindex="-1". Įterptasis turinys nebus pasiekiamas naudojant klaviatūrą.', - QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
    Ši nuoroda nukreipia į:
    %(el)', + QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
    Ši nuoroda nukreipia į:
    %(LINK)', QA_IN_PAGE_LINK: 'Nugriautas tos pačios puslapio nuorodas. Nuorodos tikslas nesutampa su jokiu šios puslapio elementu.', QA_BAD_ITALICS: 'Paryškinimo ir kursyvo žymės turi semantinę reikšmę ir neturėtų būti naudojamos ne ištisoms pastraipoms paryškinti. Paryškintas tekstas turėtų būti naudojamas stipriai pabrėžti žodį ar frazę. Kursyvu reikėtų paryškinti tikruosius vardus (t. y. knygų ir straipsnių pavadinimus), svetimžodžius, kabutes. Ilgos citatos turėtų būti formatuojamos kaip blokinė citata.', - QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
    Kitu atveju patikrinkite PDF prieinamumą programoje "Acrobat DC".', - QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', + QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
    Kitu atveju patikrinkite PDF prieinamumą programoje Acrobat DC.', + QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', QA_PAGE_LANGUAGE: 'Puslapio kalba nedeklaruota! Prašome deklaruoti kalbą HTML žymėje.', QA_PAGE_TITLE: 'Trūksta puslapio pavadinimo! Pateikite puslapio pavadinimą.', - QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(sanitizedText)
    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', - QA_FAKE_HEADING: 'Ar tai antraštė? %(boldtext)
    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', - QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', + QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(TEXT)
    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', + QA_FAKE_HEADING: 'Ar tai antraštė? %(TEXT)
    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', + QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', QA_UPPERCASE_WARNING: 'Rastos visos didžiosios raidės. Kai kurie ekrano skaitytuvai tekstą visomis didžiosiomis raidėmis gali interpretuoti kaip akronimą ir skaityti kiekvieną raidę atskirai. Be to, kai kurie žmonės mano, kad visos didžiosios raidės yra sunkiau įskaitomos, ir tai gali sudaryti šauksmo įspūdį.', QA_DUPLICATE_ID: 'Rastas dvigubas ID. Yra žinoma, kad pasikartojančio ID klaidos sukelia problemų pagalbinėms technologijoms, kai jos bando sąveikauti su turiniu.
    Prašome pašalinti arba pakeisti šį ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pabrauktą tekstą galima supainioti su nuorodomis. Apsvarstykite galimybę naudoti kitą stilių, pavyzdžiui, <strong>strong svarba</strong> arba <em>pabrėžimas</em>.', @@ -219,9 +225,9 @@ var lt = { TABLES_MISSING_HEADINGS: 'Trūksta lentelių antraščių! Prieinamoms lentelėms reikia HTML žymėjimo, kuris nurodo antraštės langelius ir duomenų langelius, apibrėžiančius jų ryšį. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Lentelės turėtų būti naudojamos tik lentelėms su duomenimis.
    Sužinokite daugiau apie prieinamas lenteles.', TABLES_SEMANTIC_HEADING: 'Semantinės antraštės, pavyzdžiui, Heading 2 arba Heading 3, turėtų būti naudojamos tik turinio skyriams; ne HTML lentelėse. Vietoj to lentelių antraštes nurodykite naudodami elementą <th>.
    Sužinokite daugiau apie prieinamas lenteles.', TABLES_EMPTY_HEADING: 'Rasta tuščia lentelės antraštė! Lentelės antraštės niekada neturėtų būti tuščios. Svarbu nurodyti eilučių ir (arba) stulpelių antraštes, kad būtų išreikštas jų ryšys. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Atminkite, kad lentelės turėtų būti naudojamos tik lentelėms su lentelių duomenimis.
    Sužinokite daugiau apie prieinamas lenteles.', - CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(cratio) šiam tekstui yra %(sanitizedText)
    ', - CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Prašome peržiūrėti: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis: %(cratio)', + CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Prašome peržiūrėti: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(RATIO)', }, }; diff --git a/dist/js/lang/lt.umd.js b/dist/js/lang/lt.umd.js index c98e03c2..33e233ce 100644 --- a/dist/js/lang/lt.umd.js +++ b/dist/js/lang/lt.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Išjungta', ALERT_TEXT: 'Įspėjimas', ALERT_CLOSE: 'Uždaryti', - OUTLINE: 'Puslapio metmenys', + OUTLINE: 'Apžvalga', + ALT: 'ALT', + IMAGES: 'Vaizdai', + EDIT: 'Redaguoti', + IMAGES_NOT_FOUND: 'Vaizdų nerasta.', + DECORATIVE: 'Dekoratyvinis', + MISSING: 'Trūksta', PAGE_ISSUES: 'Puslapio problemos', SETTINGS: 'Nustatymai', CONTRAST: 'Kontrastas', @@ -160,7 +166,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepakankamai turinio, kad būtų galima apskaičiuoti skaitomumo balą.', HEADING_NON_CONSECUTIVE_LEVEL: 'Naudojamas ne nuoseklus antraštės lygis. Antraštės niekada neturėtų praleisti lygių arba pereiti iš Pavadinimo %(prevLevel) į Pavadinimą %(level).', HEADING_EMPTY: 'Rasta tuščia antraštė! Norėdami ištaisyti, ištrinkite šią eilutę arba pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph.', - HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
    Ženklų skaičius: %(headingLength)', + HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
    %(HEADING_LENGTH) Ženklai', HEADING_FIRST: 'Pirmoji puslapio antraštė paprastai turėtų būti 1 arba 2 antraštė. 1 antraštė turėtų būti pagrindinio turinio skyriaus pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Galvutės struktūrą.', HEADING_MISSING_ONE: 'Trūksta 1 antraštės. 1 antraštė turėtų būti pagrindinės turinio srities pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Pavadinimų struktūrą.', HEADING_EMPTY_WITH_IMAGE: 'Antraštėje nėra teksto, bet yra paveikslėlis. Jei tai nėra antraštė, pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph. Kitu atveju pridėkite paveikslėlio alt tekstą, jei jis nėra dekoratyvinis.', @@ -168,38 +174,38 @@ PANEL_NO_HEADINGS: 'Antraščių nerasta.', LINK_EMPTY: 'Pašalinkite tuščias nuorodas be jokio teksto.', LINK_EMPTY_LABELLEDBY: 'Nuoroda turi aria-labelledby reikšmę, kuri yra tuščia arba neatitinka kito puslapio elemento atributo id reikšmės.', - LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
  • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
  • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
  • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
  • .', - LINK_LABEL: 'Etiketė su nuoroda: %(sanitizedText)', - LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(error)

    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau";', - LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(error)
    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
    ', - LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', + LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
    • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
    • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
    • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
    .', + LINK_LABEL: 'Etiketė su nuoroda %(TEXT)', + LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(ERROR)
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau"', + LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(ERROR)
    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
    ', + LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', LINK_DOI: 'Interneto puslapiuose arba tik internete esančiuose ištekliuose APA stiliaus vadove rekomenduojama naudoti aprašomąsias nuorodas, aplink kūrinio pavadinimą nurodant jo URL arba DOI. Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis.', - NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange
    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', - FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(sanitizedText)', + NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange.
    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', + FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Paveikslas naudojamas kaip nuoroda su aplinkiniu tekstu, nors atributas alt turėtų būti pažymėtas kaip dekoratyvinis arba nulinis.', MISSING_ALT_LINK_MESSAGE: 'Paveiksliukas naudojamas kaip nuoroda, bet nėra teksto alt! Užtikrinkite, kad alt tekste būtų aprašyta, kur nukreipia nuoroda.', MISSING_ALT_MESSAGE: 'Trūksta alt teksto! Jei paveikslėlis perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai jį aprašykite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(error).
    Alt tekstas: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
    Alt tekstas: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(error).
    Alt tekstas: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(altText)', - ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas.
    Alt tekstas: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Nuoroda turi aria-hidden="true", bet vis dar gali būti fokusuojama naudojant klaviatūrą. Jei ketinate paslėpti nereikalingą arba pasikartojantį nuorodą, taip pat pridėkite tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Nuorodoje esantis paveikslėlis pažymėtas kaip dekoratyvinis, o nuorodos teksto nėra. Prie paveikslėlio pridėkite alt tekstą, kuriame būtų aprašyta nuorodos paskirtis.', LINK_IMAGE_HAS_TEXT: 'Paveikslas pažymėtas kaip dekoratyvinis, nors nuorodoje aplinkinis tekstas naudojamas kaip aprašomoji etiketė.', - LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    Alt tekstas (%(altLength) ženklai): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    Alt tekstas: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
    Alt tekstas: %(altText)
    Etiketė su nuoroda: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    ALT %(altLength) Ženklai %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
    ALT %(ALT_TEXT)
    Etiketė su nuoroda %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos.
    Nors buvo pateikta antrašė, daugeliu atvejų paveikslėlis taip pat turėtų turėti alt tekstą.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Paprastai antraštėje turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu, arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.
    Alt tekstas: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
    Sužinokite daugiau: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją - būtinai pridėkite alt tekstą.', - IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
    Alt tekstas (%(altLength) ženklų): %(altText)', - IMAGE_PASS: 'Alt tekstas: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
    ALT %(altLength) Ženklai %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Nėra paveikslėlio mygtuko alt teksto. Pridėkite alt tekstą ir pateikite prieinamą pavadinimą. Pavyzdžiui: Ieškoti arba Pateikti.', LABELS_INPUT_RESET_MESSAGE: 'Atstatymo mygtukai turėtų būti nenaudojami, nebent jų specialiai reikia, nes juos lengva įjungti per klaidą.
    Tipas! Sužinokite, kodėl Mygtukai "Reset" ir "Cancel" kelia patogumo problemų.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
    Įvesties žymė: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
    Įvesties žymė %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite for atributą prie etiketės, atitinkančios šios įvesties id.
    Šios įvesties ID yra: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite id prie šios įvesties ir pridėkite atitinkamą for atributą prie etiketės.', EMBED_VIDEO: 'Užtikrinkite, kad visuose vaizdo įrašuose būtų uždaros antraštės. Visų garso ir vaizdo įrašų titrų pateikimas yra privalomas A lygio reikalavimas. Titrai padeda kurtiesiems ir neprigirdintiesiems.', @@ -208,16 +214,16 @@ EMBED_MISSING_TITLE: 'Įterptajam turiniui reikalingas prieinamas pavadinimas, apibūdinantis jo turinį. Elemente iframe nurodykite unikalų title arba aria-label atributą. Sužinokite daugiau apie iRėmus..', EMBED_GENERAL_WARNING: 'Nepavyksta patikrinti įterpto turinio. Įsitikinkite, kad paveikslėliuose yra "alt" tekstas, vaizdo įrašuose - antraštės, tekstas pakankamai kontrastingas, o interaktyvūs komponentai yra prieinami klaviatūra.', EMBED_UNFOCUSABLE: '<iframe> su elementais, į kuriuos negalima sutelkti dėmesio, neturėtų turėti tabindex="-1". Įterptasis turinys nebus pasiekiamas naudojant klaviatūrą.', - QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
    Ši nuoroda nukreipia į:
    %(el)', + QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
    Ši nuoroda nukreipia į:
    %(LINK)', QA_IN_PAGE_LINK: 'Nugriautas tos pačios puslapio nuorodas. Nuorodos tikslas nesutampa su jokiu šios puslapio elementu.', QA_BAD_ITALICS: 'Paryškinimo ir kursyvo žymės turi semantinę reikšmę ir neturėtų būti naudojamos ne ištisoms pastraipoms paryškinti. Paryškintas tekstas turėtų būti naudojamas stipriai pabrėžti žodį ar frazę. Kursyvu reikėtų paryškinti tikruosius vardus (t. y. knygų ir straipsnių pavadinimus), svetimžodžius, kabutes. Ilgos citatos turėtų būti formatuojamos kaip blokinė citata.', - QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
    Kitu atveju patikrinkite PDF prieinamumą programoje "Acrobat DC".', - QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', + QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
    Kitu atveju patikrinkite PDF prieinamumą programoje Acrobat DC.', + QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', QA_PAGE_LANGUAGE: 'Puslapio kalba nedeklaruota! Prašome deklaruoti kalbą HTML žymėje.', QA_PAGE_TITLE: 'Trūksta puslapio pavadinimo! Pateikite puslapio pavadinimą.', - QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(sanitizedText)
    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', - QA_FAKE_HEADING: 'Ar tai antraštė? %(boldtext)
    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', - QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', + QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(TEXT)
    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', + QA_FAKE_HEADING: 'Ar tai antraštė? %(TEXT)
    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', + QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', QA_UPPERCASE_WARNING: 'Rastos visos didžiosios raidės. Kai kurie ekrano skaitytuvai tekstą visomis didžiosiomis raidėmis gali interpretuoti kaip akronimą ir skaityti kiekvieną raidę atskirai. Be to, kai kurie žmonės mano, kad visos didžiosios raidės yra sunkiau įskaitomos, ir tai gali sudaryti šauksmo įspūdį.', QA_DUPLICATE_ID: 'Rastas dvigubas ID. Yra žinoma, kad pasikartojančio ID klaidos sukelia problemų pagalbinėms technologijoms, kai jos bando sąveikauti su turiniu.
    Prašome pašalinti arba pakeisti šį ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pabrauktą tekstą galima supainioti su nuorodomis. Apsvarstykite galimybę naudoti kitą stilių, pavyzdžiui, <strong>strong svarba</strong> arba <em>pabrėžimas</em>.', @@ -225,9 +231,9 @@ TABLES_MISSING_HEADINGS: 'Trūksta lentelių antraščių! Prieinamoms lentelėms reikia HTML žymėjimo, kuris nurodo antraštės langelius ir duomenų langelius, apibrėžiančius jų ryšį. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Lentelės turėtų būti naudojamos tik lentelėms su duomenimis.
    Sužinokite daugiau apie prieinamas lenteles.', TABLES_SEMANTIC_HEADING: 'Semantinės antraštės, pavyzdžiui, Heading 2 arba Heading 3, turėtų būti naudojamos tik turinio skyriams; ne HTML lentelėse. Vietoj to lentelių antraštes nurodykite naudodami elementą <th>.
    Sužinokite daugiau apie prieinamas lenteles.', TABLES_EMPTY_HEADING: 'Rasta tuščia lentelės antraštė! Lentelės antraštės niekada neturėtų būti tuščios. Svarbu nurodyti eilučių ir (arba) stulpelių antraštes, kad būtų išreikštas jų ryšys. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Atminkite, kad lentelės turėtų būti naudojamos tik lentelėms su lentelių duomenimis.
    Sužinokite daugiau apie prieinamas lenteles.', - CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(cratio) šiam tekstui yra %(sanitizedText)
    ', - CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Prašome peržiūrėti: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis: %(cratio)', + CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Prašome peržiūrėti: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
    Kontrasto santykis %(RATIO)', }, }; diff --git a/dist/js/lang/lv.js b/dist/js/lang/lv.js index f1490728..22928970 100644 --- a/dist/js/lang/lv.js +++ b/dist/js/lang/lv.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var lv = { OFF: 'Izslēgts', ALERT_TEXT: 'Brīdinājums', ALERT_CLOSE: 'Aizvērt', - OUTLINE: 'Lapas izklāsts', + OUTLINE: 'Kopsavilkums', + ALT: 'ALT', + IMAGES: 'Attēli', + EDIT: 'Rediģēt', + IMAGES_NOT_FOUND: 'Nav atrasts neviens attēls.', + DECORATIVE: 'Dekoratīvs', + MISSING: 'Trūkst', PAGE_ISSUES: 'Lapas problēmas', SETTINGS: 'Iestatījumi', CONTRAST: 'Kontrasts', @@ -150,64 +156,64 @@ var lv = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepietiek satura, lai aprēķinātu lasāmības rādītāju.', HEADING_NON_CONSECUTIVE_LEVEL: 'Izmantots virsrakstu līmenis, kas nav secīgs. Virsraksti nekad nedrīkst izlaist līmeņus vai pāriet no virsraksta %(prevLevel) uz virsraksta %(level).', HEADING_EMPTY: 'Tukša pozīcija atrasta! Lai to novērstu, dzēsiet šo rindu vai mainiet tās formātu no Galviņa %(level) uz Normāls vai Apakšsadaļa.', - HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
    Rakstzīmju skaits: %(headingLength)', + HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
    %(HEADING_LENGTH) Rakstzīmes', HEADING_FIRST: 'Pirmais virsraksts lapā parasti ir 1. vai 2. virsraksts. Ar 1. virsrakstu jāsāk galvenā satura sadaļa, un tas ir galvenais virsraksts, kas raksturo lapas vispārējo mērķi. Uzziniet vairāk par Galveno virsrakstu struktūru.', HEADING_MISSING_ONE: 'Trūkst 1. virsraksta. 1. virsrakstam jābūt galvenā satura laukuma sākumam, un tas ir galvenais virsraksts, kas apraksta lapas vispārējo mērķi. Uzziniet vairāk par Galveno struktūru.', HEADING_EMPTY_WITH_IMAGE: 'Virsrakstā nav teksta, bet ir attēls. Ja tas nav virsraksts, mainiet tā formātu no Virsraksts %(level) uz Normāls vai Apakšsadaļa. Pretējā gadījumā pievienojiet attēlam alt tekstu, ja tas nav dekoratīvs.', PANEL_HEADING_MISSING_ONE: 'Trūkst 1. pozīcijas!', PANEL_NO_HEADINGS: 'Virsraksti nav atrasti.', LINK_EMPTY: 'Dzēst tukšas saites bez teksta.', - LINK_EMPTY_LABELLEDBY: 'Saitei iraria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūtsid.', - LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
  • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
  • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
  • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
  • .', - LINK_LABEL: 'Saites etiķete: %(sanitizedText)', - LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(kļūda)
    Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk";', - LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(kļūda)
      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
      .', - LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', + LINK_EMPTY_LABELLEDBY: 'Saitei ir aria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūts id.', + LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
      • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
      • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
      • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
      .', + LINK_LABEL: 'Saites etiķete %(TEXT)', + LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(ERROR)
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk"', + LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(ERROR)
      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
      .', + LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', LINK_DOI: 'Tīmekļa lapām vai tikai tiešsaistes resursiem APA stila rokasgrāmatā ir ieteikts izmantot aprakstošas saites, ap darba virsrakstu aptinot tā URL vai DOI. Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību.', - NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā
      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', - FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
      Piemērs: Vadības ziņojums (PDF, 3 MB).', - LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(sanitizedText)', + NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā.
      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', + FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
      Piemērs: Vadības ziņojums (PDF, 3 MB).', + LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Attēls tiek izmantots kā saite ar apkārtējo tekstu, lai gan atribūtam alt jābūt atzīmētam kā dekoratīvam vai nulles atribūtam.', MISSING_ALT_LINK_MESSAGE: 'Attēls tiek izmantots kā saite, bet tam trūkst teksta! Lūdzu, pārliecinieties, ka alt tekstā ir aprakstīts, uz kurieni jūs aizved saite.', MISSING_ALT_MESSAGE: 'Trūkst alt teksta! Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu.', - LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(error).
      Alt teksts: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
      Alt teksts: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(error).
      Alt teksts: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(altText)', - ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks.
      Altteksts: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(ERROR).
      ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(ERROR).
      ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks.
      ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Saitē ir aria-hidden="true", bet tā joprojām ir pieejama ar tastatūru. Ja vēlaties paslēpt atkārtotu vai dublētu saiti, pievienojiet arī tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Attēls saitē ir atzīmēts kā dekoratīvs, un saites teksta nav. Lūdzu, pievienojiet attēlam alt tekstu, kas apraksta saites galamērķi.', LINK_IMAGE_HAS_TEXT: 'Attēls ir atzīmēts kā dekoratīvs, lai gan saite izmanto apkārtējo tekstu kā aprakstošu etiķeti.', - LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
      Altteksts (%(altLength) rakstzīmes): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
      Altteksts: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
      Alt teksts: %(altText)
      Saites etiķete: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption.
      Altteksts: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
      ALT %(ALT_TEXT)
      Saites etiķete %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption..', + IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption.
      ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs. Ja attēls atspoguļo stāstu, noskaņu vai svarīgu informāciju, noteikti pievienojiet alt tekstu.', - IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
      Altteksts (%(altLength) rakstzīmes): %(altText)', - IMAGE_PASS: 'Altteksts: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Attēla pogai trūkst alt teksta. Lūdzu, pievienojiet alt tekstu, lai nodrošinātu pieejamu nosaukumu. Piemēram: Piemēram, Meklēšana vai Nosūtīt.', LABELS_INPUT_RESET_MESSAGE: 'Atiestatīšanas pogas nevajadzētu izmantot, ja vien tas nav īpaši nepieciešams, jo tās var viegli aktivizēt kļūdas pēc.
      Tip! Uzziniet, kāpēc Pārtraukšanas un atcelšanas pogas rada lietojamības problēmas.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
      Ievades etiķete: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
      Ievades etiķete %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Pievienojiet for atribūtu etiķetei, kas atbilst šīs ievades id.
      Šīs ievades ID ir: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Lūdzu, pievienojiet šim ievadam id un pievienojiet etiķetei atbilstošu atribūtu for.', EMBED_VIDEO: 'Lūdzu, pārliecinieties, ka visiem videoklipiem ir slēptie titri. Visu audio un video materiālu titru nodrošināšana ir obligāta A līmeņa prasība. Titri palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi.', EMBED_AUDIO: 'Lūdzu, nodrošiniet transkriptu visiem podkāstiem. Transkriptu nodrošināšana audio saturam ir obligāta A līmeņa prasība. Transkripcijas palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi, taču tās var būt noderīgas ikvienam. Apsveriet iespēju transkriptu izvietot zem vai akordeona panelī.', EMBED_DATA_VIZ: 'Šādi datu vizualizācijas logrīki bieži rada problēmas cilvēkiem, kuri navigācijai izmanto tastatūru vai ekrāna lasītāju, un var radīt ievērojamas grūtības cilvēkiem ar vāju redzi vai krāsu aklumu. Ieteicams to pašu informāciju sniegt alternatīvā (teksta vai tabulas) formātā zem logrīka.
      Uzziniet vairāk par sarežģītiem attēliem.', - EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame..', + EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame.', EMBED_GENERAL_WARNING: 'Nevar pārbaudīt iegulto saturu. Lūdzu, pārliecinieties, ka attēliem ir alt teksts, videoklipiem ir uzraksti, tekstam ir pietiekams kontrasts un interaktīvie komponenti ir pieejami no tastatūras..', EMBED_UNFOCUSABLE: '<iframe> ar neuzmanāmiem elementiem nevajadzētu būt tabindex="-1". Iegultais saturs nebūs pieejams ar tastatūru.', - QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
      Šī saite norāda uz:
      %(el)', + QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
      Šī saite norāda uz:
      %(LINK)', QA_IN_PAGE_LINK: 'Sapušušā saites uz vienu un to pašu lapu. Saistītās lapas mērķis neatbilst nevienam elementam šajā lapā.', QA_BAD_ITALICS: 'Trešraksta un slīpraksta tagiem ir semantiska nozīme, un tos nevajadzētu izmantot, lai izceltu veselas rindkopas. Teksts treknrakstā jāizmanto, lai uzsvērtu kādu vārdu vai frāzi. Kursīvs jāizmanto, lai izceltu īpašvārdus (piemēram, grāmatu un rakstu nosaukumus), svešvārdus, citātus. Garie citāti jānoformē kā bloka citāts.', - QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
      • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
      • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
      Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC..', - QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', + QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
    • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC.', + QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', QA_PAGE_LANGUAGE: 'Lapas valoda nav deklarēta! Lūdzu, deklarējiet valodu HTML tagā.', QA_PAGE_TITLE: 'Trūkst lapas virsraksta! Lūdzu, norādiet lapas virsrakstu.', - QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(sanitizedText)
    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', - QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(boldtext)
    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', - QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', + QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(TEXT)
    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', + QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(TEXT)
    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', + QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', QA_UPPERCASE_WARNING: 'Atrasti visi vāciņi. Daži ekrāna lasītāji var interpretēt tekstu ar lielajiem burtiem kā akronīmu un lasīt katru burtu atsevišķi. Turklāt dažiem cilvēkiem ir grūtāk lasīt tekstu ar lielajiem burtiem, un tas var radīt iespaidu, ka teksts ir RAKSTS.', QA_DUPLICATE_ID: 'Atrasts duplicate ID. Ir zināms, ka dubultā ID kļūdas rada problēmas palīgtehnoloģijām, kad tās mēģina mijiedarboties ar saturu.
    Lūdzu, noņemiet vai mainiet šādu ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pasvītroto tekstu var sajaukt ar saitēm. Apsveriet iespēju izmantot citu stilu, piemēram, <strong>strong importance</strong> vai <em>emphasis</em>.', @@ -215,9 +221,9 @@ var lv = { TABLES_MISSING_HEADINGS: 'Trūkst tabulu virsrakstu! Pieejamām tabulām ir nepieciešama HTML iezīmēšana, kas norāda virsrakstu šūnas un datu šūnas, kas nosaka to savstarpējo saistību. Šī informācija nodrošina kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Tabulas jāizmanto tikai tabulas datiem.
    Uzziniet vairāk par pieejamām tabulām.', TABLES_SEMANTIC_HEADING: 'Semantiskos virsrakstus, piemēram, Heading 2 vai Heading 3, drīkst izmantot tikai satura sadaļās; ne HTML tabulās. Tabulu virsrakstus norādiet, izmantojot elementu <th>.
    Uzziniet vairāk par pieejamām tabulām.', TABLES_EMPTY_HEADING: 'Atrasta tukša tabulas galvene! Tabulu galvenēm nevajadzētu būt tukšām. Ir svarīgi norādīt rindu un/vai kolonnu galvenes, lai atspoguļotu to saistību. Šī informācija sniedz kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Paturiet prātā, ka tabulas jāizmanto tikai tabulārajiem datiem.
    Uzziniet vairāk par pieejamām tabulām.', - CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība ir %(cratio) šādam tekstam: %(sanitizedText).', - CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Lūdzu pārskatīt: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība: %(cratio)', + CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Lūdzu pārskatīt: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība %(RATIO)', }, }; diff --git a/dist/js/lang/lv.umd.js b/dist/js/lang/lv.umd.js index 6d9a56f6..62875df5 100644 --- a/dist/js/lang/lv.umd.js +++ b/dist/js/lang/lv.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Izslēgts', ALERT_TEXT: 'Brīdinājums', ALERT_CLOSE: 'Aizvērt', - OUTLINE: 'Lapas izklāsts', + OUTLINE: 'Kopsavilkums', + ALT: 'ALT', + IMAGES: 'Attēli', + EDIT: 'Rediģēt', + IMAGES_NOT_FOUND: 'Nav atrasts neviens attēls.', + DECORATIVE: 'Dekoratīvs', + MISSING: 'Trūkst', PAGE_ISSUES: 'Lapas problēmas', SETTINGS: 'Iestatījumi', CONTRAST: 'Kontrasts', @@ -156,64 +162,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepietiek satura, lai aprēķinātu lasāmības rādītāju.', HEADING_NON_CONSECUTIVE_LEVEL: 'Izmantots virsrakstu līmenis, kas nav secīgs. Virsraksti nekad nedrīkst izlaist līmeņus vai pāriet no virsraksta %(prevLevel) uz virsraksta %(level).', HEADING_EMPTY: 'Tukša pozīcija atrasta! Lai to novērstu, dzēsiet šo rindu vai mainiet tās formātu no Galviņa %(level) uz Normāls vai Apakšsadaļa.', - HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
    Rakstzīmju skaits: %(headingLength)', + HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
    %(HEADING_LENGTH) Rakstzīmes', HEADING_FIRST: 'Pirmais virsraksts lapā parasti ir 1. vai 2. virsraksts. Ar 1. virsrakstu jāsāk galvenā satura sadaļa, un tas ir galvenais virsraksts, kas raksturo lapas vispārējo mērķi. Uzziniet vairāk par Galveno virsrakstu struktūru.', HEADING_MISSING_ONE: 'Trūkst 1. virsraksta. 1. virsrakstam jābūt galvenā satura laukuma sākumam, un tas ir galvenais virsraksts, kas apraksta lapas vispārējo mērķi. Uzziniet vairāk par Galveno struktūru.', HEADING_EMPTY_WITH_IMAGE: 'Virsrakstā nav teksta, bet ir attēls. Ja tas nav virsraksts, mainiet tā formātu no Virsraksts %(level) uz Normāls vai Apakšsadaļa. Pretējā gadījumā pievienojiet attēlam alt tekstu, ja tas nav dekoratīvs.', PANEL_HEADING_MISSING_ONE: 'Trūkst 1. pozīcijas!', PANEL_NO_HEADINGS: 'Virsraksti nav atrasti.', LINK_EMPTY: 'Dzēst tukšas saites bez teksta.', - LINK_EMPTY_LABELLEDBY: 'Saitei iraria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūtsid.', - LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
  • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
  • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
  • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
  • .', - LINK_LABEL: 'Saites etiķete: %(sanitizedText)', - LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(kļūda)
    Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk";', - LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(kļūda)
      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
      .', - LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', + LINK_EMPTY_LABELLEDBY: 'Saitei ir aria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūts id.', + LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
      • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
      • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
      • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
      .', + LINK_LABEL: 'Saites etiķete %(TEXT)', + LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(ERROR)
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk"', + LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(ERROR)
      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
      .', + LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', LINK_DOI: 'Tīmekļa lapām vai tikai tiešsaistes resursiem APA stila rokasgrāmatā ir ieteikts izmantot aprakstošas saites, ap darba virsrakstu aptinot tā URL vai DOI. Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību.', - NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā
      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', - FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
      Piemērs: Vadības ziņojums (PDF, 3 MB).', - LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(sanitizedText)', + NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā.
      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', + FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
      Piemērs: Vadības ziņojums (PDF, 3 MB).', + LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Attēls tiek izmantots kā saite ar apkārtējo tekstu, lai gan atribūtam alt jābūt atzīmētam kā dekoratīvam vai nulles atribūtam.', MISSING_ALT_LINK_MESSAGE: 'Attēls tiek izmantots kā saite, bet tam trūkst teksta! Lūdzu, pārliecinieties, ka alt tekstā ir aprakstīts, uz kurieni jūs aizved saite.', MISSING_ALT_MESSAGE: 'Trūkst alt teksta! Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu.', - LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(error).
      Alt teksts: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
      Alt teksts: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(error).
      Alt teksts: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(altText)', - ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks.
      Altteksts: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(ERROR).
      ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(ERROR).
      ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks.
      ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Saitē ir aria-hidden="true", bet tā joprojām ir pieejama ar tastatūru. Ja vēlaties paslēpt atkārtotu vai dublētu saiti, pievienojiet arī tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Attēls saitē ir atzīmēts kā dekoratīvs, un saites teksta nav. Lūdzu, pievienojiet attēlam alt tekstu, kas apraksta saites galamērķi.', LINK_IMAGE_HAS_TEXT: 'Attēls ir atzīmēts kā dekoratīvs, lai gan saite izmanto apkārtējo tekstu kā aprakstošu etiķeti.', - LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
      Altteksts (%(altLength) rakstzīmes): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
      Altteksts: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
      Alt teksts: %(altText)
      Saites etiķete: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption.
      Altteksts: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
      ALT %(ALT_TEXT)
      Saites etiķete %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption..', + IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
      Uzziniet vairāk: alt versus figcaption.
      ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs. Ja attēls atspoguļo stāstu, noskaņu vai svarīgu informāciju, noteikti pievienojiet alt tekstu.', - IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
      Altteksts (%(altLength) rakstzīmes): %(altText)', - IMAGE_PASS: 'Altteksts: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Attēla pogai trūkst alt teksta. Lūdzu, pievienojiet alt tekstu, lai nodrošinātu pieejamu nosaukumu. Piemēram: Piemēram, Meklēšana vai Nosūtīt.', LABELS_INPUT_RESET_MESSAGE: 'Atiestatīšanas pogas nevajadzētu izmantot, ja vien tas nav īpaši nepieciešams, jo tās var viegli aktivizēt kļūdas pēc.
      Tip! Uzziniet, kāpēc Pārtraukšanas un atcelšanas pogas rada lietojamības problēmas.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
      Ievades etiķete: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
      Ievades etiķete %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Pievienojiet for atribūtu etiķetei, kas atbilst šīs ievades id.
      Šīs ievades ID ir: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Lūdzu, pievienojiet šim ievadam id un pievienojiet etiķetei atbilstošu atribūtu for.', EMBED_VIDEO: 'Lūdzu, pārliecinieties, ka visiem videoklipiem ir slēptie titri. Visu audio un video materiālu titru nodrošināšana ir obligāta A līmeņa prasība. Titri palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi.', EMBED_AUDIO: 'Lūdzu, nodrošiniet transkriptu visiem podkāstiem. Transkriptu nodrošināšana audio saturam ir obligāta A līmeņa prasība. Transkripcijas palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi, taču tās var būt noderīgas ikvienam. Apsveriet iespēju transkriptu izvietot zem vai akordeona panelī.', EMBED_DATA_VIZ: 'Šādi datu vizualizācijas logrīki bieži rada problēmas cilvēkiem, kuri navigācijai izmanto tastatūru vai ekrāna lasītāju, un var radīt ievērojamas grūtības cilvēkiem ar vāju redzi vai krāsu aklumu. Ieteicams to pašu informāciju sniegt alternatīvā (teksta vai tabulas) formātā zem logrīka.
      Uzziniet vairāk par sarežģītiem attēliem.', - EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame..', + EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame.', EMBED_GENERAL_WARNING: 'Nevar pārbaudīt iegulto saturu. Lūdzu, pārliecinieties, ka attēliem ir alt teksts, videoklipiem ir uzraksti, tekstam ir pietiekams kontrasts un interaktīvie komponenti ir pieejami no tastatūras..', EMBED_UNFOCUSABLE: '<iframe> ar neuzmanāmiem elementiem nevajadzētu būt tabindex="-1". Iegultais saturs nebūs pieejams ar tastatūru.', - QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
      Šī saite norāda uz:
      %(el)', + QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
      Šī saite norāda uz:
      %(LINK)', QA_IN_PAGE_LINK: 'Sapušušā saites uz vienu un to pašu lapu. Saistītās lapas mērķis neatbilst nevienam elementam šajā lapā.', QA_BAD_ITALICS: 'Trešraksta un slīpraksta tagiem ir semantiska nozīme, un tos nevajadzētu izmantot, lai izceltu veselas rindkopas. Teksts treknrakstā jāizmanto, lai uzsvērtu kādu vārdu vai frāzi. Kursīvs jāizmanto, lai izceltu īpašvārdus (piemēram, grāmatu un rakstu nosaukumus), svešvārdus, citātus. Garie citāti jānoformē kā bloka citāts.', - QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
      • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
      • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
      Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC..', - QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', + QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
    • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC.', + QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', QA_PAGE_LANGUAGE: 'Lapas valoda nav deklarēta! Lūdzu, deklarējiet valodu HTML tagā.', QA_PAGE_TITLE: 'Trūkst lapas virsraksta! Lūdzu, norādiet lapas virsrakstu.', - QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(sanitizedText)
    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', - QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(boldtext)
    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', - QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', + QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(TEXT)
    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', + QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(TEXT)
    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', + QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', QA_UPPERCASE_WARNING: 'Atrasti visi vāciņi. Daži ekrāna lasītāji var interpretēt tekstu ar lielajiem burtiem kā akronīmu un lasīt katru burtu atsevišķi. Turklāt dažiem cilvēkiem ir grūtāk lasīt tekstu ar lielajiem burtiem, un tas var radīt iespaidu, ka teksts ir RAKSTS.', QA_DUPLICATE_ID: 'Atrasts duplicate ID. Ir zināms, ka dubultā ID kļūdas rada problēmas palīgtehnoloģijām, kad tās mēģina mijiedarboties ar saturu.
    Lūdzu, noņemiet vai mainiet šādu ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pasvītroto tekstu var sajaukt ar saitēm. Apsveriet iespēju izmantot citu stilu, piemēram, <strong>strong importance</strong> vai <em>emphasis</em>.', @@ -221,9 +227,9 @@ TABLES_MISSING_HEADINGS: 'Trūkst tabulu virsrakstu! Pieejamām tabulām ir nepieciešama HTML iezīmēšana, kas norāda virsrakstu šūnas un datu šūnas, kas nosaka to savstarpējo saistību. Šī informācija nodrošina kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Tabulas jāizmanto tikai tabulas datiem.
    Uzziniet vairāk par pieejamām tabulām.', TABLES_SEMANTIC_HEADING: 'Semantiskos virsrakstus, piemēram, Heading 2 vai Heading 3, drīkst izmantot tikai satura sadaļās; ne HTML tabulās. Tabulu virsrakstus norādiet, izmantojot elementu <th>.
    Uzziniet vairāk par pieejamām tabulām.', TABLES_EMPTY_HEADING: 'Atrasta tukša tabulas galvene! Tabulu galvenēm nevajadzētu būt tukšām. Ir svarīgi norādīt rindu un/vai kolonnu galvenes, lai atspoguļotu to saistību. Šī informācija sniedz kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Paturiet prātā, ka tabulas jāizmanto tikai tabulārajiem datiem.
    Uzziniet vairāk par pieejamām tabulām.', - CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība ir %(cratio) šādam tekstam: %(sanitizedText).', - CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Lūdzu pārskatīt: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība: %(cratio)', + CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Lūdzu pārskatīt: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
    Kontrasta attiecība %(RATIO)', }, }; diff --git a/dist/js/lang/nb.js b/dist/js/lang/nb.js index 87a4e2e4..355f1d7b 100644 --- a/dist/js/lang/nb.js +++ b/dist/js/lang/nb.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var nb = { ALERT_TEXT: 'Varsling', ALERT_CLOSE: 'Lukk', OUTLINE: 'Sideoversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen bilder funnet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Mangler', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Innstillinger', CONTRAST: 'Kontrast', @@ -153,64 +159,64 @@ var nb = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok innhold til å beregne lesbarhetspoeng.', HEADING_NON_CONSECUTIVE_LEVEL: 'Det brukes ikke fortløpende overskriftsnivåer. Overskrifter skal aldri hoppe over nivåer, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift funnet! Løsningen er å slette denne linjen eller endre formatet fra Overskrift %(level) til Normal eller Avsnitt.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
    Antall tegn: %(headingLength)', - HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', - HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur..', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
    %(HEADING_LENGTH) Tegn', + HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', + HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Overskrift har ingen tekst, men inneholder et bilde. Hvis dette ikke er en overskrift, endrer du formatet fra Overskrift %(level) til Normal eller Avsnitt. Ellers kan du legge til alt-tekst til bildet hvis det ikke er dekorativt.', PANEL_HEADING_MISSING_ONE: 'Manglende overskrift 1!', PANEL_NO_HEADINGS: 'Ingen overskrifter funnet.', LINK_EMPTY: 'Fjern tomme lenker uten tekst.', LINK_EMPTY_LABELLEDBY: 'Lenken har en verdi for aria-labelledby, som enten er tom eller ikke samsvarer med verdien av attributtet id til et annet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Lenken har ikke tydelig tekst som er synlig for skjermlesere og andre hjelpemidler. Slik løser du problemet:
    • Legg til en kortfattet tekst som beskriver hvor lenken fører deg.
    • Hvis det er en ikonlenke eller SVG, mangler den sannsynligvis en beskrivende etikett.
    • Hvis du tror at denne lenken er en feil på grunn av en copy/paste-feil, bør du vurdere å slette den.
    .', - LINK_LABEL: 'Lenketikett: %(sanitizedText)', - LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(error)
    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', - LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(error)
    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
    .', - LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', + LINK_LABEL: 'Lenketikett %(TEXT)', + LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(ERROR)
    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', + LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(ERROR)
    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
    .', + LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', LINK_DOI: 'APA Style-guiden anbefaler at du bruker beskrivende lenker til nettsider eller rene nettressurser ved å legge URL-adressen eller DOI-en til verket rundt tittelen. Lengre, mindre forståelige URL-er som brukes som lenketekst, kan være vanskelige å forstå når de brukes med hjelpemidler.', - NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten
    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', - FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(sanitizedText)', + NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten.
    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', + FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bildet brukes som lenke med omkringliggende tekst, selv om alt-attributtet skal være merket som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bildet brukes som lenke, men mangler alt-tekst! Sørg for at alt-teksten beskriver hvor lenken fører deg.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis bildet formidler en historie, en stemning eller viktig informasjon - sørg for å beskrive bildet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(error).
    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(error).
    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig.
    Alt-tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lenken har aria-hidden="true", men er fortsatt tastaturfokuserbar. Hvis du har til hensikt å skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Bildet i lenken er merket som dekorativt, og det er ingen lenketekst. Legg til alt-tekst i bildet som beskriver lenkens destinasjon.', LINK_IMAGE_HAS_TEXT: 'Bildet er merket som dekorativt, selv om lenken bruker den omkringliggende teksten som en beskrivende etikett.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
    Alt-tekst: %(altText)
    Lenketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Lær mer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Les mer: alt versus figcaption.
    Alt-tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
    ALT %(ALT_TEXT)
    Lenketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Lær mer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Les mer: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å legge til alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
    Alttekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildeknappen mangler alt-tekst. Legg til alt-tekst for å gi et tilgjengelig navn. For eksempel: Søk eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Tilbakestillingsknapper bør ikke brukes med mindre det er spesifikt behov for dem, fordi de lett kan aktiveres ved en feiltakelse.
    Tips! Les mer om hvorfor Reset- og Cancel-knapper er problematiske for brukervennligheten.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
    Inndatalabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
    Inndatalabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et for-attributt i etiketten som samsvarer med id for denne inndataen.
    ID-en for denne inndataen er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et id til denne inndataen, og legg til et matchende for-attributt til etiketten.', EMBED_VIDEO: 'Sørg for at alle videoer er tekstet. Det er et obligatorisk nivå A-krav at alt lyd- og videoinnhold er tekstet. Teksting er til hjelp for personer som er døve eller har nedsatt hørsel.', EMBED_AUDIO: 'Sørg for å levere en utskrift for alle podcaster. Det er et obligatorisk nivå A-krav å levere utskrifter for lydinnhold. Transkripsjoner er til hjelp for døve og hørselshemmede, men kan være til nytte for alle. Vurder å plassere transkripsjonen nedenfor eller i et trekkspillpanel.', EMBED_DATA_VIZ: 'Datavisualiseringswidgets som dette er ofte problematiske for personer som bruker tastatur eller skjermleser for å navigere, og kan by på betydelige problemer for personer med nedsatt syn eller fargeblindhet. Det anbefales å gi den samme informasjonen i et alternativt format (tekst eller tabell) under widgeten.
    Les mer om
    komplekse bilder.', EMBED_MISSING_TITLE: 'Innebygd innhold krever et tilgjengelig navn som beskriver innholdet. Oppgi et unikt title eller aria-label-attributt på iframe-elementet. Finn ut mer om iFrames..', - EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet..', + EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke ha tabindex="-1". Den innebygde innholdet vil ikke være tilgjengelig med tastaturet.', - QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
    Denne lenken peker til:
    %(el)', + QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
    Denne lenken peker til:
    %(LINK)', QA_IN_PAGE_LINK: 'Ødelagt samme-sides lenke. Lenkemålet samsvarer ikke med noen element på denne siden.', QA_BAD_ITALICS: 'Fet og kursiv har en semantisk betydning, og bør ikke brukes til å fremheve hele avsnitt. Fet skrift skal brukes til å fremheve et ord eller en frase. Kursiv skal brukes til å fremheve egennavn (f.eks. bok- og artikkeltitler), fremmedord og sitater. Lange sitater bør formateres som blokksitater.', QA_PDF: 'Kan ikke sjekke om PDF-filer er tilgjengelige. PDF-filer regnes som nettinnhold og må også gjøres tilgjengelige. PDF-filer inneholder ofte problemer for personer som bruker skjermlesere (manglende strukturelle tagger eller manglende etiketter for skjemafelt) og personer med nedsatt syn (teksten flyter ikke ut igjen når den forstørres).
    • Hvis dette er et skjema, bør du vurdere å bruke et tilgjengelig HTML-skjema som et alternativ.
    • Hvis dette er et dokument, bør du vurdere å konvertere det til en nettside.
    Ellers kan du sjekke om PDF-en er tilgjengelig i Acrobat DC..', QA_DOCUMENT: 'Kan ikke sjekke dokumentets tilgjengelighet. Lenkede dokumenter regnes som nettinnhold og må også gjøres tilgjengelige. Vennligst gå gjennom dette dokumentet manuelt. ', QA_PAGE_LANGUAGE: 'Sidens språk er ikke oppgitt! Vennligst deklarer språk i HTML-taggen..', QA_PAGE_TITLE: 'Manglende sidetittel! Vennligst oppgi en sidetittel..', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', - QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister..', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', + QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister.', QA_UPPERCASE_WARNING: 'Fant store bokstaver. Noen skjermlesere kan tolke tekst med store bokstaver som et akronym og vil lese hver bokstav for seg. I tillegg synes noen at store bokstaver er vanskeligere å lese, og det kan gi inntrykk av at man roper.', QA_DUPLICATE_ID: 'Fant duplisert ID. Feil med dupliserte ID-er er kjent for å forårsake problemer for hjelpeteknologier når de prøver å samhandle med innhold.
    Vennligst fjern eller endre følgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Understreket tekst kan forveksles med lenker. Vurder å bruke en annen stil, for eksempel <strong>strong importance</strong> eller <em>emphasis</em>.', @@ -218,9 +224,9 @@ var nb = { TABLES_MISSING_HEADINGS: 'Manglende tabelloverskrifter! Universelt utformede tabeller trenger HTML-merking som angir overskriftsceller og dataceller, og som definerer forholdet mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Tabeller bør kun brukes til tabelldata.
    Les mer om tilgjengelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som overskrift 2 eller overskrift 3 skal bare brukes til innholdsseksjoner, ikke i HTML-tabeller. Angi tabelloverskrifter ved hjelp av <th>-elementet i stedet.
    Les mer om tilgjengelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabelloverskrift funnet! Tabelloverskrifter skal aldri være tomme. Det er viktig å utpeke rad- og/eller kolonneoverskrifter for å vise sammenhengen mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Husk at tabeller kun skal brukes til tabelldata.
    Finn ut mer om tilgjengelige tabeller.', - CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforholdet er %(cratio) for følgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vennligst se gjennom: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vennligst se gjennom: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO)', }, }; diff --git a/dist/js/lang/nb.umd.js b/dist/js/lang/nb.umd.js index 0a02563e..29d0e33b 100644 --- a/dist/js/lang/nb.umd.js +++ b/dist/js/lang/nb.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Varsling', ALERT_CLOSE: 'Lukk', OUTLINE: 'Sideoversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen bilder funnet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Mangler', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Innstillinger', CONTRAST: 'Kontrast', @@ -159,64 +165,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok innhold til å beregne lesbarhetspoeng.', HEADING_NON_CONSECUTIVE_LEVEL: 'Det brukes ikke fortløpende overskriftsnivåer. Overskrifter skal aldri hoppe over nivåer, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift funnet! Løsningen er å slette denne linjen eller endre formatet fra Overskrift %(level) til Normal eller Avsnitt.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
    Antall tegn: %(headingLength)', - HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', - HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur..', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
    %(HEADING_LENGTH) Tegn', + HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', + HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Overskrift har ingen tekst, men inneholder et bilde. Hvis dette ikke er en overskrift, endrer du formatet fra Overskrift %(level) til Normal eller Avsnitt. Ellers kan du legge til alt-tekst til bildet hvis det ikke er dekorativt.', PANEL_HEADING_MISSING_ONE: 'Manglende overskrift 1!', PANEL_NO_HEADINGS: 'Ingen overskrifter funnet.', LINK_EMPTY: 'Fjern tomme lenker uten tekst.', LINK_EMPTY_LABELLEDBY: 'Lenken har en verdi for aria-labelledby, som enten er tom eller ikke samsvarer med verdien av attributtet id til et annet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Lenken har ikke tydelig tekst som er synlig for skjermlesere og andre hjelpemidler. Slik løser du problemet:
    • Legg til en kortfattet tekst som beskriver hvor lenken fører deg.
    • Hvis det er en ikonlenke eller SVG, mangler den sannsynligvis en beskrivende etikett.
    • Hvis du tror at denne lenken er en feil på grunn av en copy/paste-feil, bør du vurdere å slette den.
    .', - LINK_LABEL: 'Lenketikett: %(sanitizedText)', - LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(error)
    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', - LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(error)
    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
    .', - LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', + LINK_LABEL: 'Lenketikett %(TEXT)', + LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(ERROR)
    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', + LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(ERROR)
    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
    .', + LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', LINK_DOI: 'APA Style-guiden anbefaler at du bruker beskrivende lenker til nettsider eller rene nettressurser ved å legge URL-adressen eller DOI-en til verket rundt tittelen. Lengre, mindre forståelige URL-er som brukes som lenketekst, kan være vanskelige å forstå når de brukes med hjelpemidler.', - NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten
    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', - FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(sanitizedText)', + NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten.
    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', + FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
    Eksempel: Executive Report (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bildet brukes som lenke med omkringliggende tekst, selv om alt-attributtet skal være merket som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bildet brukes som lenke, men mangler alt-tekst! Sørg for at alt-teksten beskriver hvor lenken fører deg.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis bildet formidler en historie, en stemning eller viktig informasjon - sørg for å beskrive bildet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(error).
    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(error).
    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig.
    Alt-tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lenken har aria-hidden="true", men er fortsatt tastaturfokuserbar. Hvis du har til hensikt å skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Bildet i lenken er merket som dekorativt, og det er ingen lenketekst. Legg til alt-tekst i bildet som beskriver lenkens destinasjon.', LINK_IMAGE_HAS_TEXT: 'Bildet er merket som dekorativt, selv om lenken bruker den omkringliggende teksten som en beskrivende etikett.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
    Alt-tekst: %(altText)
    Lenketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Lær mer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Les mer: alt versus figcaption.
    Alt-tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
    ALT %(ALT_TEXT)
    Lenketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Lær mer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
    Les mer: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å legge til alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
    Alttekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildeknappen mangler alt-tekst. Legg til alt-tekst for å gi et tilgjengelig navn. For eksempel: Søk eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Tilbakestillingsknapper bør ikke brukes med mindre det er spesifikt behov for dem, fordi de lett kan aktiveres ved en feiltakelse.
    Tips! Les mer om hvorfor Reset- og Cancel-knapper er problematiske for brukervennligheten.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
    Inndatalabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
    Inndatalabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et for-attributt i etiketten som samsvarer med id for denne inndataen.
    ID-en for denne inndataen er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et id til denne inndataen, og legg til et matchende for-attributt til etiketten.', EMBED_VIDEO: 'Sørg for at alle videoer er tekstet. Det er et obligatorisk nivå A-krav at alt lyd- og videoinnhold er tekstet. Teksting er til hjelp for personer som er døve eller har nedsatt hørsel.', EMBED_AUDIO: 'Sørg for å levere en utskrift for alle podcaster. Det er et obligatorisk nivå A-krav å levere utskrifter for lydinnhold. Transkripsjoner er til hjelp for døve og hørselshemmede, men kan være til nytte for alle. Vurder å plassere transkripsjonen nedenfor eller i et trekkspillpanel.', EMBED_DATA_VIZ: 'Datavisualiseringswidgets som dette er ofte problematiske for personer som bruker tastatur eller skjermleser for å navigere, og kan by på betydelige problemer for personer med nedsatt syn eller fargeblindhet. Det anbefales å gi den samme informasjonen i et alternativt format (tekst eller tabell) under widgeten.
    Les mer om
    komplekse bilder.', EMBED_MISSING_TITLE: 'Innebygd innhold krever et tilgjengelig navn som beskriver innholdet. Oppgi et unikt title eller aria-label-attributt på iframe-elementet. Finn ut mer om iFrames..', - EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet..', + EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke ha tabindex="-1". Den innebygde innholdet vil ikke være tilgjengelig med tastaturet.', - QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
    Denne lenken peker til:
    %(el)', + QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
    Denne lenken peker til:
    %(LINK)', QA_IN_PAGE_LINK: 'Ødelagt samme-sides lenke. Lenkemålet samsvarer ikke med noen element på denne siden.', QA_BAD_ITALICS: 'Fet og kursiv har en semantisk betydning, og bør ikke brukes til å fremheve hele avsnitt. Fet skrift skal brukes til å fremheve et ord eller en frase. Kursiv skal brukes til å fremheve egennavn (f.eks. bok- og artikkeltitler), fremmedord og sitater. Lange sitater bør formateres som blokksitater.', QA_PDF: 'Kan ikke sjekke om PDF-filer er tilgjengelige. PDF-filer regnes som nettinnhold og må også gjøres tilgjengelige. PDF-filer inneholder ofte problemer for personer som bruker skjermlesere (manglende strukturelle tagger eller manglende etiketter for skjemafelt) og personer med nedsatt syn (teksten flyter ikke ut igjen når den forstørres).
    • Hvis dette er et skjema, bør du vurdere å bruke et tilgjengelig HTML-skjema som et alternativ.
    • Hvis dette er et dokument, bør du vurdere å konvertere det til en nettside.
    Ellers kan du sjekke om PDF-en er tilgjengelig i Acrobat DC..', QA_DOCUMENT: 'Kan ikke sjekke dokumentets tilgjengelighet. Lenkede dokumenter regnes som nettinnhold og må også gjøres tilgjengelige. Vennligst gå gjennom dette dokumentet manuelt. ', QA_PAGE_LANGUAGE: 'Sidens språk er ikke oppgitt! Vennligst deklarer språk i HTML-taggen..', QA_PAGE_TITLE: 'Manglende sidetittel! Vennligst oppgi en sidetittel..', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', - QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister..', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', + QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister.', QA_UPPERCASE_WARNING: 'Fant store bokstaver. Noen skjermlesere kan tolke tekst med store bokstaver som et akronym og vil lese hver bokstav for seg. I tillegg synes noen at store bokstaver er vanskeligere å lese, og det kan gi inntrykk av at man roper.', QA_DUPLICATE_ID: 'Fant duplisert ID. Feil med dupliserte ID-er er kjent for å forårsake problemer for hjelpeteknologier når de prøver å samhandle med innhold.
    Vennligst fjern eller endre følgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Understreket tekst kan forveksles med lenker. Vurder å bruke en annen stil, for eksempel <strong>strong importance</strong> eller <em>emphasis</em>.', @@ -224,9 +230,9 @@ TABLES_MISSING_HEADINGS: 'Manglende tabelloverskrifter! Universelt utformede tabeller trenger HTML-merking som angir overskriftsceller og dataceller, og som definerer forholdet mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Tabeller bør kun brukes til tabelldata.
    Les mer om tilgjengelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som overskrift 2 eller overskrift 3 skal bare brukes til innholdsseksjoner, ikke i HTML-tabeller. Angi tabelloverskrifter ved hjelp av <th>-elementet i stedet.
    Les mer om tilgjengelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabelloverskrift funnet! Tabelloverskrifter skal aldri være tomme. Det er viktig å utpeke rad- og/eller kolonneoverskrifter for å vise sammenhengen mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Husk at tabeller kun skal brukes til tabelldata.
    Finn ut mer om tilgjengelige tabeller.', - CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforholdet er %(cratio) for følgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vennligst se gjennom: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Vennligst se gjennom: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
    Kontrastforhold %(RATIO)', }, }; diff --git a/dist/js/lang/nl.js b/dist/js/lang/nl.js index 78c29f30..f63630ca 100644 --- a/dist/js/lang/nl.js +++ b/dist/js/lang/nl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var nl = { OFF: 'Uit', ALERT_TEXT: 'Waarschuwing', ALERT_CLOSE: 'Sluit', - OUTLINE: 'Pagina overzicht', + OUTLINE: 'Overzicht', + ALT: 'ALT', + IMAGES: 'Afbeeldingen', + EDIT: 'Bewerken', + IMAGES_NOT_FOUND: 'Geen afbeeldingen gevonden.', + DECORATIVE: 'Decoratief', + MISSING: 'Ontbrekend', PAGE_ISSUES: 'Pagina problemen', SETTINGS: 'Instellingen', CONTRAST: 'Contrast', @@ -158,7 +164,7 @@ var nl = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Niet genoeg inhoud om een leesbaarheidsscore te berekenen.', HEADING_NON_CONSECUTIVE_LEVEL: 'Niet-opeenvolgend rubriekniveau gebruikt. Koppen mogen nooit niveaus overslaan of van Kop %(prevLevel) naar Kop %(level) gaan.', HEADING_EMPTY: 'Lege koptekst gevonden! Om dit op te lossen, verwijdert u deze regel of wijzigt u de opmaak van Heading %(level) in Normal of Paragraph.', - HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
    Aantal tekens: %(headingLength)', + HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
    %(HEADING_LENGTH) Tekens', HEADING_FIRST: 'De eerste kop op een pagina moet meestal een Kop 1 of Kop 2 zijn. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_MISSING_ONE: 'Ontbrekende kop 1. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_EMPTY_WITH_IMAGE: 'Een kop heeft geen tekst, maar bevat een afbeelding. Als dit geen koptekst is, verander de opmaak dan van Koptekst %(level) in Normaal of Paragraaf. Voeg anders alt-tekst toe aan de afbeelding als deze niet decoratief is.', @@ -167,65 +173,65 @@ var nl = { LINK_EMPTY: 'Verwijder lege links zonder tekst.', LINK_EMPTY_LABELLEDBY: 'De link heeft een waarde voor aria-labelledby die leeg is of niet overeenkomt met de waarde van het attribuut id van een ander element op de pagina.', LINK_EMPTY_LINK_NO_LABEL: 'Link heeft geen leesbare tekst die zichtbaar is voor schermlezers en andere ondersteunende technologie. Op te lossen:
    • Voeg beknopte tekst toe die beschrijft waar de koppeling naartoe leidt.
    • Als het een icon link of SVG, is, ontbreekt waarschijnlijk een beschrijvend label.
    • Als u denkt dat deze koppeling een fout is als gevolg van een copy/paste-bug, kunt u overwegen deze te verwijderen.
    ', - LINK_LABEL: 'Linklabel: %(sanitizedText)', - LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(error)
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', - LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(error)
    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
    ', - LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", + LINK_LABEL: 'Linklabel %(TEXT)', + LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(ERROR)
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', + LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(ERROR)
    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
    ', + LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", LINK_DOI: 'Voor webpagina\'s of online bronnen raadt de APA stijlgids aan om beschrijvende links te gebruiken door de URL of DOI van het werk rond de titel te plaatsen. Langere, minder begrijpelijke URL\'s die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie.', - NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend
    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', - FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend.
    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', + FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Afbeelding wordt gebruikt als een link met omringende tekst, hoewel het alt-attribuut als decoratief of null moet worden gemarkeerd.', MISSING_ALT_LINK_MESSAGE: 'Afbeelding wordt gebruikt als link maar alt-tekst ontbreekt! Zorg ervoor dat de alt-tekst beschrijft waar de link naartoe leidt.', MISSING_ALT_MESSAGE: 'Ontbrekende alt-tekst! Als de afbeelding een verhaal, sfeer of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft.', - LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(error).
    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(error)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
    Alttekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(error).
    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(altText)', - ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(error)" kan overbodig zijn.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(ERROR)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(ERROR)" kan overbodig zijn.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'De link heeft aria-hidden="true", maar is nog steeds toegankelijk met het toetsenbord. Als je van plan bent om een overbodige of dubbele link te verbergen, voeg dan ook tabindex="-1" toe.', LINK_IMAGE_NO_ALT_TEXT: 'De afbeelding in de link is gemarkeerd als decoratief en er is geen linktekst. Voeg alt-tekst toe aan de afbeelding die de bestemming van de link beschrijft.', LINK_IMAGE_HAS_TEXT: 'Afbeelding is gemarkeerd als decoratief, hoewel de link de omringende tekst gebruikt als beschrijvend label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    Alt-tekst (%(altLength) tekens): %(altText)', - LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    Alttekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
    Alttekst: %(altText)
    Linklabel: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Lees meer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Meer informatie: alt versus figcaption.
    Alt tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    ALT %(altLength) Tekens %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
    ALT %(ALT_TEXT)
    Linklabel %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Lees meer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Meer informatie: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'De afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, voeg dan alt-tekst toe.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
    Altekst (%(altLength) tekens): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
    ALT %(altLength) Tekens %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bij de afbeeldingsknop ontbreekt alt-tekst. Voeg alt-tekst toe om een toegankelijke naam te geven. Bijvoorbeeld: Zoeken of Inzenden.', LABELS_INPUT_RESET_MESSAGE: 'Resetknoppen moeten niet worden gebruikt tenzij ze specifiek nodig zijn, omdat ze gemakkelijk per ongeluk kunnen worden geactiveerd.
    Tip!Lees waarom Reset- en annuleerknoppen bruikbaarheidsproblemen opleveren.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
    Invoerlabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
    Invoerlabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een for-attribuut toe aan het label dat overeenkomt met de id van deze ingang.
    De ID voor deze ingang is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een id toe aan deze ingang en voeg een overeenkomend for attribuut toe aan het label.', EMBED_VIDEO: "Zorg ervoor dat alle video's zijn voorzien van ondertiteling. Het leveren van ondertiteling voor alle audio- en video-inhoud is een verplichte Level A-vereiste. Ondertiteling ondersteunt mensen die doof of slechthorend zijn.", EMBED_AUDIO: 'Zorg voor een transcript voor alle podcasts. Het leveren van transcripts voor audio-inhoud is een verplichte Level A-vereiste. Transcripties ondersteunen mensen die doof of slechthorend zijn, maar iedereen kan er baat bij hebben. Overweeg om het transcript onder of in een accordeonpaneel te plaatsen.', - EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
    Meer informatie over complexe afbeeldingen.', + EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
    Meer informatie over complexe afbeeldingen.', EMBED_MISSING_TITLE: 'Voor ingesloten inhoud is een toegankelijke naam nodig die de inhoud beschrijft. Geef een uniek title of aria-label attribuut op het iframe element. Meer informatie over iFrames.', - EMBED_GENERAL_WARNING: "Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video's bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.", + EMBED_GENERAL_WARNING: 'Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video\'s bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.', EMBED_UNFOCUSABLE: '<iframe> met niet-focusbare elementen mag geen tabindex="-1" hebben. De ingesloten inhoud zal niet toegankelijk zijn met het toetsenbord.', - QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
    Deze link verwijst naar:
    %(el)', + QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
    Deze link verwijst naar:
    %(LINK)', QA_IN_PAGE_LINK: 'Gebroken koppeling naar dezelfde pagina. Het koppelingsdoel komt niet overeen met enig element op deze pagina.', QA_BAD_ITALICS: "Vetgedrukte en cursieve tags hebben een semantische betekenis en moeten niet worden gebruikt om hele alinea's te benadrukken. Vetgedrukte tekst moet worden gebruikt om een woord of zin sterk te accentueren. Cursief moet worden gebruikt om eigennamen (bijv. titels van boeken en artikelen), vreemde woorden en aanhalingstekens te benadrukken. Lange citaten moeten worden opgemaakt als een blokcitaat.", - QA_PDF: "Kan PDF's niet controleren op toegankelijkheid. PDF's worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF's bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.", + QA_PDF: 'Kan PDF\'s niet controleren op toegankelijkheid. PDF\'s worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF\'s bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.', QA_DOCUMENT: 'Kan document niet controleren op toegankelijkheid. Gekoppelde documenten worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. Controleer dit document handmatig. ', QA_PAGE_LANGUAGE: 'Pagina taal niet aangegeven! Gelieve declareer taal in HTML-tag.', QA_PAGE_TITLE: 'Er ontbreekt een paginatitel! Geef een paginatitel.', - QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(sanitizedText)
    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', - QA_FAKE_HEADING: 'Is dit een koptekst? %(boldtext)
    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', - QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', + QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(TEXT)
    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', + QA_FAKE_HEADING: 'Is dit een koptekst? %(TEXT)
    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', + QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', QA_UPPERCASE_WARNING: 'Hoofdletters gevonden. Sommige schermlezers interpreteren tekst met allemaal hoofdletters als een acroniem en lezen elke letter apart. Bovendien vinden sommige mensen hoofdletters moeilijker te lezen en kan het lijken alsof ze schreeuwen.', QA_DUPLICATE_ID: 'Duplicate ID gevonden. Het is bekend dat dubbele ID-fouten problemen veroorzaken voor hulptechnologieën wanneer deze proberen te communiceren met inhoud.
    Verwijder of wijzig de volgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Onderstreepte tekst kan worden verward met links. Overweeg een andere stijl te gebruiken, zoals <strong>strong importance</strong> of <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'De opmaakopties subscript en superscript mogen alleen worden gebruikt om de positie van tekst te wijzigen voor typografische conventies of standaarden. Het moet niet alleen worden gebruikt voor presentatie of uiterlijk. Het formatteren van hele zinnen geeft problemen met de leesbaarheid. Voorbeelden van geschikte toepassingen zijn het weergeven van exponenten, rangtelwoorden zoals 4th in plaats van fourth, en chemische formules (bijv. H2O).', - TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
    Lees meer over toegankelijke tabellen.', - TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
    Meer informatie over toegankelijke tabellen.', - TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
    Meer informatie over toegankelijke tabellen.', - CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    De contrastverhouding is %(cratio) voor de volgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Bekijk: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding: %(cratio)', + TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
    Lees meer over toegankelijke tabellen.', + TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
    Meer informatie over toegankelijke tabellen.', + TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
    Meer informatie over toegankelijke tabellen.', + CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Bekijk: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding %(RATIO)', }, }; diff --git a/dist/js/lang/nl.umd.js b/dist/js/lang/nl.umd.js index ce7c1abc..76f7b245 100644 --- a/dist/js/lang/nl.umd.js +++ b/dist/js/lang/nl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Uit', ALERT_TEXT: 'Waarschuwing', ALERT_CLOSE: 'Sluit', - OUTLINE: 'Pagina overzicht', + OUTLINE: 'Overzicht', + ALT: 'ALT', + IMAGES: 'Afbeeldingen', + EDIT: 'Bewerken', + IMAGES_NOT_FOUND: 'Geen afbeeldingen gevonden.', + DECORATIVE: 'Decoratief', + MISSING: 'Ontbrekend', PAGE_ISSUES: 'Pagina problemen', SETTINGS: 'Instellingen', CONTRAST: 'Contrast', @@ -164,7 +170,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Niet genoeg inhoud om een leesbaarheidsscore te berekenen.', HEADING_NON_CONSECUTIVE_LEVEL: 'Niet-opeenvolgend rubriekniveau gebruikt. Koppen mogen nooit niveaus overslaan of van Kop %(prevLevel) naar Kop %(level) gaan.', HEADING_EMPTY: 'Lege koptekst gevonden! Om dit op te lossen, verwijdert u deze regel of wijzigt u de opmaak van Heading %(level) in Normal of Paragraph.', - HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
    Aantal tekens: %(headingLength)', + HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
    %(HEADING_LENGTH) Tekens', HEADING_FIRST: 'De eerste kop op een pagina moet meestal een Kop 1 of Kop 2 zijn. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_MISSING_ONE: 'Ontbrekende kop 1. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_EMPTY_WITH_IMAGE: 'Een kop heeft geen tekst, maar bevat een afbeelding. Als dit geen koptekst is, verander de opmaak dan van Koptekst %(level) in Normaal of Paragraaf. Voeg anders alt-tekst toe aan de afbeelding als deze niet decoratief is.', @@ -173,65 +179,65 @@ LINK_EMPTY: 'Verwijder lege links zonder tekst.', LINK_EMPTY_LABELLEDBY: 'De link heeft een waarde voor aria-labelledby die leeg is of niet overeenkomt met de waarde van het attribuut id van een ander element op de pagina.', LINK_EMPTY_LINK_NO_LABEL: 'Link heeft geen leesbare tekst die zichtbaar is voor schermlezers en andere ondersteunende technologie. Op te lossen:
    • Voeg beknopte tekst toe die beschrijft waar de koppeling naartoe leidt.
    • Als het een icon link of SVG, is, ontbreekt waarschijnlijk een beschrijvend label.
    • Als u denkt dat deze koppeling een fout is als gevolg van een copy/paste-bug, kunt u overwegen deze te verwijderen.
    ', - LINK_LABEL: 'Linklabel: %(sanitizedText)', - LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(error)
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', - LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(error)
    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
    ', - LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", + LINK_LABEL: 'Linklabel %(TEXT)', + LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(ERROR)
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', + LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(ERROR)
    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
    ', + LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", LINK_DOI: 'Voor webpagina\'s of online bronnen raadt de APA stijlgids aan om beschrijvende links te gebruiken door de URL of DOI van het werk rond de titel te plaatsen. Langere, minder begrijpelijke URL\'s die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie.', - NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend
    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', - FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend.
    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', + FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Afbeelding wordt gebruikt als een link met omringende tekst, hoewel het alt-attribuut als decoratief of null moet worden gemarkeerd.', MISSING_ALT_LINK_MESSAGE: 'Afbeelding wordt gebruikt als link maar alt-tekst ontbreekt! Zorg ervoor dat de alt-tekst beschrijft waar de link naartoe leidt.', MISSING_ALT_MESSAGE: 'Ontbrekende alt-tekst! Als de afbeelding een verhaal, sfeer of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft.', - LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(error).
    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(error)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
    Alttekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(error).
    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(altText)', - ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(error)" kan overbodig zijn.
    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(ERROR)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(ERROR)" kan overbodig zijn.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'De link heeft aria-hidden="true", maar is nog steeds toegankelijk met het toetsenbord. Als je van plan bent om een overbodige of dubbele link te verbergen, voeg dan ook tabindex="-1" toe.', LINK_IMAGE_NO_ALT_TEXT: 'De afbeelding in de link is gemarkeerd als decoratief en er is geen linktekst. Voeg alt-tekst toe aan de afbeelding die de bestemming van de link beschrijft.', LINK_IMAGE_HAS_TEXT: 'Afbeelding is gemarkeerd als decoratief, hoewel de link de omringende tekst gebruikt als beschrijvend label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    Alt-tekst (%(altLength) tekens): %(altText)', - LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    Alttekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
    Alttekst: %(altText)
    Linklabel: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Lees meer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Meer informatie: alt versus figcaption.
    Alt tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    ALT %(altLength) Tekens %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
    ALT %(ALT_TEXT)
    Linklabel %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Lees meer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
    Meer informatie: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'De afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, voeg dan alt-tekst toe.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
    Altekst (%(altLength) tekens): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
    ALT %(altLength) Tekens %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bij de afbeeldingsknop ontbreekt alt-tekst. Voeg alt-tekst toe om een toegankelijke naam te geven. Bijvoorbeeld: Zoeken of Inzenden.', LABELS_INPUT_RESET_MESSAGE: 'Resetknoppen moeten niet worden gebruikt tenzij ze specifiek nodig zijn, omdat ze gemakkelijk per ongeluk kunnen worden geactiveerd.
    Tip!Lees waarom Reset- en annuleerknoppen bruikbaarheidsproblemen opleveren.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
    Invoerlabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
    Invoerlabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een for-attribuut toe aan het label dat overeenkomt met de id van deze ingang.
    De ID voor deze ingang is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een id toe aan deze ingang en voeg een overeenkomend for attribuut toe aan het label.', EMBED_VIDEO: "Zorg ervoor dat alle video's zijn voorzien van ondertiteling. Het leveren van ondertiteling voor alle audio- en video-inhoud is een verplichte Level A-vereiste. Ondertiteling ondersteunt mensen die doof of slechthorend zijn.", EMBED_AUDIO: 'Zorg voor een transcript voor alle podcasts. Het leveren van transcripts voor audio-inhoud is een verplichte Level A-vereiste. Transcripties ondersteunen mensen die doof of slechthorend zijn, maar iedereen kan er baat bij hebben. Overweeg om het transcript onder of in een accordeonpaneel te plaatsen.', - EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
    Meer informatie over complexe afbeeldingen.', + EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
    Meer informatie over complexe afbeeldingen.', EMBED_MISSING_TITLE: 'Voor ingesloten inhoud is een toegankelijke naam nodig die de inhoud beschrijft. Geef een uniek title of aria-label attribuut op het iframe element. Meer informatie over iFrames.', - EMBED_GENERAL_WARNING: "Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video's bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.", + EMBED_GENERAL_WARNING: 'Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video\'s bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.', EMBED_UNFOCUSABLE: '<iframe> met niet-focusbare elementen mag geen tabindex="-1" hebben. De ingesloten inhoud zal niet toegankelijk zijn met het toetsenbord.', - QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
    Deze link verwijst naar:
    %(el)', + QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
    Deze link verwijst naar:
    %(LINK)', QA_IN_PAGE_LINK: 'Gebroken koppeling naar dezelfde pagina. Het koppelingsdoel komt niet overeen met enig element op deze pagina.', QA_BAD_ITALICS: "Vetgedrukte en cursieve tags hebben een semantische betekenis en moeten niet worden gebruikt om hele alinea's te benadrukken. Vetgedrukte tekst moet worden gebruikt om een woord of zin sterk te accentueren. Cursief moet worden gebruikt om eigennamen (bijv. titels van boeken en artikelen), vreemde woorden en aanhalingstekens te benadrukken. Lange citaten moeten worden opgemaakt als een blokcitaat.", - QA_PDF: "Kan PDF's niet controleren op toegankelijkheid. PDF's worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF's bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.", + QA_PDF: 'Kan PDF\'s niet controleren op toegankelijkheid. PDF\'s worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF\'s bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.', QA_DOCUMENT: 'Kan document niet controleren op toegankelijkheid. Gekoppelde documenten worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. Controleer dit document handmatig. ', QA_PAGE_LANGUAGE: 'Pagina taal niet aangegeven! Gelieve declareer taal in HTML-tag.', QA_PAGE_TITLE: 'Er ontbreekt een paginatitel! Geef een paginatitel.', - QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(sanitizedText)
    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', - QA_FAKE_HEADING: 'Is dit een koptekst? %(boldtext)
    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', - QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', + QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(TEXT)
    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', + QA_FAKE_HEADING: 'Is dit een koptekst? %(TEXT)
    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', + QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', QA_UPPERCASE_WARNING: 'Hoofdletters gevonden. Sommige schermlezers interpreteren tekst met allemaal hoofdletters als een acroniem en lezen elke letter apart. Bovendien vinden sommige mensen hoofdletters moeilijker te lezen en kan het lijken alsof ze schreeuwen.', QA_DUPLICATE_ID: 'Duplicate ID gevonden. Het is bekend dat dubbele ID-fouten problemen veroorzaken voor hulptechnologieën wanneer deze proberen te communiceren met inhoud.
    Verwijder of wijzig de volgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Onderstreepte tekst kan worden verward met links. Overweeg een andere stijl te gebruiken, zoals <strong>strong importance</strong> of <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'De opmaakopties subscript en superscript mogen alleen worden gebruikt om de positie van tekst te wijzigen voor typografische conventies of standaarden. Het moet niet alleen worden gebruikt voor presentatie of uiterlijk. Het formatteren van hele zinnen geeft problemen met de leesbaarheid. Voorbeelden van geschikte toepassingen zijn het weergeven van exponenten, rangtelwoorden zoals 4th in plaats van fourth, en chemische formules (bijv. H2O).', - TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
    Lees meer over toegankelijke tabellen.', - TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
    Meer informatie over toegankelijke tabellen.', - TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
    Meer informatie over toegankelijke tabellen.', - CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    De contrastverhouding is %(cratio) voor de volgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Bekijk: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding: %(cratio)', + TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
    Lees meer over toegankelijke tabellen.', + TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
    Meer informatie over toegankelijke tabellen.', + TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
    Meer informatie over toegankelijke tabellen.', + CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Bekijk: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
    Contrastverhouding %(RATIO)', }, }; diff --git a/dist/js/lang/pl.js b/dist/js/lang/pl.js index 11040e3d..78e24135 100644 --- a/dist/js/lang/pl.js +++ b/dist/js/lang/pl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var pl = { OFF: 'Wył', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Zamknij', - OUTLINE: 'Konspekt strony', + OUTLINE: 'Szkic', + ALT: 'ALT', + IMAGES: 'Obrazy', + EDIT: 'Edytuj', + IMAGES_NOT_FOUND: 'Nie znaleziono obrazów.', + DECORATIVE: 'Dekoracyjny', + MISSING: 'Brakujący', PAGE_ISSUES: 'Problemy ze stroną', SETTINGS: 'Ustawienia', CONTRAST: 'Kontrast', @@ -147,7 +153,7 @@ var pl = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Niespójny poziom nagłówka. Zastosowane poziomy nie następują po sobie. Nagłówki nigdy nie powinny pomijać poziomów np. od Nagłówek %(prevLevel) do Nagłówek %(level).', HEADING_EMPTY: 'Znaleziono pusty nagłówek! Aby to naprawić, usuń tę linię lub zmień jej format z Nagłówek %(level) na zwykły tekst lub akapit.', - HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
    Liczba znaków: %(headingLength).', + HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
    %(HEADING_LENGTH) Znaków', HEADING_FIRST: 'Pierwszym nagłówkiem na stronie powinien być zwykle Nagłówek H1 lub Nagłówek H2. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_MISSING_ONE: 'Brakuje nagłówka H1. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_EMPTY_WITH_IMAGE: 'Nagłówek nie ma tekstu, ale zawiera obrazek. Jeśli to nie jest nagłówek, zmień jego format z Nagłówek H%(level) na zwykły tekst lub akapit. W przeciwnym razie, dodaj do obrazu tekst alt, jeśli nie jest on ozdobny.', @@ -157,79 +163,79 @@ var pl = { // Links LINK_EMPTY: 'Puste łącze bez żadnego tekstu. Usuń je!', LINK_EMPTY_LABELLEDBY: 'Link ma wartość aria-labelledby, która jest pusta lub nie pasuje do wartości atrybutu id innego elementu na stronie.', - LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
    ', - LINK_LABEL: 'Etykieta łącza: %(sanitizedText)', - LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(error)
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', - LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(error)
    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
    ', - LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', + LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
    ', + LINK_LABEL: 'Etykieta łącza %(TEXT)', + LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(ERROR)
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', + LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(ERROR)
    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
    ', + LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', LINK_DOI: 'W przypadku stron internetowych lub zasobów dostępnych tylko online, przewodnik APA Style zaleca stosowanie linków opisowych poprzez zawijanie adresu URL lub DOI pracy wokół jej tytułu. Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej.', // Links advanced - NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', - FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
    Przykład: Raport końcowy (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(sanitizedText)', + NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', + FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
    Przykład: Raport końcowy (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obraz jest używany razem z sąsiadującym tekstem jako łącze. Obraz powinien być oznaczony jako dekoracyjny albo atrybut alt obrazu powinien być pusty.', MISSING_ALT_LINK_MESSAGE: 'Obraz jest używany jako łącze, ale brakuje tekstu alternatywnego! Dodaj tekst alternatywny, który mówi, dokąd prowadzi łącze.', MISSING_ALT_MESSAGE: 'Brak tekstu alternatywnego! Jeśli obraz przekazuje historię, nastrój lub ważne informacje - przedstaw je w tekście alternatywnym.', - LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
    Tekst alternatywny: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
    Tekst alternatywny: %(altText)', - ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
    Tekst alternatywny: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(altText).', - ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne.
    Tekst alternatywny: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link ma ustawienie aria-hidden="true", ale nadal można go zaznaczyć za pomocą klawiatury. Jeśli zamierzasz ukryć nadmierny lub zduplikowany link, dodaj również tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obraz w łączu jest oznaczony jako dekoracyjny i nie ma tekstu łącza. Dodaj do obrazu tekst alt, który opisze miejsce docelowe łącza.', LINK_IMAGE_HAS_TEXT: 'Obraz jest oznaczony jako dekoracyjny, ale łącze używa otaczającego go tekstu jako etykiety opisowej.', - LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
    Tekst alternatywny (%(altLength) znaków): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
    Tekst alternatywny: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
    Tekst alternatywny: %(altText)
    Etykieta łącza: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.
    Tekst alternatywny: %(altText)', + LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
    ALT %(altLength) Znaków %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
    ALT %(ALT_TEXT)
    Etykieta łącza %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obraz jest oznaczony dekoracyjny i zostanie zignorowany przez technologię wspomagającą. Jeśli obraz przekazuje jakąś historię, nastrój lub ważną informację - dodaj tekst alt.', - IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
    Tekst alternatywny (%(altLength) znaków): %(altText)', - IMAGE_PASS: 'Tekst alternatywny: %(altText)', + IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
    ALT %(altLength) Znaków %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Przycisk graficzny nie ma tekstu alternatywneego. Dodaj tekst alt, aby zapewnić dostępną nazwę. Na przykład: Szukaj lub Wyślij.', LABELS_INPUT_RESET_MESSAGE: 'Przyciski resetowania nie powinny być używane, chyba że są specjalnie potrzebne, ponieważ łatwo je aktywować przez pomyłkę.
    Porada! Dowiedz się, dlaczego Przyciski Resetuj i Anuluj powodują problemy z użytecznością.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
    Etykieta wejścia: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
    Etykieta wejścia %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj atrybut for do etykiety z wartością id pasującą do id tego pola.
    ID tego pola to: id="%(t)"', LABELS_MISSING_LABEL_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj do tego pola danych id i dodaj pasujący atrybut for do etykiety.', // Embedded content EMBED_VIDEO: 'Upewnij się, że wszystkie filmy mają napisy rozszerzone. Zapewnianie napisów rozszerzonych dla wszystkich treści audio i wideo jest obowiązkowym wymogiem poziomu A. Napisy mają na celu wspieranie osób Głuchych i słabosłyszących.', EMBED_AUDIO: 'Upewnij się, że istnieje transkrypcja dla wszystkich nagrań dźwiękowych. Zapewnianie transkrypcji treści audio jest obowiązkowym wymogiem poziomu A. Transkrypcje mają na celu wspieranie osób Głuchych i słabosłyszących, ale każdy może z nich skorzystać. Rozważ umieszczenie transkrypcji poniżej lub w panelu akordeonowym.', - EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
    Dowiedz się więcej o obrazach złożonych.', + EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
    Dowiedz się więcej o obrazach złożonych.', EMBED_MISSING_TITLE: 'Osadzona zawartość wymaga dostępnej nazwy, która opisuje jej treść. Dodaj unikalny title lub atrybutu aria-label do elementu iframe. Dowiedz się więcej o iFrame.', EMBED_GENERAL_WARNING: 'Nie można sprawdzić treści osadzonej. Upewnij się, że obrazy mają tekst alt, filmy mają napisy rozszerzone, tekst ma odpowiedni kontrast, a elementy interaktywne są dostępne z klawiatury.', // Quality assurance - QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
    Łącze wskazuje na:
    %(el)', + QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
    Łącze wskazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Uszkodzony link na tej samej stronie. Cel linku nie odpowiada żadnemu elementowi na tej stronie.', QA_BAD_ITALICS: 'Znaczniki pogrubienia i kursywy mają znaczenie semantyczne i nie powinny być używane do wyróżniania całych akapitów. Pogrubiony tekst powinien być używany w celu silnego podkreślenia słowa lub frazy. Kursywa powinna być używana do wyróżnienia nazw własnych (np. tytułów książek i artykułów), wyrazów obcych, cytatów. Długie cytaty powinny być sformatowane jako blockquote.', - QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', + QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', QA_DOCUMENT: 'Nie można sprawdzić dokumentu pod kątem dostępności. Powiązane dokumenty są uważane za treści internetowe i również muszą być dostępne. Sprawdź ten dokument ręcznie. ', QA_PAGE_LANGUAGE: 'Język strony nie zadeklarowany! Zadeklaruj język w znaczniku HTML.', QA_PAGE_TITLE: 'Brak tytułu strony! Podaj tytuł strony.', - QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(sanitizedText)
    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', - QA_FAKE_HEADING: 'Czy to jest nagłówek? %(boldtext)
    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', - QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', + QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(TEXT)
    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', + QA_FAKE_HEADING: 'Czy to jest nagłówek? %(TEXT)
    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', + QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', QA_UPPERCASE_WARNING: 'Wykryto WSZYSTKIE WIELKIE LITERY. Niektóre czytniki ekranu interpretują cały tekst wielkimi literami jako akronim i będą czytać każdą literę odrębnie. Ponadto, wszystkie wielkie litery są trudniejsze do odczytania i sprawiają wrażenie KRZYKU.', - QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
    Usuń lub zmień następujący ID: %(id)', + QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
    Usuń lub zmień następujący ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podkreślony tekst można pomylić z linkami. Rozważ użycie innego stylu, takiego jak <strong>silne znaczenie</strong> lub <em>nacisk</em>.', // Tables TABLES_MISSING_HEADINGS: 'Brak nagłówków tabeli! Dostępne tabele wymagają znaczników HTML, które wskazują komórki nagłówków i komórki danych, które definiują ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', - TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
    Dowiedz się więcej o dostępnych tabelach.', - TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', + TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
    Dowiedz się więcej o dostępnych tabelach.', + TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', QA_SUBSCRIPT_WARNING: 'Opcji formatowania indeksu dolnego i indeksu górnego należy używać wyłącznie do zmiany pozycji tekstu w celu dostosowania do konwencji lub standardów typograficznych. Powinna nie być używana wyłącznie do celów prezentacji lub wyglądu. Formatowanie całych zdań stwarza problemy z czytelnością. Odpowiednie przypadki użycia obejmują wyświetlanie wykładników, liczb porządkowych, takich jak 4th zamiast czwartej, oraz wzorów chemicznych (H2O).', // Contrast - CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Współczynnik kontrastu wynosi %(cratio) dla następującego tekstu:%(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Sprawdź kontrast następującego tekstu:
    %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Stosunek kontrastu %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Sprawdź kontrast następującego tekstu: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst w tym polu nie ma wystarczającego kontrastu z tłem. Stosunek kontrastu powinien wynosić co najmniej 4,5:1 dla normalnego tekstu i 3:1 dla dużego tekstu.
    Stosunek kontrastu %(RATIO)', }, }; diff --git a/dist/js/lang/pl.umd.js b/dist/js/lang/pl.umd.js index 480af673..aeb4194d 100644 --- a/dist/js/lang/pl.umd.js +++ b/dist/js/lang/pl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Wył', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Zamknij', - OUTLINE: 'Konspekt strony', + OUTLINE: 'Szkic', + ALT: 'ALT', + IMAGES: 'Obrazy', + EDIT: 'Edytuj', + IMAGES_NOT_FOUND: 'Nie znaleziono obrazów.', + DECORATIVE: 'Dekoracyjny', + MISSING: 'Brakujący', PAGE_ISSUES: 'Problemy ze stroną', SETTINGS: 'Ustawienia', CONTRAST: 'Kontrast', @@ -153,7 +159,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Niespójny poziom nagłówka. Zastosowane poziomy nie następują po sobie. Nagłówki nigdy nie powinny pomijać poziomów np. od Nagłówek %(prevLevel) do Nagłówek %(level).', HEADING_EMPTY: 'Znaleziono pusty nagłówek! Aby to naprawić, usuń tę linię lub zmień jej format z Nagłówek %(level) na zwykły tekst lub akapit.', - HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
    Liczba znaków: %(headingLength).', + HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
    %(HEADING_LENGTH) Znaków', HEADING_FIRST: 'Pierwszym nagłówkiem na stronie powinien być zwykle Nagłówek H1 lub Nagłówek H2. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_MISSING_ONE: 'Brakuje nagłówka H1. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_EMPTY_WITH_IMAGE: 'Nagłówek nie ma tekstu, ale zawiera obrazek. Jeśli to nie jest nagłówek, zmień jego format z Nagłówek H%(level) na zwykły tekst lub akapit. W przeciwnym razie, dodaj do obrazu tekst alt, jeśli nie jest on ozdobny.', @@ -163,79 +169,79 @@ // Links LINK_EMPTY: 'Puste łącze bez żadnego tekstu. Usuń je!', LINK_EMPTY_LABELLEDBY: 'Link ma wartość aria-labelledby, która jest pusta lub nie pasuje do wartości atrybutu id innego elementu na stronie.', - LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
    ', - LINK_LABEL: 'Etykieta łącza: %(sanitizedText)', - LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(error)
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', - LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(error)
    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
    ', - LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', + LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
    ', + LINK_LABEL: 'Etykieta łącza %(TEXT)', + LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(ERROR)
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', + LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(ERROR)
    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
    ', + LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', LINK_DOI: 'W przypadku stron internetowych lub zasobów dostępnych tylko online, przewodnik APA Style zaleca stosowanie linków opisowych poprzez zawijanie adresu URL lub DOI pracy wokół jej tytułu. Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej.', // Links advanced - NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', - FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
    Przykład: Raport końcowy (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(sanitizedText)', + NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', + FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
    Przykład: Raport końcowy (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obraz jest używany razem z sąsiadującym tekstem jako łącze. Obraz powinien być oznaczony jako dekoracyjny albo atrybut alt obrazu powinien być pusty.', MISSING_ALT_LINK_MESSAGE: 'Obraz jest używany jako łącze, ale brakuje tekstu alternatywnego! Dodaj tekst alternatywny, który mówi, dokąd prowadzi łącze.', MISSING_ALT_MESSAGE: 'Brak tekstu alternatywnego! Jeśli obraz przekazuje historię, nastrój lub ważne informacje - przedstaw je w tekście alternatywnym.', - LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
    Tekst alternatywny: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
    Tekst alternatywny: %(altText)', - ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
    Tekst alternatywny: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(altText).', - ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne.
    Tekst alternatywny: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link ma ustawienie aria-hidden="true", ale nadal można go zaznaczyć za pomocą klawiatury. Jeśli zamierzasz ukryć nadmierny lub zduplikowany link, dodaj również tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obraz w łączu jest oznaczony jako dekoracyjny i nie ma tekstu łącza. Dodaj do obrazu tekst alt, który opisze miejsce docelowe łącza.', LINK_IMAGE_HAS_TEXT: 'Obraz jest oznaczony jako dekoracyjny, ale łącze używa otaczającego go tekstu jako etykiety opisowej.', - LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
    Tekst alternatywny (%(altLength) znaków): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
    Tekst alternatywny: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
    Tekst alternatywny: %(altText)
    Etykieta łącza: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.
    Tekst alternatywny: %(altText)', + LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
    ALT %(altLength) Znaków %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
    ALT %(ALT_TEXT)
    Etykieta łącza %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
    Ucz się więcej: alternatywny kontra podpis graficzny.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obraz jest oznaczony dekoracyjny i zostanie zignorowany przez technologię wspomagającą. Jeśli obraz przekazuje jakąś historię, nastrój lub ważną informację - dodaj tekst alt.', - IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
    Tekst alternatywny (%(altLength) znaków): %(altText)', - IMAGE_PASS: 'Tekst alternatywny: %(altText)', + IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
    ALT %(altLength) Znaków %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Przycisk graficzny nie ma tekstu alternatywneego. Dodaj tekst alt, aby zapewnić dostępną nazwę. Na przykład: Szukaj lub Wyślij.', LABELS_INPUT_RESET_MESSAGE: 'Przyciski resetowania nie powinny być używane, chyba że są specjalnie potrzebne, ponieważ łatwo je aktywować przez pomyłkę.
    Porada! Dowiedz się, dlaczego Przyciski Resetuj i Anuluj powodują problemy z użytecznością.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
    Etykieta wejścia: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
    Etykieta wejścia %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj atrybut for do etykiety z wartością id pasującą do id tego pola.
    ID tego pola to: id="%(t)"', LABELS_MISSING_LABEL_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj do tego pola danych id i dodaj pasujący atrybut for do etykiety.', // Embedded content EMBED_VIDEO: 'Upewnij się, że wszystkie filmy mają napisy rozszerzone. Zapewnianie napisów rozszerzonych dla wszystkich treści audio i wideo jest obowiązkowym wymogiem poziomu A. Napisy mają na celu wspieranie osób Głuchych i słabosłyszących.', EMBED_AUDIO: 'Upewnij się, że istnieje transkrypcja dla wszystkich nagrań dźwiękowych. Zapewnianie transkrypcji treści audio jest obowiązkowym wymogiem poziomu A. Transkrypcje mają na celu wspieranie osób Głuchych i słabosłyszących, ale każdy może z nich skorzystać. Rozważ umieszczenie transkrypcji poniżej lub w panelu akordeonowym.', - EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
    Dowiedz się więcej o obrazach złożonych.', + EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
    Dowiedz się więcej o obrazach złożonych.', EMBED_MISSING_TITLE: 'Osadzona zawartość wymaga dostępnej nazwy, która opisuje jej treść. Dodaj unikalny title lub atrybutu aria-label do elementu iframe. Dowiedz się więcej o iFrame.', EMBED_GENERAL_WARNING: 'Nie można sprawdzić treści osadzonej. Upewnij się, że obrazy mają tekst alt, filmy mają napisy rozszerzone, tekst ma odpowiedni kontrast, a elementy interaktywne są dostępne z klawiatury.', // Quality assurance - QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
    Łącze wskazuje na:
    %(el)', + QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
    Łącze wskazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Uszkodzony link na tej samej stronie. Cel linku nie odpowiada żadnemu elementowi na tej stronie.', QA_BAD_ITALICS: 'Znaczniki pogrubienia i kursywy mają znaczenie semantyczne i nie powinny być używane do wyróżniania całych akapitów. Pogrubiony tekst powinien być używany w celu silnego podkreślenia słowa lub frazy. Kursywa powinna być używana do wyróżnienia nazw własnych (np. tytułów książek i artykułów), wyrazów obcych, cytatów. Długie cytaty powinny być sformatowane jako blockquote.', - QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', + QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', QA_DOCUMENT: 'Nie można sprawdzić dokumentu pod kątem dostępności. Powiązane dokumenty są uważane za treści internetowe i również muszą być dostępne. Sprawdź ten dokument ręcznie. ', QA_PAGE_LANGUAGE: 'Język strony nie zadeklarowany! Zadeklaruj język w znaczniku HTML.', QA_PAGE_TITLE: 'Brak tytułu strony! Podaj tytuł strony.', - QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(sanitizedText)
    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', - QA_FAKE_HEADING: 'Czy to jest nagłówek? %(boldtext)
    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', - QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', + QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(TEXT)
    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', + QA_FAKE_HEADING: 'Czy to jest nagłówek? %(TEXT)
    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', + QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', QA_UPPERCASE_WARNING: 'Wykryto WSZYSTKIE WIELKIE LITERY. Niektóre czytniki ekranu interpretują cały tekst wielkimi literami jako akronim i będą czytać każdą literę odrębnie. Ponadto, wszystkie wielkie litery są trudniejsze do odczytania i sprawiają wrażenie KRZYKU.', - QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
    Usuń lub zmień następujący ID: %(id)', + QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
    Usuń lub zmień następujący ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podkreślony tekst można pomylić z linkami. Rozważ użycie innego stylu, takiego jak <strong>silne znaczenie</strong> lub <em>nacisk</em>.', // Tables TABLES_MISSING_HEADINGS: 'Brak nagłówków tabeli! Dostępne tabele wymagają znaczników HTML, które wskazują komórki nagłówków i komórki danych, które definiują ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', - TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
    Dowiedz się więcej o dostępnych tabelach.', - TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', + TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
    Dowiedz się więcej o dostępnych tabelach.', + TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
    Dowiedz się więcej o dostępnych tabelach.', QA_SUBSCRIPT_WARNING: 'Opcji formatowania indeksu dolnego i indeksu górnego należy używać wyłącznie do zmiany pozycji tekstu w celu dostosowania do konwencji lub standardów typograficznych. Powinna nie być używana wyłącznie do celów prezentacji lub wyglądu. Formatowanie całych zdań stwarza problemy z czytelnością. Odpowiednie przypadki użycia obejmują wyświetlanie wykładników, liczb porządkowych, takich jak 4th zamiast czwartej, oraz wzorów chemicznych (H2O).', // Contrast - CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Współczynnik kontrastu wynosi %(cratio) dla następującego tekstu:%(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Sprawdź kontrast następującego tekstu:
    %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Stosunek kontrastu %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
    Sprawdź kontrast następującego tekstu: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst w tym polu nie ma wystarczającego kontrastu z tłem. Stosunek kontrastu powinien wynosić co najmniej 4,5:1 dla normalnego tekstu i 3:1 dla dużego tekstu.
    Stosunek kontrastu %(RATIO)', }, }; diff --git a/dist/js/lang/ptBR.js b/dist/js/lang/ptBR.js index 8fa48155..41997f0e 100644 --- a/dist/js/lang/ptBR.js +++ b/dist/js/lang/ptBR.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ptBR = { OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Ausente', PAGE_ISSUES: 'Problemas de página', SETTINGS: 'Configurações', CONTRAST: 'Contraste', @@ -150,7 +156,7 @@ var ptBR = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo usado. Os cabeçalhos nunca devem pular níveis ou ir de Cabeçalho %(prevLevel) para Cabeçalho %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, exclua essa linha ou altere seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título em uma página geralmente deve ser o Título 1 ou o Título 2. O Título 1 deve ser o início da seção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta de título 1. O título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se esse não for um cabeçalho, altere seu formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se ela não for decorativa.', @@ -159,37 +165,37 @@ var ptBR = { LINK_EMPTY: 'Remova links vazios sem nenhum texto.', LINK_EMPTY_LABELLEDBY: 'O link possui um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'O link não tem texto discernível que seja visível para leitores de tela e outras tecnologias assistivas. Para corrigir:
    • Adicione um texto conciso que descreva para onde o link o leva.
    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(error)
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(error)
    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
    ', - LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(ERROR)
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(ERROR)
    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
    ', + LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas da Web ou recursos somente on-line, o Guia de Estilo APA recomenda o uso de links descritivos, envolvendo o URL ou DOI do trabalho em seu título. URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva.', - NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link
    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', - FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
    Exemplo: Relatório executivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link.
    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', + FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
    Exemplo: Relatório executivo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está sendo usada como um link com texto ao redor, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está sendo usada como um link, mas está faltando o texto alternativo! Certifique-se de que o texto alternativo descreva para onde o link leva você.', MISSING_ALT_MESSAGE: 'Texto alternativo ausente! Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(erro).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link possui aria-hidden="true", mas ainda é focável pelo teclado. Se você pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem no link está marcada como decorativa e não há texto de link. Adicione um texto alternativo à imagem que descreva o destino do link.', LINK_IMAGE_HAS_TEXT: 'A imagem é marcada como decorativa, embora o link esteja usando o texto ao redor como um rótulo descritivo.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
    Texto alternativo: %(altText)
    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
    ALT %(ALT_TEXT)
    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem é marcada como decorativa e será ignorada pela tecnologia assistiva. Se a imagem transmitir uma história, um clima ou informações importantes, não se esqueça de adicionar um texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem está sem texto alternativo. Adicione o texto alternativo para fornecer um nome acessível. Por exemplo: Search ou Submit.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados, a menos que sejam especificamente necessários, pois são fáceis de serem ativados por engano.
    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não há rótulo associado a esse input. Adicione um atributo for ao rótulo que corresponda ao id desse input.
    O ID desse input é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não há rótulo associado a essa entrada. Adicione um id a essa entrada e adicione um atributo for correspondente ao rótulo.', EMBED_VIDEO: 'Certifique-se de que todos os vídeos tenham legendas ocultas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório do Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -198,16 +204,16 @@ var ptBR = { EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não foi possível verificar o conteúdo incorporado. Certifique-se de que as imagens tenham texto alternativo, os vídeos tenham legendas, o texto tenha contraste suficiente e os componentes interativos sejam acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focalizáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
    Esse link aponta para:
    %(el)', + QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
    Esse link aponta para:
    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As tags negrito e itálico têm significado semântico e não devem ser usadas para destacar parágrafos inteiros. O texto em negrito deve ser usado para dar forte ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
    • Se este for um documento, considere convertê-lo em uma página da Web.
    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', + QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
    • Se este for um documento, considere convertê-lo em uma página da Web.
    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos vinculados são considerados conteúdo da Web e também devem ser acessíveis. Revise manualmente este documento. ', QA_PAGE_LANGUAGE: 'O idioma da página não foi declarado! Por favor, declare o idioma na tag HTML.', QA_PAGE_TITLE: 'Título da página ausente! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(sanitizedText)
    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isso é um título? %(boldtext)
    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(TEXT)
    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isso é um título? %(TEXT)
    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em letras maiúsculas. Alguns leitores de tela podem interpretar o texto em letras maiúsculas como um acrônimo e lerão cada letra individualmente. Além disso, algumas pessoas acham que o texto em letras maiúsculas é mais difícil de ler e pode dar a impressão de estar GRITANDO.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Erros de ID duplicado são conhecidos por causar problemas para tecnologias assistivas quando elas estão tentando interagir com o conteúdo.
    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a possibilidade de usar um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -215,9 +221,9 @@ var ptBR = { TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis precisam de marcação HTML que indique as células de cabeçalho e as células de dados que definem seu relacionamento. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. As tabelas devem ser usadas somente para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os cabeçalhos semânticos, como Heading 2 ou Heading 3, devem ser usados somente para seções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir sua relação. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. Lembre-se de que as tabelas devem ser usadas somente para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    A taxa de contraste é %(cratio) para o texto a seguir: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Taxa de contraste: %(cratio)', + CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/ptBR.umd.js b/dist/js/lang/ptBR.umd.js index 5b745bb6..071c2300 100644 --- a/dist/js/lang/ptBR.umd.js +++ b/dist/js/lang/ptBR.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Ausente', PAGE_ISSUES: 'Problemas de página', SETTINGS: 'Configurações', CONTRAST: 'Contraste', @@ -156,7 +162,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo usado. Os cabeçalhos nunca devem pular níveis ou ir de Cabeçalho %(prevLevel) para Cabeçalho %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, exclua essa linha ou altere seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título em uma página geralmente deve ser o Título 1 ou o Título 2. O Título 1 deve ser o início da seção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta de título 1. O título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se esse não for um cabeçalho, altere seu formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se ela não for decorativa.', @@ -165,37 +171,37 @@ LINK_EMPTY: 'Remova links vazios sem nenhum texto.', LINK_EMPTY_LABELLEDBY: 'O link possui um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'O link não tem texto discernível que seja visível para leitores de tela e outras tecnologias assistivas. Para corrigir:
    • Adicione um texto conciso que descreva para onde o link o leva.
    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(error)
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(error)
    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
    ', - LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(ERROR)
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(ERROR)
    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
    ', + LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas da Web ou recursos somente on-line, o Guia de Estilo APA recomenda o uso de links descritivos, envolvendo o URL ou DOI do trabalho em seu título. URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva.', - NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link
    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', - FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
    Exemplo: Relatório executivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link.
    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', + FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
    Exemplo: Relatório executivo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está sendo usada como um link com texto ao redor, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está sendo usada como um link, mas está faltando o texto alternativo! Certifique-se de que o texto alternativo descreva para onde o link leva você.', MISSING_ALT_MESSAGE: 'Texto alternativo ausente! Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(erro).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link possui aria-hidden="true", mas ainda é focável pelo teclado. Se você pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem no link está marcada como decorativa e não há texto de link. Adicione um texto alternativo à imagem que descreva o destino do link.', LINK_IMAGE_HAS_TEXT: 'A imagem é marcada como decorativa, embora o link esteja usando o texto ao redor como um rótulo descritivo.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
    Texto alternativo: %(altText)
    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
    ALT %(ALT_TEXT)
    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem é marcada como decorativa e será ignorada pela tecnologia assistiva. Se a imagem transmitir uma história, um clima ou informações importantes, não se esqueça de adicionar um texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem está sem texto alternativo. Adicione o texto alternativo para fornecer um nome acessível. Por exemplo: Search ou Submit.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados, a menos que sejam especificamente necessários, pois são fáceis de serem ativados por engano.
    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não há rótulo associado a esse input. Adicione um atributo for ao rótulo que corresponda ao id desse input.
    O ID desse input é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não há rótulo associado a essa entrada. Adicione um id a essa entrada e adicione um atributo for correspondente ao rótulo.', EMBED_VIDEO: 'Certifique-se de que todos os vídeos tenham legendas ocultas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório do Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -204,16 +210,16 @@ EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não foi possível verificar o conteúdo incorporado. Certifique-se de que as imagens tenham texto alternativo, os vídeos tenham legendas, o texto tenha contraste suficiente e os componentes interativos sejam acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focalizáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
    Esse link aponta para:
    %(el)', + QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
    Esse link aponta para:
    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As tags negrito e itálico têm significado semântico e não devem ser usadas para destacar parágrafos inteiros. O texto em negrito deve ser usado para dar forte ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
    • Se este for um documento, considere convertê-lo em uma página da Web.
    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', + QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
    • Se este for um documento, considere convertê-lo em uma página da Web.
    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos vinculados são considerados conteúdo da Web e também devem ser acessíveis. Revise manualmente este documento. ', QA_PAGE_LANGUAGE: 'O idioma da página não foi declarado! Por favor, declare o idioma na tag HTML.', QA_PAGE_TITLE: 'Título da página ausente! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(sanitizedText)
    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isso é um título? %(boldtext)
    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(TEXT)
    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isso é um título? %(TEXT)
    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em letras maiúsculas. Alguns leitores de tela podem interpretar o texto em letras maiúsculas como um acrônimo e lerão cada letra individualmente. Além disso, algumas pessoas acham que o texto em letras maiúsculas é mais difícil de ler e pode dar a impressão de estar GRITANDO.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Erros de ID duplicado são conhecidos por causar problemas para tecnologias assistivas quando elas estão tentando interagir com o conteúdo.
    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a possibilidade de usar um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -221,9 +227,9 @@ TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis precisam de marcação HTML que indique as células de cabeçalho e as células de dados que definem seu relacionamento. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. As tabelas devem ser usadas somente para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os cabeçalhos semânticos, como Heading 2 ou Heading 3, devem ser usados somente para seções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir sua relação. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. Lembre-se de que as tabelas devem ser usadas somente para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    A taxa de contraste é %(cratio) para o texto a seguir: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Taxa de contraste: %(cratio)', + CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/ptPT.js b/dist/js/lang/ptPT.js index 08518779..22f850d8 100644 --- a/dist/js/lang/ptPT.js +++ b/dist/js/lang/ptPT.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ptPT = { OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Em falta', PAGE_ISSUES: 'Questões de página', SETTINGS: 'Definições', CONTRAST: 'Contraste', @@ -152,7 +158,7 @@ var ptPT = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo utilizado. Os títulos nunca devem saltar níveis, ou ir de Título %(prevLevel) para Título %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, elimine esta linha ou altere o seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título de uma página deve ser normalmente o Título 1 ou o Título 2. O Título 1 deve ser o início da secção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta o Título 1. O Título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se não for um cabeçalho, altere o formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se esta não for decorativa.', @@ -161,37 +167,37 @@ var ptPT = { LINK_EMPTY: 'Remover ligações vazias sem qualquer texto.', LINK_EMPTY_LABELLEDBY: 'A ligação tem um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'A ligação não tem texto discernível que seja visível para leitores de ecrã e outras tecnologias de assistência. Para corrigir:
    • Adicione um texto conciso que descreva para onde o link o leva.
    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(error)
    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(error)
    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
    ', - LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(ERROR)
    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(ERROR)
    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
    ', + LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas Web ou recursos apenas em linha, o Guia de Estilo APA recomenda a utilização de hiperligações descritivas, envolvendo o URL ou DOI do trabalho no seu título. URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência.', NEW_TAB_WARNING: 'A ligação abre num novo separador ou janela sem aviso. Se o fizer, pode ser desorientador, especialmente para as pessoas que têm dificuldade em percecionar conteúdos visuais. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que a hiperligação abre numa nova janela no texto da hiperligação
    Dica! Conheça as melhores práticas: abrir ligações em novas janelas e separadores do browser.', - FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
    Exemplo: Relatório executivo (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
    Exemplo: Relatório executivo (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está a ser utilizada como uma ligação com texto envolvente, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está a ser utilizada como uma ligação, mas falta o texto alternativo! Certifique-se de que o texto alternativo descreve para onde a hiperligação o leva.', MISSING_ALT_MESSAGE: 'Texto alternativo em falta! Se a imagem transmite uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(erro).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link tem aria-hidden="true", mas ainda é focável pelo teclado. Se pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem na hiperligação está marcada como decorativa e não tem texto de hiperligação. Adicione um texto alternativo à imagem que descreva o destino da hiperligação.', LINK_IMAGE_HAS_TEXT: 'A imagem está marcada como decorativa, embora a ligação esteja a utilizar o texto circundante como etiqueta descritiva.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
    Texto alternativo: %(altText)
    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
    ALT %(ALT_TEXT)
    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência. Se a imagem transmitir uma história, um estado de espírito ou informações importantes, não se esqueça de adicionar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem não tem texto alternativo. Adicione texto alternativo para fornecer um nome acessível. Por exemplo: Pesquisar ou Submeter.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados a menos que sejam especificamente necessários, pois são fáceis de ativar por engano.
    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não existe um rótulo associado a esta entrada. Adicione um atributo for ao rótulo que corresponde ao id desta entrada.
    O ID para esta entrada é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não existe uma etiqueta associada a esta entrada. Adicione um id a esta entrada e adicione um atributo for correspondente à etiqueta.', EMBED_VIDEO: 'Por favor, certifique-se de que todos os vídeos têm legendas fechadas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório de Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -200,16 +206,16 @@ var ptPT = { EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva o seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não é possível verificar o conteúdo incorporado. Certifique-se de que as imagens têm texto alternativo, os vídeos têm legendas, o texto tem contraste suficiente e os componentes interactivos são acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
    Este link aponta para:
    %(el)', + QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
    Este link aponta para:
    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As etiquetas de negrito e itálico têm um significado semântico e não devem ser utilizadas para destacar parágrafos inteiros. O texto em negrito deve ser utilizado para dar ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', - QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', + QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', + QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', QA_PAGE_LANGUAGE: 'Idioma da página não declarado! Por favor declare o idioma na etiqueta HTML.', QA_PAGE_TITLE: 'Título da página em falta! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(sanitizedText)
    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isto é um título? %(boldtext)
    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(TEXT)
    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isto é um título? %(TEXT)
    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em maiúsculas. Alguns leitores de ecrã podem interpretar o texto em maiúsculas como um acrónimo e lerão cada letra individualmente. Além disso, algumas pessoas consideram o texto em maiúsculas mais difícil de ler e pode dar a impressão de estar a GRITAR.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Os erros de ID duplicada são conhecidos por causar problemas às tecnologias de assistência quando estas estão a tentar interagir com o conteúdo.
    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a utilização de um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -217,9 +223,9 @@ var ptPT = { TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis necessitam de marcação HTML que indique as células de cabeçalho e as células de dados que definem a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de apoio. As tabelas devem ser utilizadas apenas para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os títulos semânticos, como o Título 2 ou o Título 3, só devem ser utilizados para secções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de assistência. Lembre-se de que as tabelas devem ser usadas apenas para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    A taxa de contraste é %(cratio) para o seguinte texto: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, reveja: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
    Relação de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, reveja: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/ptPT.umd.js b/dist/js/lang/ptPT.umd.js index 8b4f0f66..5c6289c2 100644 --- a/dist/js/lang/ptPT.umd.js +++ b/dist/js/lang/ptPT.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Em falta', PAGE_ISSUES: 'Questões de página', SETTINGS: 'Definições', CONTRAST: 'Contraste', @@ -158,7 +164,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo utilizado. Os títulos nunca devem saltar níveis, ou ir de Título %(prevLevel) para Título %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, elimine esta linha ou altere o seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título de uma página deve ser normalmente o Título 1 ou o Título 2. O Título 1 deve ser o início da secção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta o Título 1. O Título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se não for um cabeçalho, altere o formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se esta não for decorativa.', @@ -167,37 +173,37 @@ LINK_EMPTY: 'Remover ligações vazias sem qualquer texto.', LINK_EMPTY_LABELLEDBY: 'A ligação tem um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'A ligação não tem texto discernível que seja visível para leitores de ecrã e outras tecnologias de assistência. Para corrigir:
    • Adicione um texto conciso que descreva para onde o link o leva.
    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(error)
    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(error)
    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
    ', - LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(ERROR)
    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(ERROR)
    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
    ', + LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas Web ou recursos apenas em linha, o Guia de Estilo APA recomenda a utilização de hiperligações descritivas, envolvendo o URL ou DOI do trabalho no seu título. URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência.', NEW_TAB_WARNING: 'A ligação abre num novo separador ou janela sem aviso. Se o fizer, pode ser desorientador, especialmente para as pessoas que têm dificuldade em percecionar conteúdos visuais. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que a hiperligação abre numa nova janela no texto da hiperligação
    Dica! Conheça as melhores práticas: abrir ligações em novas janelas e separadores do browser.', - FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
    Exemplo: Relatório executivo (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
    Exemplo: Relatório executivo (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está a ser utilizada como uma ligação com texto envolvente, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está a ser utilizada como uma ligação, mas falta o texto alternativo! Certifique-se de que o texto alternativo descreve para onde a hiperligação o leva.', MISSING_ALT_MESSAGE: 'Texto alternativo em falta! Se a imagem transmite uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(error).
    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(erro).
    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante.
    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link tem aria-hidden="true", mas ainda é focável pelo teclado. Se pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem na hiperligação está marcada como decorativa e não tem texto de hiperligação. Adicione um texto alternativo à imagem que descreva o destino da hiperligação.', LINK_IMAGE_HAS_TEXT: 'A imagem está marcada como decorativa, embora a ligação esteja a utilizar o texto circundante como etiqueta descritiva.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
    Texto alternativo: %(altText)
    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
    ALT %(ALT_TEXT)
    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
    Saiba mais: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência. Se a imagem transmitir uma história, um estado de espírito ou informações importantes, não se esqueça de adicionar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem não tem texto alternativo. Adicione texto alternativo para fornecer um nome acessível. Por exemplo: Pesquisar ou Submeter.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados a menos que sejam especificamente necessários, pois são fáceis de ativar por engano.
    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não existe um rótulo associado a esta entrada. Adicione um atributo for ao rótulo que corresponde ao id desta entrada.
    O ID para esta entrada é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não existe uma etiqueta associada a esta entrada. Adicione um id a esta entrada e adicione um atributo for correspondente à etiqueta.', EMBED_VIDEO: 'Por favor, certifique-se de que todos os vídeos têm legendas fechadas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório de Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -206,16 +212,16 @@ EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva o seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não é possível verificar o conteúdo incorporado. Certifique-se de que as imagens têm texto alternativo, os vídeos têm legendas, o texto tem contraste suficiente e os componentes interactivos são acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
    Este link aponta para:
    %(el)', + QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
    Este link aponta para:
    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As etiquetas de negrito e itálico têm um significado semântico e não devem ser utilizadas para destacar parágrafos inteiros. O texto em negrito deve ser utilizado para dar ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', - QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', + QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', + QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', QA_PAGE_LANGUAGE: 'Idioma da página não declarado! Por favor declare o idioma na etiqueta HTML.', QA_PAGE_TITLE: 'Título da página em falta! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(sanitizedText)
    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isto é um título? %(boldtext)
    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(TEXT)
    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isto é um título? %(TEXT)
    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em maiúsculas. Alguns leitores de ecrã podem interpretar o texto em maiúsculas como um acrónimo e lerão cada letra individualmente. Além disso, algumas pessoas consideram o texto em maiúsculas mais difícil de ler e pode dar a impressão de estar a GRITAR.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Os erros de ID duplicada são conhecidos por causar problemas às tecnologias de assistência quando estas estão a tentar interagir com o conteúdo.
    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a utilização de um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -223,9 +229,9 @@ TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis necessitam de marcação HTML que indique as células de cabeçalho e as células de dados que definem a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de apoio. As tabelas devem ser utilizadas apenas para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os títulos semânticos, como o Título 2 ou o Título 3, só devem ser utilizados para secções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de assistência. Lembre-se de que as tabelas devem ser usadas apenas para dados tabulares.
    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    A taxa de contraste é %(cratio) para o seguinte texto: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, reveja: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
    Relação de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
    Por favor, reveja: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
    Razão de contraste %(RATIO)', }, }; diff --git a/dist/js/lang/ro.js b/dist/js/lang/ro.js index 0f7ead4f..b950b3e2 100644 --- a/dist/js/lang/ro.js +++ b/dist/js/lang/ro.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ro = { OFF: 'Oprit', ALERT_TEXT: 'Alertă', ALERT_CLOSE: 'Închideți', - OUTLINE: 'Schiță de pagină', + OUTLINE: 'Schiță', + ALT: 'ALT', + IMAGES: 'Imagini', + EDIT: 'Editare', + IMAGES_NOT_FOUND: 'Nu s-au găsit imagini.', + DECORATIVE: 'Decorativ', + MISSING: 'Lipsă', PAGE_ISSUES: 'Probleme de pagină', SETTINGS: 'Setări', CONTRAST: 'Contrast', @@ -148,76 +154,76 @@ var ro = { LANG_GOOD: 'Bun', READABILITY_NO_P_OR_LI_MESSAGE: 'Nu se poate calcula scorul de lizibilitate. Nu s-a găsit niciun paragraf <p> sau conținut de listă <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nu există suficient conținut pentru a calcula scorul de lizibilitate.', - HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Heading %(prevLevel) la Heading %(level).', - HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Heading %(level) în Normal sau Paragraf.', - HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
    Numărul de caractere: %(headingLength).', + HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Antet %(prevLevel) la Antet %(level).', + HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Antet %(level) în Normal sau Paragraf.', + HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
    %(HEADING_LENGTH) Caractere', HEADING_FIRST: 'Primul titlu de pe o pagină trebuie să fie, de obicei, un titlu 1 sau 2. Titlul 1 ar trebui să fie începutul secțiunii principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', HEADING_MISSING_ONE: 'Lipsește titlul 1. Titlul 1 ar trebui să fie începutul zonei principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', - HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Heading %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', + HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Antet %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', PANEL_HEADING_MISSING_ONE: 'Lipsește rubrica 1!', PANEL_NO_HEADINGS: 'Nu s-au găsit antete.', LINK_EMPTY: 'Eliminați legăturile goale fără text.', LINK_EMPTY_LABELLEDBY: 'Linkul are o valoare pentru aria-labelledby care este goală sau nu se potrivește cu valoarea atributului id al altui element de pe pagină.', LINK_EMPTY_LINK_NO_LABEL: 'Linkul nu are un text vizibil pentru cititorii de ecran și alte tehnologii de asistență. Pentru a remedia problema:
    • Adaugați un text concis care să descrie unde vă duce linkul.
    • Dacă este un link cu pictograme sau SVG, este probabil să lipsească o etichetă descriptivă.
    • Dacă credeți că acest link este o eroare datorată unui bug de copy/paste, luați în considerare ștergerea lui.
    .', - LINK_LABEL: 'Etichetă de legătură: %(sanitizedText)', - LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(error)
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', - LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(error)
    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
    ', - LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', + LINK_LABEL: 'Etichetă %(TEXT)', + LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(ERROR)
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', + LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(ERROR)
    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
    ', + LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', LINK_DOI: 'În cazul paginilor web sau al resurselor exclusiv online, ghidul APA Style recomandă utilizarea de linkuri descriptive prin includerea URL-ului sau DOI-ului lucrării în jurul titlului acesteia. URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență.', NEW_TAB_WARNING: 'Legătura se deschide într-o fereastră sau într-un tab nou fără avertisment. Acest lucru poate fi dezorientant, în special pentru persoanele care au dificultăți în perceperea conținutului vizual. În al doilea rând, nu este întotdeauna o practică bună să controlați experiența unei persoane sau să luați decizii în locul ei. Indicați că link-ul se deschide într-o fereastră nouă în textul linkului
    Tip! Învățați cele mai bune practici: deschiderea linkurilor în ferestre și file noi de browser..', - FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
    Exemplu: Raport executiv (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(sanitizedText).', + FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
    Exemplu: Raport executiv (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Imaginea este utilizată ca link cu text în jur, deși atributul alt ar trebui să fie marcat ca fiind decorativ sau nul.', MISSING_ALT_LINK_MESSAGE: 'Imaginea este folosită ca link, dar lipsește textul alt! Vă rugăm să vă asigurați că textul alternativ descrie unde vă duce link-ul.', MISSING_ALT_MESSAGE: 'Lipsește alt text! Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(eroare).
    Text alternativ: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
    Text alternativ: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(error).
    Text alternativ: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(altText).', - ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant.
    Text alternativ: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link-ul are aria-hidden="true", dar este încă focalizabil cu tastatura. Dacă intenționați să ascundeți un link redundant sau duplicat, adăugați și tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Imaginea din cadrul linkului este marcată ca fiind decorativă și nu există text de link. Vă rugăm să adăugați la imagine un text alt care să descrie destinația linkului.', LINK_IMAGE_HAS_TEXT: 'Imaginea este marcată ca fiind decorativă, deși link-ul folosește textul din jur ca etichetă descriptivă.', - LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
    Text alt (%(altLength) caractere): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
    Text alternativ: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
    Text alternativ: %(altText)
    Etichetă de legătură: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.
    Textulalt: %(altText)', + LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
    ALT %(altLength) Caractere %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
    ALT %(ALT_TEXT)
    Etichetă %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență. Dacă imaginea transmite o poveste, o stare de spirit sau informații importante - asigurați-vă că adăugați text alternativ.', - IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
    TextAlt (%(altLength) caractere): %(altText)', - IMAGE_PASS: 'Text alternativ: %(altText)', + IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
    ALT %(altLength) Caractere %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Butonul de imagine nu are text alternativ. Vă rugăm să adăugați un alt text pentru a oferi un nume accesibil. De exemplu: Cercetare sau Submitere.', LABELS_INPUT_RESET_MESSAGE: 'Butoanele de resetare nu ar trebui nu utilizate decât dacă sunt necesare în mod specific, deoarece sunt ușor de activat din greșeală.
    Tip! Aflați de ce Butoanele Reset și Cancel ridică probleme de utilizare.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
    Etichetă de intrare: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
    Etichetă %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Adăugați un atribut for la eticheta care se potrivește cu id al acestei intrări.
    ID-ul pentru această intrare este: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Vă rugăm să adăugați un id la această intrare și să adăugați un atribut for corespunzător etichetei.', EMBED_VIDEO: 'Vă rugăm să vă asigurați că toate videoclipurile au subtitrare. Furnizarea de subtitrări pentru tot conținutul audio și video este o cerință obligatorie de nivel A. Subtitrările vin în sprijinul persoanelor care sunt D/surde sau cu deficiențe de auz.', EMBED_AUDIO: 'Vă rugăm să vă asigurați că furnizați o transcriere pentru toate podcasturile. Furnizarea de transcrieri pentru conținutul audio este o cerință obligatorie de nivel A. Transcrierile vin în sprijinul persoanelor cu deficiențe de auz sau cu deficiențe de auz, dar pot fi benefice pentru toată lumea. Luați în considerare plasarea transcrierii mai jos sau în cadrul unui panou acordeon.', EMBED_DATA_VIZ: 'Widgeturile de vizualizare a datelor de acest tip sunt adesea problematice pentru persoanele care utilizează o tastatură sau un cititor de ecran pentru a naviga și pot prezenta dificultăți semnificative pentru persoanele cu vedere slabă sau daltonism. Se recomandă să furnizați aceleași informații într-un format alternativ (text sau tabel) sub widget.
    Aflați mai multe despre imagini complexe..', - EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames..', + EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames.', EMBED_GENERAL_WARNING: 'Nu se poate verifica conținutul încorporat. Vă rugăm să vă asigurați că imaginile au text alt, videoclipurile au legende, textul are un contrast suficient, iar componentele interactive sunt accesibile la tastatură..', EMBED_UNFOCUSABLE: '<iframe> cu elemente nefocalizabile nu ar trebui să aibă tabindex="-1". Conținutul încorporat nu va fi accesibil prin tastatură.', - QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
    Acest link trimite la:
    %(el).', + QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
    Acest link trimite la:
    %(LINK).', QA_IN_PAGE_LINK: 'Legătură internă ruptă. Destinația linkului nu se potrivește cu niciun element de pe această pagină.', QA_BAD_ITALICS: 'Etichetele bold și italic au o semnificație semantică și nu trebuie nu folosite pentru a evidenția paragrafe întregi. Textul cu caractere aldine trebuie folosit pentru a oferi o accentuare puternică asupra unui cuvânt sau a unei fraze. Italicul ar trebui utilizat pentru a evidenția nume proprii (de exemplu, titluri de cărți și articole), cuvinte străine, ghilimele. Citatele lungi ar trebui să fie formatate ca un blockquote.', - QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', + QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', QA_DOCUMENT: 'Imposibil să verificați dacă documentul este accesibil. Documentele legate sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. Vă rugăm să verificați manual acest document. .', QA_PAGE_LANGUAGE: 'Limba paginii nu este declarată! Vă rugăm declarați limba în tag-ul HTML.', QA_PAGE_TITLE: 'Lipsește titlul paginii! Vă rugăm să furnizați un titlu pagină.', - QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(sanitizedText)

    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', - QA_FAKE_HEADING: 'E un titlu? %(boldtext)
    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', - QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice..', + QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(TEXT)
    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', + QA_FAKE_HEADING: 'E un titlu? %(TEXT)
    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', + QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice.', QA_UPPERCASE_WARNING: 'Am găsit toate majusculele. Unele cititoare de ecran pot interpreta textul cu majuscule ca fiind un acronim și vor citi fiecare literă în parte. În plus, unele persoane consideră că toate majusculele sunt mai greu de citit și pot da impresia că strigă.', - QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
    Vă rugăm să eliminați sau să modificați următorul ID: %(id).', + QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
    Vă rugăm să eliminați sau să modificați următorul ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Textul subliniat poate fi confundat cu linkurile. Luați în considerare utilizarea unui stil diferit, cum ar fi <strong>importanță</strong> sau <em>accentuare</em>.', QA_SUBSCRIPT_WARNING: 'Opțiunile de formatare subscript și superscript ar trebui utilizate numai pentru a modifica poziția textului pentru convenții sau standarde tipografice. Nu ar trebui nu să fie utilizate exclusiv în scopuri de prezentare sau de aspect. Formatarea unor propoziții întregi ridică probleme de lizibilitate. Cazurile de utilizare adecvate ar include afișarea exponenților, a numerelor ordinale, cum ar fi 4th în loc de fourth, și a formulelor chimice (de exemplu, H2O).', TABLES_MISSING_HEADINGS: 'Lipsesc capetele de tabel! Tabelele accesibile au nevoie de marcaje HTML care să indice celulele de antet și celulele de date care definesc relația dintre ele. Aceste informații oferă un context pentru persoanele care utilizează tehnologia de asistență. Tabelele ar trebui să fie utilizate numai pentru date tabelare.
    Aflați mai multe despre tablouri accesibile.', TABLES_SEMANTIC_HEADING: 'Titlurile semantice, cum ar fi Heading 2 sau Heading 3, ar trebui utilizate numai pentru secțiuni de conținut; nu în tabelele HTML. Indicați titlurile de tabel folosind în schimb elementul <th>.
    Aflați mai multe despre tablouri accesibile.', TABLES_EMPTY_HEADING: 'S-a găsit un antet de tabel gol! Anteturile de tabel nu ar trebui să fie niciodată goale. Este important să se desemneze antetele de rând și/sau de coloană pentru a transmite relația dintre ele. Aceste informații oferă context persoanelor care utilizează tehnologia de asistență. Vă rugăm să rețineți că tabelele trebuie utilizate numai pentru date tabelare.
    Aflați mai multe despre tablouri accesibile.', - CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raportul de contrast este %(cratio) pentru următorul text: %(sanitizedText).', - CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Vă rugăm să revizuiți: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast: %(cratio).', + CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Vă rugăm să revizuiți: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast %(RATIO)', }, }; diff --git a/dist/js/lang/ro.umd.js b/dist/js/lang/ro.umd.js index 52ec55e5..a0b22a3b 100644 --- a/dist/js/lang/ro.umd.js +++ b/dist/js/lang/ro.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Oprit', ALERT_TEXT: 'Alertă', ALERT_CLOSE: 'Închideți', - OUTLINE: 'Schiță de pagină', + OUTLINE: 'Schiță', + ALT: 'ALT', + IMAGES: 'Imagini', + EDIT: 'Editare', + IMAGES_NOT_FOUND: 'Nu s-au găsit imagini.', + DECORATIVE: 'Decorativ', + MISSING: 'Lipsă', PAGE_ISSUES: 'Probleme de pagină', SETTINGS: 'Setări', CONTRAST: 'Contrast', @@ -154,76 +160,76 @@ LANG_GOOD: 'Bun', READABILITY_NO_P_OR_LI_MESSAGE: 'Nu se poate calcula scorul de lizibilitate. Nu s-a găsit niciun paragraf <p> sau conținut de listă <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nu există suficient conținut pentru a calcula scorul de lizibilitate.', - HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Heading %(prevLevel) la Heading %(level).', - HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Heading %(level) în Normal sau Paragraf.', - HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
    Numărul de caractere: %(headingLength).', + HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Antet %(prevLevel) la Antet %(level).', + HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Antet %(level) în Normal sau Paragraf.', + HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
    %(HEADING_LENGTH) Caractere', HEADING_FIRST: 'Primul titlu de pe o pagină trebuie să fie, de obicei, un titlu 1 sau 2. Titlul 1 ar trebui să fie începutul secțiunii principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', HEADING_MISSING_ONE: 'Lipsește titlul 1. Titlul 1 ar trebui să fie începutul zonei principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', - HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Heading %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', + HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Antet %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', PANEL_HEADING_MISSING_ONE: 'Lipsește rubrica 1!', PANEL_NO_HEADINGS: 'Nu s-au găsit antete.', LINK_EMPTY: 'Eliminați legăturile goale fără text.', LINK_EMPTY_LABELLEDBY: 'Linkul are o valoare pentru aria-labelledby care este goală sau nu se potrivește cu valoarea atributului id al altui element de pe pagină.', LINK_EMPTY_LINK_NO_LABEL: 'Linkul nu are un text vizibil pentru cititorii de ecran și alte tehnologii de asistență. Pentru a remedia problema:
    • Adaugați un text concis care să descrie unde vă duce linkul.
    • Dacă este un link cu pictograme sau SVG, este probabil să lipsească o etichetă descriptivă.
    • Dacă credeți că acest link este o eroare datorată unui bug de copy/paste, luați în considerare ștergerea lui.
    .', - LINK_LABEL: 'Etichetă de legătură: %(sanitizedText)', - LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(error)
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', - LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(error)
    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
    ', - LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', + LINK_LABEL: 'Etichetă %(TEXT)', + LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(ERROR)
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', + LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(ERROR)
    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
    ', + LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', LINK_DOI: 'În cazul paginilor web sau al resurselor exclusiv online, ghidul APA Style recomandă utilizarea de linkuri descriptive prin includerea URL-ului sau DOI-ului lucrării în jurul titlului acesteia. URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență.', NEW_TAB_WARNING: 'Legătura se deschide într-o fereastră sau într-un tab nou fără avertisment. Acest lucru poate fi dezorientant, în special pentru persoanele care au dificultăți în perceperea conținutului vizual. În al doilea rând, nu este întotdeauna o practică bună să controlați experiența unei persoane sau să luați decizii în locul ei. Indicați că link-ul se deschide într-o fereastră nouă în textul linkului
    Tip! Învățați cele mai bune practici: deschiderea linkurilor în ferestre și file noi de browser..', - FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
    Exemplu: Raport executiv (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(sanitizedText).', + FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
    Exemplu: Raport executiv (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Imaginea este utilizată ca link cu text în jur, deși atributul alt ar trebui să fie marcat ca fiind decorativ sau nul.', MISSING_ALT_LINK_MESSAGE: 'Imaginea este folosită ca link, dar lipsește textul alt! Vă rugăm să vă asigurați că textul alternativ descrie unde vă duce link-ul.', MISSING_ALT_MESSAGE: 'Lipsește alt text! Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(eroare).
    Text alternativ: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
    Text alternativ: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(error).
    Text alternativ: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(altText).', - ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant.
    Text alternativ: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link-ul are aria-hidden="true", dar este încă focalizabil cu tastatura. Dacă intenționați să ascundeți un link redundant sau duplicat, adăugați și tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Imaginea din cadrul linkului este marcată ca fiind decorativă și nu există text de link. Vă rugăm să adăugați la imagine un text alt care să descrie destinația linkului.', LINK_IMAGE_HAS_TEXT: 'Imaginea este marcată ca fiind decorativă, deși link-ul folosește textul din jur ca etichetă descriptivă.', - LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
    Text alt (%(altLength) caractere): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
    Text alternativ: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
    Text alternativ: %(altText)
    Etichetă de legătură: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.
    Textulalt: %(altText)', + LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
    ALT %(altLength) Caractere %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
    ALT %(ALT_TEXT)
    Etichetă %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
    Aflați mai multe: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență. Dacă imaginea transmite o poveste, o stare de spirit sau informații importante - asigurați-vă că adăugați text alternativ.', - IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
    TextAlt (%(altLength) caractere): %(altText)', - IMAGE_PASS: 'Text alternativ: %(altText)', + IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
    ALT %(altLength) Caractere %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Butonul de imagine nu are text alternativ. Vă rugăm să adăugați un alt text pentru a oferi un nume accesibil. De exemplu: Cercetare sau Submitere.', LABELS_INPUT_RESET_MESSAGE: 'Butoanele de resetare nu ar trebui nu utilizate decât dacă sunt necesare în mod specific, deoarece sunt ușor de activat din greșeală.
    Tip! Aflați de ce Butoanele Reset și Cancel ridică probleme de utilizare.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
    Etichetă de intrare: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
    Etichetă %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Adăugați un atribut for la eticheta care se potrivește cu id al acestei intrări.
    ID-ul pentru această intrare este: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Vă rugăm să adăugați un id la această intrare și să adăugați un atribut for corespunzător etichetei.', EMBED_VIDEO: 'Vă rugăm să vă asigurați că toate videoclipurile au subtitrare. Furnizarea de subtitrări pentru tot conținutul audio și video este o cerință obligatorie de nivel A. Subtitrările vin în sprijinul persoanelor care sunt D/surde sau cu deficiențe de auz.', EMBED_AUDIO: 'Vă rugăm să vă asigurați că furnizați o transcriere pentru toate podcasturile. Furnizarea de transcrieri pentru conținutul audio este o cerință obligatorie de nivel A. Transcrierile vin în sprijinul persoanelor cu deficiențe de auz sau cu deficiențe de auz, dar pot fi benefice pentru toată lumea. Luați în considerare plasarea transcrierii mai jos sau în cadrul unui panou acordeon.', EMBED_DATA_VIZ: 'Widgeturile de vizualizare a datelor de acest tip sunt adesea problematice pentru persoanele care utilizează o tastatură sau un cititor de ecran pentru a naviga și pot prezenta dificultăți semnificative pentru persoanele cu vedere slabă sau daltonism. Se recomandă să furnizați aceleași informații într-un format alternativ (text sau tabel) sub widget.
    Aflați mai multe despre imagini complexe..', - EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames..', + EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames.', EMBED_GENERAL_WARNING: 'Nu se poate verifica conținutul încorporat. Vă rugăm să vă asigurați că imaginile au text alt, videoclipurile au legende, textul are un contrast suficient, iar componentele interactive sunt accesibile la tastatură..', EMBED_UNFOCUSABLE: '<iframe> cu elemente nefocalizabile nu ar trebui să aibă tabindex="-1". Conținutul încorporat nu va fi accesibil prin tastatură.', - QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
    Acest link trimite la:
    %(el).', + QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
    Acest link trimite la:
    %(LINK).', QA_IN_PAGE_LINK: 'Legătură internă ruptă. Destinația linkului nu se potrivește cu niciun element de pe această pagină.', QA_BAD_ITALICS: 'Etichetele bold și italic au o semnificație semantică și nu trebuie nu folosite pentru a evidenția paragrafe întregi. Textul cu caractere aldine trebuie folosit pentru a oferi o accentuare puternică asupra unui cuvânt sau a unei fraze. Italicul ar trebui utilizat pentru a evidenția nume proprii (de exemplu, titluri de cărți și articole), cuvinte străine, ghilimele. Citatele lungi ar trebui să fie formatate ca un blockquote.', - QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', + QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', QA_DOCUMENT: 'Imposibil să verificați dacă documentul este accesibil. Documentele legate sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. Vă rugăm să verificați manual acest document. .', QA_PAGE_LANGUAGE: 'Limba paginii nu este declarată! Vă rugăm declarați limba în tag-ul HTML.', QA_PAGE_TITLE: 'Lipsește titlul paginii! Vă rugăm să furnizați un titlu pagină.', - QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(sanitizedText)

    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', - QA_FAKE_HEADING: 'E un titlu? %(boldtext)
    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', - QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice..', + QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(TEXT)
    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', + QA_FAKE_HEADING: 'E un titlu? %(TEXT)
    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', + QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice.', QA_UPPERCASE_WARNING: 'Am găsit toate majusculele. Unele cititoare de ecran pot interpreta textul cu majuscule ca fiind un acronim și vor citi fiecare literă în parte. În plus, unele persoane consideră că toate majusculele sunt mai greu de citit și pot da impresia că strigă.', - QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
    Vă rugăm să eliminați sau să modificați următorul ID: %(id).', + QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
    Vă rugăm să eliminați sau să modificați următorul ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Textul subliniat poate fi confundat cu linkurile. Luați în considerare utilizarea unui stil diferit, cum ar fi <strong>importanță</strong> sau <em>accentuare</em>.', QA_SUBSCRIPT_WARNING: 'Opțiunile de formatare subscript și superscript ar trebui utilizate numai pentru a modifica poziția textului pentru convenții sau standarde tipografice. Nu ar trebui nu să fie utilizate exclusiv în scopuri de prezentare sau de aspect. Formatarea unor propoziții întregi ridică probleme de lizibilitate. Cazurile de utilizare adecvate ar include afișarea exponenților, a numerelor ordinale, cum ar fi 4th în loc de fourth, și a formulelor chimice (de exemplu, H2O).', TABLES_MISSING_HEADINGS: 'Lipsesc capetele de tabel! Tabelele accesibile au nevoie de marcaje HTML care să indice celulele de antet și celulele de date care definesc relația dintre ele. Aceste informații oferă un context pentru persoanele care utilizează tehnologia de asistență. Tabelele ar trebui să fie utilizate numai pentru date tabelare.
    Aflați mai multe despre tablouri accesibile.', TABLES_SEMANTIC_HEADING: 'Titlurile semantice, cum ar fi Heading 2 sau Heading 3, ar trebui utilizate numai pentru secțiuni de conținut; nu în tabelele HTML. Indicați titlurile de tabel folosind în schimb elementul <th>.
    Aflați mai multe despre tablouri accesibile.', TABLES_EMPTY_HEADING: 'S-a găsit un antet de tabel gol! Anteturile de tabel nu ar trebui să fie niciodată goale. Este important să se desemneze antetele de rând și/sau de coloană pentru a transmite relația dintre ele. Aceste informații oferă context persoanelor care utilizează tehnologia de asistență. Vă rugăm să rețineți că tabelele trebuie utilizate numai pentru date tabelare.
    Aflați mai multe despre tablouri accesibile.', - CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raportul de contrast este %(cratio) pentru următorul text: %(sanitizedText).', - CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Vă rugăm să revizuiți: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast: %(cratio).', + CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Vă rugăm să revizuiți: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
    Raport de contrast %(RATIO)', }, }; diff --git a/dist/js/lang/sk.js b/dist/js/lang/sk.js index 6b60804d..bf17ad3c 100644 --- a/dist/js/lang/sk.js +++ b/dist/js/lang/sk.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var sk = { OFF: 'Vypnuté', ALERT_TEXT: 'Upozornenie', ALERT_CLOSE: 'Zatvoriť', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Náčrt', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upraviť', + IMAGES_NOT_FOUND: 'Žiadne obrázky nenájdené.', + DECORATIVE: 'Dekoratívny', + MISSING: 'Chýbajúci', PAGE_ISSUES: 'Problémy so stránkami', SETTINGS: 'Nastavenia', CONTRAST: 'Kontrast', @@ -160,46 +166,46 @@ var sk = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatok obsahu na výpočet skóre čitateľnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá nepokračujúca úroveň záhlavia. Nadpisy by nikdy nemali preskakovať úrovne alebo prechádzať z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nájdená prázdna položka! Ak to chcete opraviť, odstráňte tento riadok alebo zmeňte jeho formát z Head %(level) na Normal alebo Paragraph.', - HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
    Počet znakov: %(headingLength)', + HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvý nadpis na stránke by mal byť zvyčajne nadpis 1 alebo 2. Nadpis 1 by mal byť začiatkom hlavnej časti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', HEADING_MISSING_ONE: 'Chýba nadpis 1. Nadpis 1 by mal byť začiatkom hlavnej oblasti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', - HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(úroveň) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', + HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(level) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', PANEL_HEADING_MISSING_ONE: 'Chýba položka 1!', PANEL_NO_HEADINGS: 'Nenašli sa žiadne záhlavia.', LINK_EMPTY: 'Odstránenie prázdnych odkazov bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, ktorá je prázdna alebo nezodpovedá hodnote atribútu id iného prvku na stránke.', - LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
  • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
  • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
  • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
  • ', - LINK_LABEL: 'Označenie odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(error)
    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', - LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(error)
    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
    ', - LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', + LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
    • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
    • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
    • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
    ', + LINK_LABEL: 'Popis %(TEXT)', + LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(ERROR)
    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', + LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(ERROR)
    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
    ', + LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', LINK_DOI: 'V prípade webových stránok alebo len online zdrojov odporúča príručka štýlu APA používať popisné odkazy tak, že okolo názvu diela uvediete jeho URL alebo DOI. Dlhšie, menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pomocou asistenčných technológií.', - NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu
    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', - FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
    Príklad: Výkonná správa (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(sanitizedText)', + NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu.
    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', + FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
    Príklad: Výkonná správa (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázok sa používa ako odkaz s okolitým textom, hoci atribút alt by mal byť označený ako dekoratívny alebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázok sa používa ako odkaz, ale chýba text alt! Uistite sa, že text alt opisuje, kam vás odkaz zavedie.', MISSING_ALT_MESSAGE: 'Chýbajúci text alt! Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(error).
    Textu alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(error).
    Textu alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(altText)', - ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je klávesnicou zamerateľný. Ak plánujete skryť nadbytočný alebo duplicitný odkaz, pridajte aj tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázok v rámci odkazu je označený ako dekoratívny a nie je v ňom žiadny text odkazu. K obrázku pridajte text alt, ktorý opisuje cieľ odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázok je označený ako dekoratívny, hoci odkaz používa okolitý text ako popisné označenie.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    Alt text (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
    Textuálny text: %(altText)
    Označenie odkazu: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Zistite viac: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Ďalšie informácie: alt verzus titulok obrázku.
    Textuálny text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
    ALT %(ALT_TEXT)
    Označenie odkazu %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Zistite viac: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Ďalšie informácie: alt verzus titulok obrázku.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať. Ak obrázok sprostredkúva príbeh, náladu alebo dôležité informácie - nezabudnite pridať alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
    Textuálny text (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V tlačidle obrázka chýba text alt. Pridajte text alt a uveďte prístupný názov. Napríklad: Vyhľadať alebo Odoslať.', LABELS_INPUT_RESET_MESSAGE: 'Tlačidlá resetovania by sa nemali používať, ak to nie je výslovne potrebné, pretože sa ľahko aktivujú omylom.
    Tip! Prečítajte si, prečo tlačidlá Reset a Cancel predstavujú problémy s použiteľnosťou.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
    Štítok vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
    Štítok vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Pridajte atribút for k štítku, ktorý sa zhoduje s id tohto vstupu.
    ID tohto vstupu je: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Prosím, pridajte id k tomuto vstupu a pridajte zodpovedajúci atribút for k štítku.', EMBED_VIDEO: 'Uistite sa, že všetky videá majú skryté titulky. Poskytovanie titulkov pre všetok zvukový a obrazový obsah je povinnou požiadavkou úrovne A. Titulky podporujú osoby s poruchou sluchu alebo nepočujúce osoby.', @@ -208,16 +214,16 @@ var sk = { EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje prístupný názov, ktorý opisuje jeho obsah. Uveďte jedinečný atribút title alebo aria-label na prvku iframe. Ďalšie informácie o iFrame.', EMBED_GENERAL_WARNING: 'Nie je možné skontrolovať vložený obsah. Uistite sa, že obrázky majú alt text, videá majú titulky, text má dostatočný kontrast a interaktívne komponenty sú prístupné z klávesnice.', EMBED_UNFOCUSABLE: '<iframe> s nezamerateľnými prvkami by nemalo mať tabindex="-1". Vložený obsah nebude dostupný pomocou klávesnice.', - QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
    Tento odkaz odkazuje na:
    %(el)', + QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
    Tento odkaz odkazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Rozbitý odkaz na rovnakú stránku. Cieľ odkazu nezodpovedá žiadnemu prvku na tejto stránke.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva majú sémantický význam a nemali by sa používať na zvýraznenie celých odsekov. Tučný text by sa mal používať na výrazné zdôraznenie slova alebo frázy. Kurzíva by sa mala používať na zvýraznenie vlastných mien (t. j. názvov kníh a článkov), cudzích slov, citátov. Dlhé citáty by sa mali formátovať ako blokové citáty.', - QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', + QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', QA_DOCUMENT: 'Nie je možné skontrolovať prístupnosť dokumentu. Prepojené dokumenty sa považujú za webový obsah a musia byť tiež prístupné. Skontrolujte tento dokument manuálne. ', QA_PAGE_LANGUAGE: 'Jazyk stránky nie je deklarovaný! Prosím deklarujte jazyk v značke HTML.', QA_PAGE_TITLE: 'Chýba názov stránky! Uveďte prosím názov stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', - QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', + QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', QA_UPPERCASE_WARNING: 'Nájdené všetky čiapky. Niektoré čítačky obrazovky môžu interpretovať text písaný veľkými písmenami ako skratku a budú čítať každé písmeno samostatne. Okrem toho sa niektorým ľuďom všetky veľké písmená čítajú ťažšie a môže to pôsobiť dojmom, akoby sa kričalo.', QA_DUPLICATE_ID: 'Nájdené duplicitné ID. Je známe, že chyby duplicitného ID spôsobujú problémy asistenčným technológiám pri pokusoch o interakciu s obsahom.
    Odstráňte alebo zmeňte nasledujúce ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčiarknutý text sa môže zameniť s odkazmi. Zvážte použitie iného štýlu, napríklad <strong>strong importance</strong> alebo <em>emphasis</em>.', @@ -225,9 +231,9 @@ var sk = { TABLES_MISSING_HEADINGS: 'Chýbajúce záhlavia tabuliek! Prístupné tabuľky potrebujú značku HTML, ktorá označuje bunky záhlavia a dátové bunky, ktoré definujú ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Tabuľky by sa mali používať len na tabuľkové údaje.
    Ďalšie informácie o prístupných tabuľkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, ako napríklad Nadpis 2 alebo Nadpis 3, by sa mali používať len pre časti obsahu; nie v tabuľkách HTML. Namiesto toho označte nadpisy tabuliek pomocou prvku <th>.
    Ďalšie informácie o prístupných tabuľkách.', TABLES_EMPTY_HEADING: 'Nájdené prázdne záhlavie tabuľky! Hlavičky tabuliek by nikdy nemali byť prázdne. Je dôležité označiť záhlavia riadkov a/alebo stĺpcov, aby sa vyjadril ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Majte na pamäti, že tabuľky by sa mali používať len pre tabuľkové údaje.
    Ďalšie informácie o prístupných tabuľkách.', - CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer je %(cratio) pre nasledujúci text: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Prosím skontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer: %(cratio)', + CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Prosím skontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer %(RATIO)', }, }; diff --git a/dist/js/lang/sk.umd.js b/dist/js/lang/sk.umd.js index e858a3f7..a5ca6307 100644 --- a/dist/js/lang/sk.umd.js +++ b/dist/js/lang/sk.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Vypnuté', ALERT_TEXT: 'Upozornenie', ALERT_CLOSE: 'Zatvoriť', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Náčrt', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upraviť', + IMAGES_NOT_FOUND: 'Žiadne obrázky nenájdené.', + DECORATIVE: 'Dekoratívny', + MISSING: 'Chýbajúci', PAGE_ISSUES: 'Problémy so stránkami', SETTINGS: 'Nastavenia', CONTRAST: 'Kontrast', @@ -166,46 +172,46 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatok obsahu na výpočet skóre čitateľnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá nepokračujúca úroveň záhlavia. Nadpisy by nikdy nemali preskakovať úrovne alebo prechádzať z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nájdená prázdna položka! Ak to chcete opraviť, odstráňte tento riadok alebo zmeňte jeho formát z Head %(level) na Normal alebo Paragraph.', - HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
    Počet znakov: %(headingLength)', + HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvý nadpis na stránke by mal byť zvyčajne nadpis 1 alebo 2. Nadpis 1 by mal byť začiatkom hlavnej časti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', HEADING_MISSING_ONE: 'Chýba nadpis 1. Nadpis 1 by mal byť začiatkom hlavnej oblasti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', - HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(úroveň) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', + HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(level) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', PANEL_HEADING_MISSING_ONE: 'Chýba položka 1!', PANEL_NO_HEADINGS: 'Nenašli sa žiadne záhlavia.', LINK_EMPTY: 'Odstránenie prázdnych odkazov bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, ktorá je prázdna alebo nezodpovedá hodnote atribútu id iného prvku na stránke.', - LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
  • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
  • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
  • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
  • ', - LINK_LABEL: 'Označenie odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(error)
    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', - LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(error)
    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
    ', - LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', + LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
    • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
    • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
    • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
    ', + LINK_LABEL: 'Popis %(TEXT)', + LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(ERROR)
    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', + LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(ERROR)
    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
    ', + LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', LINK_DOI: 'V prípade webových stránok alebo len online zdrojov odporúča príručka štýlu APA používať popisné odkazy tak, že okolo názvu diela uvediete jeho URL alebo DOI. Dlhšie, menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pomocou asistenčných technológií.', - NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu
    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', - FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
    Príklad: Výkonná správa (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(sanitizedText)', + NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu.
    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', + FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
    Príklad: Výkonná správa (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázok sa používa ako odkaz s okolitým textom, hoci atribút alt by mal byť označený ako dekoratívny alebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázok sa používa ako odkaz, ale chýba text alt! Uistite sa, že text alt opisuje, kam vás odkaz zavedie.', MISSING_ALT_MESSAGE: 'Chýbajúci text alt! Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(error).
    Textu alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(error).
    Textu alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(altText)', - ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné.
    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je klávesnicou zamerateľný. Ak plánujete skryť nadbytočný alebo duplicitný odkaz, pridajte aj tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázok v rámci odkazu je označený ako dekoratívny a nie je v ňom žiadny text odkazu. K obrázku pridajte text alt, ktorý opisuje cieľ odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázok je označený ako dekoratívny, hoci odkaz používa okolitý text ako popisné označenie.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    Alt text (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
    Textuálny text: %(altText)
    Označenie odkazu: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Zistite viac: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Ďalšie informácie: alt verzus titulok obrázku.
    Textuálny text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
    ALT %(ALT_TEXT)
    Označenie odkazu %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Zistite viac: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
    Ďalšie informácie: alt verzus titulok obrázku.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať. Ak obrázok sprostredkúva príbeh, náladu alebo dôležité informácie - nezabudnite pridať alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
    Textuálny text (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V tlačidle obrázka chýba text alt. Pridajte text alt a uveďte prístupný názov. Napríklad: Vyhľadať alebo Odoslať.', LABELS_INPUT_RESET_MESSAGE: 'Tlačidlá resetovania by sa nemali používať, ak to nie je výslovne potrebné, pretože sa ľahko aktivujú omylom.
    Tip! Prečítajte si, prečo tlačidlá Reset a Cancel predstavujú problémy s použiteľnosťou.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
    Štítok vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
    Štítok vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Pridajte atribút for k štítku, ktorý sa zhoduje s id tohto vstupu.
    ID tohto vstupu je: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Prosím, pridajte id k tomuto vstupu a pridajte zodpovedajúci atribút for k štítku.', EMBED_VIDEO: 'Uistite sa, že všetky videá majú skryté titulky. Poskytovanie titulkov pre všetok zvukový a obrazový obsah je povinnou požiadavkou úrovne A. Titulky podporujú osoby s poruchou sluchu alebo nepočujúce osoby.', @@ -214,16 +220,16 @@ EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje prístupný názov, ktorý opisuje jeho obsah. Uveďte jedinečný atribút title alebo aria-label na prvku iframe. Ďalšie informácie o iFrame.', EMBED_GENERAL_WARNING: 'Nie je možné skontrolovať vložený obsah. Uistite sa, že obrázky majú alt text, videá majú titulky, text má dostatočný kontrast a interaktívne komponenty sú prístupné z klávesnice.', EMBED_UNFOCUSABLE: '<iframe> s nezamerateľnými prvkami by nemalo mať tabindex="-1". Vložený obsah nebude dostupný pomocou klávesnice.', - QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
    Tento odkaz odkazuje na:
    %(el)', + QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
    Tento odkaz odkazuje na:
    %(LINK)', QA_IN_PAGE_LINK: 'Rozbitý odkaz na rovnakú stránku. Cieľ odkazu nezodpovedá žiadnemu prvku na tejto stránke.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva majú sémantický význam a nemali by sa používať na zvýraznenie celých odsekov. Tučný text by sa mal používať na výrazné zdôraznenie slova alebo frázy. Kurzíva by sa mala používať na zvýraznenie vlastných mien (t. j. názvov kníh a článkov), cudzích slov, citátov. Dlhé citáty by sa mali formátovať ako blokové citáty.', - QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', + QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', QA_DOCUMENT: 'Nie je možné skontrolovať prístupnosť dokumentu. Prepojené dokumenty sa považujú za webový obsah a musia byť tiež prístupné. Skontrolujte tento dokument manuálne. ', QA_PAGE_LANGUAGE: 'Jazyk stránky nie je deklarovaný! Prosím deklarujte jazyk v značke HTML.', QA_PAGE_TITLE: 'Chýba názov stránky! Uveďte prosím názov stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', - QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', + QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', QA_UPPERCASE_WARNING: 'Nájdené všetky čiapky. Niektoré čítačky obrazovky môžu interpretovať text písaný veľkými písmenami ako skratku a budú čítať každé písmeno samostatne. Okrem toho sa niektorým ľuďom všetky veľké písmená čítajú ťažšie a môže to pôsobiť dojmom, akoby sa kričalo.', QA_DUPLICATE_ID: 'Nájdené duplicitné ID. Je známe, že chyby duplicitného ID spôsobujú problémy asistenčným technológiám pri pokusoch o interakciu s obsahom.
    Odstráňte alebo zmeňte nasledujúce ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčiarknutý text sa môže zameniť s odkazmi. Zvážte použitie iného štýlu, napríklad <strong>strong importance</strong> alebo <em>emphasis</em>.', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Chýbajúce záhlavia tabuliek! Prístupné tabuľky potrebujú značku HTML, ktorá označuje bunky záhlavia a dátové bunky, ktoré definujú ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Tabuľky by sa mali používať len na tabuľkové údaje.
    Ďalšie informácie o prístupných tabuľkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, ako napríklad Nadpis 2 alebo Nadpis 3, by sa mali používať len pre časti obsahu; nie v tabuľkách HTML. Namiesto toho označte nadpisy tabuliek pomocou prvku <th>.
    Ďalšie informácie o prístupných tabuľkách.', TABLES_EMPTY_HEADING: 'Nájdené prázdne záhlavie tabuľky! Hlavičky tabuliek by nikdy nemali byť prázdne. Je dôležité označiť záhlavia riadkov a/alebo stĺpcov, aby sa vyjadril ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Majte na pamäti, že tabuľky by sa mali používať len pre tabuľkové údaje.
    Ďalšie informácie o prístupných tabuľkách.', - CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer je %(cratio) pre nasledujúci text: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Prosím skontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer: %(cratio)', + CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Prosím skontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
    Kontrastný pomer %(RATIO)', }, }; diff --git a/dist/js/lang/sl.js b/dist/js/lang/sl.js index 4b219a89..d6c6210a 100644 --- a/dist/js/lang/sl.js +++ b/dist/js/lang/sl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var sl = { OFF: 'Izklopljeno', ALERT_TEXT: 'Opozorilo', ALERT_CLOSE: 'Zapri', - OUTLINE: 'Osnutek strani', + OUTLINE: 'Oris', + ALT: 'ALT', + IMAGES: 'Slike', + EDIT: 'Uredi', + IMAGES_NOT_FOUND: 'Ni najdenih slik.', + DECORATIVE: 'Dekorativno', + MISSING: 'Manjka', PAGE_ISSUES: 'Vprašanja strani', SETTINGS: 'Nastavitve', CONTRAST: 'Kontrast', @@ -149,7 +155,7 @@ var sl = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Premalo vsebine za izračun ocene berljivosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Uporabljena je raven brez zaporednih naslovov. Naslovi nikoli ne smejo preskočiti ravni ali preiti iz Nadpis %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Najden je bil prazen naslov! To popravite tako, da izbrišete to vrstico ali spremenite njeno obliko iz Glavica %(level) v Normalno ali Odstavek.', - HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
    Število znakov: %(headingLength)', + HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvi naslov na strani mora biti običajno naslov 1 ali 2. Naslov 1 mora biti začetek poglavja z glavno vsebino in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_MISSING_ONE: 'Manjka naslov 1. Naslov 1 mora biti začetek glavnega vsebinskega področja in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_EMPTY_WITH_IMAGE: 'Naslov nima besedila, vsebuje pa sliko. Če to ni naslov, spremenite njegovo obliko iz Nadpis %(level) v Normalno ali Odstavek. V nasprotnem primeru sliki dodajte besedilo alt, če ni okrasno.', @@ -157,38 +163,38 @@ var sl = { PANEL_NO_HEADINGS: 'Ni najdenih naslovov.', LINK_EMPTY: 'Odstranite prazne povezave brez besedila.', LINK_EMPTY_LABELLEDBY: 'Povezava ima vrednost za aria-labelledby, ki je prazna ali se ne ujema z vrednostjo atributa id drugega elementa na strani.', - LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
  • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
  • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
  • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
  • ', - LINK_LABEL: 'Etiketa povezave: %(sanitizedText)', - LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(error)
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', - LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(error)
    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
    ', - LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', + LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
    • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
    • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
    • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
    ', + LINK_LABEL: 'Etiketa %(TEXT)', + LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(ERROR)
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', + LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(ERROR)
    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
    ', + LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', LINK_DOI: 'Pri spletnih straneh ali spletnih virih vodnik APA Style priporoča uporabo opisnih povezav, tako da URL ali DOI dela ovijete okoli njegovega naslova. Daljši in manj razumljivi naslovi URL, ki se uporabljajo kot besedilo povezave, so lahko pri dostopu s pomožno tehnologijo težko razumljivi.', - NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave
    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', - FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
    Primer: Izvršno poročilo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(sanitizedText)', + NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave.
    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', + FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
    Primer: Izvršno poročilo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Slika se uporablja kot povezava z okoliškim besedilom, čeprav bi moral biti atribut alt označen kot okrasni ali ničen.', MISSING_ALT_LINK_MESSAGE: 'Slika se uporablja kot povezava, vendar nima besedila Alt! Prepričajte se, da besedilo alt opisuje, kam vas bo povezava pripeljala.', MISSING_ALT_MESSAGE: 'Manjka besedilo alt! Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(error).
    Vrstično besedilo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
    Vrstično besedilo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(error).
    Tekst besedila: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(altText)', - ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč.
    Tekst besedila: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Povezava ima aria-hidden="true", vendar je še vedno dostopna s tipkovnico. Če nameravate skriti redundantno ali podvojeno povezavo, dodajte tudi tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Slika v povezavi je označena kot okrasna in nima besedila povezave. Sliki dodajte besedilo alt, ki opisuje cilj povezave.', LINK_IMAGE_HAS_TEXT: 'Slika je označena kot dekorativna, čeprav povezava uporablja okoliško besedilo kot opisno oznako.', - LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
    Alt besedilo (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
    Temeljno besedilo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
    Tekst besedila: %(altText)
    Etiketa povezave: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
    Preberi več: alt v primerjavi s figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
    Več informacij: alt v primerjavi s figcaption.
    Vrstično besedilo: %(altText)', + LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
    ALT %(ALT_TEXT)
    Etiketa %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
    Preberi več: alt v primerjavi s figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
    Več informacij: alt v primerjavi s figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, obvezno dodajte dodatno besedilo.', - IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
    Tekst besedila (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Tekst besedila: %(altText)', + IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V gumbu za sliko manjka besedilo alt. Dodajte besedilo alt in zagotovite dostopno ime. Na primer: Poišči ali Oddaj.', LABELS_INPUT_RESET_MESSAGE: 'Gumbe za ponastavitev ne smete uporabljati, razen če je to posebej potrebno, saj jih je mogoče zlahka aktivirati po pomoti.
    Tip! Preberite, zakaj Gumbova Reset in Cancel predstavljata težave z uporabnostjo.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
    Oznaka za vnos: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
    Oznaka %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte atribut for oznaki, ki ustreza id tega vnosa.
    ID tega vnosa je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte id temu vnosu in dodajte ustrezen atribut for oznaki.', EMBED_VIDEO: 'Poskrbite, da bodo vsi videoposnetki opremljeni s podnapisi. Zagotavljanje podnapisov za vse zvočne in video vsebine je obvezna zahteva na ravni A. Podnapisi so v pomoč gluhim in naglušnim osebam.', @@ -197,16 +203,16 @@ var sl = { EMBED_MISSING_TITLE: 'Vgrajena vsebina potrebuje dostopno ime, ki opisuje njeno vsebino. V elementu iframe navedite edinstven atribut title ali aria-label. Preberite več o iFrames.', EMBED_GENERAL_WARNING: 'Ni mogoče preveriti vdelane vsebine. Prepričajte se, da imajo slike alternativno besedilo, videoposnetki podnapise, da je besedilo dovolj kontrastno in da so interaktivne komponente dostopne s tipkovnice.', EMBED_UNFOCUSABLE: '<iframe> z elementi, ki se jim ni mogoče osredotočiti, ne sme imeti tabindex="-1". Vgrajena vsebina ne bo dostopna prek tipkovnice.', - QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
    Ta povezava kaže na:
    %(el)', + QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
    Ta povezava kaže na:
    %(LINK)', QA_IN_PAGE_LINK: 'Okvarjena povezava na isto stran. Cilj povezave se ne ujema z nobenim elementom na tej strani.', QA_BAD_ITALICS: 'Oznake krepko in poševno imajo semantični pomen in se ne smejo uporabljati za poudarjanje celotnih odstavkov. Krepko označeno besedilo je treba uporabiti za močno izpostavitev besede ali besedne zveze. Ležečo pisavo je treba uporabljati za poudarjanje lastnih imen (npr. naslovov knjig in člankov), tujih besed, narekovajev. Dolgi citati morajo biti oblikovani kot blokovski citati.', - QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', + QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', QA_DOCUMENT: 'Dokumenta ni mogoče preveriti glede dostopnosti. Povezani dokumenti veljajo za spletno vsebino in morajo biti prav tako dostopni. Ta dokument preglejte ročno. ', QA_PAGE_LANGUAGE: 'Jezik strani ni prijavljen! Prosimo, da deklarirate jezik na oznaki HTML.', QA_PAGE_TITLE: 'Manjka naslov strani! Navedite naslov strani.', - QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(sanitizedText)
    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', - QA_FAKE_HEADING: 'Ali je to naslov? %(boldtext)
    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', - QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', + QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(TEXT)
    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', + QA_FAKE_HEADING: 'Ali je to naslov? %(TEXT)
    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', + QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', QA_UPPERCASE_WARNING: 'Našli ste vse kapice. Nekateri bralniki zaslona lahko besedilo z veliko začetnico razumejo kot kratico in preberejo vsako črko posebej. Poleg tega se nekaterim zdi, da je vse velike črke težje brati, in lahko dajejo vtis, kot da bi kričali.', QA_DUPLICATE_ID: 'Najden podvojen ID. Znano je, da napake z dvojnim ID povzročajo težave podpornim tehnologijam, ko poskušajo sodelovati z vsebino.
    Prosimo, odstranite ali spremenite naslednji ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčrtano besedilo je mogoče zamenjati s povezavami. Razmislite o uporabi drugega sloga, kot je <strong>pomembnost</strong> ali <em>izraz</em>.', @@ -214,9 +220,9 @@ var sl = { TABLES_MISSING_HEADINGS: 'Manjkajo glave tabel! Dostopne tabele potrebujejo oznako HTML, ki označuje celice z glavo in podatkovne celice ter določa njihovo razmerje. Te informacije zagotavljajo kontekst ljudem, ki uporabljajo podporno tehnologijo. Tabele je treba uporabljati samo za tabelarne podatke.
    Preberite več o dostopnih tabelah.', TABLES_SEMANTIC_HEADING: 'Semantične naslove, kot sta Heading 2 ali Heading 3, lahko uporabljate samo za dele vsebine; ne v tabelah HTML. Namesto tega naslove tabel označite z elementom <th>.
    Preberite več o dostopnih tabelah.', TABLES_EMPTY_HEADING: 'Najden je prazen naglavni del tabele! Glave tabel ne smejo biti nikoli prazne. Pomembno je, da označite glave vrstic in/ali stolpcev in tako izrazite njihovo povezanost. Te informacije zagotavljajo kontekst za osebe, ki uporabljajo podporno tehnologijo. Ne pozabite, da je treba tabele uporabljati samo za tabelarične podatke.
    Preberite več o dostopnih tabelah.', - CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
    Kontrastno razmerje je %(cratio) za naslednje besedilo: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Prosimo, preglejte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Kontrastno razmerje: %(cratio)', + CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
    Razmerje kontrasta %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Prosimo, preglejte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Razmerje kontrasta %(RATIO)', }, }; diff --git a/dist/js/lang/sl.umd.js b/dist/js/lang/sl.umd.js index e8c4df09..a44f359c 100644 --- a/dist/js/lang/sl.umd.js +++ b/dist/js/lang/sl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Izklopljeno', ALERT_TEXT: 'Opozorilo', ALERT_CLOSE: 'Zapri', - OUTLINE: 'Osnutek strani', + OUTLINE: 'Oris', + ALT: 'ALT', + IMAGES: 'Slike', + EDIT: 'Uredi', + IMAGES_NOT_FOUND: 'Ni najdenih slik.', + DECORATIVE: 'Dekorativno', + MISSING: 'Manjka', PAGE_ISSUES: 'Vprašanja strani', SETTINGS: 'Nastavitve', CONTRAST: 'Kontrast', @@ -155,7 +161,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Premalo vsebine za izračun ocene berljivosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Uporabljena je raven brez zaporednih naslovov. Naslovi nikoli ne smejo preskočiti ravni ali preiti iz Nadpis %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Najden je bil prazen naslov! To popravite tako, da izbrišete to vrstico ali spremenite njeno obliko iz Glavica %(level) v Normalno ali Odstavek.', - HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
    Število znakov: %(headingLength)', + HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvi naslov na strani mora biti običajno naslov 1 ali 2. Naslov 1 mora biti začetek poglavja z glavno vsebino in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_MISSING_ONE: 'Manjka naslov 1. Naslov 1 mora biti začetek glavnega vsebinskega področja in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_EMPTY_WITH_IMAGE: 'Naslov nima besedila, vsebuje pa sliko. Če to ni naslov, spremenite njegovo obliko iz Nadpis %(level) v Normalno ali Odstavek. V nasprotnem primeru sliki dodajte besedilo alt, če ni okrasno.', @@ -163,38 +169,38 @@ PANEL_NO_HEADINGS: 'Ni najdenih naslovov.', LINK_EMPTY: 'Odstranite prazne povezave brez besedila.', LINK_EMPTY_LABELLEDBY: 'Povezava ima vrednost za aria-labelledby, ki je prazna ali se ne ujema z vrednostjo atributa id drugega elementa na strani.', - LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
  • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
  • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
  • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
  • ', - LINK_LABEL: 'Etiketa povezave: %(sanitizedText)', - LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(error)
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', - LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(error)
    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
    ', - LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', + LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
    • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
    • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
    • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
    ', + LINK_LABEL: 'Etiketa %(TEXT)', + LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(ERROR)
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', + LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(ERROR)
    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
    ', + LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', LINK_DOI: 'Pri spletnih straneh ali spletnih virih vodnik APA Style priporoča uporabo opisnih povezav, tako da URL ali DOI dela ovijete okoli njegovega naslova. Daljši in manj razumljivi naslovi URL, ki se uporabljajo kot besedilo povezave, so lahko pri dostopu s pomožno tehnologijo težko razumljivi.', - NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave
    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', - FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
    Primer: Izvršno poročilo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(sanitizedText)', + NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave.
    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', + FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
    Primer: Izvršno poročilo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Slika se uporablja kot povezava z okoliškim besedilom, čeprav bi moral biti atribut alt označen kot okrasni ali ničen.', MISSING_ALT_LINK_MESSAGE: 'Slika se uporablja kot povezava, vendar nima besedila Alt! Prepričajte se, da besedilo alt opisuje, kam vas bo povezava pripeljala.', MISSING_ALT_MESSAGE: 'Manjka besedilo alt! Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(error).
    Vrstično besedilo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
    Vrstično besedilo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(error).
    Tekst besedila: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(altText)', - ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč.
    Tekst besedila: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(ERROR)
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(ERROR)
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Povezava ima aria-hidden="true", vendar je še vedno dostopna s tipkovnico. Če nameravate skriti redundantno ali podvojeno povezavo, dodajte tudi tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Slika v povezavi je označena kot okrasna in nima besedila povezave. Sliki dodajte besedilo alt, ki opisuje cilj povezave.', LINK_IMAGE_HAS_TEXT: 'Slika je označena kot dekorativna, čeprav povezava uporablja okoliško besedilo kot opisno oznako.', - LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
    Alt besedilo (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
    Temeljno besedilo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
    Tekst besedila: %(altText)
    Etiketa povezave: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
    Preberi več: alt v primerjavi s figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
    Več informacij: alt v primerjavi s figcaption.
    Vrstično besedilo: %(altText)', + LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
    ALT %(ALT_TEXT)
    Etiketa %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
    Preberi več: alt v primerjavi s figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
    Več informacij: alt v primerjavi s figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, obvezno dodajte dodatno besedilo.', - IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
    Tekst besedila (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Tekst besedila: %(altText)', + IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V gumbu za sliko manjka besedilo alt. Dodajte besedilo alt in zagotovite dostopno ime. Na primer: Poišči ali Oddaj.', LABELS_INPUT_RESET_MESSAGE: 'Gumbe za ponastavitev ne smete uporabljati, razen če je to posebej potrebno, saj jih je mogoče zlahka aktivirati po pomoti.
    Tip! Preberite, zakaj Gumbova Reset in Cancel predstavljata težave z uporabnostjo.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
    Oznaka za vnos: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
    Oznaka %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte atribut for oznaki, ki ustreza id tega vnosa.
    ID tega vnosa je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte id temu vnosu in dodajte ustrezen atribut for oznaki.', EMBED_VIDEO: 'Poskrbite, da bodo vsi videoposnetki opremljeni s podnapisi. Zagotavljanje podnapisov za vse zvočne in video vsebine je obvezna zahteva na ravni A. Podnapisi so v pomoč gluhim in naglušnim osebam.', @@ -203,16 +209,16 @@ EMBED_MISSING_TITLE: 'Vgrajena vsebina potrebuje dostopno ime, ki opisuje njeno vsebino. V elementu iframe navedite edinstven atribut title ali aria-label. Preberite več o iFrames.', EMBED_GENERAL_WARNING: 'Ni mogoče preveriti vdelane vsebine. Prepričajte se, da imajo slike alternativno besedilo, videoposnetki podnapise, da je besedilo dovolj kontrastno in da so interaktivne komponente dostopne s tipkovnice.', EMBED_UNFOCUSABLE: '<iframe> z elementi, ki se jim ni mogoče osredotočiti, ne sme imeti tabindex="-1". Vgrajena vsebina ne bo dostopna prek tipkovnice.', - QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
    Ta povezava kaže na:
    %(el)', + QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
    Ta povezava kaže na:
    %(LINK)', QA_IN_PAGE_LINK: 'Okvarjena povezava na isto stran. Cilj povezave se ne ujema z nobenim elementom na tej strani.', QA_BAD_ITALICS: 'Oznake krepko in poševno imajo semantični pomen in se ne smejo uporabljati za poudarjanje celotnih odstavkov. Krepko označeno besedilo je treba uporabiti za močno izpostavitev besede ali besedne zveze. Ležečo pisavo je treba uporabljati za poudarjanje lastnih imen (npr. naslovov knjig in člankov), tujih besed, narekovajev. Dolgi citati morajo biti oblikovani kot blokovski citati.', - QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', + QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', QA_DOCUMENT: 'Dokumenta ni mogoče preveriti glede dostopnosti. Povezani dokumenti veljajo za spletno vsebino in morajo biti prav tako dostopni. Ta dokument preglejte ročno. ', QA_PAGE_LANGUAGE: 'Jezik strani ni prijavljen! Prosimo, da deklarirate jezik na oznaki HTML.', QA_PAGE_TITLE: 'Manjka naslov strani! Navedite naslov strani.', - QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(sanitizedText)
    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', - QA_FAKE_HEADING: 'Ali je to naslov? %(boldtext)
    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', - QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', + QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(TEXT)
    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', + QA_FAKE_HEADING: 'Ali je to naslov? %(TEXT)
    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', + QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', QA_UPPERCASE_WARNING: 'Našli ste vse kapice. Nekateri bralniki zaslona lahko besedilo z veliko začetnico razumejo kot kratico in preberejo vsako črko posebej. Poleg tega se nekaterim zdi, da je vse velike črke težje brati, in lahko dajejo vtis, kot da bi kričali.', QA_DUPLICATE_ID: 'Najden podvojen ID. Znano je, da napake z dvojnim ID povzročajo težave podpornim tehnologijam, ko poskušajo sodelovati z vsebino.
    Prosimo, odstranite ali spremenite naslednji ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčrtano besedilo je mogoče zamenjati s povezavami. Razmislite o uporabi drugega sloga, kot je <strong>pomembnost</strong> ali <em>izraz</em>.', @@ -220,9 +226,9 @@ TABLES_MISSING_HEADINGS: 'Manjkajo glave tabel! Dostopne tabele potrebujejo oznako HTML, ki označuje celice z glavo in podatkovne celice ter določa njihovo razmerje. Te informacije zagotavljajo kontekst ljudem, ki uporabljajo podporno tehnologijo. Tabele je treba uporabljati samo za tabelarne podatke.
    Preberite več o dostopnih tabelah.', TABLES_SEMANTIC_HEADING: 'Semantične naslove, kot sta Heading 2 ali Heading 3, lahko uporabljate samo za dele vsebine; ne v tabelah HTML. Namesto tega naslove tabel označite z elementom <th>.
    Preberite več o dostopnih tabelah.', TABLES_EMPTY_HEADING: 'Najden je prazen naglavni del tabele! Glave tabel ne smejo biti nikoli prazne. Pomembno je, da označite glave vrstic in/ali stolpcev in tako izrazite njihovo povezanost. Te informacije zagotavljajo kontekst za osebe, ki uporabljajo podporno tehnologijo. Ne pozabite, da je treba tabele uporabljati samo za tabelarične podatke.
    Preberite več o dostopnih tabelah.', - CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
    Kontrastno razmerje je %(cratio) za naslednje besedilo: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Prosimo, preglejte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Kontrastno razmerje: %(cratio)', + CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
    Razmerje kontrasta %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Prosimo, preglejte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
    Razmerje kontrasta %(RATIO)', }, }; diff --git a/dist/js/lang/sv.js b/dist/js/lang/sv.js index 08267493..a9d000a3 100644 --- a/dist/js/lang/sv.js +++ b/dist/js/lang/sv.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var sv = { ALERT_TEXT: 'Varning', ALERT_CLOSE: 'Stäng', OUTLINE: 'Sidöversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Redigera', + IMAGES_NOT_FOUND: 'Inga bilder hittades.', + DECORATIVE: 'Dekorativ', + MISSING: 'Saknas', PAGE_ISSUES: 'Sidproblem', SETTINGS: 'Inställningar', CONTRAST: 'Kontrast', @@ -134,7 +140,7 @@ var sv = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Icke-konsekutiv rubriknivå används. Rubriker bör aldrig hoppa över nivåer eller gå från Rubrik %(prevLevel) till Rubrik %(level).', HEADING_EMPTY: 'Tom rubrik hittades! För att åtgärda, ta bort den här raden eller ändra dess format från Rubrik %(level) till Normal eller Stycke.', - HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
    Antal tecken: %(headingLength)', + HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
    %(HEADING_LENGTH) Tecken', HEADING_FIRST: 'Den första rubriken på en sida bör vanligtvis vara en Rubrik 1 eller Rubrik 2. Rubrik 1 bör vara början på huvudinnehållsavsnittet och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_MISSING_ONE: 'Saknar Rubrik 1. Rubrik 1 bör vara början på huvudinnehållsområdet, och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Rubriken har ingen text, men innehåller en bild. Om detta inte är en rubrik ändrar du dess format från Rubrik %(level) till Normal eller Stycke. Annars, lägg till alt-text till bilden om den inte är dekorativ.', @@ -145,43 +151,43 @@ var sv = { LINK_EMPTY: 'Ta bort tomma länkar utan text.', LINK_EMPTY_LABELLEDBY: 'Länken har ett värde för aria-labelledby som antingen är tomt eller inte matchar värdet för ett annat elements attribut id på sidan.', LINK_EMPTY_LINK_NO_LABEL: 'Länken har inte urskiljbar text som är synlig för skärmläsare och andra hjälpmedel. För att fixa:
    • Lägg till lite kortfattad text som beskriver vart länken tar dig.
    • Om det är en ikonlänk eller SVG, saknar den troligen en beskrivande etikett.
    • Om du tror att den här länken är ett fel på grund av ett kopierings-/klistra-fel, överväg att ta bort den.
    ', - LINK_LABEL: 'Länketikett: %(sanitizedText)', - LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(error)
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', - LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(error)
    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
    ', - LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', + LINK_LABEL: 'Länketikett %(TEXT)', + LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(ERROR)
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', + LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(ERROR)
    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
    ', + LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', LINK_DOI: 'För webbsidor eller resurser som endast finns online rekommenderar APA Style Guide att man använder beskrivande länkar genom att linda in URL:en eller DOI:en för arbetet runt dess titel. Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel.', // Links advanced - NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten
    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', - FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
    Exempel: Verkställande rapport (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(sanitizedText)', + NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten.
    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', + FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
    Exempel: Verkställande rapport (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bilden används som en länk med omgivande text, dock borde alt-attributet markeras som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bilden används som länk men saknar alt-text! Se till att alt-texten beskriver vart länken tar dig.', MISSING_ALT_MESSAGE: 'Saknar alt-text! Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(error).
    Alt-text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
    Alt-text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(error).
    Alt-text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig.
    Alt-text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Länken har aria-hidden="true" men kan fortfarande fokuseras med hjälp av tangentbordet. Om du tänker dölja en överflödig eller duplicerad länk, lägg till tabindex="-1" också.', LINK_IMAGE_NO_ALT_TEXT: 'Bilden i länken är markerad som dekorativ och det finns ingen länktext. Vänligen lägg till alternativ text till bilden som beskriver länkens destination.', LINK_IMAGE_HAS_TEXT: 'Bilden är markerad som dekorativ, även om länken använder den omgivande texten som en beskrivande etikett.', - LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
    Alt-text (%(altLength) tecken): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
    Alt-text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
    Alt-text: %(altText)
    Länketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
    Läs mer: alt kontra figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
    Läs mer: alt kontra figcaption.
    Alt-text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
    ALT %(altLength) Tecken %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
    ALT %(ALT_TEXT)
    Länketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
    Läs mer: alt kontra figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
    Läs mer: alt kontra figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel. Om bilden förmedlar en historia, stämning eller annan viktig information – se till att lägga till alt-text.', - IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
    Alt-text (%(altLength) tecken): %(altText)', - IMAGE_PASS: 'Alt-text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
    ALT %(altLength) Tecken %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildknappen saknar alternativ text. Lägg till alt-text för att ge knappen ett tillgängligt namn. Till exempel: Sök eller Skicka.', LABELS_INPUT_RESET_MESSAGE: 'Återställningsknappar bör inte användas om de inte specifikt behövs, eftersom de är lätta att aktivera av misstag.
    Tips! Lär dig varför Återställ- och Avbryt-knapparna orsakar användbarhetsproblem.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
    Inmatningsetikett: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
    Inmatningsetikett %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Lägg till ett for-attribut till etiketten som matchar id för detta inmatningsfält.
    ID:t för detta inmatningsfält är: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Vänligen lägg till ett id till denna inmatning och lägg till ett matchande for-attribut till etiketten.', @@ -194,15 +200,15 @@ var sv = { EMBED_UNFOCUSABLE: '<iframe> med oväxlingsbara element bör inte ha tabindex="-1". Det inbäddade innehållet kommer inte att vara tillgängligt med tangentbordet.', // Quality assurance - QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
    Den här länken pekar på:
    %(el)', + QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
    Den här länken pekar på:
    %(LINK)', QA_IN_PAGE_LINK: 'Bruten samma-sideslänk. Länkmålet matchar inte något element på denna sida.', QA_BAD_ITALICS: 'Feta och kursiva HTML-taggar har semantisk betydelse och bör inte användas för att markera hela stycken. Fetstil text bör användas för att ge ett ord eller en fras stark betoning. Kursiv stil ska användas för att markera egennamn (d.v.s. bok- och artikeltitlar), främmande ord, citat. Långa citat bör formateras som ett blockcitat.', QA_PDF: 'Det går inte att kontrollera PDF-filer för tillgänglighet. PDF-filer betraktas som webbinnehåll och måste också göras tillgängliga. PDF-filer är ofta problematiska för personer som använder skärmläsare (till exempel: saknade strukturella taggar eller saknade formulärfältetiketter) och personer som har nedsatt syn (texten anpassar sig inte när den förstoras).
    • Om detta är ett formulär, överväg att använda ett tillgängligt HTML-formulär som ett alternativ.
    • Om detta är ett dokument, överväg att konvertera det till en webbsida.
    Annars kontrollerar du PDF för tillgänglighet i Acrobat DC.', QA_DOCUMENT: 'Det gick inte att kontrollera dokumentets tillgänglighet. Länkade dokument betraktas som webbinnehåll och måste också göras tillgängliga. Granska dokumentet manuellt. ', QA_PAGE_LANGUAGE: 'Sidspråk är inte inställt! Vänligen ställ in språk på HTML-taggen.', QA_PAGE_TITLE: 'Sidtitel saknas! Ange en sidtitel.', - QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(sanitizedText)
    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', - QA_FAKE_HEADING: 'Är detta en rubrik? %(boldtext)
    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', + QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(TEXT)
    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', + QA_FAKE_HEADING: 'Är detta en rubrik? %(TEXT)
    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', QA_SHOULD_BE_LIST: 'Försöker du skapa en lista? Möjligt listobjekt hittat: %(firstPrefix)
    Se till att använda semantiska listor genom att använda punkt- eller sifferformateringsknapparna istället. När du använder en semantisk lista kan hjälpmedel förmedla information som det totala antalet objekt och den relativa positionen för varje objekt i listan. Läs mer om semantiska listor.', QA_UPPERCASE_WARNING: 'Hittade text med enbart versaler. Vissa skärmläsare kan tolka versalskrift som en akronym och läser varje bokstav individuellt. Dessutom upplever vissa personer att det är svårare att läsa versalskrift och det kan se ut som att avsändaren SKRIKER.', QA_DUPLICATE_ID: 'Hittade duplicerat ID. Dubbletterade ID:n är kända för att orsaka problem för hjälpmedelsverktyg när de försöker interagera med innehåll.
    Ta bort eller ändra följande ID: %(id)', @@ -215,9 +221,9 @@ var sv = { TABLES_EMPTY_HEADING: 'Tom tabellrubrik hittades! Tabellrubriker får aldrig vara tomma. Det är viktigt att ange rad- och/eller kolumnrubriker för att förmedla deras relation. Informationen ger sammanhang till personer som använder hjälpmedelsverktyg. Tänk på att tabeller endast ska användas för tabelldata.
    Läs mer om tillgängliga tabeller.', // Contrast - CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållandet är %(cratio) för följande text: %(sanitizedText)', - CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Granska: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande: %(cratio)', + CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Granska: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande %(RATIO)', }, }; diff --git a/dist/js/lang/sv.umd.js b/dist/js/lang/sv.umd.js index c7fd2ce7..147957b8 100644 --- a/dist/js/lang/sv.umd.js +++ b/dist/js/lang/sv.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Varning', ALERT_CLOSE: 'Stäng', OUTLINE: 'Sidöversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Redigera', + IMAGES_NOT_FOUND: 'Inga bilder hittades.', + DECORATIVE: 'Dekorativ', + MISSING: 'Saknas', PAGE_ISSUES: 'Sidproblem', SETTINGS: 'Inställningar', CONTRAST: 'Kontrast', @@ -140,7 +146,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Icke-konsekutiv rubriknivå används. Rubriker bör aldrig hoppa över nivåer eller gå från Rubrik %(prevLevel) till Rubrik %(level).', HEADING_EMPTY: 'Tom rubrik hittades! För att åtgärda, ta bort den här raden eller ändra dess format från Rubrik %(level) till Normal eller Stycke.', - HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
    Antal tecken: %(headingLength)', + HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
    %(HEADING_LENGTH) Tecken', HEADING_FIRST: 'Den första rubriken på en sida bör vanligtvis vara en Rubrik 1 eller Rubrik 2. Rubrik 1 bör vara början på huvudinnehållsavsnittet och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_MISSING_ONE: 'Saknar Rubrik 1. Rubrik 1 bör vara början på huvudinnehållsområdet, och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Rubriken har ingen text, men innehåller en bild. Om detta inte är en rubrik ändrar du dess format från Rubrik %(level) till Normal eller Stycke. Annars, lägg till alt-text till bilden om den inte är dekorativ.', @@ -151,43 +157,43 @@ LINK_EMPTY: 'Ta bort tomma länkar utan text.', LINK_EMPTY_LABELLEDBY: 'Länken har ett värde för aria-labelledby som antingen är tomt eller inte matchar värdet för ett annat elements attribut id på sidan.', LINK_EMPTY_LINK_NO_LABEL: 'Länken har inte urskiljbar text som är synlig för skärmläsare och andra hjälpmedel. För att fixa:
    • Lägg till lite kortfattad text som beskriver vart länken tar dig.
    • Om det är en ikonlänk eller SVG, saknar den troligen en beskrivande etikett.
    • Om du tror att den här länken är ett fel på grund av ett kopierings-/klistra-fel, överväg att ta bort den.
    ', - LINK_LABEL: 'Länketikett: %(sanitizedText)', - LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(error)
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', - LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(error)
    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
    ', - LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', + LINK_LABEL: 'Länketikett %(TEXT)', + LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(ERROR)
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', + LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(ERROR)
    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
    ', + LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', LINK_DOI: 'För webbsidor eller resurser som endast finns online rekommenderar APA Style Guide att man använder beskrivande länkar genom att linda in URL:en eller DOI:en för arbetet runt dess titel. Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel.', // Links advanced - NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten
    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', - FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
    Exempel: Verkställande rapport (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(sanitizedText)', + NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten.
    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', + FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
    Exempel: Verkställande rapport (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bilden används som en länk med omgivande text, dock borde alt-attributet markeras som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bilden används som länk men saknar alt-text! Se till att alt-texten beskriver vart länken tar dig.', MISSING_ALT_MESSAGE: 'Saknar alt-text! Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(error).
    Alt-text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
    Alt-text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(error).
    Alt-text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig.
    Alt-text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Länken har aria-hidden="true" men kan fortfarande fokuseras med hjälp av tangentbordet. Om du tänker dölja en överflödig eller duplicerad länk, lägg till tabindex="-1" också.', LINK_IMAGE_NO_ALT_TEXT: 'Bilden i länken är markerad som dekorativ och det finns ingen länktext. Vänligen lägg till alternativ text till bilden som beskriver länkens destination.', LINK_IMAGE_HAS_TEXT: 'Bilden är markerad som dekorativ, även om länken använder den omgivande texten som en beskrivande etikett.', - LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
    Alt-text (%(altLength) tecken): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
    Alt-text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
    Alt-text: %(altText)
    Länketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
    Läs mer: alt kontra figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
    Läs mer: alt kontra figcaption.
    Alt-text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
    ALT %(altLength) Tecken %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
    ALT %(ALT_TEXT)
    Länketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
    Läs mer: alt kontra figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
    Läs mer: alt kontra figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel. Om bilden förmedlar en historia, stämning eller annan viktig information – se till att lägga till alt-text.', - IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
    Alt-text (%(altLength) tecken): %(altText)', - IMAGE_PASS: 'Alt-text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
    ALT %(altLength) Tecken %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildknappen saknar alternativ text. Lägg till alt-text för att ge knappen ett tillgängligt namn. Till exempel: Sök eller Skicka.', LABELS_INPUT_RESET_MESSAGE: 'Återställningsknappar bör inte användas om de inte specifikt behövs, eftersom de är lätta att aktivera av misstag.
    Tips! Lär dig varför Återställ- och Avbryt-knapparna orsakar användbarhetsproblem.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
    Inmatningsetikett: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
    Inmatningsetikett %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Lägg till ett for-attribut till etiketten som matchar id för detta inmatningsfält.
    ID:t för detta inmatningsfält är: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Vänligen lägg till ett id till denna inmatning och lägg till ett matchande for-attribut till etiketten.', @@ -200,15 +206,15 @@ EMBED_UNFOCUSABLE: '<iframe> med oväxlingsbara element bör inte ha tabindex="-1". Det inbäddade innehållet kommer inte att vara tillgängligt med tangentbordet.', // Quality assurance - QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
    Den här länken pekar på:
    %(el)', + QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
    Den här länken pekar på:
    %(LINK)', QA_IN_PAGE_LINK: 'Bruten samma-sideslänk. Länkmålet matchar inte något element på denna sida.', QA_BAD_ITALICS: 'Feta och kursiva HTML-taggar har semantisk betydelse och bör inte användas för att markera hela stycken. Fetstil text bör användas för att ge ett ord eller en fras stark betoning. Kursiv stil ska användas för att markera egennamn (d.v.s. bok- och artikeltitlar), främmande ord, citat. Långa citat bör formateras som ett blockcitat.', QA_PDF: 'Det går inte att kontrollera PDF-filer för tillgänglighet. PDF-filer betraktas som webbinnehåll och måste också göras tillgängliga. PDF-filer är ofta problematiska för personer som använder skärmläsare (till exempel: saknade strukturella taggar eller saknade formulärfältetiketter) och personer som har nedsatt syn (texten anpassar sig inte när den förstoras).
    • Om detta är ett formulär, överväg att använda ett tillgängligt HTML-formulär som ett alternativ.
    • Om detta är ett dokument, överväg att konvertera det till en webbsida.
    Annars kontrollerar du PDF för tillgänglighet i Acrobat DC.', QA_DOCUMENT: 'Det gick inte att kontrollera dokumentets tillgänglighet. Länkade dokument betraktas som webbinnehåll och måste också göras tillgängliga. Granska dokumentet manuellt. ', QA_PAGE_LANGUAGE: 'Sidspråk är inte inställt! Vänligen ställ in språk på HTML-taggen.', QA_PAGE_TITLE: 'Sidtitel saknas! Ange en sidtitel.', - QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(sanitizedText)
    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', - QA_FAKE_HEADING: 'Är detta en rubrik? %(boldtext)
    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', + QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(TEXT)
    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', + QA_FAKE_HEADING: 'Är detta en rubrik? %(TEXT)
    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', QA_SHOULD_BE_LIST: 'Försöker du skapa en lista? Möjligt listobjekt hittat: %(firstPrefix)
    Se till att använda semantiska listor genom att använda punkt- eller sifferformateringsknapparna istället. När du använder en semantisk lista kan hjälpmedel förmedla information som det totala antalet objekt och den relativa positionen för varje objekt i listan. Läs mer om semantiska listor.', QA_UPPERCASE_WARNING: 'Hittade text med enbart versaler. Vissa skärmläsare kan tolka versalskrift som en akronym och läser varje bokstav individuellt. Dessutom upplever vissa personer att det är svårare att läsa versalskrift och det kan se ut som att avsändaren SKRIKER.', QA_DUPLICATE_ID: 'Hittade duplicerat ID. Dubbletterade ID:n är kända för att orsaka problem för hjälpmedelsverktyg när de försöker interagera med innehåll.
    Ta bort eller ändra följande ID: %(id)', @@ -221,9 +227,9 @@ TABLES_EMPTY_HEADING: 'Tom tabellrubrik hittades! Tabellrubriker får aldrig vara tomma. Det är viktigt att ange rad- och/eller kolumnrubriker för att förmedla deras relation. Informationen ger sammanhang till personer som använder hjälpmedelsverktyg. Tänk på att tabeller endast ska användas för tabelldata.
    Läs mer om tillgängliga tabeller.', // Contrast - CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållandet är %(cratio) för följande text: %(sanitizedText)', - CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Granska: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande: %(cratio)', + CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Granska: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
    Kontrastförhållande %(RATIO)', }, }; diff --git a/dist/js/lang/tr.js b/dist/js/lang/tr.js index 7c312a86..7d66dc51 100644 --- a/dist/js/lang/tr.js +++ b/dist/js/lang/tr.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var tr = { OFF: 'Kapalı', ALERT_TEXT: 'Uyarı', ALERT_CLOSE: 'Kapat', - OUTLINE: 'Sayfa Anahatları', + OUTLINE: 'Taslak', + ALT: 'ALT', + IMAGES: 'Görseller', + EDIT: 'Düzenle', + IMAGES_NOT_FOUND: 'Resim bulunamadı.', + DECORATIVE: 'Dekoratif', + MISSING: 'Eksik', PAGE_ISSUES: 'Sayfa Sorunları', SETTINGS: 'Ayarlar', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var tr = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Okunabilirlik puanını hesaplamak için yeterli içerik yok.', HEADING_NON_CONSECUTIVE_LEVEL: "Ardışık olmayan başlık seviyesi kullanıldı. Başlıklar asla seviye atlamamalı veya Başlık %(prevLevel)'den Başlık %(level)'e geçmemelidir.", HEADING_EMPTY: 'Boş başlık bulundu! Düzeltmek için bu satırı silin veya biçimini Heading %(level) yerine Normal veya Paragraph olarak değiştirin.', - HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
    Karakter sayısı: %(headingLength)', + HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Bir sayfadaki ilk başlık genellikle Başlık 1 veya Başlık 2 olmalıdır. Başlık 1, ana içerik bölümünün başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_MISSING_ONE: 'Eksik Başlık 1. Başlık 1, ana içerik alanının başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_EMPTY_WITH_IMAGE: 'Başlığın metni yoktur, ancak bir resim içerir. Bu bir başlık değilse, biçimini Başlık %(level) yerine Normal veya Paragraf olarak değiştirin. Aksi takdirde, dekoratif değilse lütfen resme alt metin ekleyin.', @@ -157,65 +163,65 @@ var tr = { LINK_EMPTY: 'Herhangi bir metin içermeyen boş bağlantıları kaldırın.', LINK_EMPTY_LABELLEDBY: 'Bağlantının aria-labelledby değeri boş veya sayfadaki başka bir öğenin id özniteliği değeriyle eşleşmiyor.', LINK_EMPTY_LINK_NO_LABEL: 'Bağlantı, ekran okuyucular ve diğer yardımcı teknolojiler tarafından görülebilen ayırt edilebilir bir metne sahip değil. Düzeltmek için:
    • Bağlantının sizi nereye götürdüğünü açıklayan kısa bir metin ekleyin.
    • Bu bir ikon bağlantısı veya SVG, ise muhtemelen açıklayıcı bir etiket eksiktir.
    • Bu bağlantının bir kopyala/yapıştır hatasından kaynaklanan bir hata olduğunu düşünüyorsanız, silmeyi düşünün.
    ', - LINK_LABEL: 'Link etiketi: %(sanitizedText)', - LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(error)
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', - LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(error)
    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
    ', - LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", + LINK_LABEL: 'Link etiketi %(TEXT)', + LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(ERROR)
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', + LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(ERROR)
    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
    ', + LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", LINK_DOI: 'Web sayfaları veya yalnızca çevrimiçi kaynaklar için APA Stil kılavuzu, çalışmanın URL\'sini veya DOI\'sini başlığının etrafına sararak açıklayıcı bağlantılar kullanılmasını önerir. Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL\'lerin yardımcı teknoloji ile erişildiğinde anlaşılması zor olabilir.', - NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin
    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', - FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
    Örnek: Yönetici Raporu (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(sanitizedText)', + NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin.
    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', + FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
    Örnek: Yönetici Raporu (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Görüntü, çevresindeki metinle birlikte bir bağlantı olarak kullanılıyor, ancak alt özniteliği dekoratif veya boş olarak işaretlenmelidir.', MISSING_ALT_LINK_MESSAGE: 'Resim bağlantı olarak kullanılıyor ancak alt metni eksik! Lütfen alt metnin bağlantının sizi nereye götüreceğini açıkladığından emin olun.', MISSING_ALT_MESSAGE: 'Eksik alt metin! Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(error).
    Alt metin: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(error)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
    Alt metin: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(error).
    Alt metin: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(altText)', - ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(error)" gereksiz olabilir.
    Alt metin: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(ERROR)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(ERROR)" gereksiz olabilir.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Bağlantıda aria-hidden="true" özelliği var ancak hala klavye ile odaklanılabilir. Eğer gereksiz veya tekrar eden bir bağlantıyı gizlemeyi düşünüyorsanız, tabindex="-1" özelliğini de ekleyin.', LINK_IMAGE_NO_ALT_TEXT: 'Bağlantı içindeki resim dekoratif olarak işaretlenmiş ve bağlantı metni yok. Lütfen resme bağlantının hedefini açıklayan alt metin ekleyin.', LINK_IMAGE_HAS_TEXT: 'Bağlantı, çevresindeki metni açıklayıcı bir etiket olarak kullanmasına rağmen görüntü dekoratif olarak işaretlenmiştir.', - LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
    Alt metin (%(altLength) karakter): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
    Alt metin: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
    Alt metin: %(altText)
    Link etiketi: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.
    Alt metin: %(altText)', + LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
    ALT %(ALT_TEXT)
    Etiketi %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Görüntü dekoratif olarak işaretlenir ve yardımcı teknoloji tarafından göz ardı edilir. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa alt metin eklediğinizden emin olun.', - IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
    Alt metin (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt metin: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Resim düğmesinin alt metni eksik. Lütfen erişilebilir bir ad sağlamak için alt metin ekleyin. Örneğin: Arama veya Gönder.', LABELS_INPUT_RESET_MESSAGE: 'Sıfırla düğmeleri özellikle gerekmedikçe kullanılmamalıdır çünkü yanlışlıkla etkinleştirilmeleri kolaydır.
    İpucu! Reset ve İptal düğmelerinin neden kullanılabilirlik sorunları oluşturduğunu öğrenin.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
    Giriş etiketi: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
    Giriş etiketi %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Bu girdiyle ilişkilendirilmiş bir etiket yok. Etikete, bu girdinin id'siyle eşleşen bir for niteliği ekleyin.
    Bu girdinin kimliği şudur: id="%(id)"", LABELS_MISSING_LABEL_MESSAGE: 'Bu girdiyle ilişkilendirilmiş bir etiket yok. Lütfen bu girdiye bir id ekleyin ve etikete eşleşen bir for niteliği ekleyin.', EMBED_VIDEO: 'Lütfen tüm videolarda altyazı olduğundan emin olun. Tüm ses ve video içerikleri için altyazı sağlanması zorunlu bir A Düzeyi gerekliliğidir. Altyazılar, işitme engelli veya işitme güçlüğü çeken kişileri destekler.', EMBED_AUDIO: "Lütfen tüm podcast'ler için bir transkript sağladığınızdan emin olun. Ses içeriği için transkript sağlamak zorunlu bir Seviye A gerekliliğidir. Transkriptler işitme engelli veya işitme güçlüğü çeken kişileri destekler, ancak herkese fayda sağlayabilir. Transkripti aşağıya veya bir akordeon panel içine yerleştirmeyi düşünün.", - EMBED_DATA_VIZ: "Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
    karmaşık görüntüler hakkında daha fazla bilgi edinin.", - EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames. hakkında daha fazla bilgi edinin', + EMBED_DATA_VIZ: 'Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget\'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
    karmaşık görüntüler hakkında daha fazla bilgi edinin.', + EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames.', EMBED_GENERAL_WARNING: 'Gömülü içerik kontrol edilemiyor. Lütfen resimlerin alt metni, videoların alt yazısı, metinlerin yeterli kontrastı ve etkileşimli bileşenlerin klavye ile erişilebilir olduğundan emin olun.', EMBED_UNFOCUSABLE: 'Odaklanılamayan öğeler içeren <iframe>, tabindex="-1" olmamalıdır. Gömülü içerik klavye ile erişilebilir olmayacak.', - QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
    Bu bağlantı şuraya işaret ediyor:
    %(el)', + QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
    Bu bağlantı şuraya işaret ediyor:
    %(LINK)', QA_IN_PAGE_LINK: 'Kırık aynı sayfa bağlantısı. Bağlantı hedefi, bu sayfadaki herhangi bir öğeyle eşleşmiyor.', QA_BAD_ITALICS: 'Kalın ve italik etiketlerinin anlamsal bir anlamı vardır ve paragrafların tamamını vurgulamak için kullanılmamalıdır. Kalınlaştırılmış metin, bir kelime veya cümleye güçlü bir vurgu yapmak için kullanılmalıdır. İtalik yazılar özel isimleri (kitap ve makale başlıkları gibi), yabancı kelimeleri ve alıntıları vurgulamak için kullanılmalıdır. Uzun alıntılar blok alıntı olarak biçimlendirilmelidir.', - QA_PDF: "PDF'ler erişilebilirlik açısından kontrol edilemiyor. PDF'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
    Aksi takdirde, lütfen Acrobat DC'de erişilebilirlik için PDF'yi kontrol edin.", + QA_PDF: 'PDF\'ler erişilebilirlik açısından kontrol edilemiyor. PDF\'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF\'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
    Aksi takdirde, lütfen Acrobat DC\'de erişilebilirlik için PDF\'yi kontrol edin.', QA_DOCUMENT: 'Belge erişilebilirlik açısından kontrol edilemiyor. Bağlantılı belgeler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. Lütfen bu belgeyi manuel olarak inceleyin. ', QA_PAGE_LANGUAGE: 'Sayfa dili bildirilmedi! Lütfen declare language on HTML tag.', QA_PAGE_TITLE: 'Sayfa başlığı eksik! Lütfen bir sayfa başlığı sağlayın.', - QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(sanitizedText)
    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', - QA_FAKE_HEADING: "Bu bir başlık mı? %(boldtext)
    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", - QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', + QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(TEXT)
    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', + QA_FAKE_HEADING: "Bu bir başlık mı? %(TEXT)
    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", + QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', QA_UPPERCASE_WARNING: 'Büyük harfler bulundu. Bazı ekran okuyucular büyük harfle yazılan metni kısaltma olarak yorumlayabilir ve her harfi ayrı ayrı okuyabilir. Ayrıca, bazı kişiler büyük harfleri okumayı daha zor bulabilir ve bu durum BAĞIRMA görüntüsü verebilir.', - QA_DUPLICATE_ID: 'yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', + QA_DUPLICATE_ID: 'Yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Altı çizili metin bağlantılarla karıştırılabilir. <strong>strong importance</strong> veya <em>emphasis</em> gibi farklı bir stil kullanmayı düşünün.', QA_SUBSCRIPT_WARNING: 'Alt simge ve üst simge biçimlendirme seçenekleri yalnızca tipografik kurallar veya standartlar için metnin konumunu değiştirmek amacıyla kullanılmalıdır. Yalnızca sunum veya görünüm amacıyla kullanılmamalıdır. Tüm cümlelerin biçimlendirilmesi okunabilirlik sorunları yaratır. Uygun kullanım durumları arasında üslerin, dördüncü yerine 4üncü gibi sıra sayılarının ve kimyasal formüllerin (örneğin H2O) gösterilmesi yer alır.', TABLES_MISSING_HEADINGS: 'Eksik tablo başlıkları! Erişilebilir tablolar, başlık hücrelerini ve aralarındaki ilişkiyi tanımlayan veri hücrelerini gösteren HTML işaretlemesine ihtiyaç duyar. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Tablolar yalnızca tablo verileri için kullanılmalıdır.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_SEMANTIC_HEADING: 'Heading 2 veya Heading 3 gibi anlamsal başlıklar yalnızca içerik bölümleri için kullanılmalıdır; HTML tablolarında değil. Bunun yerine tablo başlıklarını <th> öğesini kullanarak belirtin.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_EMPTY_HEADING: 'Boş tablo başlığı bulundu! Tablo başlıkları asla boş olmamalıdır. İlişkilerini aktarmak için satır ve/veya sütun başlıklarını belirlemek önemlidir. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Lütfen tabloların yalnızca tablo halindeki veriler için kullanılması gerektiğini unutmayın.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', - CONTRAST_ERROR: "Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Aşağıdaki metin için kontrast oranı %(cratio)'dur: %(sanitizedText)", - CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Lütfen inceleyin: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast oranı: %(cratio)', + CONTRAST_ERROR: 'Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast Oranı %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Lütfen inceleyin: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast Oranı %(RATIO) %(TEXT)', }, }; diff --git a/dist/js/lang/tr.umd.js b/dist/js/lang/tr.umd.js index e5b54479..f2204ded 100644 --- a/dist/js/lang/tr.umd.js +++ b/dist/js/lang/tr.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Kapalı', ALERT_TEXT: 'Uyarı', ALERT_CLOSE: 'Kapat', - OUTLINE: 'Sayfa Anahatları', + OUTLINE: 'Taslak', + ALT: 'ALT', + IMAGES: 'Görseller', + EDIT: 'Düzenle', + IMAGES_NOT_FOUND: 'Resim bulunamadı.', + DECORATIVE: 'Dekoratif', + MISSING: 'Eksik', PAGE_ISSUES: 'Sayfa Sorunları', SETTINGS: 'Ayarlar', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Okunabilirlik puanını hesaplamak için yeterli içerik yok.', HEADING_NON_CONSECUTIVE_LEVEL: "Ardışık olmayan başlık seviyesi kullanıldı. Başlıklar asla seviye atlamamalı veya Başlık %(prevLevel)'den Başlık %(level)'e geçmemelidir.", HEADING_EMPTY: 'Boş başlık bulundu! Düzeltmek için bu satırı silin veya biçimini Heading %(level) yerine Normal veya Paragraph olarak değiştirin.', - HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
    Karakter sayısı: %(headingLength)', + HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Bir sayfadaki ilk başlık genellikle Başlık 1 veya Başlık 2 olmalıdır. Başlık 1, ana içerik bölümünün başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_MISSING_ONE: 'Eksik Başlık 1. Başlık 1, ana içerik alanının başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_EMPTY_WITH_IMAGE: 'Başlığın metni yoktur, ancak bir resim içerir. Bu bir başlık değilse, biçimini Başlık %(level) yerine Normal veya Paragraf olarak değiştirin. Aksi takdirde, dekoratif değilse lütfen resme alt metin ekleyin.', @@ -163,65 +169,65 @@ LINK_EMPTY: 'Herhangi bir metin içermeyen boş bağlantıları kaldırın.', LINK_EMPTY_LABELLEDBY: 'Bağlantının aria-labelledby değeri boş veya sayfadaki başka bir öğenin id özniteliği değeriyle eşleşmiyor.', LINK_EMPTY_LINK_NO_LABEL: 'Bağlantı, ekran okuyucular ve diğer yardımcı teknolojiler tarafından görülebilen ayırt edilebilir bir metne sahip değil. Düzeltmek için:
    • Bağlantının sizi nereye götürdüğünü açıklayan kısa bir metin ekleyin.
    • Bu bir ikon bağlantısı veya SVG, ise muhtemelen açıklayıcı bir etiket eksiktir.
    • Bu bağlantının bir kopyala/yapıştır hatasından kaynaklanan bir hata olduğunu düşünüyorsanız, silmeyi düşünün.
    ', - LINK_LABEL: 'Link etiketi: %(sanitizedText)', - LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(error)
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', - LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(error)
    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
    ', - LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", + LINK_LABEL: 'Link etiketi %(TEXT)', + LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(ERROR)
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', + LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(ERROR)
    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
    ', + LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", LINK_DOI: 'Web sayfaları veya yalnızca çevrimiçi kaynaklar için APA Stil kılavuzu, çalışmanın URL\'sini veya DOI\'sini başlığının etrafına sararak açıklayıcı bağlantılar kullanılmasını önerir. Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL\'lerin yardımcı teknoloji ile erişildiğinde anlaşılması zor olabilir.', - NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin
    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', - FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
    Örnek: Yönetici Raporu (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(sanitizedText)', + NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin.
    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', + FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
    Örnek: Yönetici Raporu (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Görüntü, çevresindeki metinle birlikte bir bağlantı olarak kullanılıyor, ancak alt özniteliği dekoratif veya boş olarak işaretlenmelidir.', MISSING_ALT_LINK_MESSAGE: 'Resim bağlantı olarak kullanılıyor ancak alt metni eksik! Lütfen alt metnin bağlantının sizi nereye götüreceğini açıkladığından emin olun.', MISSING_ALT_MESSAGE: 'Eksik alt metin! Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(error).
    Alt metin: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(error)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
    Alt metin: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(error).
    Alt metin: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(altText)', - ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(error)" gereksiz olabilir.
    Alt metin: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(ERROR).
    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(ERROR)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(ERROR).
    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(ERROR)" gereksiz olabilir.
    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Bağlantıda aria-hidden="true" özelliği var ancak hala klavye ile odaklanılabilir. Eğer gereksiz veya tekrar eden bir bağlantıyı gizlemeyi düşünüyorsanız, tabindex="-1" özelliğini de ekleyin.', LINK_IMAGE_NO_ALT_TEXT: 'Bağlantı içindeki resim dekoratif olarak işaretlenmiş ve bağlantı metni yok. Lütfen resme bağlantının hedefini açıklayan alt metin ekleyin.', LINK_IMAGE_HAS_TEXT: 'Bağlantı, çevresindeki metni açıklayıcı bir etiket olarak kullanmasına rağmen görüntü dekoratif olarak işaretlenmiştir.', - LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
    Alt metin (%(altLength) karakter): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
    Alt metin: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
    Alt metin: %(altText)
    Link etiketi: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.
    Alt metin: %(altText)', + LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
    ALT %(ALT_TEXT)
    Etiketi %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
    Daha fazla bilgi edinin: alt versus figcaption.
    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Görüntü dekoratif olarak işaretlenir ve yardımcı teknoloji tarafından göz ardı edilir. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa alt metin eklediğinizden emin olun.', - IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
    Alt metin (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt metin: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Resim düğmesinin alt metni eksik. Lütfen erişilebilir bir ad sağlamak için alt metin ekleyin. Örneğin: Arama veya Gönder.', LABELS_INPUT_RESET_MESSAGE: 'Sıfırla düğmeleri özellikle gerekmedikçe kullanılmamalıdır çünkü yanlışlıkla etkinleştirilmeleri kolaydır.
    İpucu! Reset ve İptal düğmelerinin neden kullanılabilirlik sorunları oluşturduğunu öğrenin.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
    Giriş etiketi: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
    Giriş etiketi %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Bu girdiyle ilişkilendirilmiş bir etiket yok. Etikete, bu girdinin id'siyle eşleşen bir for niteliği ekleyin.
    Bu girdinin kimliği şudur: id="%(id)"", LABELS_MISSING_LABEL_MESSAGE: 'Bu girdiyle ilişkilendirilmiş bir etiket yok. Lütfen bu girdiye bir id ekleyin ve etikete eşleşen bir for niteliği ekleyin.', EMBED_VIDEO: 'Lütfen tüm videolarda altyazı olduğundan emin olun. Tüm ses ve video içerikleri için altyazı sağlanması zorunlu bir A Düzeyi gerekliliğidir. Altyazılar, işitme engelli veya işitme güçlüğü çeken kişileri destekler.', EMBED_AUDIO: "Lütfen tüm podcast'ler için bir transkript sağladığınızdan emin olun. Ses içeriği için transkript sağlamak zorunlu bir Seviye A gerekliliğidir. Transkriptler işitme engelli veya işitme güçlüğü çeken kişileri destekler, ancak herkese fayda sağlayabilir. Transkripti aşağıya veya bir akordeon panel içine yerleştirmeyi düşünün.", - EMBED_DATA_VIZ: "Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
    karmaşık görüntüler hakkında daha fazla bilgi edinin.", - EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames. hakkında daha fazla bilgi edinin', + EMBED_DATA_VIZ: 'Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget\'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
    karmaşık görüntüler hakkında daha fazla bilgi edinin.', + EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames.', EMBED_GENERAL_WARNING: 'Gömülü içerik kontrol edilemiyor. Lütfen resimlerin alt metni, videoların alt yazısı, metinlerin yeterli kontrastı ve etkileşimli bileşenlerin klavye ile erişilebilir olduğundan emin olun.', EMBED_UNFOCUSABLE: 'Odaklanılamayan öğeler içeren <iframe>, tabindex="-1" olmamalıdır. Gömülü içerik klavye ile erişilebilir olmayacak.', - QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
    Bu bağlantı şuraya işaret ediyor:
    %(el)', + QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
    Bu bağlantı şuraya işaret ediyor:
    %(LINK)', QA_IN_PAGE_LINK: 'Kırık aynı sayfa bağlantısı. Bağlantı hedefi, bu sayfadaki herhangi bir öğeyle eşleşmiyor.', QA_BAD_ITALICS: 'Kalın ve italik etiketlerinin anlamsal bir anlamı vardır ve paragrafların tamamını vurgulamak için kullanılmamalıdır. Kalınlaştırılmış metin, bir kelime veya cümleye güçlü bir vurgu yapmak için kullanılmalıdır. İtalik yazılar özel isimleri (kitap ve makale başlıkları gibi), yabancı kelimeleri ve alıntıları vurgulamak için kullanılmalıdır. Uzun alıntılar blok alıntı olarak biçimlendirilmelidir.', - QA_PDF: "PDF'ler erişilebilirlik açısından kontrol edilemiyor. PDF'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
    Aksi takdirde, lütfen Acrobat DC'de erişilebilirlik için PDF'yi kontrol edin.", + QA_PDF: 'PDF\'ler erişilebilirlik açısından kontrol edilemiyor. PDF\'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF\'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
    Aksi takdirde, lütfen Acrobat DC\'de erişilebilirlik için PDF\'yi kontrol edin.', QA_DOCUMENT: 'Belge erişilebilirlik açısından kontrol edilemiyor. Bağlantılı belgeler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. Lütfen bu belgeyi manuel olarak inceleyin. ', QA_PAGE_LANGUAGE: 'Sayfa dili bildirilmedi! Lütfen declare language on HTML tag.', QA_PAGE_TITLE: 'Sayfa başlığı eksik! Lütfen bir sayfa başlığı sağlayın.', - QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(sanitizedText)
    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', - QA_FAKE_HEADING: "Bu bir başlık mı? %(boldtext)
    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", - QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', + QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(TEXT)
    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', + QA_FAKE_HEADING: "Bu bir başlık mı? %(TEXT)
    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", + QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', QA_UPPERCASE_WARNING: 'Büyük harfler bulundu. Bazı ekran okuyucular büyük harfle yazılan metni kısaltma olarak yorumlayabilir ve her harfi ayrı ayrı okuyabilir. Ayrıca, bazı kişiler büyük harfleri okumayı daha zor bulabilir ve bu durum BAĞIRMA görüntüsü verebilir.', - QA_DUPLICATE_ID: 'yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', + QA_DUPLICATE_ID: 'Yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Altı çizili metin bağlantılarla karıştırılabilir. <strong>strong importance</strong> veya <em>emphasis</em> gibi farklı bir stil kullanmayı düşünün.', QA_SUBSCRIPT_WARNING: 'Alt simge ve üst simge biçimlendirme seçenekleri yalnızca tipografik kurallar veya standartlar için metnin konumunu değiştirmek amacıyla kullanılmalıdır. Yalnızca sunum veya görünüm amacıyla kullanılmamalıdır. Tüm cümlelerin biçimlendirilmesi okunabilirlik sorunları yaratır. Uygun kullanım durumları arasında üslerin, dördüncü yerine 4üncü gibi sıra sayılarının ve kimyasal formüllerin (örneğin H2O) gösterilmesi yer alır.', TABLES_MISSING_HEADINGS: 'Eksik tablo başlıkları! Erişilebilir tablolar, başlık hücrelerini ve aralarındaki ilişkiyi tanımlayan veri hücrelerini gösteren HTML işaretlemesine ihtiyaç duyar. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Tablolar yalnızca tablo verileri için kullanılmalıdır.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_SEMANTIC_HEADING: 'Heading 2 veya Heading 3 gibi anlamsal başlıklar yalnızca içerik bölümleri için kullanılmalıdır; HTML tablolarında değil. Bunun yerine tablo başlıklarını <th> öğesini kullanarak belirtin.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_EMPTY_HEADING: 'Boş tablo başlığı bulundu! Tablo başlıkları asla boş olmamalıdır. İlişkilerini aktarmak için satır ve/veya sütun başlıklarını belirlemek önemlidir. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Lütfen tabloların yalnızca tablo halindeki veriler için kullanılması gerektiğini unutmayın.
    erişilebilir tablolar hakkında daha fazla bilgi edinin.', - CONTRAST_ERROR: "Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Aşağıdaki metin için kontrast oranı %(cratio)'dur: %(sanitizedText)", - CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Lütfen inceleyin: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast oranı: %(cratio)', + CONTRAST_ERROR: 'Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast Oranı %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Lütfen inceleyin: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
    Kontrast Oranı %(RATIO) %(TEXT)', }, }; diff --git a/dist/js/lang/ua.js b/dist/js/lang/ua.js index f3261cf6..4d52417f 100644 --- a/dist/js/lang/ua.js +++ b/dist/js/lang/ua.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var ua = { OFF: 'Вимкнено', ALERT_TEXT: 'Попередження', ALERT_CLOSE: 'Закрити', - OUTLINE: 'Контури сторінки', + OUTLINE: 'Структура', + ALT: 'АЛЬТ', + IMAGES: 'Зображення', + EDIT: 'Редагувати', + IMAGES_NOT_FOUND: 'Зображення не знайдено.', + DECORATIVE: 'Декоративний', + MISSING: 'Відсутній', PAGE_ISSUES: 'Проблеми зі сторінкою', SETTINGS: 'Налаштування', CONTRAST: 'Контраст', @@ -127,7 +133,7 @@ var ua = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Використано непослідовні рівні заголовків. Заголовки ніколи не повинні пропускати рівні або переходити від заголовка %(prevLevel) до заголовка %(level).', HEADING_EMPTY: 'Знайдено порожній заголовок! Щоб виправити, видаліть цей рядок або змініть його формат: замість Заголовок %(level) оберіть Звичайний або Абзац.', - HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
    Кількість символів: %(headingLength)', + HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
    %(HEADING_LENGTH) Символів', HEADING_FIRST: 'Першим заголовком на сторінці зазвичай повинен бути Заголовок 1 або Заголовок 2. Заголовок 1 має бути початком частини основного змісту та є основним заголовком, що описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_MISSING_ONE: 'Відсутній Заголовок 1. Заголовок 1 повинен бути початком області основного змісту та є основним заголовком, який описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_EMPTY_WITH_IMAGE: 'Заголовок не має тексту, але містить зображення. Якщо це не заголовок, змініть його формат: замість Заголовок %(level) поставте Звичайний або Абзац. В іншому разі додайте текст заміщення до зображення, якщо воно не є декоративним.', @@ -137,44 +143,44 @@ var ua = { // Links LINK_EMPTY: 'Видаліть пусті посилання без тексту.', LINK_EMPTY_LABELLEDBY: 'Лінк має значення для aria-labelledby, яке є порожнім або не відповідає значенню атрибута id іншого елемента на сторінці.', - LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
    • Додайте короткий текст, який описує куди веде посилання.
    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
    ', - LINK_LABEL: 'Назва посилання: %(sanitizedText)', - LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(error)
    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', - LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(error)
    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
    ', - LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', + LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
    • Додайте короткий текст, який описує куди веде посилання.
    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
    ', + LINK_LABEL: 'Назва посилання %(TEXT)', + LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(ERROR)
    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', + LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(ERROR)
    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
    ', + LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', LINK_DOI: 'Для веб-сторінок або ресурсів, доступних лише в Інтернеті, посібник зі стилю APA рекомендує використовувати описові посилання, обгортаючи URL-адресу або DOI роботи навколо її назви. Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій.', // Links advanced NEW_TAB_WARNING: 'Посилання відкривається у новій вкладці або вікні без попередження. Це може дезорієнтувати, особливо людей, які мають труднощі зі сприйняттям візуального контенту. До того ж, не завжди добре контролювати чийсь досвід чи приймати рішення за іншу особу. У тексті посилання вказуйте, що посилання відкривається у новому вікні.
    Порада! Вивчіть найкращі практики: відкриття посилань у нових вікнах та вкладках браузера.', FILE_TYPE_WARNING: 'Посилання вказує на PDF або файл, що завантажується (наприклад, MP3, Zip, Word Doc) без попередження. Вкажіть тип файлу у тексті посилання. Якщо це великий файл, вкажіть його розмір.
    Приклад: Виконавчий звіт (PDF, 3 МБ)', - LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Зображення використовується як посилання з оточуючим текстом, хоча атрибут текст заміщення повинен бути позначений як декоративний або нульовий.', MISSING_ALT_LINK_MESSAGE: 'Зображення використовується як посилання, але відсутній текст заміщення! Переконайтеся, що текст заміщення описує, куди веде посилання.', MISSING_ALT_MESSAGE: 'Відсутній текст заміщення! Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його.', - LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(error).
    текст заміщення: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
    текст заміщення: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(error).
    текст заміщення: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(altText)', - ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими.
    текст заміщення: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(ERROR).
    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
    АЛЬТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(ERROR).
    АЛЬТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими.
    АЛЬТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Посилання має aria-hidden="true", але все ще доступне для фокусування за допомогою клавіатури. Якщо ви плануєте приховати зайве або дубльоване посилання, також додайте tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Зображення у посиланні позначене як декоративне, а текст посилання відсутній. Будь ласка, додайте до зображення текст заміщення, який визначає місце призначення посилання.', LINK_IMAGE_HAS_TEXT: 'Зображення позначене як декоративне, хоча посилання використовує навколишній текст як описову назву.', - LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
    текст заміщення (%(altLength) символів): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
    текст заміщення: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
    текст заміщення: %(altText)
    Назва посилання: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
    текст заміщення: %(altText)', + LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
    АЛЬТ %(ALT_TEXT)
    Назва посилання %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
    АЛЬТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями. Якщо зображення передає історію, настрій або важливу інформацію, переконайтесь, що до нього додано текст заміщення.', - IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
    текст заміщення (%(altLength) символів): %(altText)', - IMAGE_PASS: 'текст заміщення: %(altText)', + IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + IMAGE_PASS: 'АЛЬТ %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'На кнопці зображення не вистачає текст заміщенняу. Будь ласка, додайте текст заміщення, щоб надати доступну назву. Наприклад: Пошук або Подати.', LABELS_INPUT_RESET_MESSAGE: 'Кнопки перезавантаження не слід використовувати без необхідності, оскільки їх легко активувати помилково.
    Порада! Дізнайтеся, чому кнопки перезавантаження та відміни викликають проблеми зі зручністю використання.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
    Етикетка для введення: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
    Етикетка для введення %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Додайте атрибут for що відповідає ідентифікатору цього входу.
    Ідентифікатор цього входу: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Будь ласка, додайте id до цього введення та додайте відповідний атрибут for до назви.', @@ -187,16 +193,16 @@ var ua = { EMBED_UNFOCUSABLE: '<iframe> з елементами, на які не можна фокусуватися, не повинен мати tabindex="-1". Вбудований вміст не буде доступний за допомогою клавіатури.', // Quality assurance - QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
    Це посилання вказує на:
    %(el)', + QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
    Це посилання вказує на:
    %(LINK)', QA_IN_PAGE_LINK: 'Пошкоджений посилання в межах сторінки. Ціль посилання не відповідає жодному елементу на цій сторінці.', QA_BAD_ITALICS: 'Теги жирним шрифтом і курсивом мають змістовне значення і не повинні використовуватися для виділення цілих абзаців. Жирний текст слід використовувати для виділення слова або фрази. Курсив слід використовувати для виділення власних назв (наприклад, назв книг і статей), іноземних слів, цитат. Довгі цитати слід оформлювати як блокові цитати.', - QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', + QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', QA_DOCUMENT: 'Не вдалося перевірити документ на доступність. Документи, на які є посилання, вважаються веб-вмістом і також повинні бути доступними. Будь ласка, перегляньте цей документ вручну. ', QA_PAGE_LANGUAGE: 'Мова сторінки не вказана! Будь ласка, вкажіть мову в тезі HTML.', QA_PAGE_TITLE: 'Відсутня назва сторінки! Укажіть назву сторінки.', - QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(sanitizedText)
    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', - QA_FAKE_HEADING: 'Це заголовок? %(boldtext)
    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', - QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', + QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(TEXT)
    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', + QA_FAKE_HEADING: 'Це заголовок? %(TEXT)
    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', + QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', QA_UPPERCASE_WARNING: 'Знайдено текст великими літерами. Деякі програми читання з екрана можуть інтерпретувати текст, написаний великими літерами, як абревіатуру і читати кожну літеру окремо. Крім того, деяким людям важче читати текст, написаний великими літерами, і він може виглядати як КРИК.', QA_DUPLICATE_ID: 'Виявлено дублікат ID. Відомо, що помилки дублювання ID можуть викликати проблеми для допоміжних технологій, коли вони намагаються взаємодіяти із вмістом.
    Будь ласка, видаліть або змініть наступний ідентифікатор: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Підкреслений текст можна переплутати з посиланнями. Розгляньте можливість використання іншого стилю, наприклад <strong>сильного акценту</strong> або <em>наголос</em>.', @@ -208,9 +214,9 @@ var ua = { TABLES_EMPTY_HEADING: 'Знайдено порожній заголовок таблиці! Заголовки таблиць ніколи не повинні бути порожніми. Важливо позначати заголовки рядків та/або стовпців, щоб передавати їх зв\'язок. Ця інформація забезпечує контекст для людей, які використовують допоміжні технології. Пам\'ятайте, що таблиці слід використовувати лише для табличних даних. Дізнайтеся більше про доступні таблиці.
    Дізнайтеся більше про доступні таблиці.', // Contrast - CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Коефіцієнт контрастності становить %(cratio) для даного тексту: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Будь ласка, перевірте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
    Коефіцієнт контрастності: %(cratio)', + CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Контрастне відношення %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Будь ласка, перевірте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
    Контрастне відношення %(RATIO)', }, }; diff --git a/dist/js/lang/ua.umd.js b/dist/js/lang/ua.umd.js index c76e50d8..7c238190 100644 --- a/dist/js/lang/ua.umd.js +++ b/dist/js/lang/ua.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Вимкнено', ALERT_TEXT: 'Попередження', ALERT_CLOSE: 'Закрити', - OUTLINE: 'Контури сторінки', + OUTLINE: 'Структура', + ALT: 'АЛЬТ', + IMAGES: 'Зображення', + EDIT: 'Редагувати', + IMAGES_NOT_FOUND: 'Зображення не знайдено.', + DECORATIVE: 'Декоративний', + MISSING: 'Відсутній', PAGE_ISSUES: 'Проблеми зі сторінкою', SETTINGS: 'Налаштування', CONTRAST: 'Контраст', @@ -133,7 +139,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Використано непослідовні рівні заголовків. Заголовки ніколи не повинні пропускати рівні або переходити від заголовка %(prevLevel) до заголовка %(level).', HEADING_EMPTY: 'Знайдено порожній заголовок! Щоб виправити, видаліть цей рядок або змініть його формат: замість Заголовок %(level) оберіть Звичайний або Абзац.', - HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
    Кількість символів: %(headingLength)', + HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
    %(HEADING_LENGTH) Символів', HEADING_FIRST: 'Першим заголовком на сторінці зазвичай повинен бути Заголовок 1 або Заголовок 2. Заголовок 1 має бути початком частини основного змісту та є основним заголовком, що описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_MISSING_ONE: 'Відсутній Заголовок 1. Заголовок 1 повинен бути початком області основного змісту та є основним заголовком, який описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_EMPTY_WITH_IMAGE: 'Заголовок не має тексту, але містить зображення. Якщо це не заголовок, змініть його формат: замість Заголовок %(level) поставте Звичайний або Абзац. В іншому разі додайте текст заміщення до зображення, якщо воно не є декоративним.', @@ -143,44 +149,44 @@ // Links LINK_EMPTY: 'Видаліть пусті посилання без тексту.', LINK_EMPTY_LABELLEDBY: 'Лінк має значення для aria-labelledby, яке є порожнім або не відповідає значенню атрибута id іншого елемента на сторінці.', - LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
    • Додайте короткий текст, який описує куди веде посилання.
    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
    ', - LINK_LABEL: 'Назва посилання: %(sanitizedText)', - LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(error)
    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', - LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(error)
    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
    ', - LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', + LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
    • Додайте короткий текст, який описує куди веде посилання.
    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
    ', + LINK_LABEL: 'Назва посилання %(TEXT)', + LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(ERROR)
    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', + LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(ERROR)
    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
    ', + LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', LINK_DOI: 'Для веб-сторінок або ресурсів, доступних лише в Інтернеті, посібник зі стилю APA рекомендує використовувати описові посилання, обгортаючи URL-адресу або DOI роботи навколо її назви. Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій.', // Links advanced NEW_TAB_WARNING: 'Посилання відкривається у новій вкладці або вікні без попередження. Це може дезорієнтувати, особливо людей, які мають труднощі зі сприйняттям візуального контенту. До того ж, не завжди добре контролювати чийсь досвід чи приймати рішення за іншу особу. У тексті посилання вказуйте, що посилання відкривається у новому вікні.
    Порада! Вивчіть найкращі практики: відкриття посилань у нових вікнах та вкладках браузера.', FILE_TYPE_WARNING: 'Посилання вказує на PDF або файл, що завантажується (наприклад, MP3, Zip, Word Doc) без попередження. Вкажіть тип файлу у тексті посилання. Якщо це великий файл, вкажіть його розмір.
    Приклад: Виконавчий звіт (PDF, 3 МБ)', - LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Зображення використовується як посилання з оточуючим текстом, хоча атрибут текст заміщення повинен бути позначений як декоративний або нульовий.', MISSING_ALT_LINK_MESSAGE: 'Зображення використовується як посилання, але відсутній текст заміщення! Переконайтеся, що текст заміщення описує, куди веде посилання.', MISSING_ALT_MESSAGE: 'Відсутній текст заміщення! Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його.', - LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(error).
    текст заміщення: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
    текст заміщення: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(error).
    текст заміщення: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(altText)', - ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими.
    текст заміщення: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(ERROR).
    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
    АЛЬТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(ERROR).
    АЛЬТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими.
    АЛЬТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Посилання має aria-hidden="true", але все ще доступне для фокусування за допомогою клавіатури. Якщо ви плануєте приховати зайве або дубльоване посилання, також додайте tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Зображення у посиланні позначене як декоративне, а текст посилання відсутній. Будь ласка, додайте до зображення текст заміщення, який визначає місце призначення посилання.', LINK_IMAGE_HAS_TEXT: 'Зображення позначене як декоративне, хоча посилання використовує навколишній текст як описову назву.', - LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
    текст заміщення (%(altLength) символів): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
    текст заміщення: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
    текст заміщення: %(altText)
    Назва посилання: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
    текст заміщення: %(altText)', + LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
    АЛЬТ %(ALT_TEXT)
    Назва посилання %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
    • текст заміщення повинен містити короткий опис того, що зображенно.
    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
    АЛЬТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями. Якщо зображення передає історію, настрій або важливу інформацію, переконайтесь, що до нього додано текст заміщення.', - IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
    текст заміщення (%(altLength) символів): %(altText)', - IMAGE_PASS: 'текст заміщення: %(altText)', + IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + IMAGE_PASS: 'АЛЬТ %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'На кнопці зображення не вистачає текст заміщенняу. Будь ласка, додайте текст заміщення, щоб надати доступну назву. Наприклад: Пошук або Подати.', LABELS_INPUT_RESET_MESSAGE: 'Кнопки перезавантаження не слід використовувати без необхідності, оскільки їх легко активувати помилково.
    Порада! Дізнайтеся, чому кнопки перезавантаження та відміни викликають проблеми зі зручністю використання.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
    Етикетка для введення: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
    Етикетка для введення %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Додайте атрибут for що відповідає ідентифікатору цього входу.
    Ідентифікатор цього входу: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Будь ласка, додайте id до цього введення та додайте відповідний атрибут for до назви.', @@ -193,16 +199,16 @@ EMBED_UNFOCUSABLE: '<iframe> з елементами, на які не можна фокусуватися, не повинен мати tabindex="-1". Вбудований вміст не буде доступний за допомогою клавіатури.', // Quality assurance - QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
    Це посилання вказує на:
    %(el)', + QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
    Це посилання вказує на:
    %(LINK)', QA_IN_PAGE_LINK: 'Пошкоджений посилання в межах сторінки. Ціль посилання не відповідає жодному елементу на цій сторінці.', QA_BAD_ITALICS: 'Теги жирним шрифтом і курсивом мають змістовне значення і не повинні використовуватися для виділення цілих абзаців. Жирний текст слід використовувати для виділення слова або фрази. Курсив слід використовувати для виділення власних назв (наприклад, назв книг і статей), іноземних слів, цитат. Довгі цитати слід оформлювати як блокові цитати.', - QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', + QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', QA_DOCUMENT: 'Не вдалося перевірити документ на доступність. Документи, на які є посилання, вважаються веб-вмістом і також повинні бути доступними. Будь ласка, перегляньте цей документ вручну. ', QA_PAGE_LANGUAGE: 'Мова сторінки не вказана! Будь ласка, вкажіть мову в тезі HTML.', QA_PAGE_TITLE: 'Відсутня назва сторінки! Укажіть назву сторінки.', - QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(sanitizedText)
    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', - QA_FAKE_HEADING: 'Це заголовок? %(boldtext)
    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', - QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', + QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(TEXT)
    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', + QA_FAKE_HEADING: 'Це заголовок? %(TEXT)
    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', + QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', QA_UPPERCASE_WARNING: 'Знайдено текст великими літерами. Деякі програми читання з екрана можуть інтерпретувати текст, написаний великими літерами, як абревіатуру і читати кожну літеру окремо. Крім того, деяким людям важче читати текст, написаний великими літерами, і він може виглядати як КРИК.', QA_DUPLICATE_ID: 'Виявлено дублікат ID. Відомо, що помилки дублювання ID можуть викликати проблеми для допоміжних технологій, коли вони намагаються взаємодіяти із вмістом.
    Будь ласка, видаліть або змініть наступний ідентифікатор: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Підкреслений текст можна переплутати з посиланнями. Розгляньте можливість використання іншого стилю, наприклад <strong>сильного акценту</strong> або <em>наголос</em>.', @@ -214,9 +220,9 @@ TABLES_EMPTY_HEADING: 'Знайдено порожній заголовок таблиці! Заголовки таблиць ніколи не повинні бути порожніми. Важливо позначати заголовки рядків та/або стовпців, щоб передавати їх зв\'язок. Ця інформація забезпечує контекст для людей, які використовують допоміжні технології. Пам\'ятайте, що таблиці слід використовувати лише для табличних даних. Дізнайтеся більше про доступні таблиці.
    Дізнайтеся більше про доступні таблиці.', // Contrast - CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Коефіцієнт контрастності становить %(cratio) для даного тексту: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Будь ласка, перевірте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
    Коефіцієнт контрастності: %(cratio)', + CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Контрастне відношення %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
    Будь ласка, перевірте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
    Контрастне відношення %(RATIO)', }, }; diff --git a/dist/js/lang/zh.js b/dist/js/lang/zh.js index 375840ee..83710526 100644 --- a/dist/js/lang/zh.js +++ b/dist/js/lang/zh.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var zh = { OFF: '关闭', ALERT_TEXT: '警报', ALERT_CLOSE: '关闭', - OUTLINE: '页面概要', + OUTLINE: '大纲', + ALT: 'ALT', + IMAGES: '图片', + EDIT: '编辑', + IMAGES_NOT_FOUND: '未找到图片。', + DECORATIVE: '装饰性', + MISSING: '缺失', PAGE_ISSUES: '页码问题', SETTINGS: '设置', CONTRAST: '对比', @@ -146,9 +152,9 @@ var zh = { LANG_GOOD: '良好', READABILITY_NO_P_OR_LI_MESSAGE: '无法计算可读性得分。没有找到段落<p>或列表内容<li>。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '没有足够的内容来计算可读性得分。', - HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题% (prevLevel) 标题% (level) 。', + HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题 %(prevLevel)标题%(level)。', HEADING_EMPTY: '发现空的标题!要解决这个问题, 请删除这一行或将其格式从标题%(level)改为正常段落。', - HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
    字符数: %(headingLength)。', + HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
    %(HEADING_LENGTH) 字符。', HEADING_FIRST: '一个页面的第一个标题通常应该是标题1或标题2。标题1应该是主要内容部分的开始, 也是描述页面整体目的的主要标题。了解更多关于标题结构。的信息。', HEADING_MISSING_ONE: '缺少标题1。标题1应该是主要内容区的开始, 是描述页面整体目的的主要标题。了解更多关于标题结构.的信息。', HEADING_EMPTY_WITH_IMAGE: '标题没有文字, 但包含一个图像。如果这不是一个标题, 请将其格式从标题%(level)改为正常段落。否则, 如果图片不是装饰性的, 请为其添加alt文本。', @@ -157,65 +163,65 @@ var zh = { LINK_EMPTY: '删除没有任何文字的空链接。', LINK_EMPTY_LABELLEDBY: '链接具有aria-labelledby的值为空或不与页面上另一个元素的id属性值匹配。', LINK_EMPTY_LINK_NO_LABEL: '链接没有可识别的文字, 对屏幕阅读器和其他辅助技术是可见的。要解决这个问题:
    • 添加一些简明的文字, 描述该链接带你到哪里。
    • 如果它是一个图标链接或SVG,它可能缺少一个描述性的标签。
    • 如果你认为这个链接是一个由于复制/粘贴错误造成的错误, 考虑删除它。
    。', - LINK_LABEL: '链接标签: %(sanitizedText)', - LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(error)
    提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', - LINK_BEST_PRACTICES: '考虑替换链接文本: %(error)
    • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
    • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。', + LINK_LABEL: '链接标签: %(TEXT)', + LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(ERROR)
      提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', + LINK_BEST_PRACTICES: '考虑替换链接文本: %(ERROR)
      • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
      • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。
      ', LINK_URL: '用作链接文本的较长的、不太容易理解的URL可能难以用辅助技术听懂。在大多数情况下, 最好使用人类可读的文本来代替URL。
      提示!链接文本应该总是清晰、独特和有意义的, 这样它就可以脱离上下文而被理解。', LINK_DOI: '对于网页或纯在线资源,APA风格指南建议使用描述性链接,将作品的URL或DOI包裹在其标题上。使用较长的、不易理解的URL作为链接文本,在使用辅助技术访问时可能难以理解。', - NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
      提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', - FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
      示例: 执行报告 (PDF, 3MB) 。', - LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
      考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(sanitizedText)。', + NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
      提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', + FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
      示例: 执行报告 (PDF, 3MB) 。', + LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
      考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '图片被用作带有周围文本的链接, 尽管alt属性应被标记为装饰性或空。', MISSING_ALT_LINK_MESSAGE: '图像被用作链接,但缺少替代文本!请确保替代文本描述了链接将您带到的位置。', MISSING_ALT_MESSAGE: '缺少替代文本!如果图像传达了故事、情绪或重要信息 - 请务必描述图像。', - LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(error).
      替代文字:%(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(altText)。', - LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
      alt文本: %(altText)', - ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(error).
      替代文字:%(altText)', - ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(altText)。', - ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。
      替代文字: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(ERROR).
      ALT文本 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
      ALT文本 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(ERROR)
      ALT文本 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(ALT_TEXT)。', + ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。
      ALT文本 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '链接具有aria-hidden="true",但仍可通过键盘聚焦。如果您打算隐藏多余或重复的链接,也请添加tabindex="-1"。', LINK_IMAGE_NO_ALT_TEXT: '链接中的图像被标记为装饰性的, 没有链接文本。请在图片上添加描述链接目的地的alt文本。', LINK_IMAGE_HAS_TEXT: '图片被标记为装饰性的, 尽管链接是使用周围的文字作为描述性的标签。', - LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
      alt文本 (% (altLength) 字符) : % (altText) 。', - LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
      替代文字: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
      标题文本: %(altText)
      链接标签: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
      ALT文本 %(altLength) 字符 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
      ALT文本 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
      ALT文本 %(ALT_TEXT)
      链接标签: %(TEXT)', IMAGE_FIGURE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。
      虽然提供了一个标题, 但在大多数情况下, 图像也应该有alt文本。
      • alt文本应该对图像中的内容进行简明的描述。
      • 标题通常应该提供背景, 将图像与周围的内容联系起来, 或者对某一特定的信息给予关注: alt与figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: '不要在alt和标题文本中使用完全相同的词。屏幕阅读器会将信息公布两次。
        • alt文本应提供对图片中内容的简明描述。
        • 标题通常应提供背景, 将图片与周围的内容联系起来, 或对某一特定信息给予关注。
        了解更多: alt与figcaption.
        替代文字: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '不要在 alt 文本和标题文本中使用完全相同的词语。屏幕阅读器会重复宣读信息。
        • alt 文本应提供对图像内容的简洁描述。
        • 标题通常应提供上下文以将图像与周围内容联系起来,或者关注特定信息。
        了解更多:alt 与 figcaption 的区别。
        ALT %(ALT_TEXT)', IMAGE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。如果图片传达了一个故事、情绪或重要的信息--请务必添加alt文本。', - IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
        标题文本 (%(altLength)字符) : %(altText)', - IMAGE_PASS: '替代文本: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
        ALT文本 %(altLength) 字符 %(ALT_TEXT)', + IMAGE_PASS: 'ALT文本 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '图片按钮缺少alt文本。请添加alt文本, 提供一个可访问的名称。比如说: SearchSubmit。', LABELS_INPUT_RESET_MESSAGE: '除非特别需要, 否则不应使用重置按钮, 因为它们很容易被错误激活。
        提示!了解为什么复位和取消按钮会带来可用性问题。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
        输入标签: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
        输入标签 %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '没有与此输入相关的标签。给标签添加一个for属性, 该属性与该输入的id相匹配。
        这个输入的ID是: id="% (id) "', LABELS_MISSING_LABEL_MESSAGE: '没有与此输入相关的标签。请为这个输入添加一个id, 并为标签添加一个匹配的for属性。', EMBED_VIDEO: '请确保所有视频都有闭合字幕。为所有音频和视频内容提供字幕是一项强制性的A级要求。字幕支持聋哑人或听力困难的人。', EMBED_AUDIO: '请确保为所有播客提供文字记录。为音频内容提供文字记录是一项强制性的A级要求。转录支持聋哑人或听力困难的人, 但也能使所有人受益。考虑将文字记录放在下面或放在一个手风琴面板内。', EMBED_DATA_VIZ: '像这样的数据可视化部件对于使用键盘或屏幕阅读器导航的人来说往往是有问题的, 而且对于低视力或色盲的人来说也会带来很大的困难。建议在小组件下方以替代 (文本或表格) 的形式提供相同的信息。
        了解更多关于复杂图像的信息。', - EMBED_MISSING_TITLE: '嵌入内容需要一个描述其内容的可访问名称。请在iframe元素上提供一个独特的titlearia-label属性。了解更多关于iFrames.的信息。', + EMBED_MISSING_TITLE: '嵌入式内容需要一个描述其内容的可访问名称。请在 iframe 元素上提供一个唯一的 titlearia-label 属性。了解更多关于 iFrames。', EMBED_GENERAL_WARNING: '无法检查嵌入式内容。请确保图像有alt文本, 视频有标题, 文本有足够的对比度, 互动组件是键盘可访问的。', EMBED_UNFOCUSABLE: '带有无法聚焦元素的 <iframe> 不应具有 tabindex="-1"。嵌入内容将无法通过键盘访问。', - QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
        这个链接指向:
        %(el)', + QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
        这个链接指向:
        %(LINK)', QA_IN_PAGE_LINK: '破损的同页链接。链接目标与此页面上的任何元素都不匹配。', QA_BAD_ITALICS: '粗体和斜体标签具有语义, 不应用于突出整个段落。加粗的文字应该用于对一个词或短语进行强烈的强调。斜体字应该用来突出专有名词 (即书名和文章标题) 、外国词、引号。长篇引语应采用块状引语的格式。', QA_PDF: '无法检查PDF的可访问性。PDF被认为是网络内容, 也必须做到无障碍。对于使用屏幕阅读器的人 (缺失结构标签或缺失表格字段标签) 和低视力的人 (文本在放大时不回流) 来说, PDF经常包含一些问题。
        • 如果这是一个表格, 请考虑使用可访问的HTML表格作为替代。
        • 如果这是一个文档, 请考虑将其转换为网页。
        否则, 请在Acrobat DC中检查PDF的可访问性。', - QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', + QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', QA_PAGE_LANGUAGE: '页面语言未声明!请在HTML标签上声明语言。', QA_PAGE_TITLE: '缺少页面标题!请提供一个页面标题。', - QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(sanitizedText)
        方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', - QA_FAKE_HEADING: '这是一个标题吗?%(boldtext)
        一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', - QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
        请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', + QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(TEXT)
        方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', + QA_FAKE_HEADING: '这是一个标题吗?%(TEXT)
        一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', + QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
        请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', QA_UPPERCASE_WARNING: '发现全大写。一些屏幕阅读器可能会将所有大写字母的文本解释为缩写, 并会单独阅读每个字母。此外, 有些人觉得全大写的文字更难读, 而且可能给人一种大喊大叫的感觉。', - QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
        请删除或更改以下ID: %(id)。', + QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
        请删除或更改以下ID: %(id)', QA_TEXT_UNDERLINE_WARNING: '带下划线的文本可能会与链接相混淆。考虑使用不同的风格, 如<strong>strong重要性</strong><em>emphasis<;/em>;。', QA_SUBSCRIPT_WARNING: '下标和上标格式化选项只能用于改变文字的位置, 以符合排版习惯或标准。它不应该仅仅用于演示或外观目的。对整个句子进行格式化会带来可读性问题。适当的使用情况包括显示指数、序数, 如4th而不是第四, 以及化学公式 (如H2O) 。', TABLES_MISSING_HEADINGS: '缺少表头!可访问的表格需要HTML标记, 表明标题单元和数据单元, 定义它们的关系。这种信息为使用辅助技术的人提供了背景。表格应该只用于表格式的数据。
        了解更多关于无障碍表格的信息。', TABLES_SEMANTIC_HEADING: '语义标题, 如Heading 2或Heading 3, 只能用于内容的章节;不能用于HTML表格。使用<th>元素来表示表格的标题。
        了解更多关于可访问的表格。', TABLES_EMPTY_HEADING: '发现空的表头!表头应该永远不会是空的。指定行和/或列的标题以表达它们的关系是很重要的。这一信息为使用辅助技术的人提供了背景。请记住, 表格应该只用于表格式数据。
        了解更多关于可访问的表格。', - CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
        以下文本的对比度为%(cratio): %(sanitizedText) ', - CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
        请审查: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
        对比度: %(cratio)', + CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
        对比度比率 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
        请审查: %(TEXT)', + CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
        对比度比率 %(RATIO)', }, }; diff --git a/dist/js/lang/zh.umd.js b/dist/js/lang/zh.umd.js index 81b31639..58dc8d67 100644 --- a/dist/js/lang/zh.umd.js +++ b/dist/js/lang/zh.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: '关闭', ALERT_TEXT: '警报', ALERT_CLOSE: '关闭', - OUTLINE: '页面概要', + OUTLINE: '大纲', + ALT: 'ALT', + IMAGES: '图片', + EDIT: '编辑', + IMAGES_NOT_FOUND: '未找到图片。', + DECORATIVE: '装饰性', + MISSING: '缺失', PAGE_ISSUES: '页码问题', SETTINGS: '设置', CONTRAST: '对比', @@ -152,9 +158,9 @@ LANG_GOOD: '良好', READABILITY_NO_P_OR_LI_MESSAGE: '无法计算可读性得分。没有找到段落<p>或列表内容<li>。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '没有足够的内容来计算可读性得分。', - HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题% (prevLevel) 标题% (level) 。', + HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题 %(prevLevel)标题%(level)。', HEADING_EMPTY: '发现空的标题!要解决这个问题, 请删除这一行或将其格式从标题%(level)改为正常段落。', - HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
        字符数: %(headingLength)。', + HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
        %(HEADING_LENGTH) 字符。', HEADING_FIRST: '一个页面的第一个标题通常应该是标题1或标题2。标题1应该是主要内容部分的开始, 也是描述页面整体目的的主要标题。了解更多关于标题结构。的信息。', HEADING_MISSING_ONE: '缺少标题1。标题1应该是主要内容区的开始, 是描述页面整体目的的主要标题。了解更多关于标题结构.的信息。', HEADING_EMPTY_WITH_IMAGE: '标题没有文字, 但包含一个图像。如果这不是一个标题, 请将其格式从标题%(level)改为正常段落。否则, 如果图片不是装饰性的, 请为其添加alt文本。', @@ -163,65 +169,65 @@ LINK_EMPTY: '删除没有任何文字的空链接。', LINK_EMPTY_LABELLEDBY: '链接具有aria-labelledby的值为空或不与页面上另一个元素的id属性值匹配。', LINK_EMPTY_LINK_NO_LABEL: '链接没有可识别的文字, 对屏幕阅读器和其他辅助技术是可见的。要解决这个问题:
        • 添加一些简明的文字, 描述该链接带你到哪里。
        • 如果它是一个图标链接或SVG,它可能缺少一个描述性的标签。
        • 如果你认为这个链接是一个由于复制/粘贴错误造成的错误, 考虑删除它。
        。', - LINK_LABEL: '链接标签: %(sanitizedText)', - LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(error)
        提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', - LINK_BEST_PRACTICES: '考虑替换链接文本: %(error)
        • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
        • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。', + LINK_LABEL: '链接标签: %(TEXT)', + LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(ERROR)
          提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', + LINK_BEST_PRACTICES: '考虑替换链接文本: %(ERROR)
          • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
          • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。
          ', LINK_URL: '用作链接文本的较长的、不太容易理解的URL可能难以用辅助技术听懂。在大多数情况下, 最好使用人类可读的文本来代替URL。
          提示!链接文本应该总是清晰、独特和有意义的, 这样它就可以脱离上下文而被理解。', LINK_DOI: '对于网页或纯在线资源,APA风格指南建议使用描述性链接,将作品的URL或DOI包裹在其标题上。使用较长的、不易理解的URL作为链接文本,在使用辅助技术访问时可能难以理解。', - NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
          提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', - FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
          示例: 执行报告 (PDF, 3MB) 。', - LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
          考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(sanitizedText)。', + NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
          提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', + FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
          示例: 执行报告 (PDF, 3MB) 。', + LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
          考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '图片被用作带有周围文本的链接, 尽管alt属性应被标记为装饰性或空。', MISSING_ALT_LINK_MESSAGE: '图像被用作链接,但缺少替代文本!请确保替代文本描述了链接将您带到的位置。', MISSING_ALT_MESSAGE: '缺少替代文本!如果图像传达了故事、情绪或重要信息 - 请务必描述图像。', - LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(error).
          替代文字:%(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(altText)。', - LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
          alt文本: %(altText)', - ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(error).
          替代文字:%(altText)', - ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(altText)。', - ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。
          替代文字: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(ERROR).
          ALT文本 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
          ALT文本 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(ERROR)
          ALT文本 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(ALT_TEXT)。', + ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。
          ALT文本 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '链接具有aria-hidden="true",但仍可通过键盘聚焦。如果您打算隐藏多余或重复的链接,也请添加tabindex="-1"。', LINK_IMAGE_NO_ALT_TEXT: '链接中的图像被标记为装饰性的, 没有链接文本。请在图片上添加描述链接目的地的alt文本。', LINK_IMAGE_HAS_TEXT: '图片被标记为装饰性的, 尽管链接是使用周围的文字作为描述性的标签。', - LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
          alt文本 (% (altLength) 字符) : % (altText) 。', - LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
          替代文字: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
          标题文本: %(altText)
          链接标签: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
          ALT文本 %(altLength) 字符 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
          ALT文本 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
          ALT文本 %(ALT_TEXT)
          链接标签: %(TEXT)', IMAGE_FIGURE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。
          虽然提供了一个标题, 但在大多数情况下, 图像也应该有alt文本。
          • alt文本应该对图像中的内容进行简明的描述。
          • 标题通常应该提供背景, 将图像与周围的内容联系起来, 或者对某一特定的信息给予关注: alt与figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: '不要在alt和标题文本中使用完全相同的词。屏幕阅读器会将信息公布两次。
            • alt文本应提供对图片中内容的简明描述。
            • 标题通常应提供背景, 将图片与周围的内容联系起来, 或对某一特定信息给予关注。
            了解更多: alt与figcaption.
            替代文字: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '不要在 alt 文本和标题文本中使用完全相同的词语。屏幕阅读器会重复宣读信息。
            • alt 文本应提供对图像内容的简洁描述。
            • 标题通常应提供上下文以将图像与周围内容联系起来,或者关注特定信息。
            了解更多:alt 与 figcaption 的区别。
            ALT %(ALT_TEXT)', IMAGE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。如果图片传达了一个故事、情绪或重要的信息--请务必添加alt文本。', - IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
            标题文本 (%(altLength)字符) : %(altText)', - IMAGE_PASS: '替代文本: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
            ALT文本 %(altLength) 字符 %(ALT_TEXT)', + IMAGE_PASS: 'ALT文本 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '图片按钮缺少alt文本。请添加alt文本, 提供一个可访问的名称。比如说: SearchSubmit。', LABELS_INPUT_RESET_MESSAGE: '除非特别需要, 否则不应使用重置按钮, 因为它们很容易被错误激活。
            提示!了解为什么复位和取消按钮会带来可用性问题。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
            输入标签: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
            输入标签 %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '没有与此输入相关的标签。给标签添加一个for属性, 该属性与该输入的id相匹配。
            这个输入的ID是: id="% (id) "', LABELS_MISSING_LABEL_MESSAGE: '没有与此输入相关的标签。请为这个输入添加一个id, 并为标签添加一个匹配的for属性。', EMBED_VIDEO: '请确保所有视频都有闭合字幕。为所有音频和视频内容提供字幕是一项强制性的A级要求。字幕支持聋哑人或听力困难的人。', EMBED_AUDIO: '请确保为所有播客提供文字记录。为音频内容提供文字记录是一项强制性的A级要求。转录支持聋哑人或听力困难的人, 但也能使所有人受益。考虑将文字记录放在下面或放在一个手风琴面板内。', EMBED_DATA_VIZ: '像这样的数据可视化部件对于使用键盘或屏幕阅读器导航的人来说往往是有问题的, 而且对于低视力或色盲的人来说也会带来很大的困难。建议在小组件下方以替代 (文本或表格) 的形式提供相同的信息。
            了解更多关于复杂图像的信息。', - EMBED_MISSING_TITLE: '嵌入内容需要一个描述其内容的可访问名称。请在iframe元素上提供一个独特的titlearia-label属性。了解更多关于iFrames.的信息。', + EMBED_MISSING_TITLE: '嵌入式内容需要一个描述其内容的可访问名称。请在 iframe 元素上提供一个唯一的 titlearia-label 属性。了解更多关于 iFrames。', EMBED_GENERAL_WARNING: '无法检查嵌入式内容。请确保图像有alt文本, 视频有标题, 文本有足够的对比度, 互动组件是键盘可访问的。', EMBED_UNFOCUSABLE: '带有无法聚焦元素的 <iframe> 不应具有 tabindex="-1"。嵌入内容将无法通过键盘访问。', - QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
            这个链接指向:
            %(el)', + QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
            这个链接指向:
            %(LINK)', QA_IN_PAGE_LINK: '破损的同页链接。链接目标与此页面上的任何元素都不匹配。', QA_BAD_ITALICS: '粗体和斜体标签具有语义, 不应用于突出整个段落。加粗的文字应该用于对一个词或短语进行强烈的强调。斜体字应该用来突出专有名词 (即书名和文章标题) 、外国词、引号。长篇引语应采用块状引语的格式。', QA_PDF: '无法检查PDF的可访问性。PDF被认为是网络内容, 也必须做到无障碍。对于使用屏幕阅读器的人 (缺失结构标签或缺失表格字段标签) 和低视力的人 (文本在放大时不回流) 来说, PDF经常包含一些问题。
            • 如果这是一个表格, 请考虑使用可访问的HTML表格作为替代。
            • 如果这是一个文档, 请考虑将其转换为网页。
            否则, 请在Acrobat DC中检查PDF的可访问性。', - QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', + QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', QA_PAGE_LANGUAGE: '页面语言未声明!请在HTML标签上声明语言。', QA_PAGE_TITLE: '缺少页面标题!请提供一个页面标题。', - QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(sanitizedText)
            方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', - QA_FAKE_HEADING: '这是一个标题吗?%(boldtext)
            一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', - QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
            请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', + QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(TEXT)
            方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', + QA_FAKE_HEADING: '这是一个标题吗?%(TEXT)
            一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', + QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
            请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', QA_UPPERCASE_WARNING: '发现全大写。一些屏幕阅读器可能会将所有大写字母的文本解释为缩写, 并会单独阅读每个字母。此外, 有些人觉得全大写的文字更难读, 而且可能给人一种大喊大叫的感觉。', - QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
            请删除或更改以下ID: %(id)。', + QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
            请删除或更改以下ID: %(id)', QA_TEXT_UNDERLINE_WARNING: '带下划线的文本可能会与链接相混淆。考虑使用不同的风格, 如<strong>strong重要性</strong><em>emphasis<;/em>;。', QA_SUBSCRIPT_WARNING: '下标和上标格式化选项只能用于改变文字的位置, 以符合排版习惯或标准。它不应该仅仅用于演示或外观目的。对整个句子进行格式化会带来可读性问题。适当的使用情况包括显示指数、序数, 如4th而不是第四, 以及化学公式 (如H2O) 。', TABLES_MISSING_HEADINGS: '缺少表头!可访问的表格需要HTML标记, 表明标题单元和数据单元, 定义它们的关系。这种信息为使用辅助技术的人提供了背景。表格应该只用于表格式的数据。
            了解更多关于无障碍表格的信息。', TABLES_SEMANTIC_HEADING: '语义标题, 如Heading 2或Heading 3, 只能用于内容的章节;不能用于HTML表格。使用<th>元素来表示表格的标题。
            了解更多关于可访问的表格。', TABLES_EMPTY_HEADING: '发现空的表头!表头应该永远不会是空的。指定行和/或列的标题以表达它们的关系是很重要的。这一信息为使用辅助技术的人提供了背景。请记住, 表格应该只用于表格式数据。
            了解更多关于可访问的表格。', - CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
            以下文本的对比度为%(cratio): %(sanitizedText) ', - CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
            请审查: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
            对比度: %(cratio)', + CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
            对比度比率 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
            请审查: %(TEXT)', + CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
            对比度比率 %(RATIO)', }, }; diff --git a/dist/js/sa11y.esm.js b/dist/js/sa11y.esm.js index 6e886ead..eb40f5de 100644 --- a/dist/js/sa11y.esm.js +++ b/dist/js/sa11y.esm.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,10 +27,15 @@ const defaultOptions = { linkIgnoreStrings: '', // Other features + aboutContent: '', delayCheck: 0, delayCustomCheck: 500, showGoodLinkButton: true, showHinPageOutline: false, + showImageOutline: true, + editImageURLofCMS: '', + relativePathImageSRC: '', + relativePathImageID: '', detectSPArouting: false, doNotRun: '', dismissAnnotations: true, @@ -40,6 +45,9 @@ const defaultOptions = { autoDetectShadowComponents: false, panelPosition: 'right', altTextMaxCharLength: 250, + susAltStopWords: '', + linkStopWords: '', + extraPlaceholderStopWords: '', headingMaxCharLength: 170, URLTextMaxCharLength: 40, URLAsLinkTextWarning: true, @@ -70,7 +78,7 @@ const defaultOptions = { strongItalicsQA: true, pdfQA: true, documentQA: true, - documentLinks: '.ppt, .doc, .xls, .csv, sway.com, docs.google.com', + documentLinks: '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"], a[href^="https://sway."]', langQA: true, blockquotesQA: true, allCapsQA: true, @@ -130,59 +138,14 @@ const Lang = { return $el.replaceAll(/
            /g, '') .replaceAll(/`) - .replaceAll(/{r}/g, 'class="red-text"'); + .replaceAll(/{r}/g, 'class="red-text"') + .replaceAll(/{w}/g, 'class="yellow-text"') + .replaceAll(/{b}/g, 'class="badge"') + .replaceAll(/{wb}/g, 'class="badge warning-badge"') + .replaceAll(/{eb}/g, 'class="badge error-badge"'); }, }; -var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; - -/* ************************************************************ */ -/* Auto-detect shadow DOM or process provided web components. */ -/* ************************************************************ */ -const addStylestoShadow = (component) => { - const style = document.createElement('style'); - style.setAttribute('class', 'sa11y-css-utilities'); - style.textContent = styles$1; - component.shadowRoot.appendChild(style); -}; - -function findShadowComponents(option, desiredRoot) { - let webComponents; - if (option.autoDetectShadowComponents) { - // Elements to ignore. - const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; - - // Search all elements. - const root = document.querySelector(desiredRoot); - const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); - - // Query for open shadow roots & inject CSS utilities into every shadow DOM. - const foundShadows = []; - search.forEach((component) => { - if (component.shadowRoot && component.shadowRoot.mode === 'open') { - foundShadows.push(component); - addStylestoShadow(component); - } - }); - - // Return ALL web components on the page. - const all = Array.from(foundShadows).map((component) => component.tagName.toLowerCase()); - webComponents = (all.length === 1) ? `${all.toString()}` : all.join(', '); - } else { - // If autoDetectShadowComponents is OFF, use provided shadow dom. - webComponents = option.suppliedShadowComponents || ''; - - // Append styles to each provided shadow dom. - if (webComponents) { - const providedShadow = document.querySelectorAll(webComponents); - providedShadow.forEach((component) => { - addStylestoShadow(component); - }); - } - } - return webComponents; -} - const Constants = (function myConstants() { /* **************** */ /* Initialize Roots */ @@ -216,6 +179,7 @@ const Constants = (function myConstants() { Global.headless = option.headless; Global.panelPosition = option.panelPosition; Global.dismissAnnotations = option.dismissAnnotations; + Global.aboutContent = option.aboutContent; // Toggleable plugins Global.contrastPlugin = option.contrastPlugin; @@ -224,6 +188,10 @@ const Constants = (function myConstants() { Global.colourFilterPlugin = option.colourFilterPlugin; Global.checkAllHideToggles = option.checkAllHideToggles; Global.exportResultsPlugin = option.exportResultsPlugin; + Global.showImageOutline = option.showImageOutline; + Global.editImageURLofCMS = option.editImageURLofCMS; + Global.relativePathImageSRC = option.relativePathImageSRC; + Global.relativePathImageID = option.relativePathImageID; // A11y: Determine scroll behaviour let reducedMotion = false; @@ -251,10 +219,17 @@ const Constants = (function myConstants() { Panel.panel = Sa11yPanel.getElementById('panel'); Panel.content = Sa11yPanel.getElementById('panel-content'); Panel.controls = Sa11yPanel.getElementById('panel-controls'); + Panel.outline = Sa11yPanel.getElementById('outline-panel'); Panel.outlineContent = Sa11yPanel.getElementById('outline-content'); Panel.outlineList = Sa11yPanel.getElementById('outline-list'); Panel.outlineHeader = Sa11yPanel.getElementById('outline-header'); + + Panel.images = Sa11yPanel.getElementById('images-panel'); + Panel.imagesContent = Sa11yPanel.getElementById('images-content'); + Panel.imagesList = Sa11yPanel.getElementById('images-list'); + Panel.imagesHeader = Sa11yPanel.getElementById('images-header'); + Panel.notifBadge = Sa11yPanel.getElementById('notification-badge'); Panel.notifCount = Sa11yPanel.getElementById('notification-count'); Panel.notifText = Sa11yPanel.getElementById('notification-text'); @@ -266,10 +241,12 @@ const Constants = (function myConstants() { Panel.pageIssuesHeader = Sa11yPanel.getElementById('page-issues-header'); Panel.pageIssuesContent = Sa11yPanel.getElementById('page-issues-content'); - // Settings + // Settings panel Panel.settings = Sa11yPanel.getElementById('settings-panel'); Panel.settingsHeader = Sa11yPanel.getElementById('settings-header'); Panel.settingsContent = Sa11yPanel.getElementById('settings-content'); + + // Settings toggles Panel.contrastToggle = Sa11yPanel.getElementById('contrast-toggle'); Panel.labelsToggle = Sa11yPanel.getElementById('labels-toggle'); Panel.linksToggle = Sa11yPanel.getElementById('links-advanced-toggle'); @@ -289,6 +266,7 @@ const Constants = (function myConstants() { // Buttons Panel.toggle = Sa11yPanel.getElementById('toggle'); Panel.outlineToggle = Sa11yPanel.getElementById('outline-toggle'); + Panel.imagesToggle = Sa11yPanel.getElementById('images-toggle'); Panel.settingsToggle = Sa11yPanel.getElementById('settings-toggle'); Panel.skipButton = Sa11yPanel.getElementById('skip-button'); Panel.dismissButton = Sa11yPanel.getElementById('dismiss-button'); @@ -437,16 +415,6 @@ const Constants = (function myConstants() { EmbeddedContent.All = `${EmbeddedContent.Video}, ${EmbeddedContent.Audio}, ${EmbeddedContent.Visualization}`; } - /* ***************** */ - /* Shadow Components */ - /* ***************** */ - const Shadow = {}; - function initializeShadowSearch(checkRoot, autoDetectShadowComponents, shadowComponents) { - Shadow.Components = findShadowComponents( - checkRoot, - autoDetectShadowComponents); - } - return { initializeRoot, Root, @@ -460,8 +428,6 @@ const Constants = (function myConstants() { Exclusions, initializeEmbeddedContent, EmbeddedContent, - initializeShadowSearch, - Shadow, }; }()); @@ -490,8 +456,8 @@ function find(selector, desiredRoot, exclude) { if (!root) root = document.body; } - const shadowComponents = Constants.Shadow.Components; - const shadow = (shadowComponents) ? `, ${shadowComponents}` : ''; + const shadowComponents = document.querySelectorAll('[data-sa11y-has-shadow-root]'); + const shadow = (shadowComponents) ? ', [data-sa11y-has-shadow-root]' : ''; const exclusions = Constants.Exclusions.Container; const additional = (exclude !== undefined) ? `, ${exclude}` : ''; @@ -503,9 +469,8 @@ function find(selector, desiredRoot, exclude) { // 2. Dive into the each shadow root and collect an array of its results. const shadowFind = []; // Remove first comma and whitespace. - const prepShadow = shadowComponents.trim().replace(/^,+/, ''); elements.forEach((el, i) => { - if (el && el.matches && el.matches(prepShadow) && el.shadowRoot) { + if (el && el.matches && el.matches('[data-sa11y-has-shadow-root]') && el.shadowRoot) { shadowFind[i] = el.shadowRoot.querySelectorAll(`:is(${selector}):not(${exclusions}${additional})`); } }); @@ -936,14 +901,21 @@ function remove(elements, root) { * Checks if a scrollable area within a container element is scrollable or not, and applies appropriate CSS classes and attributes. Make sure to add aria-label manually. * @param {Element} scrollArea The scrollable area element to check. * @param {Element} container The container element that wraps the scrollable area. + * @param {Attribute} ariaLabel Give scroll area an accessible name and region landmark. */ -function isScrollable(scrollArea, container) { - if (scrollArea.scrollHeight > container.clientHeight) { - container.classList.add('scrollable'); - scrollArea.setAttribute('tabindex', '0'); - } else { - container.classList.remove('scrollable'); - } +function isScrollable(scrollArea, container, ariaLabel) { + setTimeout(() => { + if (scrollArea.scrollHeight > container.clientHeight) { + container.classList.add('scrollable'); + scrollArea.setAttribute('tabindex', '0'); + if (ariaLabel) { + scrollArea.setAttribute('aria-label', ariaLabel); + scrollArea.setAttribute('role', 'region'); + } + } else { + container.classList.remove('scrollable'); + } + }, 50); } /** @@ -1134,6 +1106,43 @@ const Elements = (function myElements() { }; }()); +var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; + +/* ************************************************************ */ +/* Auto-detect shadow DOM or process provided web components. */ +/* ************************************************************ */ +const addStylestoShadow = (component) => { + const style = document.createElement('style'); + style.setAttribute('class', 'sa11y-css-utilities'); + style.textContent = styles$1; + component.shadowRoot.appendChild(style); +}; + +function findShadowComponents(option) { + if (option.autoDetectShadowComponents) { + // Elements to ignore. + const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; + + // Search all elements. + const root = document.querySelector(option.checkRoot); + const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); + + // Query for open shadow roots & inject CSS utilities into every shadow DOM. + search.forEach((component) => { + if (component.shadowRoot && component.shadowRoot.mode === 'open') { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + } + }); + } else if (option.shadowComponents) { + const providedShadow = document.querySelectorAll(option.shadowComponents); + providedShadow.forEach((component) => { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + }); + } +} + /* ******************************************************** */ /* Feature to detect if URL changed for bookmarklet/SPAs. */ /* ******************************************************** */ @@ -1153,7 +1162,7 @@ function detectPageChanges(detectSPArouting, checkAll, resetAll) { url = window.location.href; // Update current URL } }, 250); - window.addEventListener('mousemove', checkURL); + window.addEventListener('click', checkURL); window.addEventListener('keydown', checkURL); } } @@ -1537,7 +1546,8 @@ function downloadCSVTemplate(results) { // Make issue messages more readable in CSV format. const prepContent = content .replaceAll(/]*>.*?<\/span>/gi, '') - .replaceAll('', ' | '); + .replaceAll('', ' | ') + .replaceAll(/"/g, '""'); const stripHTML = stripHTMLtags(String(prepContent)); const encoded = decodeHTML(stripHTML); @@ -1558,7 +1568,8 @@ function downloadCSVTemplate(results) { const csvContent = `${headers.join(',')}\n${filteredObjects.map((obj) => headers.map((header) => obj[header]).join(',')).join('\n')}`; // Create blob - const blob = new Blob([csvContent], { type: 'text/csv' }); + const bom = new Uint8Array([0xEF, 0xBB, 0xBF]); + const blob = new Blob([bom, csvContent], { type: 'text/csv;charset=utf-8;' }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; @@ -1602,7 +1613,7 @@ function removeExportListeners() { var styles = ":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"; -var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; +var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; class ConsoleErrors extends HTMLElement { constructor(error) { @@ -1697,7 +1708,7 @@ function mainToggle(checkAll, resetAll) { }; } -var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; +var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:\"\";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; class ControlPanel extends HTMLElement { connectedCallback() { @@ -1790,6 +1801,12 @@ class ControlPanel extends HTMLElement {
          • ` : ''; + /* CUSTOMIZABLE ABOUT SECTION */ + const aboutSection = Constants.Global.aboutContent ? ` +
            + ${Constants.Global.aboutContent} +
            ` : ''; + /* MAIN TOGGLE */ const mainToggle = `
          + ${aboutSection} `; @@ -1895,12 +1928,20 @@ class ControlPanel extends HTMLElement { `; /* OUTLINE & SETTING TAB TOGGLES. */ + const imageToggleButton = ``; + + // Spacer for toggle width... + const spacer = Constants.Global.showImageOutline + ? '
          ' + : '
          '; + const tabToggles = `
          - ${(panelPosition === 'left') ? '
          ' : ''} + ${(panelPosition === 'left') ? spacer : ''} + ${Constants.Global.showImageOutline ? imageToggleButton : ''} - ${(panelPosition === 'right') ? '
          ' : ''} + ${(panelPosition === 'right') ? spacer : ''}
          `; /* MAIN CONTAINER */ @@ -1919,6 +1960,7 @@ class ControlPanel extends HTMLElement { ${colourFilterPanel} ${tabToggles} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${pageIssues} @@ -1929,6 +1971,7 @@ class ControlPanel extends HTMLElement {
          ${pageIssues} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${colourFilterPanel} @@ -2191,6 +2234,80 @@ function settingsPanelToggles(checkAll, resetAll) { /* eslint-disable no-return-assign */ +/** + * OUTLINE PANEL. + */ +const openOutline = () => { + Constants.Panel.outlineToggle.classList.add('active'); + Constants.Panel.outline.classList.add('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-outline', 'Opened'); + isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = false); + + const event = new CustomEvent('sa11y-build-heading-outline'); + document.dispatchEvent(event); +}; + +const closeOutline = () => { + Constants.Panel.outline.classList.remove('active'); + Constants.Panel.outlineToggle.classList.remove('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-outline', 'Closed'); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = true); +}; + +/** + * IMAGES PANEL. + */ +const openImages = () => { + Constants.Panel.imagesToggle.classList.add('active'); + Constants.Panel.images.classList.add('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-images', 'Opened'); + isScrollable(Constants.Panel.imagesList, Constants.Panel.imagesContent); + + const event = new CustomEvent('sa11y-build-image-outline'); + document.dispatchEvent(event); +}; + +const closeImages = () => { + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.classList.remove('active'); + Constants.Panel.images.classList.remove('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-images', 'Closed'); + } +}; + +/** + * SETTINGS PANEL. + */ +const openSettings = () => { + Constants.Panel.settingsToggle.classList.add('active'); + Constants.Panel.settings.classList.add('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-settings', 'Opened'); + isScrollable( + Constants.Panel.settingsContent, + Constants.Panel.settingsContent, + Lang._('SETTINGS'), + ); +}; + +const closeSettings = () => { + Constants.Panel.settings.classList.remove('active'); + Constants.Panel.settingsToggle.classList.remove('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-settings', 'Closed'); +}; + /* **************************************************************** */ /* Main panel: Initialize Show Outline and Settings buttons/tabs. */ /* **************************************************************** */ @@ -2200,46 +2317,43 @@ function initializePanelToggles() { /* **************** */ Constants.Panel.outlineToggle.addEventListener('click', () => { if (Constants.Panel.outlineToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + closeOutline(); } else { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-outline', 'Opened'); - store.setItem('sa11y-remember-settings', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = false); + openOutline(); + closeSettings(); + closeImages(); } // Set focus on Page Outline heading for accessibility. Constants.Panel.outlineHeader.focus(); - - // Close Settings panel when Show Outline is active. - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); }); // Remember to leave outline open if (store.getItem('sa11y-remember-outline') === 'Opened') { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + openOutline(); + } - setTimeout(() => { - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); - }, 0); + /* **************** */ + /* Images panel */ + /* **************** */ + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.addEventListener('click', () => { + if (Constants.Panel.imagesToggle.getAttribute('aria-expanded') === 'true') { + closeImages(); + } else { + openImages(); + closeOutline(); + closeSettings(); + } + + // Set focus on Images heading for accessibility. + Constants.Panel.imagesHeader.focus(); + }); + + // Remember to leave outline open + if (store.getItem('sa11y-remember-images') === 'Opened') { + openImages(); + } } /* **************** */ @@ -2247,49 +2361,20 @@ function initializePanelToggles() { /* **************** */ Constants.Panel.settingsToggle.addEventListener('click', () => { if (Constants.Panel.settingsToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-settings', 'Closed'); + closeSettings(); } else { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-settings', 'Opened'); - store.setItem('sa11y-remember-outline', 'Closed'); + openSettings(); + closeOutline(); + closeImages(); } // Set focus on Settings heading for accessibility. Constants.Panel.settingsHeader.focus(); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - - // Close Show Outline panel when Settings is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Keyboard accessibility fix for scrollable panel content. - if (Constants.Panel.settingsContent.clientHeight > 350) { - Constants.Panel.settingsContent.setAttribute('tabindex', '0'); - Constants.Panel.settingsContent.setAttribute('aria-label', `${Lang._('SETTINGS')}`); - Constants.Panel.settingsContent.setAttribute('role', 'region'); - } - - // Close Outline panel when Show Outline is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('settings-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); }); // Remember to leave settings open if (store.getItem('sa11y-remember-settings') === 'Opened') { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + openSettings(); } // Accessibility: Skip link to Page Issues @@ -2298,49 +2383,25 @@ function initializePanelToggles() { }); // Page issues: add gradient if scrollable list. - setTimeout(() => { - isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); - }, 0); - - // Enhanced keyboard accessibility for panel. - Constants.Panel.controls.addEventListener('keydown', (e) => { - const $tab = Constants.Panel.panel.querySelectorAll('#outline-toggle[role=tab], #settings-toggle[role=tab]'); - if (e.key === 'ArrowRight') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowDown') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowLeft') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowUp') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } + isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); + + /* ******************************** */ + /* Better keyboard accessibility. */ + /* ******************************** */ + const tabs = Constants.Panel.panel.querySelectorAll('[role=tab]'); + let currentIndex = Array.from(tabs).findIndex((tab) => tab.classList.contains('active')); + tabs.forEach((tab) => { + tab.addEventListener('keydown', (e) => { + if (e.key === 'ArrowRight') { + e.preventDefault(); + currentIndex = (currentIndex + 1) % tabs.length; + tabs[currentIndex].focus(); + } else if (e.key === 'ArrowLeft') { + e.preventDefault(); + currentIndex = (currentIndex - 1 + tabs.length) % tabs.length; + tabs[currentIndex].focus(); } - } + }); }); } @@ -2349,43 +2410,44 @@ function initializePanelToggles() { */ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { - // Create a single array that gets appended to heading outline. - const outlineArray = []; - - // Find all dismissed headings and update headingOutline array. - const findDismissedHeadings = dismissed.map((e) => { - const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); - if (found === undefined) return ''; - return found; - }); - findDismissedHeadings.forEach(($el) => { - Object.assign($el, { dismissedHeading: true }); - }); - - // Iterate through object that contains all headings (and error type). - headingOutline.forEach((heading) => { - const $el = heading.element; - const level = heading.headingLevel; - const headingText = heading.text; - const i = heading.index; - const issue = heading.type; - const visibility = heading.hidden; - const parent = heading.visibleParent; - const dismissedH = heading.dismissedHeading; - const { isWithinRoot } = heading; - - // Filter out specified headings in outlineIgnore prop. - const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; - - if (!ignoreArray.includes($el)) { - // Indicate if heading is totally hidden or visually hidden. - const visibleIcon = (visibility === true) ? 'Hidden' : ''; - const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; - const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + const outlineHandler = () => { + // Create a single array that gets appended to heading outline. + const outlineArray = []; + + // Find all dismissed headings and update headingOutline array. + const findDismissedHeadings = dismissed.map((e) => { + const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; + }); + findDismissedHeadings.forEach(($el) => { + Object.assign($el, { dismissedHeading: true }); + }); - let append; - if (issue === 'error' && isWithinRoot === true) { - append = ` + // Iterate through object that contains all headings (and error type). + headingOutline.forEach((heading) => { + const $el = heading.element; + const level = heading.headingLevel; + const headingText = heading.text; + const i = heading.index; + const issue = heading.type; + const visibility = heading.hidden; + const parent = heading.visibleParent; + const dismissedH = heading.dismissedHeading; + const { isWithinRoot } = heading; + + // Filter out specified headings in outlineIgnore prop. + const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; + + if (!ignoreArray.includes($el)) { + // Indicate if heading is totally hidden or visually hidden. + const visibleIcon = (visibility === true) ? 'Hidden' : ''; + const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; + const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + + let append; + if (issue === 'error' && isWithinRoot === true) { + append = `
        • @@ -2396,9 +2458,9 @@ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { ${headingText}
        • `; - outlineArray.push(append); - } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { - append = ` + outlineArray.push(append); + } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { + append = `
        • @@ -2407,154 +2469,305 @@ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { ${headingText}
        • `; - outlineArray.push(append); - } else { - append = ` + outlineArray.push(append); + } else { + append = `
        • ${visibleIcon} ${badgeH + level} ${headingText}
        • `; - outlineArray.push(append); - } + outlineArray.push(append); + } - /** - * Append heading labels. - */ - const label = document.createElement('sa11y-heading-label'); - const anchor = document.createElement('sa11y-heading-anchor'); - label.hidden = true; - - // If heading is in a hidden container, place the anchor just before it's most visible parent. - if (parent !== null) { - $el.insertAdjacentElement('beforeend', label); - const hiddenParent = parent.previousElementSibling; - anchor.setAttribute('id', `sa11y-h${i}`); - if (hiddenParent) { - hiddenParent.insertAdjacentElement('beforebegin', anchor); - hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + /** + * Append heading labels. + */ + const label = document.createElement('sa11y-heading-label'); + const anchor = document.createElement('sa11y-heading-anchor'); + label.hidden = true; + + // If heading is in a hidden container, place the anchor just before it's most visible parent. + if (parent !== null) { + $el.insertAdjacentElement('beforeend', label); + const hiddenParent = parent.previousElementSibling; + anchor.setAttribute('id', `sa11y-h${i}`); + if (hiddenParent) { + hiddenParent.insertAdjacentElement('beforebegin', anchor); + hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + } else { + parent.parentNode.insertAdjacentElement('beforebegin', anchor); + parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + } } else { - parent.parentNode.insertAdjacentElement('beforebegin', anchor); - parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + // If the heading isn't hidden, append visible label. + $el.insertAdjacentElement('beforeend', label); + + // Create anchor above visible label. + label.insertAdjacentElement('beforebegin', anchor); + anchor.setAttribute('id', `sa11y-h${i}`); } - } else { - // If the heading isn't hidden, append visible label. - $el.insertAdjacentElement('beforeend', label); - // Create anchor above visible label. - label.insertAdjacentElement('beforebegin', anchor); - anchor.setAttribute('id', `sa11y-h${i}`); + // Populate heading label. + const content = document.createElement('span'); + content.classList.add('heading-label'); + content.innerHTML = `H${level}`; + label.shadowRoot.appendChild(content); + + // Make heading labels visible when panel is open. + if (store.getItem('sa11y-remember-outline') === 'Opened') { + label.hidden = false; + } } + }); - // Populate heading label. - const content = document.createElement('span'); - content.classList.add('heading-label'); - content.innerHTML = `H${level}`; - label.shadowRoot.appendChild(content); + // Append headings to Page Outline. + Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) + ? `
        • ${Lang._('PANEL_NO_HEADINGS')}
        • ` + : outlineArray.join(' '); - // Make heading labels visible when panel is open. - if (store.getItem('sa11y-remember-outline') === 'Opened') { - label.hidden = false; - } - } - }); + // Make clickable! + setTimeout(() => { + const panel = document.querySelector('sa11y-control-panel'); + const shadow = panel.shadowRoot; + const children = Array.from(shadow.querySelectorAll('#outline-list a')); + + children.forEach(($el, i) => { + // Make Page Outline clickable. + const outlineLink = shadow.getElementById(`sa11y-link-${i}`); + + const headingID = find( + `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, + 'document', + Constants.Exclusions.Container, + ); - // Append headings to Page Outline. - Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) - ? `
        • ${Lang._('PANEL_NO_HEADINGS')}
        • ` - : outlineArray.join(' '); + // Scroll to. + const pulseAndScroll = (heading) => { + addPulse(heading.parentElement); + heading.scrollIntoView({ + behavior: `${Constants.Global.scrollBehaviour}`, + block: 'center', + }); + }; - // Make clickable! - setTimeout(() => { - const panel = document.querySelector('sa11y-control-panel'); - const shadow = panel.shadowRoot; - const children = Array.from(shadow.querySelectorAll('#outline-list a')); - - children.forEach(($el, i) => { - // Make Page Outline clickable. - const outlineLink = shadow.getElementById(`sa11y-link-${i}`); - - const headingID = find( - `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, - 'document', - Constants.Exclusions.Container, - ); + // Add pulse. + const smoothPulse = (e) => { + if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { + headingID.forEach((heading) => { + pulseAndScroll(heading); + }); - // Scroll to. - const pulseAndScroll = (heading) => { - addPulse(heading.parentElement); - heading.scrollIntoView({ - behavior: `${Constants.Global.scrollBehaviour}`, - block: 'center', - }); - }; + if (outlineLink.classList.contains('hidden-h')) { + createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); + } else if (Constants.Panel.alert.classList.contains('active')) { + removeAlert(); + } + } + e.preventDefault(); + }; - // Add pulse. - const smoothPulse = (e) => { - if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { - headingID.forEach((heading) => { - pulseAndScroll(heading); - }); + // Attach event listeners. + outlineLink?.addEventListener('click', smoothPulse, false); + outlineLink?.addEventListener('keyup', smoothPulse, false); + }); - if (outlineLink.classList.contains('hidden-h')) { - createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); - } else if (Constants.Panel.alert.classList.contains('active')) { - removeAlert(); + /** + * Roving tabindex menu for page outline. + * Thanks to Srijan for this snippet! + * @link https://blog.srij.dev/roving-tabindex-from-scratch + */ + let current = 0; + const handleKeyDown = (e) => { + if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; + if (e.code === 'Space') { + children[current].click(); + return; + } + const selected = children[current]; + selected.setAttribute('tabindex', -1); + let next; + if (e.code === 'ArrowDown') { + next = current + 1; + if (current === children.length - 1) { + next = 0; + } + } else if ((e.code === 'ArrowUp')) { + next = current - 1; + if (current === 0) { + next = children.length - 1; } } + children[next].setAttribute('tabindex', 0); + children[next].focus(); + current = next; e.preventDefault(); }; + Constants.Panel.outlineList.addEventListener('focus', () => { + if (children.length > 0) { + Constants.Panel.outlineList.setAttribute('tabindex', -1); + children[current].setAttribute('tabindex', 0); + children[current].focus(); + } + Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + }); + Constants.Panel.outlineList.addEventListener('blur', () => { + Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + }); + }, 0); - // Attach event listeners. - outlineLink?.addEventListener('click', smoothPulse, false); - outlineLink?.addEventListener('keyup', smoothPulse, false); - }); + // Remove event listener and returned dismissed results. + document.removeEventListener('sa11y-build-heading-outline', outlineHandler); + return dismissed; + }; - /** - * Roving tabindex menu for page outline. - * Thanks to Srijan for this snippet! - * @link https://blog.srij.dev/roving-tabindex-from-scratch - */ - let current = 0; - const handleKeyDown = (e) => { - if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; - if (e.code === 'Space') { - children[current].click(); - return; - } - const selected = children[current]; - selected.setAttribute('tabindex', -1); - let next; - if (e.code === 'ArrowDown') { - next = current + 1; - if (current === children.length - 1) { - next = 0; - } - } else if ((e.code === 'ArrowUp')) { - next = current - 1; - if (current === 0) { - next = children.length - 1; - } - } - children[next].setAttribute('tabindex', 0); - children[next].focus(); - current = next; - e.preventDefault(); - }; - Constants.Panel.outlineList.addEventListener('focus', () => { - if (children.length > 0) { - Constants.Panel.outlineList.setAttribute('tabindex', -1); - children[current].setAttribute('tabindex', 0); - children[current].focus(); + // Generate heading outline based on local storage or if "Outline" button is selected. + const rememberOutline = store.getItem('sa11y-remember-outline'); + if (rememberOutline === 'Opened') outlineHandler(); + document.addEventListener('sa11y-build-heading-outline', outlineHandler); +} + +/** + * Create Images outline. +*/ + +function generateImageOutline(dismissed, imageResults) { + const generateEditLink = (image) => { + let finalURL; + // Only generate edit link if prop is populated. + if (Constants.Global.editImageURLofCMS.length !== 0) { + const { src } = image.element; + + // Check if image's SRC attribute is hosted on same domain or is relative path. + const relativePath = Constants.Global.relativePathImageSRC + ? Constants.Global.relativePathImageSRC + : window.location.host; + + const parts = src.split(relativePath); + const fileExtension = parts.length > 1 ? parts[1] : ''; + + const imageID = Constants.Global.relativePathImageID; + let imageUniqueID; + if (imageID.length && image.element.classList.length) { + image.element.classList.forEach((className) => { + if (className.startsWith(imageID)) { + const [digit] = className.match(/\d+/) || []; + imageUniqueID = digit; + } + }); } - Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + + const editURL = (relativePath && imageID.length) + ? Constants.Global.editImageURLofCMS + imageUniqueID + : Constants.Global.editImageURLofCMS + fileExtension; + + // Only add edit button to relative (locally hosted) images. + const isRelativeLink = (imageSrc) => imageSrc.includes(window.location.host) || imageSrc.startsWith(relativePath); + finalURL = (isRelativeLink(src) && imageUniqueID !== undefined) + ? `` + : ''; + } + return finalURL ?? ''; + }; + + const imageOutlineHandler = () => { + // Create a single array that gets appended to heading outline. + const imageArray = []; + + // Find all dismissed images and update headingOutline array. + const findDismissedImages = dismissed.map((e) => { + const found = imageResults.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; }); - Constants.Panel.outlineList.addEventListener('blur', () => { - Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + + findDismissedImages.forEach(($el) => { + Object.assign($el, { dismissedImage: true }); }); - }, 0); - return dismissed; + + imageResults.forEach((image) => { + const issue = image.type; + const { dismissedImage } = image; + const altText = escapeHTML(image.element.alt); + + // Account for lazy loading libraries that use 'data-src' attribute. + const { src } = image.element; + const dataSrc = image.element.getAttribute('data-src'); + const source = (dataSrc && dataSrc.length > 3) ? dataSrc : src; + + // Generate edit link if locally hosted image and prop is enabled. + const edit = generateEditLink(image); + + let append; + if (issue === 'error') { + const missing = altText.length === 0 + ? `
          ${Lang._('MISSING')}
          ` + : `${altText}`; + append = ` +
        • + +
          +
          + + ${Lang._('ERROR')} + ${Lang._('ALT')} +
          + ${missing} +
          + ${edit} +
        • `; + imageArray.push(append); + } else if (issue === 'warning' && !dismissedImage) { + const decorative = altText.length === 0 + ? `
          ${Lang._('DECORATIVE')}
          ` : ''; + append = ` +
        • + +
          +
          + + ${Lang._('WARNING')} + ${Lang._('ALT')} +
          + ${decorative} ${altText} +
          + ${edit} +
        • `; + imageArray.push(append); + } else { + const decorative = altText.length === 0 + ? `
          ${Lang._('DECORATIVE')}
          ` : ''; + append = ` +
        • + +
          +
          ${Lang._('ALT')}
          + ${decorative} ${altText} +
          + ${edit} +
        • `; + imageArray.push(append); + } + }); + + // Append headings to Page Outline. + Constants.Panel.imagesList.innerHTML = (imageArray.length === 0) + ? `
        • ${Lang._('IMAGES_NOT_FOUND')}
        • ` + : imageArray.join(' '); + + // Remove event listener. + document.removeEventListener('sa11y-build-image-outline', imageOutlineHandler); + }; + + /* Generate image outline based on local storage or if "Image" button is selected. */ + const rememberImages = store.getItem('sa11y-remember-images'); + if (rememberImages === 'Opened') imageOutlineHandler(); + document.addEventListener('sa11y-build-image-outline', imageOutlineHandler); } /* ************************************************************ */ @@ -6620,16 +6833,33 @@ function checkImages(results, option) { hit[0] = word; } }); - Lang._('SUSPICIOUS_ALT_STOPWORDS').forEach((word) => { - if (alt.toLowerCase().indexOf(word) >= 0) { + + const susAltWordsOverride = (option.susAltStopWords) ? option.susAltStopWords.split(',').map((word) => word.trim()) : Lang._('SUSPICIOUS_ALT_STOPWORDS'); + susAltWordsOverride.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { hit[1] = word; } }); + Lang._('PLACEHOLDER_ALT_STOPWORDS').forEach((word) => { if (alt.length === word.length && alt.toLowerCase().indexOf(word) >= 0) { hit[2] = word; } }); + + // Additional placeholder stopwords to flag as an error. + const { extraPlaceholderStopWords } = option; + if (extraPlaceholderStopWords.length) { + const array = extraPlaceholderStopWords.split(',').map((word) => word.trim()); + array.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { + hit[2] = word; + } + }); + } + return hit; }; @@ -7065,7 +7295,8 @@ function checkLinkText(results, option) { }); // Other warnings we want to add. - Lang._('WARNING_ALT_STOPWORDS').forEach((word) => { + const linkStopWords = (option.linkStopWords) ? option.linkStopWords.split(',').map((word) => word.trim()) : Lang._('WARNING_ALT_STOPWORDS'); + linkStopWords.forEach((word) => { if (textContent.toLowerCase().indexOf(word) >= 0) { hit[1] = word; } @@ -7325,6 +7556,39 @@ function checkLinkText(results, option) { return results; } +/** + * Converts a color string in the format 'color(srgb r g b [a])' to RGBA format. + * If alpha value is not provided, it defaults to 1 (fully opaque). + * @param {string} colorString The color string in the format 'color(srgb r g b [a])'. + * @returns {string} The RGBA color string in the format 'rgba(r, g, b, a)'. + * Returns 'invalid-format' if the input format is invalid. + */ +const convertColorToRGBA = (colorString) => { + if (colorString.startsWith('color(srgb')) { + const rgbaRegex = /srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/; // Added alpha value regex group + const match = colorString.match(rgbaRegex); + + if (match && match.length >= 4) { + const [r, g, b, a] = match.slice(1); + + // Ensure the parsed values are within the valid range [0, 1]. + const parsedR = Math.min(1, parseFloat(r)); + const parsedG = Math.min(1, parseFloat(g)); + const parsedB = Math.min(1, parseFloat(b)); + + // Parse alpha value or default to 1 if not provided + const alpha = a !== undefined ? Math.min(1, parseFloat(a)) : 1; + + // Converting RGB to RGBA. + const rgbaColor = `rgba(${Math.round(parsedR * 255)}, ${Math.round(parsedG * 255)}, ${Math.round(parsedB * 255)}, ${alpha})`; + + return rgbaColor; + } + return 'invalid-format'; + } + return colorString; // Return the original color if it's not in the color() format. +}; + /** * Rulesets: Contrast * Color contrast plugin by Jason Day. @@ -7398,18 +7662,18 @@ function checkContrast(results, option) { } const styles = getComputedStyle(el); - const bgColor = styles.backgroundColor; + const bgColor = convertColorToRGBA(styles.backgroundColor); const bgImage = styles.backgroundImage; const rgb = `${contrastObject.parseRgb(bgColor)}`; const alpha = rgb.split(','); - // if background has alpha transparency, flag manual check + // if background has alpha transparency, flag manual check. if (alpha[3] < 1 && alpha[3] > 0) { return 'alpha'; } - // if element has no background image, or transparent return bgColor if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent' && bgImage === 'none' && alpha[3] !== '0') { + // if element has no background image, or transparent return bgColor return bgColor; } if (bgImage !== 'none') { return 'image'; @@ -7433,8 +7697,12 @@ function checkContrast(results, option) { const elem = Elements.Found.Contrast[i]; if (Elements.Found.Contrast) { + let ratio; + let error; + let warning; + const style = getComputedStyle(elem); - const { color } = style; + const color = convertColorToRGBA(style.color); const { fill } = style; const fontSize = parseInt(style.fontSize, 10); const pointSize = fontSize * (3 / 4); @@ -7443,14 +7711,26 @@ function checkContrast(results, option) { const background = contrastObject.getBackground(elem); const textString = [].reduce.call(elem.childNodes, (a, b) => a + (b.nodeType === 3 ? b.textContent : ''), ''); const text = textString.trim(); - const clip = window.getComputedStyle(elem).clip.replace(/\s/g, ''); - const width = parseFloat(window.getComputedStyle(elem).width); - const height = parseFloat(window.getComputedStyle(elem).height); - let ratio; - let error; - let warning; - if ((width === 1 && height === 1) && (clip === "rect(0,0,0,0)" || clip === "rect(1px,1px,1px,1px)")) ; else if (htmlTag === 'SVG') { + // Maybe visually hidden text. + const computedStyle = window.getComputedStyle(elem); + const clip = computedStyle.clip.replace(/\s/g, ''); + const clipPath = computedStyle.getPropertyValue('clip-path'); + const width = parseFloat(computedStyle.width); + const height = parseFloat(computedStyle.height); + const maybeVisuallyHidden = (width === 1 && height === 1) && + (clipPath === 'inset(50%)' || /^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(clip)); + + // Ignore if visually hidden for screen readers. + if (maybeVisuallyHidden) { + return; + } else if (color.startsWith('color(')) { + // Push a warning if using a color() functional notation. + warning = { + elem, + }; + contrastErrors.warnings.push(warning); + } else if (htmlTag === 'SVG') { ratio = Math.round(contrastObject.contrastRatio(fill, background) * 100) / 100; if (ratio < 3) { error = { @@ -8066,9 +8346,8 @@ function checkQA(results, option) { const href = $el.getAttribute('href'); // Has file extension. - const extensions = Constants.Global.documentLinks.split(', '); - const hasExtension = extensions.some((extension) => href.includes(extension)); - const hasPDF = href.includes('.pdf'); + const hasExtension = $el.matches(Constants.Global.documentLinks); + const hasPDF = $el.matches('a[href$=".pdf"], a[href*=".pdf?"]'); // Dismiss key. const key = prepareDismissal(`DOCUMENT${href}`); @@ -8395,11 +8674,9 @@ function checkQA(results, option) { /* Error: Duplicate IDs */ /* *************************************************************** */ if (option.duplicateIdQA) { - const doms = Constants.Shadow.Components ? `body, ${Constants.Shadow.Components}` : 'body'; - const allDoms = document.querySelectorAll(doms); - // Look for duplicate IDs within each DOM. - allDoms.forEach((dom) => { + const doms = document.querySelectorAll('body, [data-sa11y-has-shadow-root]'); + doms.forEach((dom) => { const allIds = new Set(); const findDuplicateIds = (ids, withinDOM) => { ids.forEach(($el) => { @@ -8656,6 +8933,7 @@ class Sa11y { try { this.results = []; this.headingOutline = []; + this.imageOutline = []; this.errorCount = 0; this.warningCount = 0; this.customChecksRunning = false; @@ -8668,7 +8946,7 @@ class Sa11y { Constants.initializeRoot(desiredRoot, desiredReadabilityRoot); // Find all web components on the page. - Constants.initializeShadowSearch(option, desiredRoot); + findShadowComponents(option); // Find and cache elements. Elements.initializeElements(option); @@ -8683,6 +8961,8 @@ class Sa11y { checkEmbeddedContent(this.results, option); checkReadability(); + this.imageResults = this.results.filter((item) => item.element?.tagName === 'IMG'); + /* Custom checks */ if (option.customChecks === true) { // Option 1: Provide via sa11y-custom-checks.js @@ -8790,6 +9070,10 @@ class Sa11y { option.showHinPageOutline, ); + if (option.showImageOutline) { + generateImageOutline(this.dismissed, this.imageResults); + } + updatePanel( dismiss.dismissCount, count.error, @@ -8829,6 +9113,17 @@ class Sa11y { this.resetAll = (restartPanel = true) => { Constants.Global.html.removeAttribute('data-sa11y-active'); + // Remove from page. + remove([ + 'sa11y-annotation', + 'sa11y-heading-label', + 'sa11y-heading-anchor', + 'sa11y-tooltips', + '[data-sa11y-readability-period]', + '[data-sa11y-clone-image-text]', + '.sa11y-css-utilities', + ], 'document'); + // Reset all data attributes. resetAttributes([ 'data-sa11y-parent', @@ -8840,21 +9135,12 @@ class Sa11y { 'data-sa11y-overflow', 'data-sa11y-pulse-border', 'data-sa11y-filter', - ], 'document'); - - // Remove from page. - remove([ - 'sa11y-annotation', - 'sa11y-heading-label', - 'sa11y-heading-anchor', - 'sa11y-tooltips', - '[data-sa11y-readability-period]', - '[data-sa11y-clone-image-text]', - '.sa11y-css-utilities', + 'data-sa11y-has-shadow-root', ], 'document'); // Remove from panel. Constants.Panel.outlineList.innerHTML = ''; + if (option.showImageOutline) Constants.Panel.imagesList.innerHTML = ''; Constants.Panel.pageIssuesList.innerHTML = ''; Constants.Panel.readabilityInfo.innerHTML = ''; Constants.Panel.readabilityDetails.innerHTML = ''; @@ -8875,6 +9161,11 @@ class Sa11y { // Main panel warning and error count. while (Constants.Panel.status.firstChild) Constants.Panel.status.removeChild(Constants.Panel.status.firstChild); + // Remove data attribute from shadow root elements. + document.querySelectorAll('[data-sa11y-has-shadow-root]').forEach((el) => { + el.removeAttribute('data-sa11y-has-shadow-root'); + }); + if (restartPanel) { Constants.Panel.panel.classList.remove('active'); } diff --git a/dist/js/sa11y.esm.min.js b/dist/js/sa11y.esm.min.js index d977a3b3..9372e353 100644 --- a/dist/js/sa11y.esm.min.js +++ b/dist/js/sa11y.esm.min.js @@ -1,6 +1,6 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -9,4 +9,4 @@ * For all acknowledgements, please visit: https://sa11y.netlify.app/acknowledgements/ * The above copyright notice shall be included in all copies or substantial portions of the Software. **/ -const e={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:".ppt, .doc, .xls, .csv, sway.com, docs.google.com",langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},t={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
          /g,'').replaceAll(/{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};const o=function(){const e={};const i={};const a={};const r={};const s={};const l={};const d={};return{initializeRoot:function(t,n){e.areaToCheck=document.querySelector(t),e.areaToCheck||(e.areaToCheck=document.querySelector("body")),e.Readability=document.querySelector(n),e.Readability||(e.areaToCheck?(e.Readability=e.areaToCheck,console.error(`Sa11y configuration error: The selector '${n}' used for the property 'readabilityRoot' does not exist. '${e.areaToCheck.tagName}' was used as a fallback.`)):e.Readability=document.querySelector("body"))},Root:e,initializeGlobal:function(e){i.html=document.querySelector("html"),i.headless=e.headless,i.panelPosition=e.panelPosition,i.dismissAnnotations=e.dismissAnnotations,i.contrastPlugin=e.contrastPlugin,i.formLabelsPlugin=e.formLabelsPlugin,i.linksAdvancedPlugin=e.linksAdvancedPlugin,i.colourFilterPlugin=e.colourFilterPlugin,i.checkAllHideToggles=e.checkAllHideToggles,i.exportResultsPlugin=e.exportResultsPlugin;let t=!1;"function"==typeof window.matchMedia&&(t=window.matchMedia("(prefers-reduced-motion: reduce)")),i.scrollBehaviour=!t||t.matches?"auto":"smooth",i.langDirection="rtl"===i.html.getAttribute("dir")?"rtl":"ltr",e.documentLinks&&(i.documentLinks=`${e.documentLinks}`)},Global:i,initializePanelSelectors:function(){const e=document.querySelector("sa11y-control-panel").shadowRoot;a.panel=e.getElementById("panel"),a.content=e.getElementById("panel-content"),a.controls=e.getElementById("panel-controls"),a.outline=e.getElementById("outline-panel"),a.outlineContent=e.getElementById("outline-content"),a.outlineList=e.getElementById("outline-list"),a.outlineHeader=e.getElementById("outline-header"),a.notifBadge=e.getElementById("notification-badge"),a.notifCount=e.getElementById("notification-count"),a.notifText=e.getElementById("notification-text"),a.status=e.getElementById("status"),a.pageIssues=e.getElementById("page-issues"),a.pageIssuesList=e.getElementById("page-issues-list"),a.pageIssuesHeader=e.getElementById("page-issues-header"),a.pageIssuesContent=e.getElementById("page-issues-content"),a.settings=e.getElementById("settings-panel"),a.settingsHeader=e.getElementById("settings-header"),a.settingsContent=e.getElementById("settings-content"),a.contrastToggle=e.getElementById("contrast-toggle"),a.labelsToggle=e.getElementById("labels-toggle"),a.linksToggle=e.getElementById("links-advanced-toggle"),a.readabilityToggle=e.getElementById("readability-toggle"),a.themeToggle=e.getElementById("theme-toggle"),a.contrastItem=e.getElementById("contrast-item"),a.labelsItem=e.getElementById("form-labels-item"),a.linksItem=e.getElementById("links-advanced-item"),a.readabilityItem=e.getElementById("readability-item"),a.darkModeItem=e.getElementById("dark-mode-item"),a.colourPanel=e.getElementById("panel-colour-filters"),a.colourFilterItem=e.getElementById("colour-filter-item"),a.colourFilterSelect=e.getElementById("colour-filter-select"),a.colourFilterIcon=e.getElementById("filter-icon"),a.toggle=e.getElementById("toggle"),a.outlineToggle=e.getElementById("outline-toggle"),a.settingsToggle=e.getElementById("settings-toggle"),a.skipButton=e.getElementById("skip-button"),a.dismissButton=e.getElementById("dismiss-button"),a.dismissTooltip=e.getElementById("dismiss-tooltip"),a.skipToPageIssues=e.getElementById("skip-to-page-issues"),a.exportHTML=e.getElementById("export-html"),a.exportCSV=e.getElementById("export-csv"),a.alert=e.getElementById("panel-alert"),a.alertText=e.getElementById("panel-alert-text"),a.alertPreview=e.getElementById("panel-alert-preview"),a.alertClose=e.getElementById("close-alert"),a.readability=e.getElementById("readability-panel"),a.readabilityInfo=e.getElementById("readability-info"),a.readabilityDetails=e.getElementById("readability-details")},Panel:a,initializeReadability:function(e){if(e.readabilityPlugin){r.Lang=t._("LANG_CODE").substring(0,2);const e=["en","fr","es","de","nl","it","sv","fi","da","no","nb","nn","pt"],n=o.Global.html.getAttribute("lang");if(n){const t=n.toLowerCase().substring(0,2);e.includes(t)&&e.includes(r.Lang)?r.Plugin=!0:r.Plugin=!1}else r.Plugin=!1}},Readability:r,initializeExclusions:function(e){if(e.containerIgnore){const t=e.containerIgnore.split(",").map((e=>`${e} *, ${e}`));s.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else s.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";s.Contrast="script, style, link",e.contrastIgnore&&(s.Contrast=`${e.contrastIgnore}, ${s.Contrast}`),s.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(s.Readability=`${e.readabilityIgnore}, ${s.Readability}`),e.headerIgnore&&(s.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(s.Outline=`${e.outlineIgnore}`),s.Images='[role="presentation"]',e.imageIgnore&&(s.Images=`${e.imageIgnore}, ${s.Images}`),s.Links=".anchorjs-link",e.linkIgnore&&(s.Links=`${e.linkIgnore}, ${s.Links}`),e.linkIgnoreSpan&&(s.LinkSpan=e.linkIgnoreSpan)},Exclusions:s,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Video=`video, ${t.join(", ")}`}else l.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Audio=`audio, ${t.join(", ")}`}else l.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Visualization=t.join(", ")}else l.Visualization="datastudio.google.com, tableau";l.All=`${l.Video}, ${l.Audio}, ${l.Visualization}`},EmbeddedContent:l,initializeShadowSearch:function(e,t,o){d.Components=function(e,t){let o;if(e.autoDetectShadowComponents){const e="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",i=document.querySelector(t),a=i?Array.from(i.querySelectorAll(`*:not(${e})`)):Array.from(document.body.querySelectorAll(`*:not(${e})`)),r=[];a.forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(r.push(e),n(e))}));const s=Array.from(r).map((e=>e.tagName.toLowerCase()));o=1===s.length?`${s.toString()}`:s.join(", ")}else o=e.suppliedShadowComponents||"",o&&document.querySelectorAll(o).forEach((e=>{n(e)}));return o}(e,t)},Shadow:d}}();function i(e,t,n){let i;"document"===t?i=document:"readability"===t?(i=o.Readability.Root,i||(i=o.Root.areaToCheck)):"root"===t?(i=o.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=o.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=o.Shadow.Components,r=a?`, ${a}`:"",s=o.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[],n=a.trim().replace(/^,+/,"");if(d.forEach(((o,i)=>{o&&o.matches&&o.matches(n)&&o.shadowRoot&&(t[i]=o.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function a(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function r(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function s(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function l(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function d(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function c(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function p(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function u(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const g={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function m(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function f(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function b(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function h(e,t,n){b();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
          ${n}
          `:"";function c(){b();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
          ${t}
          `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function y(e,t){e.forEach((e=>{i(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function v(e,t){i(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function x(e,t){e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0")):t.classList.remove("scrollable")}function w(e){const t=e.element,n=`
          ${r(e.htmlPath)}
          `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${s(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const A=function(){const e={};const t={};return{initializeElements:function(t){e.Images=i("img","root",o.Exclusions.Images),e.Headings=i('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",o.Exclusions.Headings),e.HeadingOne=i('h1, [role="heading"][aria-level="1"]',"document",o.Exclusions.Headings),e.Links=i("a[href]","root",o.Exclusions.Links),e.Inputs=i("input, select, textarea","root",o.Exclusions.Container),e.Contrast=i("*","root",o.Exclusions.Contrast),e.Labels=i("label","root",o.Exclusions.Container),e.Readability=i("p, li","readability",o.Exclusions.Readability),e.Paragraphs=i("p","root",o.Exclusions.Container),e.Lists=i("li","root",o.Exclusions.Container),e.Spans=i("span","root",o.Exclusions.Container),e.Blockquotes=i("blockquote","root",o.Exclusions.Container),e.Tables=i('table:not([role="presentation"])',"root",o.Exclusions.Container),e.StrongItalics=i("strong, em","root",o.Exclusions.Container),e.Underlines=i("u","root",o.Exclusions.Container),e.Subscripts=i("sup, sub","root",o.Exclusions.Container),e.Language=o.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?i(t.linksToFlag,"root",o.Exclusions.Container):[],e.iframes=i("iframe:not(hidden), audio, video","root",o.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(o.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=i("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();function E(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==g.getItem("sa11y-remember-panel")&&g.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("mousemove",o),window.addEventListener("keydown",o)}}let L,k;function I(e,n,a,r){if(o.Global.dismissAnnotations){k=n=>{(async(e,n,o,a)=>{let r=JSON.parse(g.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=n.find((t=>t.id===e));if(null===r&&(setTimeout((()=>h(t._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=i(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;g.setItem("sa11y-latest-dismissed",n),g.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),g.setItem("sa11y-dismissed",JSON.stringify(r)),g.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await o()}}})(n,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",k),o.Panel.panel.addEventListener("click",k)}L=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));g.setItem("sa11y-dismissed",JSON.stringify(i)),o.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(n,a,r)},o.Panel.dismissButton?.addEventListener("click",L)}var T=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function _(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function S(e,n){const o=function(e,n){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:n.length};function s(e,n){const o={error:t._("ERRORS"),warning:t._("WARNINGS"),dismissed:t._("DISMISSED")}[n];if(!(e.length>0))return"";let i=`

          ${o}

          `,s="
            ",l="
          ";return"dismissed"===n&&(s=`
          ${t.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
            `,l="
          "),i+=s,e.forEach((e=>{let n="";e.element&&(n=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
        • \n ${t._("PREVIEW")}:\n ${w(e)}\n
        • \n
        • \n ${t._("ELEMENT")}:\n
          ${r(e.htmlPath)}
          \n
        • `:`\n
        • \n ${t._("ELEMENT")}:\n
          ${r(e.htmlPath)}
          \n
        • `);const o=e.cssPath?`
        • \n ${t._("PATH")}:\n
          ${e.cssPath}
          \n
        • `:"";i+=`
        • \n

          ${e.content.replace('

          '," | ")}

          \n
            ${n}${o}
          \n
        • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(n,"dismissed"),p=_(),u=p.titleCheck?"":`
          ${t._("PAGE_TITLE")}
          ${p.metaTitle}
          `,g=0!==a.error?`
          ${t._("ERRORS")}
          ${a.error}
          `:"",m=0!==a.warning?`
          ${t._("WARNINGS")}
          ${a.warning}
          `:"",f=0!==a.dismiss?`
          ${t._("DISMISSED")}
          ${a.dismiss}
          `:"";return`\n \n \n \n \n \n ${t._("RESULTS")}: ${p.metaTitle}\n \n \n \n
          \n

          ${t._("RESULTS")}

          \n
          \n
          \n ${u}\n
          URL
          \n
          ${p.pageURL}
          \n
          ${t._("DATE")}
          \n
          ${p.date}
          \n
          \n
          \n ${g}\n ${m}\n ${f}\n
          \n
          \n
          \n ${l}\n ${d}\n ${c}\n
          \n

          ${t.sprintf("GENERATED",'Sa11y')}

          \n
          \n \n \n `}(e,n),i=_(),a=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(a),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function P(e){const t=_(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ");const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Blob([i],{type:"text/csv"}),r=window.URL.createObjectURL(a),s=document.createElement("a");s.href=r,s.href=window.URL.createObjectURL(a);const l=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;s.setAttribute("download",`Sa11y_${t.numericDate+l}.csv`),document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}let C,O;var $='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class N extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),n=document.createElement("style");n.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+$,e.appendChild(n);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const a=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

          ${t._("ERROR")}

          \n

          ${t.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

          \n

          ${r(this.error.stack)}

          URL: ${a}

          \n `,e.appendChild(i),setTimeout((()=>{o.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class R extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+$,this.shadowRoot.appendChild(e);const n="On"===g.getItem("sa11y-remember-contrast"),i="On"===g.getItem("sa11y-remember-labels"),a="On"===g.getItem("sa11y-remember-links-advanced"),r="On"===g.getItem("sa11y-remember-readability"),s=o.Global.checkAllHideToggles,{panelPosition:l}=o.Global,d=o.Global.contrastPlugin?`\n
        • \n \n \n
        • `:"",c=o.Global.formLabelsPlugin?`\n
        • \n \n \n
        • `:"",p=o.Global.linksAdvancedPlugin?`\n `:"",u=o.Readability.Plugin?`\n
        • \n \n \n
        • `:"",m=o.Global.colourFilterPlugin?`\n
        • \n \n
          \n \n
          \n
        • `:"",f=o.Global.colourFilterPlugin?`\n
          \n \n

          ${t._("COLOUR_FILTER_MESSAGE")}

          \n
          `:"",b=o.Global.exportResultsPlugin?`\n
        • \n ${t._("EXPORT_RESULTS")}\n \n \n
        • `:"",h=`\n `,y=`\n
          \n
          \n

          ${t._("PAGE_ISSUES")}

          \n
          \n
          \n
            \n
            \n
            `,v=`\n
            \n
            \n

            ${t._("OUTLINE")}

            \n
            \n
            \n
          \n \n
          \n
          \n

          ${t._("LANG_READABILITY")}

          \n

          \n
            \n
            \n
            \n `,x=`\n
            \n
            \n

            ${t._("SETTINGS")}

            \n
            \n
            \n
              \n ${d}\n ${c}\n ${p}\n ${u}\n
            • \n \n \n
            • \n ${b}\n ${m}\n
            \n
            \n
            `,w=`\n \n
            \n
            \n \n

            ${t._("ALERT_TEXT")}

            \n
            \n

            \n
            \n
            \n `,A=`\n
            \n \n \n \n
            \n

            ${t._("PANEL_HEADING")}

            \n

            \n
            \n
            `,E=`\n
            \n ${"left"===l?'
            ':""}\n \n \n ${"right"===l?'
            ':""}\n
            `,L=document.createElement("div");L.setAttribute("id","container"),L.setAttribute("role","region"),L.setAttribute("lang",t._("LANG_CODE")),L.setAttribute("aria-label",t._("CONTAINER_LABEL")),L.setAttribute("dir",o.Global.langDirection),L.innerHTML="top-left"===l||"top-right"===l?`\n ${h}\n
            \n ${A}\n ${f}\n ${E}\n ${v}\n ${x}\n ${w}\n ${y}\n
            `:`\n ${h}\n
            \n ${y}\n ${v}\n ${x}\n ${w}\n ${f}\n ${A}\n ${E}\n
            `,this.shadowRoot.appendChild(L),o.initializePanelSelectors()}}function D(e,n,a){const r=[];return e.map((e=>{const t=n.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),n.forEach((e=>{const n=e.element,i=e.headingLevel,s=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:m}=e;if(!(o.Exclusions.Outline?Array.from(document.querySelectorAll(o.Exclusions.Outline)):[]).includes(n)){const e=!0===c?'Hidden':"",o=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
          • \n \n \n \n ${t._("ERROR")} ${f+i}\n ${s}\n \n
          • `,r.push(b)):"warning"!==d||u||!0!==m?(b=`\n
          • \n \n ${e} ${f+i}\n ${s}\n \n
          • `,r.push(b)):(b=`\n
          • \n \n \n \n ${t._("WARNING")} ${f+i}\n ${s}\n \n
          • `,r.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){n.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else n.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===g.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),o.Panel.outlineList.innerHTML=0===r.length?`
          • ${t._("PANEL_NO_HEADINGS")}
          • `:r.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,n=Array.from(e.querySelectorAll("#outline-list a"));n.forEach(((n,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=i(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",o.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{m(e.parentElement),e.scrollIntoView({behavior:`${o.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?h(`${t._("HEADING_NOT_VISIBLE_ALERT")}`):o.Panel.alert.classList.contains("active")&&b()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void n[a].click();let t;n[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(t=a+1,a===n.length-1&&(t=0)):"ArrowUp"===e.code&&(t=a-1,0===a&&(t=n.length-1)),n[t].setAttribute("tabindex",0),n[t].focus(),a=t,e.preventDefault()};o.Panel.outlineList.addEventListener("focus",(()=>{n.length>0&&(o.Panel.outlineList.setAttribute("tabindex",-1),n[a].setAttribute("tabindex",0),n[a].focus()),o.Panel.outlineList.addEventListener("keydown",r)})),o.Panel.outlineList.addEventListener("blur",(()=>{o.Panel.outlineList.removeEventListener("keydown",r)}))}),0),e}var M="top",B="bottom",G="right",H="left",F="auto",U=[M,B,G,H],z="start",j="end",q="clippingParents",W="viewport",V="popper",Q="reference",K=U.reduce((function(e,t){return e.concat([t+"-"+z,t+"-"+j])}),[]),Y=[].concat(U,[F]).reduce((function(e,t){return e.concat([t,t+"-"+z,t+"-"+j])}),[]),X=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Z(e){return e?(e.nodeName||"").toLowerCase():null}function J(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ee(e){return e instanceof J(e).Element||e instanceof Element}function te(e){return e instanceof J(e).HTMLElement||e instanceof HTMLElement}function ne(e){return"undefined"!=typeof ShadowRoot&&(e instanceof J(e).ShadowRoot||e instanceof ShadowRoot)}var oe={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];te(i)&&Z(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});te(o)&&Z(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ie(e){return e.split("-")[0]}var ae=Math.max,re=Math.min,se=Math.round;function le(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function de(){return!/^((?!chrome|android).)*safari/i.test(le())}function ce(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&te(e)&&(i=e.offsetWidth>0&&se(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&se(o.height)/e.offsetHeight||1);var r=(ee(e)?J(e):window).visualViewport,s=!de()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function pe(e){var t=ce(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ue(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&ne(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ge(e){return J(e).getComputedStyle(e)}function me(e){return["table","td","th"].indexOf(Z(e))>=0}function fe(e){return((ee(e)?e.ownerDocument:e.document)||window.document).documentElement}function be(e){return"html"===Z(e)?e:e.assignedSlot||e.parentNode||(ne(e)?e.host:null)||fe(e)}function he(e){return te(e)&&"fixed"!==ge(e).position?e.offsetParent:null}function ye(e){for(var t=J(e),n=he(e);n&&me(n)&&"static"===ge(n).position;)n=he(n);return n&&("html"===Z(n)||"body"===Z(n)&&"static"===ge(n).position)?t:n||function(e){var t=/firefox/i.test(le());if(/Trident/i.test(le())&&te(e)&&"fixed"===ge(e).position)return null;var n=be(e);for(ne(n)&&(n=n.host);te(n)&&["html","body"].indexOf(Z(n))<0;){var o=ge(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function ve(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function xe(e,t,n){return ae(e,re(t,n))}function we(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ae(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Ee={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ie(n.placement),l=ve(s),d=[H,G].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return we("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ae(e,U))}(i.padding,n),p=pe(a),u="y"===l?M:H,g="y"===l?B:G,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ye(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,A=xe(v,w,x),E=l;n.modifiersData[o]=((t={})[E]=A,t.centerOffset=A-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ue(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Le(e){return e.split("-")[1]}var ke={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ie(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=H,x=M,w=window;if(d){var A=ye(n),E="clientHeight",L="clientWidth";if(A===J(n)&&"static"!==ge(A=fe(n)).position&&"absolute"===s&&(E="scrollHeight",L="scrollWidth"),i===M||(i===H||i===G)&&a===j)x=B,f-=(p&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-o.height,f*=l?1:-1;if(i===H||(i===M||i===B)&&a===j)v=G,g-=(p&&A===w&&w.visualViewport?w.visualViewport.width:A[L])-o.width,g*=l?1:-1}var k,I=Object.assign({position:s},d&&ke),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:se(n*i)/i||0,y:se(o*i)/i||0}}({x:g,y:f},J(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},I,((k={})[x]=y?"0":"",k[v]=h?"0":"",k.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",k)):Object.assign({},I,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Te={passive:!0};var _e={left:"right",right:"left",bottom:"top",top:"bottom"};function Se(e){return e.replace(/left|right|bottom|top/g,(function(e){return _e[e]}))}var Pe={start:"end",end:"start"};function Ce(e){return e.replace(/start|end/g,(function(e){return Pe[e]}))}function Oe(e){var t=J(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function $e(e){return ce(fe(e)).left+Oe(e).scrollLeft}function Ne(e){var t=ge(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function Re(e){return["html","body","#document"].indexOf(Z(e))>=0?e.ownerDocument.body:te(e)&&Ne(e)?e:Re(be(e))}function De(e,t){var n;void 0===t&&(t=[]);var o=Re(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=J(o),r=i?[a].concat(a.visualViewport||[],Ne(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(De(be(r)))}function Me(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Be(e,t,n){return t===W?Me(function(e,t){var n=J(e),o=fe(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=de();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+$e(e),y:l}}(e,n)):ee(t)?function(e,t){var n=ce(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):Me(function(e){var t,n=fe(e),o=Oe(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ae(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ae(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+$e(e),l=-o.scrollTop;return"rtl"===ge(i||n).direction&&(s+=ae(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(fe(e)))}function Ge(e,t,n,o){var i="clippingParents"===t?function(e){var t=De(be(e)),n=["absolute","fixed"].indexOf(ge(e).position)>=0&&te(e)?ye(e):e;return ee(n)?t.filter((function(e){return ee(e)&&ue(e,n)&&"body"!==Z(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=Be(e,n,o);return t.top=ae(i.top,t.top),t.right=re(i.right,t.right),t.bottom=re(i.bottom,t.bottom),t.left=ae(i.left,t.left),t}),Be(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function He(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ie(i):null,r=i?Le(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case M:t={x:s,y:n.y-o.height};break;case B:t={x:s,y:n.y+n.height};break;case G:t={x:n.x+n.width,y:l};break;case H:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?ve(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case z:t[d]=t[d]-(n[c]/2-o[c]/2);break;case j:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Fe(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?q:s,d=n.rootBoundary,c=void 0===d?W:d,p=n.elementContext,u=void 0===p?V:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=we("number"!=typeof b?b:Ae(b,U)),y=u===V?Q:V,v=e.rects.popper,x=e.elements[m?y:u],w=Ge(ee(x)?x:x.contextElement||fe(e.elements.popper),l,c,r),A=ce(e.elements.reference),E=He({reference:A,element:v,strategy:"absolute",placement:i}),L=Me(Object.assign({},v,E)),k=u===V?L:A,I={top:w.top-k.top+h.top,bottom:k.bottom-w.bottom+h.bottom,left:w.left-k.left+h.left,right:k.right-w.right+h.right},T=e.modifiersData.offset;if(u===V&&T){var _=T[i];Object.keys(I).forEach((function(e){var t=[G,B].indexOf(e)>=0?1:-1,n=[M,B].indexOf(e)>=0?"y":"x";I[e]+=_[n]*t}))}return I}function Ue(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?Y:l,c=Le(o),p=c?s?K:K.filter((function(e){return Le(e)===c})):U,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Fe(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ie(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ze={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ie(b),y=l||(h===b||!m?[Se(b)]:function(e){if(ie(e)===F)return[];var t=Se(e);return[Ce(e),t,Ce(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ie(n)===F?Ue(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,A=new Map,E=!0,L=v[0],k=0;k=0,P=S?"width":"height",C=Fe(t,{placement:I,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?G:H:_?B:M;x[P]>w[P]&&(O=Se(O));var $=Se(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){L=I,E=!1;break}A.set(I,N)}if(E)for(var R=function(e){var t=v.find((function(t){var n=A.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},D=m?3:1;D>0;D--){if("break"===R(D))break}t.placement!==L&&(t.modifiersData[o]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function je(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function qe(e){return[M,G,B,H].some((function(t){return e[t]>=0}))}var We={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=Y.reduce((function(e,n){return e[n]=function(e,t,n){var o=ie(e),i=[H,M].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[H,G].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var Ve={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Fe(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ie(t.placement),y=Le(t.placement),v=!y,x=ve(h),w="x"===x?"y":"x",A=t.modifiersData.popperOffsets,E=t.rects.reference,L=t.rects.popper,k="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,I="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(A){if(a){var S,P="y"===x?M:H,C="y"===x?B:G,O="y"===x?"height":"width",$=A[x],N=$+b[P],R=$-b[C],D=g?-L[O]/2:0,F=y===z?E[O]:L[O],U=y===z?-L[O]:-E[O],j=t.elements.arrow,q=g&&j?pe(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=W[P],Q=W[C],K=xe(0,E[O],q[O]),Y=v?E[O]/2-D-K-V-I.mainAxis:F-K-V-I.mainAxis,X=v?-E[O]/2+D+K+Q+I.mainAxis:U+K+Q+I.mainAxis,Z=t.elements.arrow&&ye(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=xe(g?re(N,$+Y-ee-J):N,$,g?ae(R,te):R);A[x]=ne,_[x]=ne-$}if(s){var oe,se="x"===x?M:H,le="x"===x?B:G,de=A[w],ce="y"===w?"height":"width",ue=de+b[se],ge=de-b[le],me=-1!==[M,H].indexOf(h),fe=null!=(oe=null==T?void 0:T[w])?oe:0,be=me?ue:de-E[ce]-L[ce]-fe+I.altAxis,he=me?de+E[ce]+L[ce]-fe-I.altAxis:ge,we=g&&me?function(e,t,n){var o=xe(e,t,n);return o>n?n:o}(be,de,he):xe(g?be:ue,de,g?he:ge);A[w]=we,_[w]=we-de}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function Qe(e,t,n){void 0===n&&(n=!1);var o,i,a=te(t),r=te(t)&&function(e){var t=e.getBoundingClientRect(),n=se(t.width)/e.offsetWidth||1,o=se(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=fe(t),l=ce(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==Z(t)||Ne(s))&&(d=(o=t)!==J(o)&&te(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:Oe(o)),te(t)?((c=ce(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=$e(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function Ke(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var Ye={placement:"bottom",modifiers:[],strategy:"absolute"};function Xe(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function lt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function dt(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function ct(e){return[].concat(e)}function pt(e,t){-1===e.indexOf(t)&&e.push(t)}function ut(e){return[].slice.call(e)}function gt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function mt(){return document.createElement("div")}function ft(e){return["Element","Fragment"].some((function(t){return st(e,t)}))}function bt(e){return ft(e)?[e]:function(e){return st(e,"NodeList")}(e)?ut(e):Array.isArray(e)?e:ut(document.querySelectorAll(e))}function ht(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function yt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function vt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function xt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var wt={isTouch:!1},At=0;function Et(){wt.isTouch||(wt.isTouch=!0,window.performance&&document.addEventListener("mousemove",Lt))}function Lt(){var e=performance.now();e-At<20&&(wt.isTouch=!1,document.removeEventListener("mousemove",Lt)),At=e}function kt(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var It=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Tt=Object.assign({appendTo:at,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),_t=Object.keys(Tt);function St(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Tt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Pt(e,t){var n=Object.assign({},t,{content:lt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(St(Object.assign({},Tt,{plugins:t}))):_t).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Tt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Ct=function(){return"innerHTML"};function Ot(e,t){e[Ct()]=t}function $t(e){var t=mt();return!0===e?t.className=nt:(t.className=ot,ft(e)?t.appendChild(e):Ot(t,e)),t}function Nt(e,t){ft(t.content)?(Ot(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Ot(e,t.content):e.textContent=t.content)}function Rt(e){var t=e.firstElementChild,n=ut(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(et)})),arrow:n.find((function(e){return e.classList.contains(nt)||e.classList.contains(ot)})),backdrop:n.find((function(e){return e.classList.contains(tt)}))}}function Dt(e){var t=mt(),n=mt();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=mt();function i(n,o){var i=Rt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Nt(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild($t(o.arrow))):a.appendChild($t(o.arrow)):s&&a.removeChild(s)}return o.className=et,o.setAttribute("data-state","hidden"),Nt(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Dt.$$tippy=!0;var Mt=1,Bt=[],Gt=[];function Ht(e,t){var n,o,i,a,r,s,l,d,c=Pt(e,Object.assign({},Tt,St(gt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=dt(V,c.interactiveDebounce),h=Mt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:mt(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),q();var n=v.props,o=Pt(e,Object.assign({},n,gt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(D(),b=dt(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?ct(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),A&&A(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=wt.isTouch&&!v.props.touch,i=rt(v.props.duration,0,Tt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();ht([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;ht([n,o],i),yt([n,o],"visible")}N(),R(),pt(Gt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===at||"parent"===t?n.parentNode:lt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=rt(v.props.duration,1,Tt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(D(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(ht([a,r],o),yt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),pt(Bt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Gt=Gt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),q(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,A=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var E=y.map((function(e){return e.fn(v)})),L=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function k(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function I(){return"hold"===k()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=ct(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Rt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||wt.isTouch||a&&"focus"===a.type?0:rt(v.props.delay,e?0:1,Tt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),E.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;ct(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!L&&v.props.aria.expanded&&ct(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function D(){S().removeEventListener("mousemove",b),Bt=Bt.filter((function(e){return e!==b}))}function M(t){if(!wt.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!xt(w,n)){if(ct(v.props.triggerTarget||e).some((function(e){return xt(e,n)}))){if(wt.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function B(){g=!0}function G(){g=!1}function H(){var e=S();e.addEventListener("mousedown",M,!0),e.addEventListener("touchend",M,it),e.addEventListener("touchstart",G,it),e.addEventListener("touchmove",B,it)}function F(){var e=S();e.removeEventListener("mousedown",M,!0),e.removeEventListener("touchend",M,it),e.removeEventListener("touchstart",G,it),e.removeEventListener("touchmove",B,it)}function U(e,t){var n=P().box;function o(e){e.target===n&&(vt(n,"remove",o),t())}if(0===e)return t();vt(n,"remove",r),vt(n,"add",o),r=o}function z(t,n,o){void 0===o&&(o=!1),ct(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;I()&&(z("touchstart",W,{passive:!0}),z("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(z(e,W),e){case"mouseenter":z("mouseleave",Q);break;case"focus":z(It?"focusout":"blur",K);break;case"focusin":z("focusout",K)}}))}function q(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function W(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&st(e,"MouseEvent")&&Bt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(D(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!wt.isTouch&&I()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Rt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=Je(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return ut(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=k(),i=o[0],a=o[1];wt.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Ft(e,t){void 0===t&&(t={});var n=Tt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Et,it),window.addEventListener("blur",kt);var o=Object.assign({},t,{plugins:n}),i=bt(e).reduce((function(e,t){var n=t&&Ht(t,o);return n&&e.push(n),e}),[]);return ft(e)?i[0]:i}Ft.defaultProps=Tt,Ft.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Tt[t]=e[t]}))},Ft.currentInput=wt,Object.assign({},oe,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Ft.setDefaultProps({render:Dt});var Ut='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),n=document.createElement("style");n.innerHTML=Ut+$,e.appendChild(n);const i=[];A.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Ft(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Ft(o.Panel.skipButton,{content:`${t._("SHORTCUT_TOOLTIP")} »
            ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Ut+$,e.appendChild(t),this.object=Ft(o.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+$,e.appendChild(t)}}const Wt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class Vt extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class Qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const Kt=(e,n)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=p(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=w(n.find((e=>e.id===a)));(e=>{const t=p(e.getRootNode().host,"display","none");if(null!==t){m(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(h(`${t._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?u(e).top-150:u(t).top-150}}else b(),o.Panel.skipButton.focus();return u(e).top-150};let Yt=-1;const Xt=()=>{const e=g.getItem("sa11y-latest-dismissed");null!==e&&(Yt=parseInt(e,10)-1),g.removeItem("sa11y-latest-dismissed");const t=i("[data-sa11y-opened]","root");t[0]&&(Yt=parseInt(t[0].getAttribute("data-sa11y-position"),10))},Zt=e=>{Xt();const t=A.Annotations.Array;Yt>=t.length-1&&(Yt=-1);const n=t[Yt+1].shadowRoot.querySelector("button"),i=Kt(n,e);window.scrollTo({top:i,behavior:`${o.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),Yt+=1},Jt=e=>{if(Xt(),Yt>0){const t=A.Annotations.Array[Yt-1].shadowRoot.querySelector("button"),n=Kt(t,e);window.scrollTo({top:n,behavior:`${o.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),Yt-=1,-1===Yt&&(Yt=A.Annotations.Array.length-1)}};let en,tn;function nn(e){en=t=>{!function(e,t){A.Annotations.Array.length&&!o.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),Zt(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),Jt(t)))}(t,e)},tn=()=>{Zt(e)},document.addEventListener("keydown",en),o.Panel.skipButton.addEventListener("click",tn)}const on=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},an=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},rn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${sn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},sn=(e,t,n=0)=>{const o=rn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=on(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=rn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,an(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=on(a.currentNode,a.currentNode.getAttribute("alt")),an(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=on(a.currentNode,"");break;default:i+=on(a.currentNode,"")}}else an(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function ln(e,n){return A.Found.Images.forEach((i=>{const a="noAria"===rn(i)?i.getAttribute("alt"):rn(i),r=i.closest("a[href]"),l=r?c(r,o.Exclusions.LinkSpan).textContent:"",p=n.linkIgnoreStrings?l.replace(n.linkIgnoreStrings,""):l,u=r?d(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:i,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const n=0===u?t.sprintf("MISSING_ALT_LINK_MESSAGE"):t.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=d(s(a)),l=(e=>{const n=[null,null,null];return[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const o=t.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(n[0]=t)})),t._("SUSPICIOUS_ALT_STOPWORDS").forEach((t=>{e.toLowerCase().indexOf(t)>=0&&(n[1]=t)})),t._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[2]=t)})),n})(o),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),m=g?.querySelector("figcaption"),b=m?m.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===o)return void e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const n=f(`DECORATIVE${h}`);if(r){const n=0===u?"error":"good",o=0===u?t.sprintf("LINK_IMAGE_NO_ALT_TEXT"):t.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:n,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=m&&b.length?t.sprintf("IMAGE_FIGURE_DECORATIVE"):t.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"warning",content:t.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:n});return}if(null!==l[0]){const n=r?t.sprintf("LINK_ALT_HAS_FILE_EXTENSION",l[0],o):t.sprintf("ALT_HAS_FILE_EXTENSION",l[0],o);e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else if(null!==l[2]){const n=r?t.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",o):t.sprintf("ALT_PLACEHOLDER_MESSAGE",o);e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else if(null!==l[1]){const n=f(`${h+o}`),a=r?t.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",l[1],o):t.sprintf("ALT_HAS_SUS_WORD",l[1],o);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:n})}else if(a.length>n.altTextMaxCharLength){const n=f(`${h+o+a.length}`),s=r?t.sprintf("LINK_IMAGE_LONG_ALT",a.length,o):t.sprintf("IMAGE_ALT_TOO_LONG",a.length,o);e.push({element:i,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:n})}else if(r){const n=f(`${h+o}`),a=s(d(sn(r))),l=0===u?t.sprintf("LINK_IMAGE_ALT_WARNING",o):t.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",o,a);e.push({element:i,type:"warning",content:l,inline:!1,position:"beforebegin",dismiss:n})}else if(g){if(!!m&&b.toLowerCase()===o.trim().toLowerCase()){const n=f(`FIGURE${h+o}`);e.push({element:i,type:"warning",content:t.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",o),inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}})),e}function dn(e,n,i){let a;return A.Found.Headings.forEach(((r,l)=>{const c=sn(r,n.headerIgnoreSpan),u=s(d(n.headerIgnoreStrings?c.replace(n.headerIgnoreStrings,""):c)),g=o.Root.areaToCheck.contains(r),m=o.Root.areaToCheck.contains(r.getRootNode().host),b=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==l)if(n.nonConsecutiveHeadingIsError)v=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const n=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}else if(0===y)if(r.querySelectorAll("img").length){const n=r.querySelector("img").getAttribute("alt");null!==n&&" "!==n&&""!==n||(v=t.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=t.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===l&&1!==h&&2!==h)v=t.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>n.headingMaxCharLength&&n.flagLongHeadings){x=t.sprintf("HEADING_LONG",y);const n=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}a=h;const w=!!((A=r).getAttribute("hidden")||0===A.offsetWidth&&0===A.offsetHeight||1===A.clientHeight&&1===A.clientWidth)||"none"===getComputedStyle(A).getPropertyValue("display");var A;const E=p(r,"display","none");if(null!==v)i.push({element:r,headingLevel:h,text:u,index:l,type:"error",hidden:w,visibleParent:E,isWithinRoot:b});else if(null!==x){const e=f(`HEADING${h+u}`);i.push({element:r,headingLevel:h,text:u,index:l,type:"warning",hidden:w,visibleParent:E,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:r,headingLevel:h,text:u,index:l,hidden:w,visibleParent:E,isWithinRoot:b})})),0===A.Found.HeadingOne.length&&n.missingH1&&e.push({type:"warning",content:t.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function cn(e,n){const i={};return A.Found.Links.forEach((a=>{const r=sn(a,o.Exclusions.LinkSpan),l=d(n.linkIgnoreStrings?r.replace(n.linkIgnoreStrings,""):r),c=(e=>{const n=[null,null,null,null];return t._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[0]=t),!1))),t._("WARNING_ALT_STOPWORDS").forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[3]=t),!1))),n})(l.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===l.length&&/[^a-zA-Z0-9]/g.test(l),u=l.match(/([<>↣↳←→↓«»↴]+)/),m=u?u[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==l.length)if(null!==c[0])e.push({element:a,type:"error",content:t.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==m){const n=f(`LINK${l+b}`),o=m||c[1];e.push({element:a,type:"warning",content:t.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[2]&&n.linksToDOI){const n=f(`LINK${l+c[2]+b}`);l.length>8&&e.push({element:a,type:"warning",content:t.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[3]&&n.URLAsLinkTextWarning){const o=f(`LINK${l+c[2]+b}`);l.length>n.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:t.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(n.showGoodLinkButton){const n=s(l);e.push({element:a,type:"good",content:t.sprintf("LINK_LABEL",n),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(n.linksAdvancedPlugin){if("On"===g.getItem("sa11y-remember-links-advanced")||n.headless||n.checkAllHideToggles){const n=t._("NEW_WINDOW_PHRASES").some((e=>l.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(t._("FILE_TYPE_PHRASES")).some((e=>l.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=l.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(i[d]&&!i[b]){const n=f(`LINK${d+b}`),o=s(l);e.push({element:a,type:"warning",content:t.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:n})}else if("_blank"!==a.getAttribute("target")||r||n)if(r&&!o){const n=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:t.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}else i[d]=!0,i[b]=!0;else{const n=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:t.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}}}})),e}class pn{constructor(n){const p={...e,...n};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",Qt),customElements.define("sa11y-heading-anchor",Vt),customElements.define("sa11y-annotation",qt),customElements.define("sa11y-tooltips",zt),customElements.define("sa11y-dismiss-tooltip",jt),customElements.define("sa11y-control-panel",R),customElements.define("sa11y-console-error",N),o.initializeGlobal(p),o.initializeReadability(p),o.initializeExclusions(p),o.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),g.removeItem("sa11y-dismissed");else{const i=new R;document.body.appendChild(i),function(e,n){o.Global.contrastPlugin?o.Panel.contrastToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-contrast")?(g.setItem("sa11y-remember-contrast","Off"),o.Panel.contrastToggle.textContent=`${t._("OFF")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-contrast","On"),o.Panel.contrastToggle.textContent=`${t._("ON")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-contrast","Off"),o.Global.formLabelsPlugin?o.Panel.labelsToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-labels")?(g.setItem("sa11y-remember-labels","Off"),o.Panel.labelsToggle.textContent=`${t._("OFF")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-labels","On"),o.Panel.labelsToggle.textContent=`${t._("ON")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-labels","Off"),o.Global.linksAdvancedPlugin?o.Panel.linksToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-links-advanced")?(g.setItem("sa11y-remember-links-advanced","Off"),o.Panel.linksToggle.textContent=`${t._("OFF")}`,o.Panel.linksToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-links-advanced","On"),o.Panel.linksToggle.textContent=`${t._("ON")}`,o.Panel.linksToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-links-advanced","Off"),o.Readability.Plugin&&(o.Panel.readabilityToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-readability")?(g.setItem("sa11y-remember-readability","Off"),o.Panel.readabilityToggle.textContent=`${t._("OFF")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","false"),o.Panel.readability.classList.remove("active"),n(!1),await e()):(g.setItem("sa11y-remember-readability","On"),o.Panel.readabilityToggle.textContent=`${t._("ON")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","true"),o.Panel.readability.classList.add("active"),n(!1),await e())},"On"===g.getItem("sa11y-remember-readability")&&o.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):(o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(o.Global.html.setAttribute("data-sa11y-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"),g.setItem("sa11y-remember-theme","")):(o.Global.html.setAttribute("data-sa11y-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false"),g.setItem("sa11y-remember-theme",""))})),o.Panel.themeToggle.onclick=async()=>{const e=g.getItem("sa11y-remember-theme");"dark"===e?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=g.getItem("sa11y-remember-theme");"dark"===a?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),o.Global.colourFilterPlugin&&o.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(o.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[t._("RED_EYE"),t._("GREEN_EYE"),t._("BLUE_EYE"),t._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?h(t._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(o.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),o.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),y(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),v(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),o.Panel.skipButton.disabled=!0,o.Panel.pageIssues.classList.remove("active"),"left"!==o.Global.panelPosition&&"right"!==o.Global.panelPosition||o.Panel.settingsContent.classList.add("hide-settings-border"),o.Panel.colourFilterSelect.classList.add("active"),o.Panel.colourPanel.classList.add("active"),o.Panel.colourPanel.setAttribute("data-colour",a[i-1]),o.Panel.content.hidden=!0):(o.Root.areaToCheck.removeAttribute("data-sa11y-filter"),o.Panel.settingsContent.classList.remove("hide-settings-border"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.colourPanel.classList.remove("active"),o.Panel.colourPanel.removeAttribute("data-colour"),o.Panel.content.hidden=!1,n(!1),await e())}))}(this.checkAll,this.resetAll),o.Panel.outlineToggle.addEventListener("click",(()=>{"true"===o.Panel.outlineToggle.getAttribute("aria-expanded")?(o.Panel.outlineToggle.classList.remove("outline-active"),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),x(o.Panel.outlineList,o.Panel.outlineContent)):(o.Panel.outlineToggle.classList.add("outline-active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-outline","Opened"),g.setItem("sa11y-remember-settings","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!1))),o.Panel.outlineHeader.focus(),o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.classList.remove("settings-active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),x(o.Panel.outlineList,o.Panel.outlineContent)})),"Opened"===g.getItem("sa11y-remember-outline")&&(o.Panel.outlineToggle.classList.add("outline-active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),setTimeout((()=>{x(o.Panel.outlineList,o.Panel.outlineContent)}),0)),o.Panel.settingsToggle.addEventListener("click",(()=>{"true"===o.Panel.settingsToggle.getAttribute("aria-expanded")?(o.Panel.settingsToggle.classList.remove("settings-active"),o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-settings","Closed")):(o.Panel.settingsToggle.classList.add("settings-active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-settings","Opened"),g.setItem("sa11y-remember-outline","Closed")),o.Panel.settingsHeader.focus(),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("outline-active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed"),o.Panel.settingsContent.clientHeight>350&&(o.Panel.settingsContent.setAttribute("tabindex","0"),o.Panel.settingsContent.setAttribute("aria-label",`${t._("SETTINGS")}`),o.Panel.settingsContent.setAttribute("role","region")),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("settings-active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false")})),"Opened"===g.getItem("sa11y-remember-settings")&&(o.Panel.settingsToggle.classList.add("settings-active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true")),o.Panel.skipToPageIssues.addEventListener("click",(()=>{o.Panel.pageIssuesHeader.focus()})),setTimeout((()=>{x(o.Panel.pageIssuesList,o.Panel.pageIssuesContent)}),0),o.Panel.controls.addEventListener("keydown",(e=>{const t=o.Panel.panel.querySelectorAll("#outline-toggle[role=tab], #settings-toggle[role=tab]");if("ArrowRight"===e.key)for(let n=0;n0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}if("ArrowUp"===e.key)for(let n=t.length-1;n>0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}})),function(){if(o.Global.colourFilterPlugin&&!1===o.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),E(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new jt,document.body.appendChild(this.dismissTooltip),o.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(o.Panel.toggle.disabled=!0),e=this.checkAll,n=this.resetAll,o.Panel.toggle.addEventListener("click",(t=>{"Opened"===g.getItem("sa11y-remember-panel")?(t.preventDefault(),g.setItem("sa11y-remember-panel","Closed"),o.Panel.toggle.classList.remove("on"),o.Panel.toggle.setAttribute("aria-expanded","false"),n(),0===o.Panel.notifCount.innerHTML.trim().length?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"):(t.preventDefault(),g.setItem("sa11y-remember-panel","Opened"),o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),e(),x(o.Panel.outlineList,o.Panel.outlineContent))})),"Opened"===g.getItem("sa11y-remember-panel")&&(o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),o.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(o.Panel.toggle.click(),o.Panel.toggle.focus())}}var e,n},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,n=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||h(`${t.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),o.initializeRoot(e,n),o.initializeShadowSearch(p,e),A.initializeElements(p),dn(this.results,p,this.headingOutline),cn(this.results,p),ln(this.results,p),function(e,n){if(n.contrastPlugin&&("On"===g.getItem("sa11y-remember-contrast")||n.headless||n.checkAllHideToggles)){let n={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=t.backgroundColor,i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){n={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),p=window.getComputedStyle(t).clip.replace(/\s/g,""),u=parseFloat(window.getComputedStyle(t).width),g=parseFloat(window.getComputedStyle(t).height);let m,f,b;if(1!==u||1!==g||"rect(0,0,0,0)"!==p&&"rect(1px,1px,1px,1px)"!==p)if("SVG"===l)m=Math.round(100*o.contrastRatio(a,d))/100,m<3&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f));else if(c.length||"INPUT"===l||"SELECT"===l||"TEXTAREA"===l){const e=t.getAttribute("type");"range"===e||"color"===e||("image"===d||"alpha"===d?(b={elem:t},n.warnings.push(b)):(m=Math.round(100*o.contrastRatio(i,d))/100,r>=18||r>=14&&s>=700?m<3&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f)):m<4.5&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f))))}}}return n}};o.check(),n.errors.forEach((n=>{const o=n.elem,i=n.ratio,a=s(c(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:t.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:t.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),n.warnings.forEach((n=>{const o=n.elem,i=c(o.cloneNode(!0),"script, style").textContent,a=f(`CONTRAST${i}`),r=s(i);e.push({element:o,type:"warning",content:t.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,n){n.formLabelsPlugin&&("On"===g.getItem("sa11y-remember-labels")||n.headless||n.checkAllHideToggles)&&A.Found.Inputs.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),i="-1"===n.getAttribute("tabindex");if(a(n)||o&&i)return;const r=d(sn(n)),l=n.getAttribute("alt"),c=n.getAttribute("type"),p=n.getAttribute("title"),u=n.getAttribute("aria-label")||n.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!l||" "===l))return void(u||p||e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=f(`INPUT${r}`);return void e.push({element:n,type:"warning",content:t.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===r.length)e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=f(`INPUT${r}`),i=s(r);e.push({element:n,type:"warning",content:t.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=n.closest("label"),m=g?d(sn(g)):"";if(g&&m.length)return;const b=n.getAttribute("id");b?A.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:n,type:"error",content:t.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,n){if(n.badLinksQA&&A.Found.CustomErrorLinks.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("QA_BAD_LINK",n),inline:!0,position:"beforebegin"})})),n.strongItalicsQA&&A.Found.StrongItalics.forEach((n=>{const o=n.textContent.trim().length,i=f(n.tagName+n.textContent);o>400&&e.push({element:n.parentNode,type:"warning",content:t.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),A.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=o.Global.documentLinks.split(", ").some((e=>a.includes(e))),s=a.includes(".pdf"),l=f(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(n.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const n=a.substring(1);document.getElementById(n)||document.getElementById(decodeURIComponent(n))||document.getElementById(encodeURIComponent(n))||e.push({element:i,type:"error",content:t.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}n.documentQA&&r?e.push({element:i,type:"warning",content:t.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):n.pdfQA&&s&&e.push({element:i,type:"warning",content:t.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),n.langQA&&(!A.Found.Language||A.Found.Language.length<2)&&e.push({type:"error",content:t.sprintf("QA_PAGE_LANGUAGE")}),n.blockquotesQA&&A.Found.Blockquotes.forEach((n=>{const o=n.textContent;if(o.trim().length<25){const i=s(o),a=f(`BLOCKQUOTE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),n.tablesQA&&A.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");n.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:t.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),n.tablesQAsemanticHeadings&&a.length>0&&a.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(n.tablesQAemptyTH&&0===i.textContent.trim().length){const a=n.tablesQAemptyTHisError?"error":"warning",r=f(`TABLE${o.textContent}`);e.push({element:i,type:a,content:t.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),n.fakeHeadingsQA){const n='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=l(o),r=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(n)&&d&&r){const n=s(a),i=f(`BOLD${n}`);e.push({element:o,type:"warning",content:t.sprintf("QA_FAKE_HEADING",n),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(n)){const n=o.querySelector("strong, b"),i=l(n),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=c(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=s(i),l=f(`BOLD${r}`);e.push({element:n,type:"warning",content:t.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:l})}}};A.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),d=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",b="",h=!1;if(A.Found.Paragraphs.forEach(((n,o)=>{let s=!1,c=!1;b=b||l(n).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(r),w=p.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const i=A.Found.Paragraphs[o+1];if(i){if(s=l(i).replace("(","").substring(0,2),d.includes(s?.toLowerCase().trim()))return;const e=g(s);y?"A "!==u&&u===e&&(c=!0):x&&!h&&e.match(r)&&(c=!0,h=!0)}if(!c){let e=n?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(c=!0))}if(c){const o=f(`LIST${n.textContent}`);e.push({element:n,type:"warning",content:t.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}b=s?"":s})),n.allCapsQA){const n=n=>{let o="";"LI"===n.tagName?n.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=l(n);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=f(`UPPERCASE${o}`);e.push({element:n,type:"warning",content:t.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};A.Found.Paragraphs.forEach((e=>n(e))),A.Found.Headings.forEach((e=>n(e))),A.Found.Lists.forEach((e=>n(e))),A.Found.Blockquotes.forEach((e=>n(e)))}if(n.duplicateIdQA){const n=o.Shadow.Components?`body, ${o.Shadow.Components}`:"body";document.querySelectorAll(n).forEach((n=>{const i=new Set,a=(n,o)=>{n.forEach((n=>{const{id:a}=n;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:n,type:"error",content:t.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};n.shadowRoot&&a(Array.from(n.shadowRoot.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),n.shadowRoot),a(Array.from(n.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),n)}))}if(n.underlinedTextQA){A.Found.Underlines.forEach((n=>{const o=f(`UNDERLINE${l(n)}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const n=n=>{const o=getComputedStyle(n).textDecorationLine,i=l(n);if("underline"===o){const o=f(`UNDERLINE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};A.Found.Paragraphs.forEach((e=>n(e))),A.Found.Headings.forEach((e=>n(e))),A.Found.Lists.forEach((e=>n(e))),A.Found.Blockquotes.forEach((e=>n(e))),A.Found.Spans.forEach((e=>n(e)))}if(n.pageTitleQA){const n=document.querySelector("head title");n&&0!==n.textContent.trim().length||e.push({type:"error",content:t.sprintf("QA_PAGE_TITLE")})}n.subscriptQA&&A.Found.Subscripts.forEach((n=>{const o=l(n);if(o.length>=80){const i=f(n.tagName+o);e.push({element:n,type:"warning",content:t.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,n){n.embeddedContentAll&&(n.embeddedContentAudio&&A.Found.Audio.forEach((n=>{const o=f(`AUDIO${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentVideo&&A.Found.Videos.forEach((n=>{const o="undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src"),i=n.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=f(`VIDEO${o}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),n.embeddedContentDataViz&&A.Found.Visualizations.forEach((n=>{const o=f(`DATAVIZ${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentTitles&&A.Found.iframes.forEach((n=>{const o=a(n),i="VIDEO"===n.tagName||"AUDIO"===n.tagName,r="true"===n.getAttribute("aria-hidden"),s="-1"===n.getAttribute("tabindex");if(o||i||r&&s)return;if(s)return void e.push({element:n,type:"error",content:t.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=rn(n);0===d("noAria"===l?n.getAttribute("title")||"":l).length&&e.push({element:n,type:"error",content:t.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),n.embeddedContentGeneral&&A.Found.EmbeddedContent.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),i="-1"===n.getAttribute("tabindex");if(a(n)||o&&i)return;if("VIDEO"===n.tagName||"AUDIO"===n.tagName)return;const r=f(`IFRAME${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(o.Readability.Plugin&&"On"===g.getItem("sa11y-remember-readability")){A.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const n=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?t._("LANG_VERY_DIFFICULT"):g>31&&g<49?t._("LANG_DIFFICULT"):g>50&&g<60?t._("LANG_FAIRLY_DIFFICULT"):t._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(o.Readability.Lang)){const n=(e=>{const n=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=n().length,i=n().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?t._("LANG_GOOD"):r>40&&r<50?t._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?t._("LANG_DIFFICULT"):t._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:n.score,averageWordsPerSentence:n.avgWordsPerSentence,complexWords:n.complexWords,difficultyLevel:n.difficulty,wordCount:n.wordCount}}!1===o.Global.headless&&(0===i.length?o.Panel.readabilityInfo.innerHTML=t._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(o.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,o.Panel.readabilityDetails.innerHTML=`\n
          • \n ${t._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
          • \n
          • \n ${t._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
          • \n
          • \n ${t._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
          • `):o.Panel.readabilityInfo.textContent=t._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new N(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,n){let i=g.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(o.Panel.dismissButton.classList.add("active"),o.Panel.dismissTooltip.innerText=t.sprintf("PANEL_DISMISS_BUTTON",l),n.object.setContent(t.sprintf("PANEL_DISMISS_BUTTON",l))):o.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,n){const i=e+n;0===i?(o.Panel.notifCount.innerText="",o.Panel.notifText.innerText="",o.Panel.notifBadge.style.display="none"):n>0&&0===e?(o.Panel.notifBadge.classList.add("notification-badge-warning"),o.Panel.notifCount.innerText=`${n}`,o.Panel.notifText.innerText=`${t._("PANEL_ICON_WARNINGS")}`):(o.Panel.notifBadge.classList.remove("notification-badge-warning"),o.Panel.notifCount.innerText=`${i}`,o.Panel.notifText.innerText=t._("PANEL_ICON_TOTAL")),"Opened"===g.getItem("sa11y-remember-panel")||0===i?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===g.getItem("sa11y-remember-panel")){this.results.forEach(((e,n)=>{Object.assign(e,{id:n}),function(e,n,i,a=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(n))throw Error(`Invalid type [${n}] for annotation`);[n].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:t._("ERROR"),[p[1]]:t._("WARNING"),[p[2]]:t._("GOOD")},g=!0===c&&"warning"===n&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(o.Panel.pageIssues.classList.add("active"),o.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[n]} ${i}${g}`,o.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

            ${u[n]}

            \n ${r(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),A.initializeAnnotations();const c=new zt;document.body.appendChild(c),I(this.results,this.dismissed,this.checkAll,this.resetAll),D(this.dismissed,this.headingOutline,p.showHinPageOutline),i=l.dismissCount,a=d.error,s=d.warning,o.Panel.skipButton.disabled=!1,o.Panel.panel.classList.add("active"),o.Global.html.setAttribute("data-sa11y-active","true"),o.Panel.skipButton.classList.add("active"),a>0&&s>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${t._("ERRORS")} ${a} ${t._("WARNINGS")} ${s}`):a>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${t._("ERRORS")} ${a}`):s>0?(o.Panel.content.setAttribute("class","warnings"),o.Panel.status.innerHTML=`${t._("WARNINGS")} ${s}`):i>0?(o.Panel.status.innerHTML=`${t._("DISMISSED")} ${i}`,o.Panel.skipButton.classList.remove("active")):(o.Panel.content.setAttribute("class","good"),o.Panel.status.innerHTML=`${t._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(o.Panel.skipButton.disabled=!0),nn(this.results),p.exportResultsPlugin&&(e=this.results,n=l.dismissedResults,o.Global.exportResultsPlugin&&(C=()=>{S(e,n)},O=()=>{P(e)},o.Panel.exportHTML.addEventListener("click",C),o.Panel.exportCSV.addEventListener("click",O))),Wt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}o.Panel.toggle.disabled=!1}var e,n,i,a,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(o.Global.html.removeAttribute("data-sa11y-active"),y(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter"],"document"),v(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),o.Panel.outlineList.innerHTML="",o.Panel.pageIssuesList.innerHTML="",o.Panel.readabilityInfo.innerHTML="",o.Panel.readabilityDetails.innerHTML="",o.Panel.panel.classList.remove("has-page-issues"),o.Panel.pageIssues.classList.remove("active"),b(),document.removeEventListener("keydown",en),o.Panel.skipButton.removeEventListener("click",tn),o.Global.exportResultsPlugin&&(o.Panel.exportHTML.removeEventListener("click",C),o.Panel.exportCSV.removeEventListener("click",O)),o.Panel.panel?.removeEventListener("click",k),o.Panel.dismissButton?.removeEventListener("click",L),o.Global.colourFilterPlugin&&(o.Panel.colourFilterSelect.value=0,o.Panel.colourPanel.classList.remove("active"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.content.hidden=!1);o.Panel.status.firstChild;)o.Panel.status.removeChild(o.Panel.status.firstChild);e&&o.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===g.getItem("sa11y-remember-panel")&&o.Panel.toggle.click(),o.Panel.toggle.disabled=!0},this.enabled=()=>{o.Panel.toggle.disabled=!1},this.find=(e,t,n)=>i(e,t,n),this.prepareDismissal=e=>f(e),this.sanitizeHTML=e=>s(e),this.initialize()}}export{t as Lang,pn as Sa11y}; +const e={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",aboutContent:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,showImageOutline:!0,editImageURLofCMS:"",relativePathImageSRC:"",relativePathImageID:"",detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,susAltStopWords:"",linkStopWords:"",extraPlaceholderStopWords:"",headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:'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"], a[href^="https://sway."]',langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},t={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
            /g,'').replaceAll(/`${e} *, ${e}`));r.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else r.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";r.Contrast="script, style, link",e.contrastIgnore&&(r.Contrast=`${e.contrastIgnore}, ${r.Contrast}`),r.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(r.Readability=`${e.readabilityIgnore}, ${r.Readability}`),e.headerIgnore&&(r.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(r.Outline=`${e.outlineIgnore}`),r.Images='[role="presentation"]',e.imageIgnore&&(r.Images=`${e.imageIgnore}, ${r.Images}`),r.Links=".anchorjs-link",e.linkIgnore&&(r.Links=`${e.linkIgnore}, ${r.Links}`),e.linkIgnoreSpan&&(r.LinkSpan=e.linkIgnoreSpan)},Exclusions:r,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Video=`video, ${t.join(", ")}`}else s.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Audio=`audio, ${t.join(", ")}`}else s.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Visualization=t.join(", ")}else s.Visualization="datastudio.google.com, tableau";s.All=`${s.Video}, ${s.Audio}, ${s.Visualization}`},EmbeddedContent:s}}();function o(e,t,o){let i;"document"===t?i=document:"readability"===t?(i=n.Readability.Root,i||(i=n.Root.areaToCheck)):"root"===t?(i=n.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=n.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=document.querySelectorAll("[data-sa11y-has-shadow-root]"),r=a?", [data-sa11y-has-shadow-root]":"",s=n.Exclusions.Container,l=void 0!==o?`, ${o}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[];if(d.forEach(((n,o)=>{n&&n.matches&&n.matches("[data-sa11y-has-shadow-root]")&&n.shadowRoot&&(t[o]=n.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function i(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function a(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function r(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function s(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function l(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function d(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function c(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function p(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const u={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function g(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function m(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function f(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function b(e,t,n){f();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
            ${n}
            `:"";function c(){f();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
            ${t}
            `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function h(e,t){e.forEach((e=>{o(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function y(e,t){o(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function v(e,t,n){setTimeout((()=>{e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0"),n&&(e.setAttribute("aria-label",n),e.setAttribute("role","region"))):t.classList.remove("scrollable")}),50)}function x(e){const t=e.element,n=`
            ${a(e.htmlPath)}
            `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${r(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),s=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const w=function(){const e={};const t={};return{initializeElements:function(t){e.Images=o("img","root",n.Exclusions.Images),e.Headings=o('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",n.Exclusions.Headings),e.HeadingOne=o('h1, [role="heading"][aria-level="1"]',"document",n.Exclusions.Headings),e.Links=o("a[href]","root",n.Exclusions.Links),e.Inputs=o("input, select, textarea","root",n.Exclusions.Container),e.Contrast=o("*","root",n.Exclusions.Contrast),e.Labels=o("label","root",n.Exclusions.Container),e.Readability=o("p, li","readability",n.Exclusions.Readability),e.Paragraphs=o("p","root",n.Exclusions.Container),e.Lists=o("li","root",n.Exclusions.Container),e.Spans=o("span","root",n.Exclusions.Container),e.Blockquotes=o("blockquote","root",n.Exclusions.Container),e.Tables=o('table:not([role="presentation"])',"root",n.Exclusions.Container),e.StrongItalics=o("strong, em","root",n.Exclusions.Container),e.Underlines=o("u","root",n.Exclusions.Container),e.Subscripts=o("sup, sub","root",n.Exclusions.Container),e.Language=n.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?o(t.linksToFlag,"root",n.Exclusions.Container):[],e.iframes=o("iframe:not(hidden), audio, video","root",n.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(n.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=o("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();const E=e=>{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};function A(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==u.getItem("sa11y-remember-panel")&&u.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("click",o),window.addEventListener("keydown",o)}}let I,L;function k(e,i,a,r){if(n.Global.dismissAnnotations){L=n=>{(async(e,n,i,a)=>{let r=JSON.parse(u.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=n.find((t=>t.id===e));if(null===r&&(setTimeout((()=>b(t._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=o(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;u.setItem("sa11y-latest-dismissed",n),u.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),u.setItem("sa11y-dismissed",JSON.stringify(r)),u.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await i()}}})(n,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",L),n.Panel.panel.addEventListener("click",L)}I=()=>{(async(e,t,o)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));u.setItem("sa11y-dismissed",JSON.stringify(i)),n.Panel.dismissButton.classList.remove("active"),o(!1),await t()})(i,a,r)},n.Panel.dismissButton?.addEventListener("click",I)}var T=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function _(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function S(e,n){const o=function(e,n){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),r={error:o.length,warning:i.length,dismiss:n.length};function s(e,n){const o={error:t._("ERRORS"),warning:t._("WARNINGS"),dismissed:t._("DISMISSED")}[n];if(!(e.length>0))return"";let i=`

            ${o}

            `,s="
              ",l="
            ";return"dismissed"===n&&(s=`
            ${t.sprintf("PANEL_DISMISS_BUTTON",r.dismiss)}
              `,l="
            "),i+=s,e.forEach((e=>{let n="";e.element&&(n=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
          • \n ${t._("PREVIEW")}:\n ${x(e)}\n
          • \n
          • \n ${t._("ELEMENT")}:\n
            ${a(e.htmlPath)}
            \n
          • `:`\n
          • \n ${t._("ELEMENT")}:\n
            ${a(e.htmlPath)}
            \n
          • `);const o=e.cssPath?`
          • \n ${t._("PATH")}:\n
            ${e.cssPath}
            \n
          • `:"";i+=`
          • \n

            ${e.content.replace('

            '," | ")}

            \n
              ${n}${o}
            \n
          • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(n,"dismissed"),p=_(),u=p.titleCheck?"":`
            ${t._("PAGE_TITLE")}
            ${p.metaTitle}
            `,g=0!==r.error?`
            ${t._("ERRORS")}
            ${r.error}
            `:"",m=0!==r.warning?`
            ${t._("WARNINGS")}
            ${r.warning}
            `:"",f=0!==r.dismiss?`
            ${t._("DISMISSED")}
            ${r.dismiss}
            `:"";return`\n \n \n \n \n \n ${t._("RESULTS")}: ${p.metaTitle}\n \n \n \n
            \n

            ${t._("RESULTS")}

            \n
            \n
            \n ${u}\n
            URL
            \n
            ${p.pageURL}
            \n
            ${t._("DATE")}
            \n
            ${p.date}
            \n
            \n
            \n ${g}\n ${m}\n ${f}\n
            \n
            \n
            \n ${l}\n ${d}\n ${c}\n
            \n

            ${t.sprintf("GENERATED",'Sa11y')}

            \n
            \n \n \n `}(e,n),i=_(),r=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(r),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function P(e){const t=_(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ").replaceAll(/"/g,'""');const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Uint8Array([239,187,191]),r=new Blob([a,i],{type:"text/csv;charset=utf-8;"}),s=window.URL.createObjectURL(r),l=document.createElement("a");l.href=s,l.href=window.URL.createObjectURL(r);const d=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;l.setAttribute("download",`Sa11y_${t.numericDate+d}.csv`),document.body.appendChild(l),l.click(),setTimeout((()=>{document.body.removeChild(l),window.URL.revokeObjectURL(l.href)}),100)}let C,O;var $='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class N extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),o=document.createElement("style");o.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+$,e.appendChild(o);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const r=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${r}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

            ${t._("ERROR")}

            \n

            ${t.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

            \n

            ${a(this.error.stack)}

            URL: ${r}

            \n `,e.appendChild(i),setTimeout((()=>{n.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class R extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+$,this.shadowRoot.appendChild(e);const o="On"===u.getItem("sa11y-remember-contrast"),i="On"===u.getItem("sa11y-remember-labels"),a="On"===u.getItem("sa11y-remember-links-advanced"),r="On"===u.getItem("sa11y-remember-readability"),s=n.Global.checkAllHideToggles,{panelPosition:l}=n.Global,d=n.Global.contrastPlugin?`\n
          • \n \n \n
          • `:"",c=n.Global.formLabelsPlugin?`\n
          • \n \n \n
          • `:"",p=n.Global.linksAdvancedPlugin?`\n `:"",g=n.Readability.Plugin?`\n
          • \n \n \n
          • `:"",m=n.Global.colourFilterPlugin?`\n
          • \n \n
            \n \n
            \n
          • `:"",f=n.Global.colourFilterPlugin?`\n
            \n \n

            ${t._("COLOUR_FILTER_MESSAGE")}

            \n
            `:"",b=n.Global.exportResultsPlugin?`\n
          • \n ${t._("EXPORT_RESULTS")}\n \n \n
          • `:"",h=n.Global.aboutContent?`\n
            \n ${n.Global.aboutContent}\n
            `:"",y=`\n `,v=`\n
            \n
            \n

            ${t._("PAGE_ISSUES")}

            \n
            \n
            \n
              \n
              \n
              `,x=`\n
              \n
              \n

              ${t._("OUTLINE")}

              \n
              \n
              \n
            \n \n
            \n
            \n

            ${t._("LANG_READABILITY")}

            \n

            \n
              \n
              \n
              \n `,w=n.Global.showImageOutline?`\n
              \n
              \n

              ${t._("IMAGES")}

              \n
              \n
              \n
            \n \n `:"",E=`\n
            \n
            \n

            ${t._("SETTINGS")}

            \n
            \n
            \n
              \n ${d}\n ${c}\n ${p}\n ${g}\n
            • \n \n \n
            • \n ${b}\n ${m}\n
            \n ${h}\n
            \n
            `,A=`\n \n
            \n
            \n \n

            ${t._("ALERT_TEXT")}

            \n
            \n

            \n
            \n
            \n `,I=`\n
            \n \n \n \n
            \n

            ${t._("PANEL_HEADING")}

            \n

            \n
            \n
            `,L=``,k=n.Global.showImageOutline?'
            ':'
            ',T=`\n
            \n ${"left"===l?k:""}\n \n ${n.Global.showImageOutline?L:""}\n \n ${"right"===l?k:""}\n
            `,_=document.createElement("div");_.setAttribute("id","container"),_.setAttribute("role","region"),_.setAttribute("lang",t._("LANG_CODE")),_.setAttribute("aria-label",t._("CONTAINER_LABEL")),_.setAttribute("dir",n.Global.langDirection),_.innerHTML="top-left"===l||"top-right"===l?`\n ${y}\n
            \n ${I}\n ${f}\n ${T}\n ${x}\n ${w}\n ${E}\n ${A}\n ${v}\n
            `:`\n ${y}\n
            \n ${v}\n ${x}\n ${w}\n ${E}\n ${A}\n ${f}\n ${I}\n ${T}\n
            `,this.shadowRoot.appendChild(_),n.initializePanelSelectors()}}const M=()=>{n.Panel.outlineToggle.classList.add("active"),n.Panel.outline.classList.add("active"),n.Panel.outlineToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-outline","Opened"),v(n.Panel.outlineList,n.Panel.outlineContent);o("sa11y-heading-label","root").forEach((e=>e.hidden=!1));const e=new CustomEvent("sa11y-build-heading-outline");document.dispatchEvent(e)},D=()=>{n.Panel.outline.classList.remove("active"),n.Panel.outlineToggle.classList.remove("active"),n.Panel.outlineToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-outline","Closed");o("sa11y-heading-label","root").forEach((e=>e.hidden=!0))},G=()=>{n.Panel.imagesToggle.classList.add("active"),n.Panel.images.classList.add("active"),n.Panel.imagesToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-images","Opened"),v(n.Panel.imagesList,n.Panel.imagesContent);const e=new CustomEvent("sa11y-build-image-outline");document.dispatchEvent(e)},B=()=>{n.Global.showImageOutline&&(n.Panel.imagesToggle.classList.remove("active"),n.Panel.images.classList.remove("active"),n.Panel.imagesToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-images","Closed"))},H=()=>{n.Panel.settingsToggle.classList.add("active"),n.Panel.settings.classList.add("active"),n.Panel.settingsToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-settings","Opened"),v(n.Panel.settingsContent,n.Panel.settingsContent,t._("SETTINGS"))},F=()=>{n.Panel.settings.classList.remove("active"),n.Panel.settingsToggle.classList.remove("active"),n.Panel.settingsToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-settings","Closed")};function U(e,i,a){const r=()=>{const s=[];return e.map((e=>{const t=i.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),i.forEach((e=>{const o=e.element,i=e.headingLevel,r=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,g=e.dismissedHeading,{isWithinRoot:m}=e;if(!(n.Exclusions.Outline?Array.from(document.querySelectorAll(n.Exclusions.Outline)):[]).includes(o)){const e=!0===c?'Hidden':"",n=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
          • \n \n \n \n ${t._("ERROR")} ${f+i}\n ${r}\n \n
          • `,s.push(b)):"warning"!==d||g||!0!==m?(b=`\n
          • \n \n ${e} ${f+i}\n ${r}\n \n
          • `,s.push(b)):(b=`\n
          • \n \n \n \n ${t._("WARNING")} ${f+i}\n ${r}\n \n
          • `,s.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){o.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else o.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===u.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),n.Panel.outlineList.innerHTML=0===s.length?`
          • ${t._("PANEL_NO_HEADINGS")}
          • `:s.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,i=Array.from(e.querySelectorAll("#outline-list a"));i.forEach(((i,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=o(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",n.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{g(e.parentElement),e.scrollIntoView({behavior:`${n.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?b(`${t._("HEADING_NOT_VISIBLE_ALERT")}`):n.Panel.alert.classList.contains("active")&&f()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void i[a].click();let t;i[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(t=a+1,a===i.length-1&&(t=0)):"ArrowUp"===e.code&&(t=a-1,0===a&&(t=i.length-1)),i[t].setAttribute("tabindex",0),i[t].focus(),a=t,e.preventDefault()};n.Panel.outlineList.addEventListener("focus",(()=>{i.length>0&&(n.Panel.outlineList.setAttribute("tabindex",-1),i[a].setAttribute("tabindex",0),i[a].focus()),n.Panel.outlineList.addEventListener("keydown",r)})),n.Panel.outlineList.addEventListener("blur",(()=>{n.Panel.outlineList.removeEventListener("keydown",r)}))}),0),document.removeEventListener("sa11y-build-heading-outline",r),e};"Opened"===u.getItem("sa11y-remember-outline")&&r(),document.addEventListener("sa11y-build-heading-outline",r)}function W(e,o){const i=()=>{const r=[];e.map((e=>{const t=o.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedImage:!0})})),o.forEach((e=>{const o=e.type,{dismissedImage:i}=e,s=a(e.element.alt),{src:l}=e.element,d=e.element.getAttribute("data-src"),c=d&&d.length>3?d:l,p=(e=>{let o;if(0!==n.Global.editImageURLofCMS.length){const{src:a}=e.element,r=n.Global.relativePathImageSRC?n.Global.relativePathImageSRC:window.location.host,s=a.split(r),l=s.length>1?s[1]:"",d=n.Global.relativePathImageID;let c;d.length&&e.element.classList.length&&e.element.classList.forEach((e=>{if(e.startsWith(d)){const[t]=e.match(/\d+/)||[];c=t}}));const p=r&&d.length?n.Global.editImageURLofCMS+c:n.Global.editImageURLofCMS+l;o=((i=a).includes(window.location.host)||i.startsWith(r))&&void 0!==c?`
            ${t._("EDIT")}
            `:""}var i;return o??""})(e);let u;if("error"===o){const e=0===s.length?`
            ${t._("MISSING")}
            `:`${s}`;u=`\n
          • \n \n
            \n
            \n \n ${t._("ERROR")}\n ${t._("ALT")}\n
            \n ${e}\n
            \n ${p}\n
          • `,r.push(u)}else if("warning"!==o||i){const e=0===s.length?`
            ${t._("DECORATIVE")}
            `:"";u=`\n
          • \n \n
            \n
            ${t._("ALT")}
            \n ${e} ${s}\n
            \n ${p}\n
          • `,r.push(u)}else{const e=0===s.length?`
            ${t._("DECORATIVE")}
            `:"";u=`\n
          • \n \n
            \n
            \n \n ${t._("WARNING")}\n ${t._("ALT")}\n
            \n ${e} ${s}\n
            \n ${p}\n
          • `,r.push(u)}})),n.Panel.imagesList.innerHTML=0===r.length?`
          • ${t._("IMAGES_NOT_FOUND")}
          • `:r.join(" "),document.removeEventListener("sa11y-build-image-outline",i)};"Opened"===u.getItem("sa11y-remember-images")&&i(),document.addEventListener("sa11y-build-image-outline",i)}var j="top",z="bottom",q="right",V="left",Q="auto",K=[j,z,q,V],Y="start",X="end",Z="clippingParents",J="viewport",ee="popper",te="reference",ne=K.reduce((function(e,t){return e.concat([t+"-"+Y,t+"-"+X])}),[]),oe=[].concat(K,[Q]).reduce((function(e,t){return e.concat([t,t+"-"+Y,t+"-"+X])}),[]),ie=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ae(e){return e?(e.nodeName||"").toLowerCase():null}function re(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function se(e){return e instanceof re(e).Element||e instanceof Element}function le(e){return e instanceof re(e).HTMLElement||e instanceof HTMLElement}function de(e){return"undefined"!=typeof ShadowRoot&&(e instanceof re(e).ShadowRoot||e instanceof ShadowRoot)}var ce={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];le(i)&&ae(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});le(o)&&ae(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function pe(e){return e.split("-")[0]}var ue=Math.max,ge=Math.min,me=Math.round;function fe(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function be(){return!/^((?!chrome|android).)*safari/i.test(fe())}function he(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&le(e)&&(i=e.offsetWidth>0&&me(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&me(o.height)/e.offsetHeight||1);var r=(se(e)?re(e):window).visualViewport,s=!be()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ye(e){var t=he(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ve(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&de(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function xe(e){return re(e).getComputedStyle(e)}function we(e){return["table","td","th"].indexOf(ae(e))>=0}function Ee(e){return((se(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ae(e){return"html"===ae(e)?e:e.assignedSlot||e.parentNode||(de(e)?e.host:null)||Ee(e)}function Ie(e){return le(e)&&"fixed"!==xe(e).position?e.offsetParent:null}function Le(e){for(var t=re(e),n=Ie(e);n&&we(n)&&"static"===xe(n).position;)n=Ie(n);return n&&("html"===ae(n)||"body"===ae(n)&&"static"===xe(n).position)?t:n||function(e){var t=/firefox/i.test(fe());if(/Trident/i.test(fe())&&le(e)&&"fixed"===xe(e).position)return null;var n=Ae(e);for(de(n)&&(n=n.host);le(n)&&["html","body"].indexOf(ae(n))<0;){var o=xe(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function ke(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Te(e,t,n){return ue(e,ge(t,n))}function _e(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Se(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Pe={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=pe(n.placement),l=ke(s),d=[V,q].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return _e("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Se(e,K))}(i.padding,n),p=ye(a),u="y"===l?j:V,g="y"===l?z:q,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=Le(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,E=Te(v,w,x),A=l;n.modifiersData[o]=((t={})[A]=E,t.centerOffset=E-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ve(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ce(e){return e.split("-")[1]}var Oe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function $e(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=V,x=j,w=window;if(d){var E=Le(n),A="clientHeight",I="clientWidth";if(E===re(n)&&"static"!==xe(E=Ee(n)).position&&"absolute"===s&&(A="scrollHeight",I="scrollWidth"),i===j||(i===V||i===q)&&a===X)x=z,f-=(p&&E===w&&w.visualViewport?w.visualViewport.height:E[A])-o.height,f*=l?1:-1;if(i===V||(i===j||i===z)&&a===X)v=q,g-=(p&&E===w&&w.visualViewport?w.visualViewport.width:E[I])-o.width,g*=l?1:-1}var L,k=Object.assign({position:s},d&&Oe),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:me(n*i)/i||0,y:me(o*i)/i||0}}({x:g,y:f},re(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},k,((L={})[x]=y?"0":"",L[v]=h?"0":"",L.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",L)):Object.assign({},k,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Ne={passive:!0};var Re={left:"right",right:"left",bottom:"top",top:"bottom"};function Me(e){return e.replace(/left|right|bottom|top/g,(function(e){return Re[e]}))}var De={start:"end",end:"start"};function Ge(e){return e.replace(/start|end/g,(function(e){return De[e]}))}function Be(e){var t=re(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function He(e){return he(Ee(e)).left+Be(e).scrollLeft}function Fe(e){var t=xe(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function Ue(e){return["html","body","#document"].indexOf(ae(e))>=0?e.ownerDocument.body:le(e)&&Fe(e)?e:Ue(Ae(e))}function We(e,t){var n;void 0===t&&(t=[]);var o=Ue(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=re(o),r=i?[a].concat(a.visualViewport||[],Fe(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(We(Ae(r)))}function je(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ze(e,t,n){return t===J?je(function(e,t){var n=re(e),o=Ee(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=be();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+He(e),y:l}}(e,n)):se(t)?function(e,t){var n=he(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):je(function(e){var t,n=Ee(e),o=Be(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ue(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ue(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+He(e),l=-o.scrollTop;return"rtl"===xe(i||n).direction&&(s+=ue(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(Ee(e)))}function qe(e,t,n,o){var i="clippingParents"===t?function(e){var t=We(Ae(e)),n=["absolute","fixed"].indexOf(xe(e).position)>=0&&le(e)?Le(e):e;return se(n)?t.filter((function(e){return se(e)&&ve(e,n)&&"body"!==ae(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=ze(e,n,o);return t.top=ue(i.top,t.top),t.right=ge(i.right,t.right),t.bottom=ge(i.bottom,t.bottom),t.left=ue(i.left,t.left),t}),ze(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Ve(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?pe(i):null,r=i?Ce(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case j:t={x:s,y:n.y-o.height};break;case z:t={x:s,y:n.y+n.height};break;case q:t={x:n.x+n.width,y:l};break;case V:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?ke(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case Y:t[d]=t[d]-(n[c]/2-o[c]/2);break;case X:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Qe(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?Z:s,d=n.rootBoundary,c=void 0===d?J:d,p=n.elementContext,u=void 0===p?ee:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=_e("number"!=typeof b?b:Se(b,K)),y=u===ee?te:ee,v=e.rects.popper,x=e.elements[m?y:u],w=qe(se(x)?x:x.contextElement||Ee(e.elements.popper),l,c,r),E=he(e.elements.reference),A=Ve({reference:E,element:v,strategy:"absolute",placement:i}),I=je(Object.assign({},v,A)),L=u===ee?I:E,k={top:w.top-L.top+h.top,bottom:L.bottom-w.bottom+h.bottom,left:w.left-L.left+h.left,right:L.right-w.right+h.right},T=e.modifiersData.offset;if(u===ee&&T){var _=T[i];Object.keys(k).forEach((function(e){var t=[q,z].indexOf(e)>=0?1:-1,n=[j,z].indexOf(e)>=0?"y":"x";k[e]+=_[n]*t}))}return k}function Ke(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?oe:l,c=Ce(o),p=c?s?ne:ne.filter((function(e){return Ce(e)===c})):K,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Qe(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[pe(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var Ye={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=pe(b),y=l||(h===b||!m?[Me(b)]:function(e){if(pe(e)===Q)return[];var t=Me(e);return[Ge(e),t,Ge(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(pe(n)===Q?Ke(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,E=new Map,A=!0,I=v[0],L=0;L=0,P=S?"width":"height",C=Qe(t,{placement:k,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?q:V:_?z:j;x[P]>w[P]&&(O=Me(O));var $=Me(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){I=k,A=!1;break}E.set(k,N)}if(A)for(var R=function(e){var t=v.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return I=t,"break"},M=m?3:1;M>0;M--){if("break"===R(M))break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Xe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ze(e){return[j,q,z,V].some((function(t){return e[t]>=0}))}var Je={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=oe.reduce((function(e,n){return e[n]=function(e,t,n){var o=pe(e),i=[V,j].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[V,q].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var et={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Qe(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=pe(t.placement),y=Ce(t.placement),v=!y,x=ke(h),w="x"===x?"y":"x",E=t.modifiersData.popperOffsets,A=t.rects.reference,I=t.rects.popper,L="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,k="number"==typeof L?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(E){if(a){var S,P="y"===x?j:V,C="y"===x?z:q,O="y"===x?"height":"width",$=E[x],N=$+b[P],R=$-b[C],M=g?-I[O]/2:0,D=y===Y?A[O]:I[O],G=y===Y?-I[O]:-A[O],B=t.elements.arrow,H=g&&B?ye(B):{width:0,height:0},F=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},U=F[P],W=F[C],Q=Te(0,A[O],H[O]),K=v?A[O]/2-M-Q-U-k.mainAxis:D-Q-U-k.mainAxis,X=v?-A[O]/2+M+Q+W+k.mainAxis:G+Q+W+k.mainAxis,Z=t.elements.arrow&&Le(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=Te(g?ge(N,$+K-ee-J):N,$,g?ue(R,te):R);E[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?j:V,ae="x"===x?z:q,re=E[w],se="y"===w?"height":"width",le=re+b[ie],de=re-b[ae],ce=-1!==[j,V].indexOf(h),me=null!=(oe=null==T?void 0:T[w])?oe:0,fe=ce?le:re-A[se]-I[se]-me+k.altAxis,be=ce?re+A[se]+I[se]-me-k.altAxis:de,he=g&&ce?function(e,t,n){var o=Te(e,t,n);return o>n?n:o}(fe,re,be):Te(g?fe:le,re,g?be:de);E[w]=he,_[w]=he-re}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function tt(e,t,n){void 0===n&&(n=!1);var o,i,a=le(t),r=le(t)&&function(e){var t=e.getBoundingClientRect(),n=me(t.width)/e.offsetWidth||1,o=me(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=Ee(t),l=he(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==ae(t)||Fe(s))&&(d=(o=t)!==re(o)&&le(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:Be(o)),le(t)?((c=he(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=He(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function nt(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var ot={placement:"bottom",modifiers:[],strategy:"absolute"};function it(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function ft(e,t){return"function"==typeof e?e.apply(void 0,t):e}function bt(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function ht(e){return[].concat(e)}function yt(e,t){-1===e.indexOf(t)&&e.push(t)}function vt(e){return[].slice.call(e)}function xt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function wt(){return document.createElement("div")}function Et(e){return["Element","Fragment"].some((function(t){return mt(e,t)}))}function At(e){return Et(e)?[e]:function(e){return mt(e,"NodeList")}(e)?vt(e):Array.isArray(e)?e:vt(document.querySelectorAll(e))}function It(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function Lt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function kt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function Tt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var _t={isTouch:!1},St=0;function Pt(){_t.isTouch||(_t.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ct))}function Ct(){var e=performance.now();e-St<20&&(_t.isTouch=!1,document.removeEventListener("mousemove",Ct)),St=e}function Ot(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var $t=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Nt=Object.assign({appendTo:ut,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),Rt=Object.keys(Nt);function Mt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Nt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Dt(e,t){var n=Object.assign({},t,{content:ft(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Mt(Object.assign({},Nt,{plugins:t}))):Rt).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Nt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Gt=function(){return"innerHTML"};function Bt(e,t){e[Gt()]=t}function Ht(e){var t=wt();return!0===e?t.className=dt:(t.className=ct,Et(e)?t.appendChild(e):Bt(t,e)),t}function Ft(e,t){Et(t.content)?(Bt(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Bt(e,t.content):e.textContent=t.content)}function Ut(e){var t=e.firstElementChild,n=vt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(st)})),arrow:n.find((function(e){return e.classList.contains(dt)||e.classList.contains(ct)})),backdrop:n.find((function(e){return e.classList.contains(lt)}))}}function Wt(e){var t=wt(),n=wt();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=wt();function i(n,o){var i=Ut(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Ft(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Ht(o.arrow))):a.appendChild(Ht(o.arrow)):s&&a.removeChild(s)}return o.className=st,o.setAttribute("data-state","hidden"),Ft(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Wt.$$tippy=!0;var jt=1,zt=[],qt=[];function Vt(e,t){var n,o,i,a,r,s,l,d,c=Dt(e,Object.assign({},Nt,Mt(xt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=bt(V,c.interactiveDebounce),h=jt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:wt(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),z();var n=v.props,o=Dt(e,Object.assign({},n,xt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(M(),b=bt(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?ht(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),E&&E(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=_t.isTouch&&!v.props.touch,i=gt(v.props.duration,0,Nt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();It([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;It([n,o],i),Lt([n,o],"visible")}N(),R(),yt(qt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===ut||"parent"===t?n.parentNode:ft(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=gt(v.props.duration,1,Nt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(M(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(It([a,r],o),Lt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),yt(zt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);qt=qt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),z(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,E=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var A=y.map((function(e){return e.fn(v)})),I=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function L(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function k(){return"hold"===L()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=ht(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Ut(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||_t.isTouch||a&&"focus"===a.type?0:gt(v.props.delay,e?0:1,Nt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),A.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;ht(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!I&&v.props.aria.expanded&&ht(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function M(){S().removeEventListener("mousemove",b),zt=zt.filter((function(e){return e!==b}))}function D(t){if(!_t.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!Tt(w,n)){if(ht(v.props.triggerTarget||e).some((function(e){return Tt(e,n)}))){if(_t.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function G(){g=!0}function B(){g=!1}function H(){var e=S();e.addEventListener("mousedown",D,!0),e.addEventListener("touchend",D,pt),e.addEventListener("touchstart",B,pt),e.addEventListener("touchmove",G,pt)}function F(){var e=S();e.removeEventListener("mousedown",D,!0),e.removeEventListener("touchend",D,pt),e.removeEventListener("touchstart",B,pt),e.removeEventListener("touchmove",G,pt)}function U(e,t){var n=P().box;function o(e){e.target===n&&(kt(n,"remove",o),t())}if(0===e)return t();kt(n,"remove",r),kt(n,"add",o),r=o}function W(t,n,o){void 0===o&&(o=!1),ht(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;k()&&(W("touchstart",q,{passive:!0}),W("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(W(e,q),e){case"mouseenter":W("mouseleave",Q);break;case"focus":W($t?"focusout":"blur",K);break;case"focusin":W("focusout",K)}}))}function z(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function q(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&mt(e,"MouseEvent")&&zt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(M(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!_t.isTouch&&k()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Ut(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=rt(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return vt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=L(),i=o[0],a=o[1];_t.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Qt(e,t){void 0===t&&(t={});var n=Nt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Pt,pt),window.addEventListener("blur",Ot);var o=Object.assign({},t,{plugins:n}),i=At(e).reduce((function(e,t){var n=t&&Vt(t,o);return n&&e.push(n),e}),[]);return Et(e)?i[0]:i}Qt.defaultProps=Nt,Qt.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Nt[t]=e[t]}))},Qt.currentInput=_t,Object.assign({},ce,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Qt.setDefaultProps({render:Wt});var Kt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class Yt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),o=document.createElement("style");o.innerHTML=Kt+$,e.appendChild(o);const i=[];w.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Qt(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Qt(n.Panel.skipButton,{content:`${t._("SHORTCUT_TOOLTIP")} »
            ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Xt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Kt+$,e.appendChild(t),this.object=Qt(n.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+$,e.appendChild(t)}}const Jt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class en extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class tn extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const nn=(e,o)=>{if(0===e.offsetTop){const n=e.getRootNode().host,i=c(n,"display","none"),a=parseInt(n.getAttribute("data-sa11y-annotation"),10),r=x(o.find((e=>e.id===a)));(e=>{const t=c(e.getRootNode().host,"display","none");if(null!==t){g(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(b(`${t._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?p(e).top-150:p(t).top-150}}else f(),n.Panel.skipButton.focus();return p(e).top-150};let on=-1;const an=()=>{const e=u.getItem("sa11y-latest-dismissed");null!==e&&(on=parseInt(e,10)-1),u.removeItem("sa11y-latest-dismissed");const t=o("[data-sa11y-opened]","root");t[0]&&(on=parseInt(t[0].getAttribute("data-sa11y-position"),10))},rn=e=>{an();const t=w.Annotations.Array;on>=t.length-1&&(on=-1);const o=t[on+1].shadowRoot.querySelector("button"),i=nn(o,e);window.scrollTo({top:i,behavior:`${n.Global.scrollBehaviour}`}),0!==o.offsetTop&&(o.focus(),o.click()),on+=1},sn=e=>{if(an(),on>0){const t=w.Annotations.Array[on-1].shadowRoot.querySelector("button"),o=nn(t,e);window.scrollTo({top:o,behavior:`${n.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),on-=1,-1===on&&(on=w.Annotations.Array.length-1)}};let ln,dn;function cn(e){ln=t=>{!function(e,t){w.Annotations.Array.length&&!n.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),rn(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),sn(t)))}(t,e)},dn=()=>{rn(e)},document.addEventListener("keydown",ln),n.Panel.skipButton.addEventListener("click",dn)}const pn=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},un=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},gn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${mn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},mn=(e,t,n=0)=>{const o=gn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=pn(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=gn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,un(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=pn(a.currentNode,a.currentNode.getAttribute("alt")),un(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=pn(a.currentNode,"");break;default:i+=pn(a.currentNode,"")}}else un(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function fn(e,o){return w.Found.Images.forEach((i=>{const a="noAria"===gn(i)?i.getAttribute("alt"):gn(i),s=i.closest("a[href]"),c=s?d(s,n.Exclusions.LinkSpan).textContent:"",p=o.linkIgnoreStrings?c.replace(o.linkIgnoreStrings,""):c,u=s?l(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(s&&"true"===s.getAttribute("aria-hidden")){"-1"===s.getAttribute("tabindex")||e.push({element:i,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(s){const n=0===u?t.sprintf("MISSING_ALT_LINK_MESSAGE"):t.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const n=l(r(a)),d=(e=>{const n=[null,null,null];[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const o=t.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(n[0]=t)})),(o.susAltStopWords?o.susAltStopWords.split(",").map((e=>e.trim())):t._("SUSPICIOUS_ALT_STOPWORDS")).forEach((t=>{const o=e.toLowerCase().indexOf(t);o>-1&&o<6&&(n[1]=t)})),t._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[2]=t)}));const{extraPlaceholderStopWords:i}=o;i.length&&i.split(",").map((e=>e.trim())).forEach((t=>{const o=e.toLowerCase().indexOf(t);o>-1&&o<6&&(n[2]=t)}));return n})(n),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),f=g?.querySelector("figcaption"),b=f?f.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===n)return void e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const n=m(`DECORATIVE${h}`);if(s){const n=0===u?"error":"good",o=0===u?t.sprintf("LINK_IMAGE_NO_ALT_TEXT"):t.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:n,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=f&&b.length?t.sprintf("IMAGE_FIGURE_DECORATIVE"):t.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"warning",content:t.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:n});return}if(null!==d[0]){const o=s?t.sprintf("LINK_ALT_HAS_FILE_EXTENSION",d[0],n):t.sprintf("ALT_HAS_FILE_EXTENSION",d[0],n);e.push({element:i,type:"error",content:o,inline:!1,position:"beforebegin"})}else if(null!==d[2]){const o=s?t.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",n):t.sprintf("ALT_PLACEHOLDER_MESSAGE",n);e.push({element:i,type:"error",content:o,inline:!1,position:"beforebegin"})}else if(null!==d[1]){const o=m(`${h+n}`),a=s?t.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",d[1],n):t.sprintf("ALT_HAS_SUS_WORD",d[1],n);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:o})}else if(a.length>o.altTextMaxCharLength){const o=m(`${h+n+a.length}`),r=s?t.sprintf("LINK_IMAGE_LONG_ALT",a.length,n):t.sprintf("IMAGE_ALT_TOO_LONG",a.length,n);e.push({element:i,type:"warning",content:r,inline:!1,position:"beforebegin",dismiss:o})}else if(s){const o=m(`${h+n}`),a=r(l(mn(s))),d=0===u?t.sprintf("LINK_IMAGE_ALT_WARNING",n):t.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",n,a);e.push({element:i,type:"warning",content:d,inline:!1,position:"beforebegin",dismiss:o})}else if(g){if(!!f&&b.toLowerCase()===n.trim().toLowerCase()){const o=m(`FIGURE${h+n}`);e.push({element:i,type:"warning",content:t.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",n),inline:!1,position:"beforebegin",dismiss:o})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",n),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",n),inline:!1,position:"beforebegin"})}})),e}function bn(e,o,i){let a;return w.Found.Headings.forEach(((s,d)=>{const p=mn(s,o.headerIgnoreSpan),u=r(l(o.headerIgnoreStrings?p.replace(o.headerIgnoreStrings,""):p)),g=n.Root.areaToCheck.contains(s),f=n.Root.areaToCheck.contains(s.getRootNode().host),b=g||f,h=parseInt(s.getAttribute("aria-level")||s.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==d)if(o.nonConsecutiveHeadingIsError)v=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const n=m(`HEADING${h+u}`);e.push({element:s,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}else if(0===y)if(s.querySelectorAll("img").length){const n=s.querySelector("img").getAttribute("alt");null!==n&&" "!==n&&""!==n||(v=t.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=t.sprintf("HEADING_EMPTY",h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===d&&1!==h&&2!==h)v=t.sprintf("HEADING_FIRST"),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>o.headingMaxCharLength&&o.flagLongHeadings){x=t.sprintf("HEADING_LONG",y);const n=m(`HEADING${h+u}`);e.push({element:s,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}a=h;const w=!!((E=s).getAttribute("hidden")||0===E.offsetWidth&&0===E.offsetHeight||1===E.clientHeight&&1===E.clientWidth)||"none"===getComputedStyle(E).getPropertyValue("display");var E;const A=c(s,"display","none");if(null!==v)i.push({element:s,headingLevel:h,text:u,index:d,type:"error",hidden:w,visibleParent:A,isWithinRoot:b});else if(null!==x){const e=m(`HEADING${h+u}`);i.push({element:s,headingLevel:h,text:u,index:d,type:"warning",hidden:w,visibleParent:A,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:s,headingLevel:h,text:u,index:d,hidden:w,visibleParent:A,isWithinRoot:b})})),0===w.Found.HeadingOne.length&&o.missingH1&&e.push({type:"warning",content:t.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function hn(e,o){const i={};return w.Found.Links.forEach((a=>{const s=mn(a,n.Exclusions.LinkSpan),d=l(o.linkIgnoreStrings?s.replace(o.linkIgnoreStrings,""):s),c=(e=>{const n=[null,null,null,null];return t._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[0]=t),!1))),(o.linkStopWords?o.linkStopWords.split(",").map((e=>e.trim())):t._("WARNING_ALT_STOPWORDS")).forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[3]=t),!1))),n})(d.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===d.length&&/[^a-zA-Z0-9]/g.test(d),g=d.match(/([<>↣↳←→↓«»↴]+)/),f=g?g[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==d.length)if(null!==c[0])e.push({element:a,type:"error",content:t.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==f){const n=m(`LINK${d+b}`),o=f||c[1];e.push({element:a,type:"warning",content:t.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[2]&&o.linksToDOI){const n=m(`LINK${d+c[2]+b}`);d.length>8&&e.push({element:a,type:"warning",content:t.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[3]&&o.URLAsLinkTextWarning){const n=m(`LINK${d+c[2]+b}`);d.length>o.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:t.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:n})}else if(v){if(o.showGoodLinkButton){const n=r(d);e.push({element:a,type:"good",content:t.sprintf("LINK_LABEL",n),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(o.linksAdvancedPlugin){if("On"===u.getItem("sa11y-remember-links-advanced")||o.headless||o.checkAllHideToggles){const n=t._("NEW_WINDOW_PHRASES").some((e=>d.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(t._("FILE_TYPE_PHRASES")).some((e=>d.toLowerCase().includes(e))),s=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),l=d.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==l.length)if(i[l]&&!i[b]){const n=m(`LINK${l+b}`),o=r(d);e.push({element:a,type:"warning",content:t.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:n})}else if("_blank"!==a.getAttribute("target")||s||n)if(s&&!o){const n=m(`LINK${l+b}`);e.push({element:a,type:"warning",content:t.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}else i[l]=!0,i[b]=!0;else{const n=m(`LINK${l+b}`);e.push({element:a,type:"warning",content:t.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}}}})),e}const yn=e=>{if(e.startsWith("color(srgb")){const t=/srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/,n=e.match(t);if(n&&n.length>=4){const[e,t,o,i]=n.slice(1),a=Math.min(1,parseFloat(e)),r=Math.min(1,parseFloat(t)),s=Math.min(1,parseFloat(o)),l=void 0!==i?Math.min(1,parseFloat(i)):1;return`rgba(${Math.round(255*a)}, ${Math.round(255*r)}, ${Math.round(255*s)}, ${l})`}return"invalid-format"}return e};class vn{constructor(c){const p={...e,...c};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",tn),customElements.define("sa11y-heading-anchor",en),customElements.define("sa11y-annotation",Zt),customElements.define("sa11y-tooltips",Yt),customElements.define("sa11y-dismiss-tooltip",Xt),customElements.define("sa11y-control-panel",R),customElements.define("sa11y-console-error",N),n.initializeGlobal(p),n.initializeReadability(p),n.initializeExclusions(p),n.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),u.removeItem("sa11y-dismissed");else{const i=new R;document.body.appendChild(i),function(e,o){n.Global.contrastPlugin?n.Panel.contrastToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-contrast")?(u.setItem("sa11y-remember-contrast","Off"),n.Panel.contrastToggle.textContent=`${t._("OFF")}`,n.Panel.contrastToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-contrast","On"),n.Panel.contrastToggle.textContent=`${t._("ON")}`,n.Panel.contrastToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-contrast","Off"),n.Global.formLabelsPlugin?n.Panel.labelsToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-labels")?(u.setItem("sa11y-remember-labels","Off"),n.Panel.labelsToggle.textContent=`${t._("OFF")}`,n.Panel.labelsToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-labels","On"),n.Panel.labelsToggle.textContent=`${t._("ON")}`,n.Panel.labelsToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-labels","Off"),n.Global.linksAdvancedPlugin?n.Panel.linksToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-links-advanced")?(u.setItem("sa11y-remember-links-advanced","Off"),n.Panel.linksToggle.textContent=`${t._("OFF")}`,n.Panel.linksToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-links-advanced","On"),n.Panel.linksToggle.textContent=`${t._("ON")}`,n.Panel.linksToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-links-advanced","Off"),n.Readability.Plugin&&(n.Panel.readabilityToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-readability")?(u.setItem("sa11y-remember-readability","Off"),n.Panel.readabilityToggle.textContent=`${t._("OFF")}`,n.Panel.readabilityToggle.setAttribute("aria-pressed","false"),n.Panel.readability.classList.remove("active"),o(!1),await e()):(u.setItem("sa11y-remember-readability","On"),n.Panel.readabilityToggle.textContent=`${t._("ON")}`,n.Panel.readabilityToggle.setAttribute("aria-pressed","true"),n.Panel.readability.classList.add("active"),o(!1),await e())},"On"===u.getItem("sa11y-remember-readability")&&n.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):(n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(n.Global.html.setAttribute("data-sa11y-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true"),u.setItem("sa11y-remember-theme","")):(n.Global.html.setAttribute("data-sa11y-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false"),u.setItem("sa11y-remember-theme",""))})),n.Panel.themeToggle.onclick=async()=>{const e=u.getItem("sa11y-remember-theme");"dark"===e?(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")):(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=u.getItem("sa11y-remember-theme");"dark"===a?(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")),n.Global.colourFilterPlugin&&n.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(n.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[t._("RED_EYE"),t._("GREEN_EYE"),t._("BLUE_EYE"),t._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?b(t._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(n.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),n.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),h(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),y(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),n.Panel.skipButton.disabled=!0,n.Panel.pageIssues.classList.remove("active"),"left"!==n.Global.panelPosition&&"right"!==n.Global.panelPosition||n.Panel.settingsContent.classList.add("hide-settings-border"),n.Panel.colourFilterSelect.classList.add("active"),n.Panel.colourPanel.classList.add("active"),n.Panel.colourPanel.setAttribute("data-colour",a[i-1]),n.Panel.content.hidden=!0):(n.Root.areaToCheck.removeAttribute("data-sa11y-filter"),n.Panel.settingsContent.classList.remove("hide-settings-border"),n.Panel.colourFilterSelect.classList.remove("active"),n.Panel.colourPanel.classList.remove("active"),n.Panel.colourPanel.removeAttribute("data-colour"),n.Panel.content.hidden=!1,o(!1),await e())}))}(this.checkAll,this.resetAll),function(){n.Panel.outlineToggle.addEventListener("click",(()=>{"true"===n.Panel.outlineToggle.getAttribute("aria-expanded")?D():(M(),F(),B()),n.Panel.outlineHeader.focus()})),"Opened"===u.getItem("sa11y-remember-outline")&&M(),n.Global.showImageOutline&&(n.Panel.imagesToggle.addEventListener("click",(()=>{"true"===n.Panel.imagesToggle.getAttribute("aria-expanded")?B():(G(),D(),F()),n.Panel.imagesHeader.focus()})),"Opened"===u.getItem("sa11y-remember-images")&&G()),n.Panel.settingsToggle.addEventListener("click",(()=>{"true"===n.Panel.settingsToggle.getAttribute("aria-expanded")?F():(H(),D(),B()),n.Panel.settingsHeader.focus()})),"Opened"===u.getItem("sa11y-remember-settings")&&H(),n.Panel.skipToPageIssues.addEventListener("click",(()=>{n.Panel.pageIssuesHeader.focus()})),v(n.Panel.pageIssuesList,n.Panel.pageIssuesContent);const e=n.Panel.panel.querySelectorAll("[role=tab]");let t=Array.from(e).findIndex((e=>e.classList.contains("active")));e.forEach((n=>{n.addEventListener("keydown",(n=>{"ArrowRight"===n.key?(n.preventDefault(),t=(t+1)%e.length,e[t].focus()):"ArrowLeft"===n.key&&(n.preventDefault(),t=(t-1+e.length)%e.length,e[t].focus())}))}))}(),function(){if(n.Global.colourFilterPlugin&&!1===n.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),A(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new Xt,document.body.appendChild(this.dismissTooltip),n.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(n.Panel.toggle.disabled=!0),e=this.checkAll,o=this.resetAll,n.Panel.toggle.addEventListener("click",(t=>{"Opened"===u.getItem("sa11y-remember-panel")?(t.preventDefault(),u.setItem("sa11y-remember-panel","Closed"),n.Panel.toggle.classList.remove("on"),n.Panel.toggle.setAttribute("aria-expanded","false"),o(),0===n.Panel.notifCount.innerHTML.trim().length?n.Panel.notifBadge.style.display="none":n.Panel.notifBadge.style.display="flex"):(t.preventDefault(),u.setItem("sa11y-remember-panel","Opened"),n.Panel.toggle.classList.add("on"),n.Panel.toggle.setAttribute("aria-expanded","true"),e(),v(n.Panel.outlineList,n.Panel.outlineContent))})),"Opened"===u.getItem("sa11y-remember-panel")&&(n.Panel.toggle.classList.add("on"),n.Panel.toggle.setAttribute("aria-expanded","true"),n.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(n.Panel.toggle.click(),n.Panel.toggle.focus())}}var e,o},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,o=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.imageOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||b(`${t.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),n.initializeRoot(e,o),function(e){if(e.autoDetectShadowComponents){const t="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",n=document.querySelector(e.checkRoot);(n?Array.from(n.querySelectorAll(`*:not(${t})`)):Array.from(document.body.querySelectorAll(`*:not(${t})`))).forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(e.setAttribute("data-sa11y-has-shadow-root",""),E(e))}))}else e.shadowComponents&&document.querySelectorAll(e.shadowComponents).forEach((e=>{e.setAttribute("data-sa11y-has-shadow-root",""),E(e)}))}(p),w.initializeElements(p),bn(this.results,p,this.headingOutline),hn(this.results,p),fn(this.results,p),function(e,n){if(n.contrastPlugin&&("On"===u.getItem("sa11y-remember-contrast")||n.headless||n.checkAllHideToggles)){let n={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=yn(t.backgroundColor),i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){n={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),m=window.getComputedStyle(t),f=m.clip.replace(/\s/g,""),b=m.getPropertyValue("clip-path"),h=parseFloat(m.width),y=parseFloat(m.height);if(1===h&&1===y&&("inset(50%)"===b||/^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(f)))return;if(s.startsWith("color("))a={elem:t},n.warnings.push(a);else if("SVG"===p)e=Math.round(100*o.contrastRatio(l,u))/100,e<3&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i));else if(g.length||"INPUT"===p||"SELECT"===p||"TEXTAREA"===p){const r=t.getAttribute("type");"range"===r||"color"===r||("image"===u||"alpha"===u?(a={elem:t},n.warnings.push(a)):(e=Math.round(100*o.contrastRatio(s,u))/100,d>=18||d>=14&&c>=700?e<3&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i)):e<4.5&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i))))}}}return n}};o.check(),n.errors.forEach((n=>{const o=n.elem,i=n.ratio,a=r(d(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:t.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:t.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),n.warnings.forEach((n=>{const o=n.elem,i=d(o.cloneNode(!0),"script, style").textContent,a=m(`CONTRAST${i}`),s=r(i);e.push({element:o,type:"warning",content:t.sprintf("CONTRAST_WARNING",s),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,n){n.formLabelsPlugin&&("On"===u.getItem("sa11y-remember-labels")||n.headless||n.checkAllHideToggles)&&w.Found.Inputs.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),a="-1"===n.getAttribute("tabindex");if(i(n)||o&&a)return;const s=l(mn(n)),d=n.getAttribute("alt"),c=n.getAttribute("type"),p=n.getAttribute("title"),u=n.getAttribute("aria-label")||n.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!d||" "===d))return void(u||p||e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=m(`INPUT${s}`);return void e.push({element:n,type:"warning",content:t.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===s.length)e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=m(`INPUT${s}`),i=r(s);e.push({element:n,type:"warning",content:t.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=n.closest("label"),f=g?l(mn(g)):"";if(g&&f.length)return;const b=n.getAttribute("id");b?w.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:n,type:"error",content:t.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,o){if(o.badLinksQA&&w.Found.CustomErrorLinks.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("QA_BAD_LINK",n),inline:!0,position:"beforebegin"})})),o.strongItalicsQA&&w.Found.StrongItalics.forEach((n=>{const o=n.textContent.trim().length,i=m(n.tagName+n.textContent);o>400&&e.push({element:n.parentNode,type:"warning",content:t.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),w.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=i.matches(n.Global.documentLinks),s=i.matches('a[href$=".pdf"], a[href*=".pdf?"]'),l=m(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(o.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const n=a.substring(1);document.getElementById(n)||document.getElementById(decodeURIComponent(n))||document.getElementById(encodeURIComponent(n))||e.push({element:i,type:"error",content:t.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}o.documentQA&&r?e.push({element:i,type:"warning",content:t.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):o.pdfQA&&s&&e.push({element:i,type:"warning",content:t.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),o.langQA&&(!w.Found.Language||w.Found.Language.length<2)&&e.push({type:"error",content:t.sprintf("QA_PAGE_LANGUAGE")}),o.blockquotesQA&&w.Found.Blockquotes.forEach((n=>{const o=n.textContent;if(o.trim().length<25){const i=r(o),a=m(`BLOCKQUOTE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),o.tablesQA&&w.Found.Tables.forEach((n=>{const i=n.querySelectorAll("th"),a=n.querySelectorAll("h1, h2, h3, h4, h5, h6");o.tablesQAmissingTH&&0===i.length&&e.push({element:n,type:"error",content:t.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),o.tablesQAsemanticHeadings&&a.length>0&&a.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(o.tablesQAemptyTH&&0===i.textContent.trim().length){const a=o.tablesQAemptyTHisError?"error":"warning",r=m(`TABLE${n.textContent}`);e.push({element:i,type:a,content:t.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),o.fakeHeadingsQA){const n='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=s(o),l=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(n)&&d&&l){const n=r(a),i=m(`BOLD${n}`);e.push({element:o,type:"warning",content:t.sprintf("QA_FAKE_HEADING",n),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(n)){const n=o.querySelector("strong, b"),i=s(n),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=d(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const s=r(i),l=m(`BOLD${s}`);e.push({element:n,type:"warning",content:t.sprintf("QA_FAKE_HEADING",s),inline:!1,position:"beforebegin",dismiss:l})}}};w.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),l=new RegExp(/\p{Extended_Pictographic}/,"u"),c=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let f="",b="",h=!1;if(w.Found.Paragraphs.forEach(((n,o)=>{let r=!1,d=!1;b=b||s(n).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(l),E=p.test(u.charAt(0));if(u.length>0&&u!==f&&!v&&(y||x||E)){const i=w.Found.Paragraphs[o+1];if(i){if(r=s(i).replace("(","").substring(0,2),c.includes(r?.toLowerCase().trim()))return;const e=g(r);y?"A "!==u&&u===e&&(d=!0):x&&!h&&e.match(l)&&(d=!0,h=!0)}if(!d){let e=n?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(l))&&(d=!0))}if(d){const o=m(`LIST${n.textContent}`);e.push({element:n,type:"warning",content:t.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),f=u}else f=""}b=r?"":r})),o.allCapsQA){const n=n=>{let o="";"LI"===n.tagName?n.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=s(n);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=m(`UPPERCASE${o}`);e.push({element:n,type:"warning",content:t.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};w.Found.Paragraphs.forEach((e=>n(e))),w.Found.Headings.forEach((e=>n(e))),w.Found.Lists.forEach((e=>n(e))),w.Found.Blockquotes.forEach((e=>n(e)))}o.duplicateIdQA&&document.querySelectorAll("body, [data-sa11y-has-shadow-root]").forEach((o=>{const i=new Set,a=(n,o)=>{n.forEach((n=>{const{id:a}=n;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:n,type:"error",content:t.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};o.shadowRoot&&a(Array.from(o.shadowRoot.querySelectorAll(`[id]:not(${n.Exclusions.Container})`)),o.shadowRoot),a(Array.from(o.querySelectorAll(`[id]:not(${n.Exclusions.Container})`)),o)}));if(o.underlinedTextQA){w.Found.Underlines.forEach((n=>{const o=m(`UNDERLINE${s(n)}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const n=n=>{const o=getComputedStyle(n).textDecorationLine,i=s(n);if("underline"===o){const o=m(`UNDERLINE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};w.Found.Paragraphs.forEach((e=>n(e))),w.Found.Headings.forEach((e=>n(e))),w.Found.Lists.forEach((e=>n(e))),w.Found.Blockquotes.forEach((e=>n(e))),w.Found.Spans.forEach((e=>n(e)))}if(o.pageTitleQA){const n=document.querySelector("head title");n&&0!==n.textContent.trim().length||e.push({type:"error",content:t.sprintf("QA_PAGE_TITLE")})}o.subscriptQA&&w.Found.Subscripts.forEach((n=>{const o=s(n);if(o.length>=80){const i=m(n.tagName+o);e.push({element:n,type:"warning",content:t.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,n){n.embeddedContentAll&&(n.embeddedContentAudio&&w.Found.Audio.forEach((n=>{const o=m(`AUDIO${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentVideo&&w.Found.Videos.forEach((n=>{const o="undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src"),i=n.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=m(`VIDEO${o}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),n.embeddedContentDataViz&&w.Found.Visualizations.forEach((n=>{const o=m(`DATAVIZ${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentTitles&&w.Found.iframes.forEach((n=>{const o=i(n),a="VIDEO"===n.tagName||"AUDIO"===n.tagName,r="true"===n.getAttribute("aria-hidden"),s="-1"===n.getAttribute("tabindex");if(o||a||r&&s)return;if(s)return void e.push({element:n,type:"error",content:t.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const d=gn(n);0===l("noAria"===d?n.getAttribute("title")||"":d).length&&e.push({element:n,type:"error",content:t.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),n.embeddedContentGeneral&&w.Found.EmbeddedContent.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),a="-1"===n.getAttribute("tabindex");if(i(n)||o&&a)return;if("VIDEO"===n.tagName||"AUDIO"===n.tagName)return;const r=m(`IFRAME${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(n.Readability.Plugin&&"On"===u.getItem("sa11y-remember-readability")){w.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const o=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?t._("LANG_VERY_DIFFICULT"):g>31&&g<49?t._("LANG_DIFFICULT"):g>50&&g<60?t._("LANG_FAIRLY_DIFFICULT"):t._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(n.Readability.Lang)){const n=(e=>{const n=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=n().length,i=n().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?t._("LANG_GOOD"):r>40&&r<50?t._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?t._("LANG_DIFFICULT"):t._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:n.score,averageWordsPerSentence:n.avgWordsPerSentence,complexWords:n.complexWords,difficultyLevel:n.difficulty,wordCount:n.wordCount}}!1===n.Global.headless&&(0===i.length?n.Panel.readabilityInfo.innerHTML=t._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(n.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,n.Panel.readabilityDetails.innerHTML=`\n
          • \n ${t._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
          • \n
          • \n ${t._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
          • \n
          • \n ${t._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
          • `):n.Panel.readabilityInfo.textContent=t._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),this.imageResults=this.results.filter((e=>"IMG"===e.element?.tagName)),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new N(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,o){let i=u.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(n.Panel.dismissButton.classList.add("active"),n.Panel.dismissTooltip.innerText=t.sprintf("PANEL_DISMISS_BUTTON",l),o.object.setContent(t.sprintf("PANEL_DISMISS_BUTTON",l))):n.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,o){const i=e+o;0===i?(n.Panel.notifCount.innerText="",n.Panel.notifText.innerText="",n.Panel.notifBadge.style.display="none"):o>0&&0===e?(n.Panel.notifBadge.classList.add("notification-badge-warning"),n.Panel.notifCount.innerText=`${o}`,n.Panel.notifText.innerText=`${t._("PANEL_ICON_WARNINGS")}`):(n.Panel.notifBadge.classList.remove("notification-badge-warning"),n.Panel.notifCount.innerText=`${i}`,n.Panel.notifText.innerText=t._("PANEL_ICON_TOTAL")),"Opened"===u.getItem("sa11y-remember-panel")||0===i?n.Panel.notifBadge.style.display="none":n.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===u.getItem("sa11y-remember-panel")){this.results.forEach(((e,o)=>{Object.assign(e,{id:o}),function(e,o,i,r=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(o))throw Error(`Invalid type [${o}] for annotation`);[o].forEach((t=>{if("error"===t&&void 0!==e){const t=r?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=r?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:t._("ERROR"),[p[1]]:t._("WARNING"),[p[2]]:t._("GOOD")},g=!0===c&&"warning"===o&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(n.Panel.pageIssues.classList.add("active"),n.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[o]} ${i}${g}`,n.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(r?"instance-inline":"instance"),f.innerHTML=`\n \n \n

            ${u[o]}

            \n ${a(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),w.initializeAnnotations();const c=new Yt;document.body.appendChild(c),k(this.results,this.dismissed,this.checkAll,this.resetAll),U(this.dismissed,this.headingOutline,p.showHinPageOutline),p.showImageOutline&&W(this.dismissed,this.imageResults),i=l.dismissCount,r=d.error,s=d.warning,n.Panel.skipButton.disabled=!1,n.Panel.panel.classList.add("active"),n.Global.html.setAttribute("data-sa11y-active","true"),n.Panel.skipButton.classList.add("active"),r>0&&s>0?(n.Panel.content.setAttribute("class","errors"),n.Panel.status.innerHTML=`${t._("ERRORS")} ${r} ${t._("WARNINGS")} ${s}`):r>0?(n.Panel.content.setAttribute("class","errors"),n.Panel.status.innerHTML=`${t._("ERRORS")} ${r}`):s>0?(n.Panel.content.setAttribute("class","warnings"),n.Panel.status.innerHTML=`${t._("WARNINGS")} ${s}`):i>0?(n.Panel.status.innerHTML=`${t._("DISMISSED")} ${i}`,n.Panel.skipButton.classList.remove("active")):(n.Panel.content.setAttribute("class","good"),n.Panel.status.innerHTML=`${t._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(n.Panel.skipButton.disabled=!0),cn(this.results),p.exportResultsPlugin&&(e=this.results,o=l.dismissedResults,n.Global.exportResultsPlugin&&(C=()=>{S(e,o)},O=()=>{P(e)},n.Panel.exportHTML.addEventListener("click",C),n.Panel.exportCSV.addEventListener("click",O))),Jt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}n.Panel.toggle.disabled=!1}var e,o,i,r,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(n.Global.html.removeAttribute("data-sa11y-active"),y(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),h(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter","data-sa11y-has-shadow-root"],"document"),n.Panel.outlineList.innerHTML="",p.showImageOutline&&(n.Panel.imagesList.innerHTML=""),n.Panel.pageIssuesList.innerHTML="",n.Panel.readabilityInfo.innerHTML="",n.Panel.readabilityDetails.innerHTML="",n.Panel.panel.classList.remove("has-page-issues"),n.Panel.pageIssues.classList.remove("active"),f(),document.removeEventListener("keydown",ln),n.Panel.skipButton.removeEventListener("click",dn),n.Global.exportResultsPlugin&&(n.Panel.exportHTML.removeEventListener("click",C),n.Panel.exportCSV.removeEventListener("click",O)),n.Panel.panel?.removeEventListener("click",L),n.Panel.dismissButton?.removeEventListener("click",I),n.Global.colourFilterPlugin&&(n.Panel.colourFilterSelect.value=0,n.Panel.colourPanel.classList.remove("active"),n.Panel.colourFilterSelect.classList.remove("active"),n.Panel.content.hidden=!1);n.Panel.status.firstChild;)n.Panel.status.removeChild(n.Panel.status.firstChild);document.querySelectorAll("[data-sa11y-has-shadow-root]").forEach((e=>{e.removeAttribute("data-sa11y-has-shadow-root")})),e&&n.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===u.getItem("sa11y-remember-panel")&&n.Panel.toggle.click(),n.Panel.toggle.disabled=!0},this.enabled=()=>{n.Panel.toggle.disabled=!1},this.find=(e,t,n)=>o(e,t,n),this.prepareDismissal=e=>m(e),this.sanitizeHTML=e=>r(e),this.initialize()}}export{t as Lang,vn as Sa11y}; diff --git a/dist/js/sa11y.umd.js b/dist/js/sa11y.umd.js index 53e5ca0b..45cc0ced 100644 --- a/dist/js/sa11y.umd.js +++ b/dist/js/sa11y.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,10 +33,15 @@ linkIgnoreStrings: '', // Other features + aboutContent: '', delayCheck: 0, delayCustomCheck: 500, showGoodLinkButton: true, showHinPageOutline: false, + showImageOutline: true, + editImageURLofCMS: '', + relativePathImageSRC: '', + relativePathImageID: '', detectSPArouting: false, doNotRun: '', dismissAnnotations: true, @@ -46,6 +51,9 @@ autoDetectShadowComponents: false, panelPosition: 'right', altTextMaxCharLength: 250, + susAltStopWords: '', + linkStopWords: '', + extraPlaceholderStopWords: '', headingMaxCharLength: 170, URLTextMaxCharLength: 40, URLAsLinkTextWarning: true, @@ -76,7 +84,7 @@ strongItalicsQA: true, pdfQA: true, documentQA: true, - documentLinks: '.ppt, .doc, .xls, .csv, sway.com, docs.google.com', + documentLinks: '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"], a[href^="https://sway."]', langQA: true, blockquotesQA: true, allCapsQA: true, @@ -136,59 +144,14 @@ return $el.replaceAll(/
            /g, '') .replaceAll(/`) - .replaceAll(/{r}/g, 'class="red-text"'); + .replaceAll(/{r}/g, 'class="red-text"') + .replaceAll(/{w}/g, 'class="yellow-text"') + .replaceAll(/{b}/g, 'class="badge"') + .replaceAll(/{wb}/g, 'class="badge warning-badge"') + .replaceAll(/{eb}/g, 'class="badge error-badge"'); }, }; - var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; - - /* ************************************************************ */ - /* Auto-detect shadow DOM or process provided web components. */ - /* ************************************************************ */ - const addStylestoShadow = (component) => { - const style = document.createElement('style'); - style.setAttribute('class', 'sa11y-css-utilities'); - style.textContent = styles$1; - component.shadowRoot.appendChild(style); - }; - - function findShadowComponents(option, desiredRoot) { - let webComponents; - if (option.autoDetectShadowComponents) { - // Elements to ignore. - const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; - - // Search all elements. - const root = document.querySelector(desiredRoot); - const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); - - // Query for open shadow roots & inject CSS utilities into every shadow DOM. - const foundShadows = []; - search.forEach((component) => { - if (component.shadowRoot && component.shadowRoot.mode === 'open') { - foundShadows.push(component); - addStylestoShadow(component); - } - }); - - // Return ALL web components on the page. - const all = Array.from(foundShadows).map((component) => component.tagName.toLowerCase()); - webComponents = (all.length === 1) ? `${all.toString()}` : all.join(', '); - } else { - // If autoDetectShadowComponents is OFF, use provided shadow dom. - webComponents = option.suppliedShadowComponents || ''; - - // Append styles to each provided shadow dom. - if (webComponents) { - const providedShadow = document.querySelectorAll(webComponents); - providedShadow.forEach((component) => { - addStylestoShadow(component); - }); - } - } - return webComponents; - } - const Constants = (function myConstants() { /* **************** */ /* Initialize Roots */ @@ -222,6 +185,7 @@ Global.headless = option.headless; Global.panelPosition = option.panelPosition; Global.dismissAnnotations = option.dismissAnnotations; + Global.aboutContent = option.aboutContent; // Toggleable plugins Global.contrastPlugin = option.contrastPlugin; @@ -230,6 +194,10 @@ Global.colourFilterPlugin = option.colourFilterPlugin; Global.checkAllHideToggles = option.checkAllHideToggles; Global.exportResultsPlugin = option.exportResultsPlugin; + Global.showImageOutline = option.showImageOutline; + Global.editImageURLofCMS = option.editImageURLofCMS; + Global.relativePathImageSRC = option.relativePathImageSRC; + Global.relativePathImageID = option.relativePathImageID; // A11y: Determine scroll behaviour let reducedMotion = false; @@ -257,10 +225,17 @@ Panel.panel = Sa11yPanel.getElementById('panel'); Panel.content = Sa11yPanel.getElementById('panel-content'); Panel.controls = Sa11yPanel.getElementById('panel-controls'); + Panel.outline = Sa11yPanel.getElementById('outline-panel'); Panel.outlineContent = Sa11yPanel.getElementById('outline-content'); Panel.outlineList = Sa11yPanel.getElementById('outline-list'); Panel.outlineHeader = Sa11yPanel.getElementById('outline-header'); + + Panel.images = Sa11yPanel.getElementById('images-panel'); + Panel.imagesContent = Sa11yPanel.getElementById('images-content'); + Panel.imagesList = Sa11yPanel.getElementById('images-list'); + Panel.imagesHeader = Sa11yPanel.getElementById('images-header'); + Panel.notifBadge = Sa11yPanel.getElementById('notification-badge'); Panel.notifCount = Sa11yPanel.getElementById('notification-count'); Panel.notifText = Sa11yPanel.getElementById('notification-text'); @@ -272,10 +247,12 @@ Panel.pageIssuesHeader = Sa11yPanel.getElementById('page-issues-header'); Panel.pageIssuesContent = Sa11yPanel.getElementById('page-issues-content'); - // Settings + // Settings panel Panel.settings = Sa11yPanel.getElementById('settings-panel'); Panel.settingsHeader = Sa11yPanel.getElementById('settings-header'); Panel.settingsContent = Sa11yPanel.getElementById('settings-content'); + + // Settings toggles Panel.contrastToggle = Sa11yPanel.getElementById('contrast-toggle'); Panel.labelsToggle = Sa11yPanel.getElementById('labels-toggle'); Panel.linksToggle = Sa11yPanel.getElementById('links-advanced-toggle'); @@ -295,6 +272,7 @@ // Buttons Panel.toggle = Sa11yPanel.getElementById('toggle'); Panel.outlineToggle = Sa11yPanel.getElementById('outline-toggle'); + Panel.imagesToggle = Sa11yPanel.getElementById('images-toggle'); Panel.settingsToggle = Sa11yPanel.getElementById('settings-toggle'); Panel.skipButton = Sa11yPanel.getElementById('skip-button'); Panel.dismissButton = Sa11yPanel.getElementById('dismiss-button'); @@ -443,16 +421,6 @@ EmbeddedContent.All = `${EmbeddedContent.Video}, ${EmbeddedContent.Audio}, ${EmbeddedContent.Visualization}`; } - /* ***************** */ - /* Shadow Components */ - /* ***************** */ - const Shadow = {}; - function initializeShadowSearch(checkRoot, autoDetectShadowComponents, shadowComponents) { - Shadow.Components = findShadowComponents( - checkRoot, - autoDetectShadowComponents); - } - return { initializeRoot, Root, @@ -466,8 +434,6 @@ Exclusions, initializeEmbeddedContent, EmbeddedContent, - initializeShadowSearch, - Shadow, }; }()); @@ -496,8 +462,8 @@ if (!root) root = document.body; } - const shadowComponents = Constants.Shadow.Components; - const shadow = (shadowComponents) ? `, ${shadowComponents}` : ''; + const shadowComponents = document.querySelectorAll('[data-sa11y-has-shadow-root]'); + const shadow = (shadowComponents) ? ', [data-sa11y-has-shadow-root]' : ''; const exclusions = Constants.Exclusions.Container; const additional = (exclude !== undefined) ? `, ${exclude}` : ''; @@ -509,9 +475,8 @@ // 2. Dive into the each shadow root and collect an array of its results. const shadowFind = []; // Remove first comma and whitespace. - const prepShadow = shadowComponents.trim().replace(/^,+/, ''); elements.forEach((el, i) => { - if (el && el.matches && el.matches(prepShadow) && el.shadowRoot) { + if (el && el.matches && el.matches('[data-sa11y-has-shadow-root]') && el.shadowRoot) { shadowFind[i] = el.shadowRoot.querySelectorAll(`:is(${selector}):not(${exclusions}${additional})`); } }); @@ -942,14 +907,21 @@ * Checks if a scrollable area within a container element is scrollable or not, and applies appropriate CSS classes and attributes. Make sure to add aria-label manually. * @param {Element} scrollArea The scrollable area element to check. * @param {Element} container The container element that wraps the scrollable area. + * @param {Attribute} ariaLabel Give scroll area an accessible name and region landmark. */ - function isScrollable(scrollArea, container) { - if (scrollArea.scrollHeight > container.clientHeight) { - container.classList.add('scrollable'); - scrollArea.setAttribute('tabindex', '0'); - } else { - container.classList.remove('scrollable'); - } + function isScrollable(scrollArea, container, ariaLabel) { + setTimeout(() => { + if (scrollArea.scrollHeight > container.clientHeight) { + container.classList.add('scrollable'); + scrollArea.setAttribute('tabindex', '0'); + if (ariaLabel) { + scrollArea.setAttribute('aria-label', ariaLabel); + scrollArea.setAttribute('role', 'region'); + } + } else { + container.classList.remove('scrollable'); + } + }, 50); } /** @@ -1140,6 +1112,43 @@ }; }()); + var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; + + /* ************************************************************ */ + /* Auto-detect shadow DOM or process provided web components. */ + /* ************************************************************ */ + const addStylestoShadow = (component) => { + const style = document.createElement('style'); + style.setAttribute('class', 'sa11y-css-utilities'); + style.textContent = styles$1; + component.shadowRoot.appendChild(style); + }; + + function findShadowComponents(option) { + if (option.autoDetectShadowComponents) { + // Elements to ignore. + const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; + + // Search all elements. + const root = document.querySelector(option.checkRoot); + const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); + + // Query for open shadow roots & inject CSS utilities into every shadow DOM. + search.forEach((component) => { + if (component.shadowRoot && component.shadowRoot.mode === 'open') { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + } + }); + } else if (option.shadowComponents) { + const providedShadow = document.querySelectorAll(option.shadowComponents); + providedShadow.forEach((component) => { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + }); + } + } + /* ******************************************************** */ /* Feature to detect if URL changed for bookmarklet/SPAs. */ /* ******************************************************** */ @@ -1159,7 +1168,7 @@ url = window.location.href; // Update current URL } }, 250); - window.addEventListener('mousemove', checkURL); + window.addEventListener('click', checkURL); window.addEventListener('keydown', checkURL); } } @@ -1543,7 +1552,8 @@ // Make issue messages more readable in CSV format. const prepContent = content .replaceAll(/]*>.*?<\/span>/gi, '') - .replaceAll('', ' | '); + .replaceAll('', ' | ') + .replaceAll(/"/g, '""'); const stripHTML = stripHTMLtags(String(prepContent)); const encoded = decodeHTML(stripHTML); @@ -1564,7 +1574,8 @@ const csvContent = `${headers.join(',')}\n${filteredObjects.map((obj) => headers.map((header) => obj[header]).join(',')).join('\n')}`; // Create blob - const blob = new Blob([csvContent], { type: 'text/csv' }); + const bom = new Uint8Array([0xEF, 0xBB, 0xBF]); + const blob = new Blob([bom, csvContent], { type: 'text/csv;charset=utf-8;' }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; @@ -1608,7 +1619,7 @@ var styles = ":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"; - var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; + var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; class ConsoleErrors extends HTMLElement { constructor(error) { @@ -1703,7 +1714,7 @@ }; } - var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; + var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:\"\";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; class ControlPanel extends HTMLElement { connectedCallback() { @@ -1796,6 +1807,12 @@ ` : ''; + /* CUSTOMIZABLE ABOUT SECTION */ + const aboutSection = Constants.Global.aboutContent ? ` +
            + ${Constants.Global.aboutContent} +
            ` : ''; + /* MAIN TOGGLE */ const mainToggle = ` `; + + // Spacer for toggle width... + const spacer = Constants.Global.showImageOutline + ? '
            ' + : '
            '; + const tabToggles = `
            - ${(panelPosition === 'left') ? '
            ' : ''} + ${(panelPosition === 'left') ? spacer : ''} + ${Constants.Global.showImageOutline ? imageToggleButton : ''} - ${(panelPosition === 'right') ? '
            ' : ''} + ${(panelPosition === 'right') ? spacer : ''}
            `; /* MAIN CONTAINER */ @@ -1925,6 +1966,7 @@ ${colourFilterPanel} ${tabToggles} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${pageIssues} @@ -1935,6 +1977,7 @@
            ${pageIssues} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${colourFilterPanel} @@ -2197,6 +2240,80 @@ /* eslint-disable no-return-assign */ + /** + * OUTLINE PANEL. + */ + const openOutline = () => { + Constants.Panel.outlineToggle.classList.add('active'); + Constants.Panel.outline.classList.add('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-outline', 'Opened'); + isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = false); + + const event = new CustomEvent('sa11y-build-heading-outline'); + document.dispatchEvent(event); + }; + + const closeOutline = () => { + Constants.Panel.outline.classList.remove('active'); + Constants.Panel.outlineToggle.classList.remove('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-outline', 'Closed'); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = true); + }; + + /** + * IMAGES PANEL. + */ + const openImages = () => { + Constants.Panel.imagesToggle.classList.add('active'); + Constants.Panel.images.classList.add('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-images', 'Opened'); + isScrollable(Constants.Panel.imagesList, Constants.Panel.imagesContent); + + const event = new CustomEvent('sa11y-build-image-outline'); + document.dispatchEvent(event); + }; + + const closeImages = () => { + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.classList.remove('active'); + Constants.Panel.images.classList.remove('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-images', 'Closed'); + } + }; + + /** + * SETTINGS PANEL. + */ + const openSettings = () => { + Constants.Panel.settingsToggle.classList.add('active'); + Constants.Panel.settings.classList.add('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-settings', 'Opened'); + isScrollable( + Constants.Panel.settingsContent, + Constants.Panel.settingsContent, + Lang._('SETTINGS'), + ); + }; + + const closeSettings = () => { + Constants.Panel.settings.classList.remove('active'); + Constants.Panel.settingsToggle.classList.remove('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-settings', 'Closed'); + }; + /* **************************************************************** */ /* Main panel: Initialize Show Outline and Settings buttons/tabs. */ /* **************************************************************** */ @@ -2206,46 +2323,43 @@ /* **************** */ Constants.Panel.outlineToggle.addEventListener('click', () => { if (Constants.Panel.outlineToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + closeOutline(); } else { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-outline', 'Opened'); - store.setItem('sa11y-remember-settings', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = false); + openOutline(); + closeSettings(); + closeImages(); } // Set focus on Page Outline heading for accessibility. Constants.Panel.outlineHeader.focus(); - - // Close Settings panel when Show Outline is active. - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); }); // Remember to leave outline open if (store.getItem('sa11y-remember-outline') === 'Opened') { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + openOutline(); + } - setTimeout(() => { - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); - }, 0); + /* **************** */ + /* Images panel */ + /* **************** */ + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.addEventListener('click', () => { + if (Constants.Panel.imagesToggle.getAttribute('aria-expanded') === 'true') { + closeImages(); + } else { + openImages(); + closeOutline(); + closeSettings(); + } + + // Set focus on Images heading for accessibility. + Constants.Panel.imagesHeader.focus(); + }); + + // Remember to leave outline open + if (store.getItem('sa11y-remember-images') === 'Opened') { + openImages(); + } } /* **************** */ @@ -2253,49 +2367,20 @@ /* **************** */ Constants.Panel.settingsToggle.addEventListener('click', () => { if (Constants.Panel.settingsToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-settings', 'Closed'); + closeSettings(); } else { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-settings', 'Opened'); - store.setItem('sa11y-remember-outline', 'Closed'); + openSettings(); + closeOutline(); + closeImages(); } // Set focus on Settings heading for accessibility. Constants.Panel.settingsHeader.focus(); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - - // Close Show Outline panel when Settings is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Keyboard accessibility fix for scrollable panel content. - if (Constants.Panel.settingsContent.clientHeight > 350) { - Constants.Panel.settingsContent.setAttribute('tabindex', '0'); - Constants.Panel.settingsContent.setAttribute('aria-label', `${Lang._('SETTINGS')}`); - Constants.Panel.settingsContent.setAttribute('role', 'region'); - } - - // Close Outline panel when Show Outline is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('settings-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); }); // Remember to leave settings open if (store.getItem('sa11y-remember-settings') === 'Opened') { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + openSettings(); } // Accessibility: Skip link to Page Issues @@ -2304,49 +2389,25 @@ }); // Page issues: add gradient if scrollable list. - setTimeout(() => { - isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); - }, 0); - - // Enhanced keyboard accessibility for panel. - Constants.Panel.controls.addEventListener('keydown', (e) => { - const $tab = Constants.Panel.panel.querySelectorAll('#outline-toggle[role=tab], #settings-toggle[role=tab]'); - if (e.key === 'ArrowRight') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowDown') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowLeft') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowUp') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } + isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); + + /* ******************************** */ + /* Better keyboard accessibility. */ + /* ******************************** */ + const tabs = Constants.Panel.panel.querySelectorAll('[role=tab]'); + let currentIndex = Array.from(tabs).findIndex((tab) => tab.classList.contains('active')); + tabs.forEach((tab) => { + tab.addEventListener('keydown', (e) => { + if (e.key === 'ArrowRight') { + e.preventDefault(); + currentIndex = (currentIndex + 1) % tabs.length; + tabs[currentIndex].focus(); + } else if (e.key === 'ArrowLeft') { + e.preventDefault(); + currentIndex = (currentIndex - 1 + tabs.length) % tabs.length; + tabs[currentIndex].focus(); } - } + }); }); } @@ -2355,43 +2416,44 @@ */ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { - // Create a single array that gets appended to heading outline. - const outlineArray = []; - - // Find all dismissed headings and update headingOutline array. - const findDismissedHeadings = dismissed.map((e) => { - const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); - if (found === undefined) return ''; - return found; - }); - findDismissedHeadings.forEach(($el) => { - Object.assign($el, { dismissedHeading: true }); - }); - - // Iterate through object that contains all headings (and error type). - headingOutline.forEach((heading) => { - const $el = heading.element; - const level = heading.headingLevel; - const headingText = heading.text; - const i = heading.index; - const issue = heading.type; - const visibility = heading.hidden; - const parent = heading.visibleParent; - const dismissedH = heading.dismissedHeading; - const { isWithinRoot } = heading; - - // Filter out specified headings in outlineIgnore prop. - const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; - - if (!ignoreArray.includes($el)) { - // Indicate if heading is totally hidden or visually hidden. - const visibleIcon = (visibility === true) ? 'Hidden' : ''; - const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; - const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + const outlineHandler = () => { + // Create a single array that gets appended to heading outline. + const outlineArray = []; + + // Find all dismissed headings and update headingOutline array. + const findDismissedHeadings = dismissed.map((e) => { + const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; + }); + findDismissedHeadings.forEach(($el) => { + Object.assign($el, { dismissedHeading: true }); + }); - let append; - if (issue === 'error' && isWithinRoot === true) { - append = ` + // Iterate through object that contains all headings (and error type). + headingOutline.forEach((heading) => { + const $el = heading.element; + const level = heading.headingLevel; + const headingText = heading.text; + const i = heading.index; + const issue = heading.type; + const visibility = heading.hidden; + const parent = heading.visibleParent; + const dismissedH = heading.dismissedHeading; + const { isWithinRoot } = heading; + + // Filter out specified headings in outlineIgnore prop. + const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; + + if (!ignoreArray.includes($el)) { + // Indicate if heading is totally hidden or visually hidden. + const visibleIcon = (visibility === true) ? 'Hidden' : ''; + const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; + const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + + let append; + if (issue === 'error' && isWithinRoot === true) { + append = `
          • @@ -2402,9 +2464,9 @@ ${headingText}
          • `; - outlineArray.push(append); - } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { - append = ` + outlineArray.push(append); + } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { + append = `
          • @@ -2413,154 +2475,305 @@ ${headingText}
          • `; - outlineArray.push(append); - } else { - append = ` + outlineArray.push(append); + } else { + append = `
          • ${visibleIcon} ${badgeH + level} ${headingText}
          • `; - outlineArray.push(append); - } + outlineArray.push(append); + } - /** - * Append heading labels. - */ - const label = document.createElement('sa11y-heading-label'); - const anchor = document.createElement('sa11y-heading-anchor'); - label.hidden = true; - - // If heading is in a hidden container, place the anchor just before it's most visible parent. - if (parent !== null) { - $el.insertAdjacentElement('beforeend', label); - const hiddenParent = parent.previousElementSibling; - anchor.setAttribute('id', `sa11y-h${i}`); - if (hiddenParent) { - hiddenParent.insertAdjacentElement('beforebegin', anchor); - hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + /** + * Append heading labels. + */ + const label = document.createElement('sa11y-heading-label'); + const anchor = document.createElement('sa11y-heading-anchor'); + label.hidden = true; + + // If heading is in a hidden container, place the anchor just before it's most visible parent. + if (parent !== null) { + $el.insertAdjacentElement('beforeend', label); + const hiddenParent = parent.previousElementSibling; + anchor.setAttribute('id', `sa11y-h${i}`); + if (hiddenParent) { + hiddenParent.insertAdjacentElement('beforebegin', anchor); + hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + } else { + parent.parentNode.insertAdjacentElement('beforebegin', anchor); + parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + } } else { - parent.parentNode.insertAdjacentElement('beforebegin', anchor); - parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + // If the heading isn't hidden, append visible label. + $el.insertAdjacentElement('beforeend', label); + + // Create anchor above visible label. + label.insertAdjacentElement('beforebegin', anchor); + anchor.setAttribute('id', `sa11y-h${i}`); } - } else { - // If the heading isn't hidden, append visible label. - $el.insertAdjacentElement('beforeend', label); - // Create anchor above visible label. - label.insertAdjacentElement('beforebegin', anchor); - anchor.setAttribute('id', `sa11y-h${i}`); + // Populate heading label. + const content = document.createElement('span'); + content.classList.add('heading-label'); + content.innerHTML = `H${level}`; + label.shadowRoot.appendChild(content); + + // Make heading labels visible when panel is open. + if (store.getItem('sa11y-remember-outline') === 'Opened') { + label.hidden = false; + } } + }); - // Populate heading label. - const content = document.createElement('span'); - content.classList.add('heading-label'); - content.innerHTML = `H${level}`; - label.shadowRoot.appendChild(content); + // Append headings to Page Outline. + Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) + ? `
          • ${Lang._('PANEL_NO_HEADINGS')}
          • ` + : outlineArray.join(' '); - // Make heading labels visible when panel is open. - if (store.getItem('sa11y-remember-outline') === 'Opened') { - label.hidden = false; - } - } - }); + // Make clickable! + setTimeout(() => { + const panel = document.querySelector('sa11y-control-panel'); + const shadow = panel.shadowRoot; + const children = Array.from(shadow.querySelectorAll('#outline-list a')); + + children.forEach(($el, i) => { + // Make Page Outline clickable. + const outlineLink = shadow.getElementById(`sa11y-link-${i}`); + + const headingID = find( + `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, + 'document', + Constants.Exclusions.Container, + ); - // Append headings to Page Outline. - Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) - ? `
          • ${Lang._('PANEL_NO_HEADINGS')}
          • ` - : outlineArray.join(' '); + // Scroll to. + const pulseAndScroll = (heading) => { + addPulse(heading.parentElement); + heading.scrollIntoView({ + behavior: `${Constants.Global.scrollBehaviour}`, + block: 'center', + }); + }; - // Make clickable! - setTimeout(() => { - const panel = document.querySelector('sa11y-control-panel'); - const shadow = panel.shadowRoot; - const children = Array.from(shadow.querySelectorAll('#outline-list a')); - - children.forEach(($el, i) => { - // Make Page Outline clickable. - const outlineLink = shadow.getElementById(`sa11y-link-${i}`); - - const headingID = find( - `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, - 'document', - Constants.Exclusions.Container, - ); + // Add pulse. + const smoothPulse = (e) => { + if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { + headingID.forEach((heading) => { + pulseAndScroll(heading); + }); - // Scroll to. - const pulseAndScroll = (heading) => { - addPulse(heading.parentElement); - heading.scrollIntoView({ - behavior: `${Constants.Global.scrollBehaviour}`, - block: 'center', - }); - }; + if (outlineLink.classList.contains('hidden-h')) { + createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); + } else if (Constants.Panel.alert.classList.contains('active')) { + removeAlert(); + } + } + e.preventDefault(); + }; - // Add pulse. - const smoothPulse = (e) => { - if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { - headingID.forEach((heading) => { - pulseAndScroll(heading); - }); + // Attach event listeners. + outlineLink?.addEventListener('click', smoothPulse, false); + outlineLink?.addEventListener('keyup', smoothPulse, false); + }); - if (outlineLink.classList.contains('hidden-h')) { - createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); - } else if (Constants.Panel.alert.classList.contains('active')) { - removeAlert(); + /** + * Roving tabindex menu for page outline. + * Thanks to Srijan for this snippet! + * @link https://blog.srij.dev/roving-tabindex-from-scratch + */ + let current = 0; + const handleKeyDown = (e) => { + if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; + if (e.code === 'Space') { + children[current].click(); + return; + } + const selected = children[current]; + selected.setAttribute('tabindex', -1); + let next; + if (e.code === 'ArrowDown') { + next = current + 1; + if (current === children.length - 1) { + next = 0; + } + } else if ((e.code === 'ArrowUp')) { + next = current - 1; + if (current === 0) { + next = children.length - 1; } } + children[next].setAttribute('tabindex', 0); + children[next].focus(); + current = next; e.preventDefault(); }; + Constants.Panel.outlineList.addEventListener('focus', () => { + if (children.length > 0) { + Constants.Panel.outlineList.setAttribute('tabindex', -1); + children[current].setAttribute('tabindex', 0); + children[current].focus(); + } + Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + }); + Constants.Panel.outlineList.addEventListener('blur', () => { + Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + }); + }, 0); - // Attach event listeners. - outlineLink?.addEventListener('click', smoothPulse, false); - outlineLink?.addEventListener('keyup', smoothPulse, false); - }); + // Remove event listener and returned dismissed results. + document.removeEventListener('sa11y-build-heading-outline', outlineHandler); + return dismissed; + }; - /** - * Roving tabindex menu for page outline. - * Thanks to Srijan for this snippet! - * @link https://blog.srij.dev/roving-tabindex-from-scratch - */ - let current = 0; - const handleKeyDown = (e) => { - if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; - if (e.code === 'Space') { - children[current].click(); - return; - } - const selected = children[current]; - selected.setAttribute('tabindex', -1); - let next; - if (e.code === 'ArrowDown') { - next = current + 1; - if (current === children.length - 1) { - next = 0; - } - } else if ((e.code === 'ArrowUp')) { - next = current - 1; - if (current === 0) { - next = children.length - 1; - } - } - children[next].setAttribute('tabindex', 0); - children[next].focus(); - current = next; - e.preventDefault(); - }; - Constants.Panel.outlineList.addEventListener('focus', () => { - if (children.length > 0) { - Constants.Panel.outlineList.setAttribute('tabindex', -1); - children[current].setAttribute('tabindex', 0); - children[current].focus(); + // Generate heading outline based on local storage or if "Outline" button is selected. + const rememberOutline = store.getItem('sa11y-remember-outline'); + if (rememberOutline === 'Opened') outlineHandler(); + document.addEventListener('sa11y-build-heading-outline', outlineHandler); + } + + /** + * Create Images outline. + */ + + function generateImageOutline(dismissed, imageResults) { + const generateEditLink = (image) => { + let finalURL; + // Only generate edit link if prop is populated. + if (Constants.Global.editImageURLofCMS.length !== 0) { + const { src } = image.element; + + // Check if image's SRC attribute is hosted on same domain or is relative path. + const relativePath = Constants.Global.relativePathImageSRC + ? Constants.Global.relativePathImageSRC + : window.location.host; + + const parts = src.split(relativePath); + const fileExtension = parts.length > 1 ? parts[1] : ''; + + const imageID = Constants.Global.relativePathImageID; + let imageUniqueID; + if (imageID.length && image.element.classList.length) { + image.element.classList.forEach((className) => { + if (className.startsWith(imageID)) { + const [digit] = className.match(/\d+/) || []; + imageUniqueID = digit; + } + }); } - Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + + const editURL = (relativePath && imageID.length) + ? Constants.Global.editImageURLofCMS + imageUniqueID + : Constants.Global.editImageURLofCMS + fileExtension; + + // Only add edit button to relative (locally hosted) images. + const isRelativeLink = (imageSrc) => imageSrc.includes(window.location.host) || imageSrc.startsWith(relativePath); + finalURL = (isRelativeLink(src) && imageUniqueID !== undefined) + ? `` + : ''; + } + return finalURL ?? ''; + }; + + const imageOutlineHandler = () => { + // Create a single array that gets appended to heading outline. + const imageArray = []; + + // Find all dismissed images and update headingOutline array. + const findDismissedImages = dismissed.map((e) => { + const found = imageResults.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; }); - Constants.Panel.outlineList.addEventListener('blur', () => { - Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + + findDismissedImages.forEach(($el) => { + Object.assign($el, { dismissedImage: true }); }); - }, 0); - return dismissed; + + imageResults.forEach((image) => { + const issue = image.type; + const { dismissedImage } = image; + const altText = escapeHTML(image.element.alt); + + // Account for lazy loading libraries that use 'data-src' attribute. + const { src } = image.element; + const dataSrc = image.element.getAttribute('data-src'); + const source = (dataSrc && dataSrc.length > 3) ? dataSrc : src; + + // Generate edit link if locally hosted image and prop is enabled. + const edit = generateEditLink(image); + + let append; + if (issue === 'error') { + const missing = altText.length === 0 + ? `
            ${Lang._('MISSING')}
            ` + : `${altText}`; + append = ` +
          • + +
            +
            + + ${Lang._('ERROR')} + ${Lang._('ALT')} +
            + ${missing} +
            + ${edit} +
          • `; + imageArray.push(append); + } else if (issue === 'warning' && !dismissedImage) { + const decorative = altText.length === 0 + ? `
            ${Lang._('DECORATIVE')}
            ` : ''; + append = ` +
          • + +
            +
            + + ${Lang._('WARNING')} + ${Lang._('ALT')} +
            + ${decorative} ${altText} +
            + ${edit} +
          • `; + imageArray.push(append); + } else { + const decorative = altText.length === 0 + ? `
            ${Lang._('DECORATIVE')}
            ` : ''; + append = ` +
          • + +
            +
            ${Lang._('ALT')}
            + ${decorative} ${altText} +
            + ${edit} +
          • `; + imageArray.push(append); + } + }); + + // Append headings to Page Outline. + Constants.Panel.imagesList.innerHTML = (imageArray.length === 0) + ? `
          • ${Lang._('IMAGES_NOT_FOUND')}
          • ` + : imageArray.join(' '); + + // Remove event listener. + document.removeEventListener('sa11y-build-image-outline', imageOutlineHandler); + }; + + /* Generate image outline based on local storage or if "Image" button is selected. */ + const rememberImages = store.getItem('sa11y-remember-images'); + if (rememberImages === 'Opened') imageOutlineHandler(); + document.addEventListener('sa11y-build-image-outline', imageOutlineHandler); } /* ************************************************************ */ @@ -6626,16 +6839,33 @@ hit[0] = word; } }); - Lang._('SUSPICIOUS_ALT_STOPWORDS').forEach((word) => { - if (alt.toLowerCase().indexOf(word) >= 0) { + + const susAltWordsOverride = (option.susAltStopWords) ? option.susAltStopWords.split(',').map((word) => word.trim()) : Lang._('SUSPICIOUS_ALT_STOPWORDS'); + susAltWordsOverride.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { hit[1] = word; } }); + Lang._('PLACEHOLDER_ALT_STOPWORDS').forEach((word) => { if (alt.length === word.length && alt.toLowerCase().indexOf(word) >= 0) { hit[2] = word; } }); + + // Additional placeholder stopwords to flag as an error. + const { extraPlaceholderStopWords } = option; + if (extraPlaceholderStopWords.length) { + const array = extraPlaceholderStopWords.split(',').map((word) => word.trim()); + array.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { + hit[2] = word; + } + }); + } + return hit; }; @@ -7071,7 +7301,8 @@ }); // Other warnings we want to add. - Lang._('WARNING_ALT_STOPWORDS').forEach((word) => { + const linkStopWords = (option.linkStopWords) ? option.linkStopWords.split(',').map((word) => word.trim()) : Lang._('WARNING_ALT_STOPWORDS'); + linkStopWords.forEach((word) => { if (textContent.toLowerCase().indexOf(word) >= 0) { hit[1] = word; } @@ -7331,6 +7562,39 @@ return results; } + /** + * Converts a color string in the format 'color(srgb r g b [a])' to RGBA format. + * If alpha value is not provided, it defaults to 1 (fully opaque). + * @param {string} colorString The color string in the format 'color(srgb r g b [a])'. + * @returns {string} The RGBA color string in the format 'rgba(r, g, b, a)'. + * Returns 'invalid-format' if the input format is invalid. + */ + const convertColorToRGBA = (colorString) => { + if (colorString.startsWith('color(srgb')) { + const rgbaRegex = /srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/; // Added alpha value regex group + const match = colorString.match(rgbaRegex); + + if (match && match.length >= 4) { + const [r, g, b, a] = match.slice(1); + + // Ensure the parsed values are within the valid range [0, 1]. + const parsedR = Math.min(1, parseFloat(r)); + const parsedG = Math.min(1, parseFloat(g)); + const parsedB = Math.min(1, parseFloat(b)); + + // Parse alpha value or default to 1 if not provided + const alpha = a !== undefined ? Math.min(1, parseFloat(a)) : 1; + + // Converting RGB to RGBA. + const rgbaColor = `rgba(${Math.round(parsedR * 255)}, ${Math.round(parsedG * 255)}, ${Math.round(parsedB * 255)}, ${alpha})`; + + return rgbaColor; + } + return 'invalid-format'; + } + return colorString; // Return the original color if it's not in the color() format. + }; + /** * Rulesets: Contrast * Color contrast plugin by Jason Day. @@ -7404,18 +7668,18 @@ } const styles = getComputedStyle(el); - const bgColor = styles.backgroundColor; + const bgColor = convertColorToRGBA(styles.backgroundColor); const bgImage = styles.backgroundImage; const rgb = `${contrastObject.parseRgb(bgColor)}`; const alpha = rgb.split(','); - // if background has alpha transparency, flag manual check + // if background has alpha transparency, flag manual check. if (alpha[3] < 1 && alpha[3] > 0) { return 'alpha'; } - // if element has no background image, or transparent return bgColor if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent' && bgImage === 'none' && alpha[3] !== '0') { + // if element has no background image, or transparent return bgColor return bgColor; } if (bgImage !== 'none') { return 'image'; @@ -7439,8 +7703,12 @@ const elem = Elements.Found.Contrast[i]; if (Elements.Found.Contrast) { + let ratio; + let error; + let warning; + const style = getComputedStyle(elem); - const { color } = style; + const color = convertColorToRGBA(style.color); const { fill } = style; const fontSize = parseInt(style.fontSize, 10); const pointSize = fontSize * (3 / 4); @@ -7449,14 +7717,26 @@ const background = contrastObject.getBackground(elem); const textString = [].reduce.call(elem.childNodes, (a, b) => a + (b.nodeType === 3 ? b.textContent : ''), ''); const text = textString.trim(); - const clip = window.getComputedStyle(elem).clip.replace(/\s/g, ''); - const width = parseFloat(window.getComputedStyle(elem).width); - const height = parseFloat(window.getComputedStyle(elem).height); - let ratio; - let error; - let warning; - if ((width === 1 && height === 1) && (clip === "rect(0,0,0,0)" || clip === "rect(1px,1px,1px,1px)")) ; else if (htmlTag === 'SVG') { + // Maybe visually hidden text. + const computedStyle = window.getComputedStyle(elem); + const clip = computedStyle.clip.replace(/\s/g, ''); + const clipPath = computedStyle.getPropertyValue('clip-path'); + const width = parseFloat(computedStyle.width); + const height = parseFloat(computedStyle.height); + const maybeVisuallyHidden = (width === 1 && height === 1) && + (clipPath === 'inset(50%)' || /^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(clip)); + + // Ignore if visually hidden for screen readers. + if (maybeVisuallyHidden) { + return; + } else if (color.startsWith('color(')) { + // Push a warning if using a color() functional notation. + warning = { + elem, + }; + contrastErrors.warnings.push(warning); + } else if (htmlTag === 'SVG') { ratio = Math.round(contrastObject.contrastRatio(fill, background) * 100) / 100; if (ratio < 3) { error = { @@ -8072,9 +8352,8 @@ const href = $el.getAttribute('href'); // Has file extension. - const extensions = Constants.Global.documentLinks.split(', '); - const hasExtension = extensions.some((extension) => href.includes(extension)); - const hasPDF = href.includes('.pdf'); + const hasExtension = $el.matches(Constants.Global.documentLinks); + const hasPDF = $el.matches('a[href$=".pdf"], a[href*=".pdf?"]'); // Dismiss key. const key = prepareDismissal(`DOCUMENT${href}`); @@ -8401,11 +8680,9 @@ /* Error: Duplicate IDs */ /* *************************************************************** */ if (option.duplicateIdQA) { - const doms = Constants.Shadow.Components ? `body, ${Constants.Shadow.Components}` : 'body'; - const allDoms = document.querySelectorAll(doms); - // Look for duplicate IDs within each DOM. - allDoms.forEach((dom) => { + const doms = document.querySelectorAll('body, [data-sa11y-has-shadow-root]'); + doms.forEach((dom) => { const allIds = new Set(); const findDuplicateIds = (ids, withinDOM) => { ids.forEach(($el) => { @@ -8662,6 +8939,7 @@ try { this.results = []; this.headingOutline = []; + this.imageOutline = []; this.errorCount = 0; this.warningCount = 0; this.customChecksRunning = false; @@ -8674,7 +8952,7 @@ Constants.initializeRoot(desiredRoot, desiredReadabilityRoot); // Find all web components on the page. - Constants.initializeShadowSearch(option, desiredRoot); + findShadowComponents(option); // Find and cache elements. Elements.initializeElements(option); @@ -8689,6 +8967,8 @@ checkEmbeddedContent(this.results, option); checkReadability(); + this.imageResults = this.results.filter((item) => item.element?.tagName === 'IMG'); + /* Custom checks */ if (option.customChecks === true) { // Option 1: Provide via sa11y-custom-checks.js @@ -8796,6 +9076,10 @@ option.showHinPageOutline, ); + if (option.showImageOutline) { + generateImageOutline(this.dismissed, this.imageResults); + } + updatePanel( dismiss.dismissCount, count.error, @@ -8835,6 +9119,17 @@ this.resetAll = (restartPanel = true) => { Constants.Global.html.removeAttribute('data-sa11y-active'); + // Remove from page. + remove([ + 'sa11y-annotation', + 'sa11y-heading-label', + 'sa11y-heading-anchor', + 'sa11y-tooltips', + '[data-sa11y-readability-period]', + '[data-sa11y-clone-image-text]', + '.sa11y-css-utilities', + ], 'document'); + // Reset all data attributes. resetAttributes([ 'data-sa11y-parent', @@ -8846,21 +9141,12 @@ 'data-sa11y-overflow', 'data-sa11y-pulse-border', 'data-sa11y-filter', - ], 'document'); - - // Remove from page. - remove([ - 'sa11y-annotation', - 'sa11y-heading-label', - 'sa11y-heading-anchor', - 'sa11y-tooltips', - '[data-sa11y-readability-period]', - '[data-sa11y-clone-image-text]', - '.sa11y-css-utilities', + 'data-sa11y-has-shadow-root', ], 'document'); // Remove from panel. Constants.Panel.outlineList.innerHTML = ''; + if (option.showImageOutline) Constants.Panel.imagesList.innerHTML = ''; Constants.Panel.pageIssuesList.innerHTML = ''; Constants.Panel.readabilityInfo.innerHTML = ''; Constants.Panel.readabilityDetails.innerHTML = ''; @@ -8881,6 +9167,11 @@ // Main panel warning and error count. while (Constants.Panel.status.firstChild) Constants.Panel.status.removeChild(Constants.Panel.status.firstChild); + // Remove data attribute from shadow root elements. + document.querySelectorAll('[data-sa11y-has-shadow-root]').forEach((el) => { + el.removeAttribute('data-sa11y-has-shadow-root'); + }); + if (restartPanel) { Constants.Panel.panel.classList.remove('active'); } diff --git a/dist/js/sa11y.umd.min.js b/dist/js/sa11y.umd.min.js index 5472c236..c19fcf39 100644 --- a/dist/js/sa11y.umd.min.js +++ b/dist/js/sa11y.umd.min.js @@ -1,6 +1,6 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -9,4 +9,4 @@ * For all acknowledgements, please visit: https://sa11y.netlify.app/acknowledgements/ * The above copyright notice shall be included in all copies or substantial portions of the Software. **/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Sa11y={})}(this,(function(e){"use strict";const t={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:".ppt, .doc, .xls, .csv, sway.com, docs.google.com",langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},n={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
            /g,'').replaceAll(/{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};const i=function(){const e={};const t={};const a={};const r={};const s={};const l={};const d={};return{initializeRoot:function(t,n){e.areaToCheck=document.querySelector(t),e.areaToCheck||(e.areaToCheck=document.querySelector("body")),e.Readability=document.querySelector(n),e.Readability||(e.areaToCheck?(e.Readability=e.areaToCheck,console.error(`Sa11y configuration error: The selector '${n}' used for the property 'readabilityRoot' does not exist. '${e.areaToCheck.tagName}' was used as a fallback.`)):e.Readability=document.querySelector("body"))},Root:e,initializeGlobal:function(e){t.html=document.querySelector("html"),t.headless=e.headless,t.panelPosition=e.panelPosition,t.dismissAnnotations=e.dismissAnnotations,t.contrastPlugin=e.contrastPlugin,t.formLabelsPlugin=e.formLabelsPlugin,t.linksAdvancedPlugin=e.linksAdvancedPlugin,t.colourFilterPlugin=e.colourFilterPlugin,t.checkAllHideToggles=e.checkAllHideToggles,t.exportResultsPlugin=e.exportResultsPlugin;let n=!1;"function"==typeof window.matchMedia&&(n=window.matchMedia("(prefers-reduced-motion: reduce)")),t.scrollBehaviour=!n||n.matches?"auto":"smooth",t.langDirection="rtl"===t.html.getAttribute("dir")?"rtl":"ltr",e.documentLinks&&(t.documentLinks=`${e.documentLinks}`)},Global:t,initializePanelSelectors:function(){const e=document.querySelector("sa11y-control-panel").shadowRoot;a.panel=e.getElementById("panel"),a.content=e.getElementById("panel-content"),a.controls=e.getElementById("panel-controls"),a.outline=e.getElementById("outline-panel"),a.outlineContent=e.getElementById("outline-content"),a.outlineList=e.getElementById("outline-list"),a.outlineHeader=e.getElementById("outline-header"),a.notifBadge=e.getElementById("notification-badge"),a.notifCount=e.getElementById("notification-count"),a.notifText=e.getElementById("notification-text"),a.status=e.getElementById("status"),a.pageIssues=e.getElementById("page-issues"),a.pageIssuesList=e.getElementById("page-issues-list"),a.pageIssuesHeader=e.getElementById("page-issues-header"),a.pageIssuesContent=e.getElementById("page-issues-content"),a.settings=e.getElementById("settings-panel"),a.settingsHeader=e.getElementById("settings-header"),a.settingsContent=e.getElementById("settings-content"),a.contrastToggle=e.getElementById("contrast-toggle"),a.labelsToggle=e.getElementById("labels-toggle"),a.linksToggle=e.getElementById("links-advanced-toggle"),a.readabilityToggle=e.getElementById("readability-toggle"),a.themeToggle=e.getElementById("theme-toggle"),a.contrastItem=e.getElementById("contrast-item"),a.labelsItem=e.getElementById("form-labels-item"),a.linksItem=e.getElementById("links-advanced-item"),a.readabilityItem=e.getElementById("readability-item"),a.darkModeItem=e.getElementById("dark-mode-item"),a.colourPanel=e.getElementById("panel-colour-filters"),a.colourFilterItem=e.getElementById("colour-filter-item"),a.colourFilterSelect=e.getElementById("colour-filter-select"),a.colourFilterIcon=e.getElementById("filter-icon"),a.toggle=e.getElementById("toggle"),a.outlineToggle=e.getElementById("outline-toggle"),a.settingsToggle=e.getElementById("settings-toggle"),a.skipButton=e.getElementById("skip-button"),a.dismissButton=e.getElementById("dismiss-button"),a.dismissTooltip=e.getElementById("dismiss-tooltip"),a.skipToPageIssues=e.getElementById("skip-to-page-issues"),a.exportHTML=e.getElementById("export-html"),a.exportCSV=e.getElementById("export-csv"),a.alert=e.getElementById("panel-alert"),a.alertText=e.getElementById("panel-alert-text"),a.alertPreview=e.getElementById("panel-alert-preview"),a.alertClose=e.getElementById("close-alert"),a.readability=e.getElementById("readability-panel"),a.readabilityInfo=e.getElementById("readability-info"),a.readabilityDetails=e.getElementById("readability-details")},Panel:a,initializeReadability:function(e){if(e.readabilityPlugin){r.Lang=n._("LANG_CODE").substring(0,2);const e=["en","fr","es","de","nl","it","sv","fi","da","no","nb","nn","pt"],t=i.Global.html.getAttribute("lang");if(t){const n=t.toLowerCase().substring(0,2);e.includes(n)&&e.includes(r.Lang)?r.Plugin=!0:r.Plugin=!1}else r.Plugin=!1}},Readability:r,initializeExclusions:function(e){if(e.containerIgnore){const t=e.containerIgnore.split(",").map((e=>`${e} *, ${e}`));s.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else s.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";s.Contrast="script, style, link",e.contrastIgnore&&(s.Contrast=`${e.contrastIgnore}, ${s.Contrast}`),s.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(s.Readability=`${e.readabilityIgnore}, ${s.Readability}`),e.headerIgnore&&(s.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(s.Outline=`${e.outlineIgnore}`),s.Images='[role="presentation"]',e.imageIgnore&&(s.Images=`${e.imageIgnore}, ${s.Images}`),s.Links=".anchorjs-link",e.linkIgnore&&(s.Links=`${e.linkIgnore}, ${s.Links}`),e.linkIgnoreSpan&&(s.LinkSpan=e.linkIgnoreSpan)},Exclusions:s,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Video=`video, ${t.join(", ")}`}else l.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Audio=`audio, ${t.join(", ")}`}else l.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Visualization=t.join(", ")}else l.Visualization="datastudio.google.com, tableau";l.All=`${l.Video}, ${l.Audio}, ${l.Visualization}`},EmbeddedContent:l,initializeShadowSearch:function(e,t,n){d.Components=function(e,t){let n;if(e.autoDetectShadowComponents){const e="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",i=document.querySelector(t),a=i?Array.from(i.querySelectorAll(`*:not(${e})`)):Array.from(document.body.querySelectorAll(`*:not(${e})`)),r=[];a.forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(r.push(e),o(e))}));const s=Array.from(r).map((e=>e.tagName.toLowerCase()));n=1===s.length?`${s.toString()}`:s.join(", ")}else n=e.suppliedShadowComponents||"",n&&document.querySelectorAll(n).forEach((e=>{o(e)}));return n}(e,t)},Shadow:d}}();function a(e,t,n){let o;"document"===t?o=document:"readability"===t?(o=i.Readability.Root,o||(o=i.Root.areaToCheck)):"root"===t?(o=i.Root.areaToCheck,o||(o=document.body)):"panel"===t?(o=i.Panel.panel,o||(o=document.body)):(o=document.querySelector(t),o||(o=document.body));const a=i.Shadow.Components,r=a?`, ${a}`:"",s=i.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(o.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[],n=a.trim().replace(/^,+/,"");if(d.forEach(((o,i)=>{o&&o.matches&&o.matches(n)&&o.shadowRoot&&(t[i]=o.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function r(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function s(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function l(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function d(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function c(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function p(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function u(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function g(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const m={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function f(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function b(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function h(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function y(e,t,n){h();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
            ${n}
            `:"";function c(){h();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
            ${t}
            `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function v(e,t){e.forEach((e=>{a(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function x(e,t){a(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function w(e,t){e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0")):t.classList.remove("scrollable")}function A(e){const t=e.element,n=`
            ${s(e.htmlPath)}
            `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${l(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const E=function(){const e={};const t={};return{initializeElements:function(t){e.Images=a("img","root",i.Exclusions.Images),e.Headings=a('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",i.Exclusions.Headings),e.HeadingOne=a('h1, [role="heading"][aria-level="1"]',"document",i.Exclusions.Headings),e.Links=a("a[href]","root",i.Exclusions.Links),e.Inputs=a("input, select, textarea","root",i.Exclusions.Container),e.Contrast=a("*","root",i.Exclusions.Contrast),e.Labels=a("label","root",i.Exclusions.Container),e.Readability=a("p, li","readability",i.Exclusions.Readability),e.Paragraphs=a("p","root",i.Exclusions.Container),e.Lists=a("li","root",i.Exclusions.Container),e.Spans=a("span","root",i.Exclusions.Container),e.Blockquotes=a("blockquote","root",i.Exclusions.Container),e.Tables=a('table:not([role="presentation"])',"root",i.Exclusions.Container),e.StrongItalics=a("strong, em","root",i.Exclusions.Container),e.Underlines=a("u","root",i.Exclusions.Container),e.Subscripts=a("sup, sub","root",i.Exclusions.Container),e.Language=i.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?a(t.linksToFlag,"root",i.Exclusions.Container):[],e.iframes=a("iframe:not(hidden), audio, video","root",i.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(i.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=a("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();function L(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==m.getItem("sa11y-remember-panel")&&m.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("mousemove",o),window.addEventListener("keydown",o)}}let k,I;function T(e,t,o,r){if(i.Global.dismissAnnotations){I=t=>{(async(e,t,o,i)=>{let r=JSON.parse(m.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=t.find((t=>t.id===e));if(null===r&&(setTimeout((()=>y(n._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=a(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;m.setItem("sa11y-latest-dismissed",n),m.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),m.setItem("sa11y-dismissed",JSON.stringify(r)),m.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),i(!1),await o()}}})(t,e,o,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",I),i.Panel.panel.addEventListener("click",I)}k=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const o=e.filter((e=>e.href!==window.location.pathname));m.setItem("sa11y-dismissed",JSON.stringify(o)),i.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(t,o,r)},i.Panel.dismissButton?.addEventListener("click",k)}var _=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function S(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function P(e,t){const o=function(e,t){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:t.length};function r(e,t){const o={error:n._("ERRORS"),warning:n._("WARNINGS"),dismissed:n._("DISMISSED")}[t];if(!(e.length>0))return"";let i=`

            ${o}

            `,r="
              ",l="
            ";return"dismissed"===t&&(r=`
            ${n.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
              `,l="
            "),i+=r,e.forEach((e=>{let t="";e.element&&(t=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
          • \n ${n._("PREVIEW")}:\n ${A(e)}\n
          • \n
          • \n ${n._("ELEMENT")}:\n
            ${s(e.htmlPath)}
            \n
          • `:`\n
          • \n ${n._("ELEMENT")}:\n
            ${s(e.htmlPath)}
            \n
          • `);const o=e.cssPath?`
          • \n ${n._("PATH")}:\n
            ${e.cssPath}
            \n
          • `:"";i+=`
          • \n

            ${e.content.replace('

            '," | ")}

            \n
              ${t}${o}
            \n
          • `})),i+=l,i}const l=r(o,"error"),d=r(i,"warning"),c=r(t,"dismissed"),p=S(),u=p.titleCheck?"":`
            ${n._("PAGE_TITLE")}
            ${p.metaTitle}
            `,g=0!==a.error?`
            ${n._("ERRORS")}
            ${a.error}
            `:"",m=0!==a.warning?`
            ${n._("WARNINGS")}
            ${a.warning}
            `:"",f=0!==a.dismiss?`
            ${n._("DISMISSED")}
            ${a.dismiss}
            `:"";return`\n \n \n \n \n \n ${n._("RESULTS")}: ${p.metaTitle}\n \n \n \n
            \n

            ${n._("RESULTS")}

            \n
            \n
            \n ${u}\n
            URL
            \n
            ${p.pageURL}
            \n
            ${n._("DATE")}
            \n
            ${p.date}
            \n
            \n
            \n ${g}\n ${m}\n ${f}\n
            \n
            \n
            \n ${l}\n ${d}\n ${c}\n
            \n

            ${n.sprintf("GENERATED",'Sa11y')}

            \n
            \n \n \n `}(e,t),i=S(),a=new Blob([o],{type:"text/html"}),r=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;r.href=window.URL.createObjectURL(a),r.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(r),r.click(),setTimeout((()=>{document.body.removeChild(r),window.URL.revokeObjectURL(r.href)}),100)}function C(e){const t=S(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ");const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Blob([i],{type:"text/csv"}),r=window.URL.createObjectURL(a),s=document.createElement("a");s.href=r,s.href=window.URL.createObjectURL(a);const l=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;s.setAttribute("download",`Sa11y_${t.numericDate+l}.csv`),document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}let O,$;var N='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class R extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+N,e.appendChild(t);const o=document.createElement("div");o.setAttribute("id","dialog"),o.setAttribute("tabindex","-1");const a=window.location,r=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;o.innerHTML=`\n \n

            ${n._("ERROR")}

            \n

            ${n.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",r)}

            \n

            ${s(this.error.stack)}

            URL: ${a}

            \n `,e.appendChild(o),setTimeout((()=>{i.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class D extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+N,this.shadowRoot.appendChild(e);const t="On"===m.getItem("sa11y-remember-contrast"),o="On"===m.getItem("sa11y-remember-labels"),a="On"===m.getItem("sa11y-remember-links-advanced"),r="On"===m.getItem("sa11y-remember-readability"),s=i.Global.checkAllHideToggles,{panelPosition:l}=i.Global,d=i.Global.contrastPlugin?`\n
          • \n \n \n
          • `:"",c=i.Global.formLabelsPlugin?`\n
          • \n \n \n
          • `:"",p=i.Global.linksAdvancedPlugin?`\n `:"",u=i.Readability.Plugin?`\n
          • \n \n \n
          • `:"",g=i.Global.colourFilterPlugin?`\n
          • \n \n
            \n \n
            \n
          • `:"",f=i.Global.colourFilterPlugin?`\n
            \n \n

            ${n._("COLOUR_FILTER_MESSAGE")}

            \n
            `:"",b=i.Global.exportResultsPlugin?`\n
          • \n ${n._("EXPORT_RESULTS")}\n \n \n
          • `:"",h=`\n `,y=`\n
            \n
            \n

            ${n._("PAGE_ISSUES")}

            \n
            \n
            \n
              \n
              \n
              `,v=`\n
              \n
              \n

              ${n._("OUTLINE")}

              \n
              \n
              \n \n
              \n
              \n
              \n

              ${n._("LANG_READABILITY")}

              \n

              \n
                \n
                \n
                \n
                `,x=`\n
                \n
                \n

                ${n._("SETTINGS")}

                \n
                \n
                \n
                  \n ${d}\n ${c}\n ${p}\n ${u}\n
                • \n \n \n
                • \n ${b}\n ${g}\n
                \n
                \n
                `,w=`\n \n
                \n
                \n \n

                ${n._("ALERT_TEXT")}

                \n
                \n

                \n
                \n
                \n
                `,A=`\n
                \n \n \n \n
                \n

                ${n._("PANEL_HEADING")}

                \n

                \n
                \n
                `,E=`\n
                \n ${"left"===l?'
                ':""}\n \n \n ${"right"===l?'
                ':""}\n
                `,L=document.createElement("div");L.setAttribute("id","container"),L.setAttribute("role","region"),L.setAttribute("lang",n._("LANG_CODE")),L.setAttribute("aria-label",n._("CONTAINER_LABEL")),L.setAttribute("dir",i.Global.langDirection),L.innerHTML="top-left"===l||"top-right"===l?`\n ${h}\n
                \n ${A}\n ${f}\n ${E}\n ${v}\n ${x}\n ${w}\n ${y}\n
                `:`\n ${h}\n
                \n ${y}\n ${v}\n ${x}\n ${w}\n ${f}\n ${A}\n ${E}\n
                `,this.shadowRoot.appendChild(L),i.initializePanelSelectors()}}function M(e,t,o){const r=[];return e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),t.forEach((e=>{const t=e.element,a=e.headingLevel,s=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:g}=e;if(!(i.Exclusions.Outline?Array.from(document.querySelectorAll(i.Exclusions.Outline)):[]).includes(t)){const e=!0===c?'Hidden':"",i=!0===c?'class="hidden-h"':"",f=!0===o||1===o?"H":"";let b;"error"===d&&!0===g?(b=`\n
              • \n \n \n \n ${n._("ERROR")} ${f+a}\n ${s}\n \n
              • `,r.push(b)):"warning"!==d||u||!0!==g?(b=`\n
              • \n \n ${e} ${f+a}\n ${s}\n \n
              • `,r.push(b)):(b=`\n
              • \n \n \n \n ${n._("WARNING")} ${f+a}\n ${s}\n \n
              • `,r.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){t.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else t.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${a}`,h.shadowRoot.appendChild(v),"Opened"===m.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),i.Panel.outlineList.innerHTML=0===r.length?`
              • ${n._("PANEL_NO_HEADINGS")}
              • `:r.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,t=Array.from(e.querySelectorAll("#outline-list a"));t.forEach(((t,o)=>{const r=e.getElementById(`sa11y-link-${o}`),s=a(`#sa11y-h${o}, [data-sa11y-parent="h${o}"]`,"document",i.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{f(e.parentElement),e.scrollIntoView({behavior:`${i.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?y(`${n._("HEADING_NOT_VISIBLE_ALERT")}`):i.Panel.alert.classList.contains("active")&&h()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let o=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void t[o].click();let n;t[o].setAttribute("tabindex",-1),"ArrowDown"===e.code?(n=o+1,o===t.length-1&&(n=0)):"ArrowUp"===e.code&&(n=o-1,0===o&&(n=t.length-1)),t[n].setAttribute("tabindex",0),t[n].focus(),o=n,e.preventDefault()};i.Panel.outlineList.addEventListener("focus",(()=>{t.length>0&&(i.Panel.outlineList.setAttribute("tabindex",-1),t[o].setAttribute("tabindex",0),t[o].focus()),i.Panel.outlineList.addEventListener("keydown",r)})),i.Panel.outlineList.addEventListener("blur",(()=>{i.Panel.outlineList.removeEventListener("keydown",r)}))}),0),e}var B="top",G="bottom",H="right",F="left",U="auto",z=[B,G,H,F],j="start",q="end",W="clippingParents",V="viewport",Q="popper",K="reference",Y=z.reduce((function(e,t){return e.concat([t+"-"+j,t+"-"+q])}),[]),X=[].concat(z,[U]).reduce((function(e,t){return e.concat([t,t+"-"+j,t+"-"+q])}),[]),Z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function J(e){return e?(e.nodeName||"").toLowerCase():null}function ee(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function te(e){return e instanceof ee(e).Element||e instanceof Element}function ne(e){return e instanceof ee(e).HTMLElement||e instanceof HTMLElement}function oe(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ee(e).ShadowRoot||e instanceof ShadowRoot)}var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];ne(i)&&J(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});ne(o)&&J(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ae(e){return e.split("-")[0]}var re=Math.max,se=Math.min,le=Math.round;function de(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function ce(){return!/^((?!chrome|android).)*safari/i.test(de())}function pe(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&ne(e)&&(i=e.offsetWidth>0&&le(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&le(o.height)/e.offsetHeight||1);var r=(te(e)?ee(e):window).visualViewport,s=!ce()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ue(e){var t=pe(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ge(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&oe(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function me(e){return ee(e).getComputedStyle(e)}function fe(e){return["table","td","th"].indexOf(J(e))>=0}function be(e){return((te(e)?e.ownerDocument:e.document)||window.document).documentElement}function he(e){return"html"===J(e)?e:e.assignedSlot||e.parentNode||(oe(e)?e.host:null)||be(e)}function ye(e){return ne(e)&&"fixed"!==me(e).position?e.offsetParent:null}function ve(e){for(var t=ee(e),n=ye(e);n&&fe(n)&&"static"===me(n).position;)n=ye(n);return n&&("html"===J(n)||"body"===J(n)&&"static"===me(n).position)?t:n||function(e){var t=/firefox/i.test(de());if(/Trident/i.test(de())&&ne(e)&&"fixed"===me(e).position)return null;var n=he(e);for(oe(n)&&(n=n.host);ne(n)&&["html","body"].indexOf(J(n))<0;){var o=me(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function xe(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function we(e,t,n){return re(e,se(t,n))}function Ae(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ee(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Le={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ae(n.placement),l=xe(s),d=[F,H].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return Ae("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ee(e,z))}(i.padding,n),p=ue(a),u="y"===l?B:F,g="y"===l?G:H,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ve(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,A=we(v,w,x),E=l;n.modifiersData[o]=((t={})[E]=A,t.centerOffset=A-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ge(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ke(e){return e.split("-")[1]}var Ie={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Te(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=F,x=B,w=window;if(d){var A=ve(n),E="clientHeight",L="clientWidth";if(A===ee(n)&&"static"!==me(A=be(n)).position&&"absolute"===s&&(E="scrollHeight",L="scrollWidth"),i===B||(i===F||i===H)&&a===q)x=G,f-=(p&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-o.height,f*=l?1:-1;if(i===F||(i===B||i===G)&&a===q)v=H,g-=(p&&A===w&&w.visualViewport?w.visualViewport.width:A[L])-o.width,g*=l?1:-1}var k,I=Object.assign({position:s},d&&Ie),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:le(n*i)/i||0,y:le(o*i)/i||0}}({x:g,y:f},ee(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},I,((k={})[x]=y?"0":"",k[v]=h?"0":"",k.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",k)):Object.assign({},I,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var _e={passive:!0};var Se={left:"right",right:"left",bottom:"top",top:"bottom"};function Pe(e){return e.replace(/left|right|bottom|top/g,(function(e){return Se[e]}))}var Ce={start:"end",end:"start"};function Oe(e){return e.replace(/start|end/g,(function(e){return Ce[e]}))}function $e(e){var t=ee(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Ne(e){return pe(be(e)).left+$e(e).scrollLeft}function Re(e){var t=me(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function De(e){return["html","body","#document"].indexOf(J(e))>=0?e.ownerDocument.body:ne(e)&&Re(e)?e:De(he(e))}function Me(e,t){var n;void 0===t&&(t=[]);var o=De(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=ee(o),r=i?[a].concat(a.visualViewport||[],Re(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(Me(he(r)))}function Be(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ge(e,t,n){return t===V?Be(function(e,t){var n=ee(e),o=be(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=ce();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+Ne(e),y:l}}(e,n)):te(t)?function(e,t){var n=pe(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):Be(function(e){var t,n=be(e),o=$e(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=re(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=re(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+Ne(e),l=-o.scrollTop;return"rtl"===me(i||n).direction&&(s+=re(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(be(e)))}function He(e,t,n,o){var i="clippingParents"===t?function(e){var t=Me(he(e)),n=["absolute","fixed"].indexOf(me(e).position)>=0&&ne(e)?ve(e):e;return te(n)?t.filter((function(e){return te(e)&&ge(e,n)&&"body"!==J(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=Ge(e,n,o);return t.top=re(i.top,t.top),t.right=se(i.right,t.right),t.bottom=se(i.bottom,t.bottom),t.left=re(i.left,t.left),t}),Ge(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Fe(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ae(i):null,r=i?ke(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case B:t={x:s,y:n.y-o.height};break;case G:t={x:s,y:n.y+n.height};break;case H:t={x:n.x+n.width,y:l};break;case F:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?xe(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case j:t[d]=t[d]-(n[c]/2-o[c]/2);break;case q:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Ue(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?W:s,d=n.rootBoundary,c=void 0===d?V:d,p=n.elementContext,u=void 0===p?Q:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=Ae("number"!=typeof b?b:Ee(b,z)),y=u===Q?K:Q,v=e.rects.popper,x=e.elements[m?y:u],w=He(te(x)?x:x.contextElement||be(e.elements.popper),l,c,r),A=pe(e.elements.reference),E=Fe({reference:A,element:v,strategy:"absolute",placement:i}),L=Be(Object.assign({},v,E)),k=u===Q?L:A,I={top:w.top-k.top+h.top,bottom:k.bottom-w.bottom+h.bottom,left:w.left-k.left+h.left,right:k.right-w.right+h.right},T=e.modifiersData.offset;if(u===Q&&T){var _=T[i];Object.keys(I).forEach((function(e){var t=[H,G].indexOf(e)>=0?1:-1,n=[B,G].indexOf(e)>=0?"y":"x";I[e]+=_[n]*t}))}return I}function ze(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?X:l,c=ke(o),p=c?s?Y:Y.filter((function(e){return ke(e)===c})):z,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Ue(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ae(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var je={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ae(b),y=l||(h===b||!m?[Pe(b)]:function(e){if(ae(e)===U)return[];var t=Pe(e);return[Oe(e),t,Oe(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ae(n)===U?ze(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,A=new Map,E=!0,L=v[0],k=0;k=0,P=S?"width":"height",C=Ue(t,{placement:I,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?H:F:_?G:B;x[P]>w[P]&&(O=Pe(O));var $=Pe(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){L=I,E=!1;break}A.set(I,N)}if(E)for(var R=function(e){var t=v.find((function(t){var n=A.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},D=m?3:1;D>0;D--){if("break"===R(D))break}t.placement!==L&&(t.modifiersData[o]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function qe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function We(e){return[B,H,G,F].some((function(t){return e[t]>=0}))}var Ve={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=X.reduce((function(e,n){return e[n]=function(e,t,n){var o=ae(e),i=[F,B].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[F,H].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var Qe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Ue(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ae(t.placement),y=ke(t.placement),v=!y,x=xe(h),w="x"===x?"y":"x",A=t.modifiersData.popperOffsets,E=t.rects.reference,L=t.rects.popper,k="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,I="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(A){if(a){var S,P="y"===x?B:F,C="y"===x?G:H,O="y"===x?"height":"width",$=A[x],N=$+b[P],R=$-b[C],D=g?-L[O]/2:0,M=y===j?E[O]:L[O],U=y===j?-L[O]:-E[O],z=t.elements.arrow,q=g&&z?ue(z):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=W[P],Q=W[C],K=we(0,E[O],q[O]),Y=v?E[O]/2-D-K-V-I.mainAxis:M-K-V-I.mainAxis,X=v?-E[O]/2+D+K+Q+I.mainAxis:U+K+Q+I.mainAxis,Z=t.elements.arrow&&ve(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=we(g?se(N,$+Y-ee-J):N,$,g?re(R,te):R);A[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?B:F,le="x"===x?G:H,de=A[w],ce="y"===w?"height":"width",pe=de+b[ie],ge=de-b[le],me=-1!==[B,F].indexOf(h),fe=null!=(oe=null==T?void 0:T[w])?oe:0,be=me?pe:de-E[ce]-L[ce]-fe+I.altAxis,he=me?de+E[ce]+L[ce]-fe-I.altAxis:ge,ye=g&&me?function(e,t,n){var o=we(e,t,n);return o>n?n:o}(be,de,he):we(g?be:pe,de,g?he:ge);A[w]=ye,_[w]=ye-de}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function Ke(e,t,n){void 0===n&&(n=!1);var o,i,a=ne(t),r=ne(t)&&function(e){var t=e.getBoundingClientRect(),n=le(t.width)/e.offsetWidth||1,o=le(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=be(t),l=pe(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==J(t)||Re(s))&&(d=(o=t)!==ee(o)&&ne(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:$e(o)),ne(t)?((c=pe(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=Ne(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function Ye(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var Xe={placement:"bottom",modifiers:[],strategy:"absolute"};function Ze(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function dt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function ct(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function pt(e){return[].concat(e)}function ut(e,t){-1===e.indexOf(t)&&e.push(t)}function gt(e){return[].slice.call(e)}function mt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function ft(){return document.createElement("div")}function bt(e){return["Element","Fragment"].some((function(t){return lt(e,t)}))}function ht(e){return bt(e)?[e]:function(e){return lt(e,"NodeList")}(e)?gt(e):Array.isArray(e)?e:gt(document.querySelectorAll(e))}function yt(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function vt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function xt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function wt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var At={isTouch:!1},Et=0;function Lt(){At.isTouch||(At.isTouch=!0,window.performance&&document.addEventListener("mousemove",kt))}function kt(){var e=performance.now();e-Et<20&&(At.isTouch=!1,document.removeEventListener("mousemove",kt)),Et=e}function It(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var Tt=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,_t=Object.assign({appendTo:rt,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),St=Object.keys(_t);function Pt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=_t[i])?o:a);return t}),{});return Object.assign({},e,t)}function Ct(e,t){var n=Object.assign({},t,{content:dt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Pt(Object.assign({},_t,{plugins:t}))):St).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},_t.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Ot=function(){return"innerHTML"};function $t(e,t){e[Ot()]=t}function Nt(e){var t=ft();return!0===e?t.className=ot:(t.className=it,bt(e)?t.appendChild(e):$t(t,e)),t}function Rt(e,t){bt(t.content)?($t(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?$t(e,t.content):e.textContent=t.content)}function Dt(e){var t=e.firstElementChild,n=gt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(tt)})),arrow:n.find((function(e){return e.classList.contains(ot)||e.classList.contains(it)})),backdrop:n.find((function(e){return e.classList.contains(nt)}))}}function Mt(e){var t=ft(),n=ft();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=ft();function i(n,o){var i=Dt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Rt(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Nt(o.arrow))):a.appendChild(Nt(o.arrow)):s&&a.removeChild(s)}return o.className=tt,o.setAttribute("data-state","hidden"),Rt(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Mt.$$tippy=!0;var Bt=1,Gt=[],Ht=[];function Ft(e,t){var n,o,i,a,r,s,l,d,c=Ct(e,Object.assign({},_t,Pt(mt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=ct(V,c.interactiveDebounce),h=Bt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:ft(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),q();var n=v.props,o=Ct(e,Object.assign({},n,mt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(D(),b=ct(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?pt(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),A&&A(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=At.isTouch&&!v.props.touch,i=st(v.props.duration,0,_t.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();yt([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;yt([n,o],i),vt([n,o],"visible")}N(),R(),ut(Ht,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===rt||"parent"===t?n.parentNode:dt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=st(v.props.duration,1,_t.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(D(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(yt([a,r],o),vt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),ut(Gt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Ht=Ht.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),q(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,A=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var E=y.map((function(e){return e.fn(v)})),L=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function k(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function I(){return"hold"===k()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=pt(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Dt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||At.isTouch||a&&"focus"===a.type?0:st(v.props.delay,e?0:1,_t.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),E.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;pt(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!L&&v.props.aria.expanded&&pt(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function D(){S().removeEventListener("mousemove",b),Gt=Gt.filter((function(e){return e!==b}))}function M(t){if(!At.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!wt(w,n)){if(pt(v.props.triggerTarget||e).some((function(e){return wt(e,n)}))){if(At.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function B(){g=!0}function G(){g=!1}function H(){var e=S();e.addEventListener("mousedown",M,!0),e.addEventListener("touchend",M,at),e.addEventListener("touchstart",G,at),e.addEventListener("touchmove",B,at)}function F(){var e=S();e.removeEventListener("mousedown",M,!0),e.removeEventListener("touchend",M,at),e.removeEventListener("touchstart",G,at),e.removeEventListener("touchmove",B,at)}function U(e,t){var n=P().box;function o(e){e.target===n&&(xt(n,"remove",o),t())}if(0===e)return t();xt(n,"remove",r),xt(n,"add",o),r=o}function z(t,n,o){void 0===o&&(o=!1),pt(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;I()&&(z("touchstart",W,{passive:!0}),z("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(z(e,W),e){case"mouseenter":z("mouseleave",Q);break;case"focus":z(Tt?"focusout":"blur",K);break;case"focusin":z("focusout",K)}}))}function q(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function W(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&<(e,"MouseEvent")&&Gt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(D(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!At.isTouch&&I()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Dt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=et(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return gt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=k(),i=o[0],a=o[1];At.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Ut(e,t){void 0===t&&(t={});var n=_t.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Lt,at),window.addEventListener("blur",It);var o=Object.assign({},t,{plugins:n}),i=ht(e).reduce((function(e,t){var n=t&&Ft(t,o);return n&&e.push(n),e}),[]);return bt(e)?i[0]:i}Ut.defaultProps=_t,Ut.setDefaultProps=function(e){Object.keys(e).forEach((function(t){_t[t]=e[t]}))},Ut.currentInput=At,Object.assign({},ie,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Ut.setDefaultProps({render:Mt});var zt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=zt+N,e.appendChild(t);const o=[];E.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&o.push(...Array.from(t))}));const a=Ut(o,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Ut(i.Panel.skipButton,{content:`${n._("SHORTCUT_TOOLTIP")} »
                ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=zt+N,e.appendChild(t),this.object=Ut(i.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Wt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+N,e.appendChild(t)}}const Vt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class Qt extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class Kt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const Yt=(e,t)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=u(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=A(t.find((e=>e.id===a)));(e=>{const t=u(e.getRootNode().host,"display","none");if(null!==t){f(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(y(`${n._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?g(e).top-150:g(t).top-150}}else h(),i.Panel.skipButton.focus();return g(e).top-150};let Xt=-1;const Zt=()=>{const e=m.getItem("sa11y-latest-dismissed");null!==e&&(Xt=parseInt(e,10)-1),m.removeItem("sa11y-latest-dismissed");const t=a("[data-sa11y-opened]","root");t[0]&&(Xt=parseInt(t[0].getAttribute("data-sa11y-position"),10))},Jt=e=>{Zt();const t=E.Annotations.Array;Xt>=t.length-1&&(Xt=-1);const n=t[Xt+1].shadowRoot.querySelector("button"),o=Yt(n,e);window.scrollTo({top:o,behavior:`${i.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),Xt+=1},en=e=>{if(Zt(),Xt>0){const t=E.Annotations.Array[Xt-1].shadowRoot.querySelector("button"),n=Yt(t,e);window.scrollTo({top:n,behavior:`${i.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),Xt-=1,-1===Xt&&(Xt=E.Annotations.Array.length-1)}};let tn,nn;function on(e){tn=t=>{!function(e,t){E.Annotations.Array.length&&!i.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),Jt(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),en(t)))}(t,e)},nn=()=>{Jt(e)},document.addEventListener("keydown",tn),i.Panel.skipButton.addEventListener("click",nn)}const an=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},rn=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},sn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${ln(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},ln=(e,t,n=0)=>{const o=sn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=an(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=sn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,rn(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=an(a.currentNode,a.currentNode.getAttribute("alt")),rn(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=an(a.currentNode,"");break;default:i+=an(a.currentNode,"")}}else rn(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function dn(e,t){return E.Found.Images.forEach((o=>{const a="noAria"===sn(o)?o.getAttribute("alt"):sn(o),r=o.closest("a[href]"),s=r?p(r,i.Exclusions.LinkSpan).textContent:"",d=t.linkIgnoreStrings?s.replace(t.linkIgnoreStrings,""):s,u=r?c(d).length:0;if("true"!==o.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:o,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const t=0===u?n.sprintf("MISSING_ALT_LINK_MESSAGE"):n.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else e.push({element:o,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const i=c(l(a)),s=(e=>{const t=[null,null,null];return[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((n=>{const o=n.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(t[0]=n)})),n._("SUSPICIOUS_ALT_STOPWORDS").forEach((n=>{e.toLowerCase().indexOf(n)>=0&&(t[1]=n)})),n._("PLACEHOLDER_ALT_STOPWORDS").forEach((n=>{e.length===n.length&&e.toLowerCase().indexOf(n)>=0&&(t[2]=n)})),t})(i),d=o.getAttribute("aria-label")||o.getAttribute("aria-labelledby"),p=""===a||" "===a,g=o.closest("figure"),m=g?.querySelector("figcaption"),f=m?m.textContent.trim():"",h=o.getAttribute("src")?o.getAttribute("src"):o.getAttribute("srcset");if(d&&""===i)return void e.push({element:o,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const t=b(`DECORATIVE${h}`);if(r){const t=0===u?"error":"good",i=0===u?n.sprintf("LINK_IMAGE_NO_ALT_TEXT"):n.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:o,type:t,content:i,inline:!1,position:"beforebegin"})}else if(g){const i=m&&f.length?n.sprintf("IMAGE_FIGURE_DECORATIVE"):n.sprintf("IMAGE_DECORATIVE");e.push({element:o,type:"warning",content:i,inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:o,type:"warning",content:n.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:t});return}if(null!==s[0]){const t=r?n.sprintf("LINK_ALT_HAS_FILE_EXTENSION",s[0],i):n.sprintf("ALT_HAS_FILE_EXTENSION",s[0],i);e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==s[2]){const t=r?n.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",i):n.sprintf("ALT_PLACEHOLDER_MESSAGE",i);e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==s[1]){const t=b(`${h+i}`),a=r?n.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",s[1],i):n.sprintf("ALT_HAS_SUS_WORD",s[1],i);e.push({element:o,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:t})}else if(a.length>t.altTextMaxCharLength){const t=b(`${h+i+a.length}`),s=r?n.sprintf("LINK_IMAGE_LONG_ALT",a.length,i):n.sprintf("IMAGE_ALT_TOO_LONG",a.length,i);e.push({element:o,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(r){const t=b(`${h+i}`),a=l(c(ln(r))),s=0===u?n.sprintf("LINK_IMAGE_ALT_WARNING",i):n.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",i,a);e.push({element:o,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(g){if(!!m&&f.toLowerCase()===i.trim().toLowerCase()){const t=b(`FIGURE${h+i}`);e.push({element:o,type:"warning",content:n.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",i),inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:o,type:"good",content:n.sprintf("IMAGE_PASS",i),inline:!1,position:"beforebegin"})}else e.push({element:o,type:"good",content:n.sprintf("IMAGE_PASS",i),inline:!1,position:"beforebegin"})}})),e}function cn(e,t,o){let a;return E.Found.Headings.forEach(((r,s)=>{const d=ln(r,t.headerIgnoreSpan),p=l(c(t.headerIgnoreStrings?d.replace(t.headerIgnoreStrings,""):d)),g=i.Root.areaToCheck.contains(r),m=i.Root.areaToCheck.contains(r.getRootNode().host),f=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=p.length;let v=null,x=null;if(h-a>1&&0!==s)if(t.nonConsecutiveHeadingIsError)v=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else{x=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const t=b(`HEADING${h+p}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:f})}else if(0===y)if(r.querySelectorAll("img").length){const t=r.querySelector("img").getAttribute("alt");null!==t&&" "!==t&&""!==t||(v=n.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f}))}else v=n.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else if(0===s&&1!==h&&2!==h)v=n.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else if(y>t.headingMaxCharLength&&t.flagLongHeadings){x=n.sprintf("HEADING_LONG",y);const t=b(`HEADING${h+p}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:f})}a=h;const w=!!((A=r).getAttribute("hidden")||0===A.offsetWidth&&0===A.offsetHeight||1===A.clientHeight&&1===A.clientWidth)||"none"===getComputedStyle(A).getPropertyValue("display");var A;const E=u(r,"display","none");if(null!==v)o.push({element:r,headingLevel:h,text:p,index:s,type:"error",hidden:w,visibleParent:E,isWithinRoot:f});else if(null!==x){const e=b(`HEADING${h+p}`);o.push({element:r,headingLevel:h,text:p,index:s,type:"warning",hidden:w,visibleParent:E,dismiss:e,isWithinRoot:f})}else null!==v&&null!==x||o.push({element:r,headingLevel:h,text:p,index:s,hidden:w,visibleParent:E,isWithinRoot:f})})),0===E.Found.HeadingOne.length&&t.missingH1&&e.push({type:"warning",content:n.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:o}}function pn(e,t){const o={};return E.Found.Links.forEach((a=>{const r=ln(a,i.Exclusions.LinkSpan),s=c(t.linkIgnoreStrings?r.replace(t.linkIgnoreStrings,""):r),d=(e=>{const t=[null,null,null,null];return n._("PARTIAL_ALT_STOPWORDS").forEach((n=>(e.length===n.length&&e.toLowerCase().indexOf(n)>=0&&(t[0]=n),!1))),n._("WARNING_ALT_STOPWORDS").forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[1]=n),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[2]=n),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[3]=n),!1))),t})(s.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===s.length&&/[^a-zA-Z0-9]/g.test(s),u=s.match(/([<>↣↳←→↓«»↴]+)/),g=u?u[1]:null,f=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!f&&""!==f||0!==s.length)if(null!==d[0])e.push({element:a,type:"error",content:n.sprintf("LINK_STOPWORD",d[0]),inline:!0,position:"afterend"});else if(null!==d[1]||null!==g){const t=b(`LINK${s+f}`),o=g||d[1];e.push({element:a,type:"warning",content:n.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==d[2]&&t.linksToDOI){const t=b(`LINK${s+d[2]+f}`);s.length>8&&e.push({element:a,type:"warning",content:n.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==d[3]&&t.URLAsLinkTextWarning){const o=b(`LINK${s+d[2]+f}`);s.length>t.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:n.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(t.showGoodLinkButton){const t=l(s);e.push({element:a,type:"good",content:n.sprintf("LINK_LABEL",t),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(t.linksAdvancedPlugin){if("On"===m.getItem("sa11y-remember-links-advanced")||t.headless||t.checkAllHideToggles){const t=n._("NEW_WINDOW_PHRASES").some((e=>s.toLowerCase().includes(e))),i=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(n._("FILE_TYPE_PHRASES")).some((e=>s.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=s.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(o[d]&&!o[f]){const t=b(`LINK${d+f}`),o=l(s);e.push({element:a,type:"warning",content:n.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:t})}else if("_blank"!==a.getAttribute("target")||r||t)if(r&&!i){const t=b(`LINK${d+f}`);e.push({element:a,type:"warning",content:n.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}else o[d]=!0,o[f]=!0;else{const t=b(`LINK${d+f}`);e.push({element:a,type:"warning",content:n.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}}}})),e}e.Lang=n,e.Sa11y=class{constructor(e){const o={...t,...e};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=o;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",Kt),customElements.define("sa11y-heading-anchor",Qt),customElements.define("sa11y-annotation",Wt),customElements.define("sa11y-tooltips",jt),customElements.define("sa11y-dismiss-tooltip",qt),customElements.define("sa11y-control-panel",D),customElements.define("sa11y-console-error",R),i.initializeGlobal(o),i.initializeReadability(o),i.initializeExclusions(o),i.initializeEmbeddedContent(o),e=()=>{if(o.headless)this.checkAll(),m.removeItem("sa11y-dismissed");else{const a=new D;document.body.appendChild(a),function(e,t){i.Global.contrastPlugin?i.Panel.contrastToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-contrast")?(m.setItem("sa11y-remember-contrast","Off"),i.Panel.contrastToggle.textContent=`${n._("OFF")}`,i.Panel.contrastToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-contrast","On"),i.Panel.contrastToggle.textContent=`${n._("ON")}`,i.Panel.contrastToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-contrast","Off"),i.Global.formLabelsPlugin?i.Panel.labelsToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-labels")?(m.setItem("sa11y-remember-labels","Off"),i.Panel.labelsToggle.textContent=`${n._("OFF")}`,i.Panel.labelsToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-labels","On"),i.Panel.labelsToggle.textContent=`${n._("ON")}`,i.Panel.labelsToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-labels","Off"),i.Global.linksAdvancedPlugin?i.Panel.linksToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-links-advanced")?(m.setItem("sa11y-remember-links-advanced","Off"),i.Panel.linksToggle.textContent=`${n._("OFF")}`,i.Panel.linksToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-links-advanced","On"),i.Panel.linksToggle.textContent=`${n._("ON")}`,i.Panel.linksToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-links-advanced","Off"),i.Readability.Plugin&&(i.Panel.readabilityToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-readability")?(m.setItem("sa11y-remember-readability","Off"),i.Panel.readabilityToggle.textContent=`${n._("OFF")}`,i.Panel.readabilityToggle.setAttribute("aria-pressed","false"),i.Panel.readability.classList.remove("active"),t(!1),await e()):(m.setItem("sa11y-remember-readability","On"),i.Panel.readabilityToggle.textContent=`${n._("ON")}`,i.Panel.readabilityToggle.setAttribute("aria-pressed","true"),i.Panel.readability.classList.add("active"),t(!1),await e())},"On"===m.getItem("sa11y-remember-readability")&&i.Panel.readability.classList.add("active"));const o=window.matchMedia("(prefers-color-scheme: dark)");o.matches?(i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):(i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")),o.addEventListener("change",(()=>{o.matches?(i.Global.html.setAttribute("data-sa11y-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true"),m.setItem("sa11y-remember-theme","")):(i.Global.html.setAttribute("data-sa11y-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false"),m.setItem("sa11y-remember-theme",""))})),i.Panel.themeToggle.onclick=async()=>{const e=m.getItem("sa11y-remember-theme");"dark"===e?(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):o.matches?(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")):(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=m.getItem("sa11y-remember-theme");"dark"===a?(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")),i.Global.colourFilterPlugin&&i.Panel.colourFilterSelect.addEventListener("change",(async()=>{const o=parseInt(i.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[n._("RED_EYE"),n._("GREEN_EYE"),n._("BLUE_EYE"),n._("MONO_EYE")];o>=1&&o<=4?window.matchMedia("(forced-colors: active)").matches?y(n._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(i.Root.areaToCheck.setAttribute("data-sa11y-filter",a[o-1]),i.Panel.colourFilterIcon.setAttribute("aria-label",r[o-1]),v(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),x(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),i.Panel.skipButton.disabled=!0,i.Panel.pageIssues.classList.remove("active"),"left"!==i.Global.panelPosition&&"right"!==i.Global.panelPosition||i.Panel.settingsContent.classList.add("hide-settings-border"),i.Panel.colourFilterSelect.classList.add("active"),i.Panel.colourPanel.classList.add("active"),i.Panel.colourPanel.setAttribute("data-colour",a[o-1]),i.Panel.content.hidden=!0):(i.Root.areaToCheck.removeAttribute("data-sa11y-filter"),i.Panel.settingsContent.classList.remove("hide-settings-border"),i.Panel.colourFilterSelect.classList.remove("active"),i.Panel.colourPanel.classList.remove("active"),i.Panel.colourPanel.removeAttribute("data-colour"),i.Panel.content.hidden=!1,t(!1),await e())}))}(this.checkAll,this.resetAll),i.Panel.outlineToggle.addEventListener("click",(()=>{"true"===i.Panel.outlineToggle.getAttribute("aria-expanded")?(i.Panel.outlineToggle.classList.remove("outline-active"),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-outline","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),w(i.Panel.outlineList,i.Panel.outlineContent)):(i.Panel.outlineToggle.classList.add("outline-active"),i.Panel.outline.classList.add("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","true"),m.setItem("sa11y-remember-outline","Opened"),m.setItem("sa11y-remember-settings","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!1))),i.Panel.outlineHeader.focus(),i.Panel.settings.classList.remove("active"),i.Panel.settingsToggle.classList.remove("settings-active"),i.Panel.settingsToggle.setAttribute("aria-expanded","false"),w(i.Panel.outlineList,i.Panel.outlineContent)})),"Opened"===m.getItem("sa11y-remember-outline")&&(i.Panel.outlineToggle.classList.add("outline-active"),i.Panel.outline.classList.add("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","true"),setTimeout((()=>{w(i.Panel.outlineList,i.Panel.outlineContent)}),0)),i.Panel.settingsToggle.addEventListener("click",(()=>{"true"===i.Panel.settingsToggle.getAttribute("aria-expanded")?(i.Panel.settingsToggle.classList.remove("settings-active"),i.Panel.settings.classList.remove("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-settings","Closed")):(i.Panel.settingsToggle.classList.add("settings-active"),i.Panel.settings.classList.add("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","true"),m.setItem("sa11y-remember-settings","Opened"),m.setItem("sa11y-remember-outline","Closed")),i.Panel.settingsHeader.focus(),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.classList.remove("outline-active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-outline","Closed"),i.Panel.settingsContent.clientHeight>350&&(i.Panel.settingsContent.setAttribute("tabindex","0"),i.Panel.settingsContent.setAttribute("aria-label",`${n._("SETTINGS")}`),i.Panel.settingsContent.setAttribute("role","region")),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.classList.remove("settings-active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false")})),"Opened"===m.getItem("sa11y-remember-settings")&&(i.Panel.settingsToggle.classList.add("settings-active"),i.Panel.settings.classList.add("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","true")),i.Panel.skipToPageIssues.addEventListener("click",(()=>{i.Panel.pageIssuesHeader.focus()})),setTimeout((()=>{w(i.Panel.pageIssuesList,i.Panel.pageIssuesContent)}),0),i.Panel.controls.addEventListener("keydown",(e=>{const t=i.Panel.panel.querySelectorAll("#outline-toggle[role=tab], #settings-toggle[role=tab]");if("ArrowRight"===e.key)for(let n=0;n0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}if("ArrowUp"===e.key)for(let n=t.length-1;n>0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}})),function(){if(i.Global.colourFilterPlugin&&!1===i.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),L(o.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new qt,document.body.appendChild(this.dismissTooltip),i.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),o.delayCheck),o.delayCheck>=700&&(i.Panel.toggle.disabled=!0),e=this.checkAll,t=this.resetAll,i.Panel.toggle.addEventListener("click",(n=>{"Opened"===m.getItem("sa11y-remember-panel")?(n.preventDefault(),m.setItem("sa11y-remember-panel","Closed"),i.Panel.toggle.classList.remove("on"),i.Panel.toggle.setAttribute("aria-expanded","false"),t(),0===i.Panel.notifCount.innerHTML.trim().length?i.Panel.notifBadge.style.display="none":i.Panel.notifBadge.style.display="flex"):(n.preventDefault(),m.setItem("sa11y-remember-panel","Opened"),i.Panel.toggle.classList.add("on"),i.Panel.toggle.setAttribute("aria-expanded","true"),e(),w(i.Panel.outlineList,i.Panel.outlineContent))})),"Opened"===m.getItem("sa11y-remember-panel")&&(i.Panel.toggle.classList.add("on"),i.Panel.toggle.setAttribute("aria-expanded","true"),i.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(i.Panel.toggle.click(),i.Panel.toggle.focus())}}var e,t},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=o.checkRoot,t=o.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||y(`${n.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),i.initializeRoot(e,t),i.initializeShadowSearch(o,e),E.initializeElements(o),cn(this.results,o,this.headingOutline),pn(this.results,o),dn(this.results,o),function(e,t){if(t.contrastPlugin&&("On"===m.getItem("sa11y-remember-contrast")||t.headless||t.checkAllHideToggles)){let t={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=t.backgroundColor,i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){t={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),p=window.getComputedStyle(n).clip.replace(/\s/g,""),u=parseFloat(window.getComputedStyle(n).width),g=parseFloat(window.getComputedStyle(n).height);let m,f,b;if(1!==u||1!==g||"rect(0,0,0,0)"!==p&&"rect(1px,1px,1px,1px)"!==p)if("SVG"===l)m=Math.round(100*o.contrastRatio(a,d))/100,m<3&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f));else if(c.length||"INPUT"===l||"SELECT"===l||"TEXTAREA"===l){const e=n.getAttribute("type");"range"===e||"color"===e||("image"===d||"alpha"===d?(b={elem:n},t.warnings.push(b)):(m=Math.round(100*o.contrastRatio(i,d))/100,r>=18||r>=14&&s>=700?m<3&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f)):m<4.5&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f))))}}}return t}};o.check(),t.errors.forEach((t=>{const o=t.elem,i=t.ratio,a=l(p(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:n.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:n.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),t.warnings.forEach((t=>{const o=t.elem,i=p(o.cloneNode(!0),"script, style").textContent,a=b(`CONTRAST${i}`),r=l(i);e.push({element:o,type:"warning",content:n.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,o),function(e,t){t.formLabelsPlugin&&("On"===m.getItem("sa11y-remember-labels")||t.headless||t.checkAllHideToggles)&&E.Found.Inputs.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(r(t)||o&&i)return;const a=c(ln(t)),s=t.getAttribute("alt"),d=t.getAttribute("type"),p=t.getAttribute("title"),u=t.getAttribute("aria-label")||t.getAttribute("aria-labelledby");if("submit"===d||"button"===d||"hidden"===d)return;if("image"===d&&(!s||" "===s))return void(u||p||e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===d){const o=b(`INPUT${a}`);return void e.push({element:t,type:"warning",content:n.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===a.length)e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=b(`INPUT${a}`),i=l(a);e.push({element:t,type:"warning",content:n.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=t.closest("label"),m=g?c(ln(g)):"";if(g&&m.length)return;const f=t.getAttribute("id");f?E.Found.Labels.some((e=>e.getAttribute("for")===f))||e.push({element:t,type:"error",content:n.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",f),inline:!1,position:"beforebegin"}):e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,o),function(e,t){if(t.badLinksQA&&E.Found.CustomErrorLinks.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("QA_BAD_LINK",t),inline:!0,position:"beforebegin"})})),t.strongItalicsQA&&E.Found.StrongItalics.forEach((t=>{const o=t.textContent.trim().length,i=b(t.tagName+t.textContent);o>400&&e.push({element:t.parentNode,type:"warning",content:n.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),E.Found.Links.forEach((o=>{if(o.hasAttribute("href")){const a=o.getAttribute("href"),r=i.Global.documentLinks.split(", ").some((e=>a.includes(e))),s=a.includes(".pdf"),l=b(`DOCUMENT${a}`),d="button"===o.getAttribute("role"),c=0!==o.textContent.trim().length;if(t.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const t=a.substring(1);document.getElementById(t)||document.getElementById(decodeURIComponent(t))||document.getElementById(encodeURIComponent(t))||e.push({element:o,type:"error",content:n.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}t.documentQA&&r?e.push({element:o,type:"warning",content:n.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):t.pdfQA&&s&&e.push({element:o,type:"warning",content:n.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),t.langQA&&(!E.Found.Language||E.Found.Language.length<2)&&e.push({type:"error",content:n.sprintf("QA_PAGE_LANGUAGE")}),t.blockquotesQA&&E.Found.Blockquotes.forEach((t=>{const o=t.textContent;if(o.trim().length<25){const i=l(o),a=b(`BLOCKQUOTE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),t.tablesQA&&E.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");t.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:n.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),t.tablesQAsemanticHeadings&&a.length>0&&a.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(t.tablesQAemptyTH&&0===i.textContent.trim().length){const a=t.tablesQAemptyTHisError?"error":"warning",r=b(`TABLE${o.textContent}`);e.push({element:i,type:a,content:n.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),t.fakeHeadingsQA){const t='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=d(o),r=null===a.match(/[.;?!"]/),s=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(t)&&s&&r){const t=l(a),i=b(`BOLD${t}`);e.push({element:o,type:"warning",content:n.sprintf("QA_FAKE_HEADING",t),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(t)){const t=o.querySelector("strong, b"),i=d(t),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=p(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=l(i),s=b(`BOLD${r}`);e.push({element:t,type:"warning",content:n.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:s})}}};E.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const o=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),s=["a","A","α","Α","а","А","1"],c=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",f="",h=!1;if(E.Found.Paragraphs.forEach(((t,i)=>{let l=!1,p=!1;f=f||d(t).replace("(","");const u=f.substring(0,2),y=u.match(a),v=u.match(o),x=u.match(r),w=c.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const o=E.Found.Paragraphs[i+1];if(o){if(l=d(o).replace("(","").substring(0,2),s.includes(l?.toLowerCase().trim()))return;const e=g(l);y?"A "!==u&&u===e&&(p=!0):x&&!h&&e.match(r)&&(p=!0,h=!0)}if(!p){let e=t?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(c.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(p=!0))}if(p){const o=b(`LIST${t.textContent}`);e.push({element:t,type:"warning",content:n.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}f=l?"":l})),t.allCapsQA){const t=t=>{let o="";"LI"===t.tagName?t.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=d(t);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=b(`UPPERCASE${o}`);e.push({element:t,type:"warning",content:n.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e)))}if(t.duplicateIdQA){const t=i.Shadow.Components?`body, ${i.Shadow.Components}`:"body";document.querySelectorAll(t).forEach((t=>{const o=new Set,a=(t,i)=>{t.forEach((t=>{const{id:a}=t;0!==a.trim().length&&(a&&!o.has(a)?o.add(a):Array.from(i.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:t,type:"error",content:n.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};t.shadowRoot&&a(Array.from(t.shadowRoot.querySelectorAll(`[id]:not(${i.Exclusions.Container})`)),t.shadowRoot),a(Array.from(t.querySelectorAll(`[id]:not(${i.Exclusions.Container})`)),t)}))}if(t.underlinedTextQA){E.Found.Underlines.forEach((t=>{const o=b(`UNDERLINE${d(t)}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const t=t=>{const o=getComputedStyle(t).textDecorationLine,i=d(t);if("underline"===o){const o=b(`UNDERLINE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e))),E.Found.Spans.forEach((e=>t(e)))}if(t.pageTitleQA){const t=document.querySelector("head title");t&&0!==t.textContent.trim().length||e.push({type:"error",content:n.sprintf("QA_PAGE_TITLE")})}t.subscriptQA&&E.Found.Subscripts.forEach((t=>{const o=d(t);if(o.length>=80){const i=b(t.tagName+o);e.push({element:t,type:"warning",content:n.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,o),function(e,t){t.embeddedContentAll&&(t.embeddedContentAudio&&E.Found.Audio.forEach((t=>{const o=b(`AUDIO${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentVideo&&E.Found.Videos.forEach((t=>{const o="undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src"),i=t.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=b(`VIDEO${o}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),t.embeddedContentDataViz&&E.Found.Visualizations.forEach((t=>{const o=b(`DATAVIZ${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentTitles&&E.Found.iframes.forEach((t=>{const o=r(t),i="VIDEO"===t.tagName||"AUDIO"===t.tagName,a="true"===t.getAttribute("aria-hidden"),s="-1"===t.getAttribute("tabindex");if(o||i||a&&s)return;if(s)return void e.push({element:t,type:"error",content:n.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=sn(t);0===c("noAria"===l?t.getAttribute("title")||"":l).length&&e.push({element:t,type:"error",content:n.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),t.embeddedContentGeneral&&E.Found.EmbeddedContent.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(r(t)||o&&i)return;if("VIDEO"===t.tagName||"AUDIO"===t.tagName)return;const a=b(`IFRAME${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:a})})))}(this.results,o),function(){let e;if(i.Readability.Plugin&&"On"===m.getItem("sa11y-remember-readability")){E.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const t=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=o.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?n._("LANG_VERY_DIFFICULT"):g>31&&g<49?n._("LANG_DIFFICULT"):g>50&&g<60?n._("LANG_FAIRLY_DIFFICULT"):n._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(i.Readability.Lang)){const t=(e=>{const t=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=t().length,i=t().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?n._("LANG_GOOD"):r>40&&r<50?n._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?n._("LANG_DIFFICULT"):n._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(o);e={score:t.score,averageWordsPerSentence:t.avgWordsPerSentence,complexWords:t.complexWords,difficultyLevel:t.difficulty,wordCount:t.wordCount}}!1===i.Global.headless&&(0===o.length?i.Panel.readabilityInfo.innerHTML=n._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(i.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,i.Panel.readabilityDetails.innerHTML=`\n
              • \n ${n._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
              • \n
              • \n ${n._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
              • \n
              • \n ${n._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
              • `):i.Panel.readabilityInfo.textContent=n._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),!0===o.customChecks?this.results:"object"==typeof o.customChecks?this.results.push(...o.customChecks):"listen"===o.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),o.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new R(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=o.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===o.headless){const d=function(e,t){let o=m.getItem("sa11y-dismissed");o=o?JSON.parse(o):[];const a=o.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(i.Panel.dismissButton.classList.add("active"),i.Panel.dismissTooltip.innerText=n.sprintf("PANEL_DISMISS_BUTTON",l),t.object.setContent(n.sprintf("PANEL_DISMISS_BUTTON",l))):i.Panel.dismissButton.classList.remove("active"),{dismissedIssues:o,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=d.updatedResults,this.dismissed=d.dismissedIssues;const c=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,t){const o=e+t;0===o?(i.Panel.notifCount.innerText="",i.Panel.notifText.innerText="",i.Panel.notifBadge.style.display="none"):t>0&&0===e?(i.Panel.notifBadge.classList.add("notification-badge-warning"),i.Panel.notifCount.innerText=`${t}`,i.Panel.notifText.innerText=`${n._("PANEL_ICON_WARNINGS")}`):(i.Panel.notifBadge.classList.remove("notification-badge-warning"),i.Panel.notifCount.innerText=`${o}`,i.Panel.notifText.innerText=n._("PANEL_ICON_TOTAL")),"Opened"===m.getItem("sa11y-remember-panel")||0===o?i.Panel.notifBadge.style.display="none":i.Panel.notifBadge.style.display="flex"}(c.error,c.warning),"Opened"===m.getItem("sa11y-remember-panel")){this.results.forEach(((e,t)=>{Object.assign(e,{id:t}),function(e,t,o,a=!1,r,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(t))throw Error(`Invalid type [${t}] for annotation`);[t].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:n._("ERROR"),[p[1]]:n._("WARNING"),[p[2]]:n._("GOOD")},g=!0===c&&"warning"===t&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(i.Panel.pageIssues.classList.add("active"),i.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[t]} ${o}${g}`,i.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                ${u[t]}

                \n ${s(o)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(r,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,o.dismissAnnotations)})),E.initializeAnnotations();const p=new jt;document.body.appendChild(p),T(this.results,this.dismissed,this.checkAll,this.resetAll),M(this.dismissed,this.headingOutline,o.showHinPageOutline),a=d.dismissCount,r=c.error,l=c.warning,i.Panel.skipButton.disabled=!1,i.Panel.panel.classList.add("active"),i.Global.html.setAttribute("data-sa11y-active","true"),i.Panel.skipButton.classList.add("active"),r>0&&l>0?(i.Panel.content.setAttribute("class","errors"),i.Panel.status.innerHTML=`${n._("ERRORS")} ${r} ${n._("WARNINGS")} ${l}`):r>0?(i.Panel.content.setAttribute("class","errors"),i.Panel.status.innerHTML=`${n._("ERRORS")} ${r}`):l>0?(i.Panel.content.setAttribute("class","warnings"),i.Panel.status.innerHTML=`${n._("WARNINGS")} ${l}`):a>0?(i.Panel.status.innerHTML=`${n._("DISMISSED")} ${a}`,i.Panel.skipButton.classList.remove("active")):(i.Panel.content.setAttribute("class","good"),i.Panel.status.innerHTML=`${n._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(i.Panel.skipButton.disabled=!0),on(this.results),o.exportResultsPlugin&&(e=this.results,t=d.dismissedResults,i.Global.exportResultsPlugin&&(O=()=>{P(e,t)},$=()=>{C(e)},i.Panel.exportHTML.addEventListener("click",O),i.Panel.exportCSV.addEventListener("click",$))),Vt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}i.Panel.toggle.disabled=!1}var e,t,a,r,l;const d=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(d)},this.resetAll=(e=!0)=>{for(i.Global.html.removeAttribute("data-sa11y-active"),v(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter"],"document"),x(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),i.Panel.outlineList.innerHTML="",i.Panel.pageIssuesList.innerHTML="",i.Panel.readabilityInfo.innerHTML="",i.Panel.readabilityDetails.innerHTML="",i.Panel.panel.classList.remove("has-page-issues"),i.Panel.pageIssues.classList.remove("active"),h(),document.removeEventListener("keydown",tn),i.Panel.skipButton.removeEventListener("click",nn),i.Global.exportResultsPlugin&&(i.Panel.exportHTML.removeEventListener("click",O),i.Panel.exportCSV.removeEventListener("click",$)),i.Panel.panel?.removeEventListener("click",I),i.Panel.dismissButton?.removeEventListener("click",k),i.Global.colourFilterPlugin&&(i.Panel.colourFilterSelect.value=0,i.Panel.colourPanel.classList.remove("active"),i.Panel.colourFilterSelect.classList.remove("active"),i.Panel.content.hidden=!1);i.Panel.status.firstChild;)i.Panel.status.removeChild(i.Panel.status.firstChild);e&&i.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===m.getItem("sa11y-remember-panel")&&i.Panel.toggle.click(),i.Panel.toggle.disabled=!0},this.enabled=()=>{i.Panel.toggle.disabled=!1},this.find=(e,t,n)=>a(e,t,n),this.prepareDismissal=e=>b(e),this.sanitizeHTML=e=>l(e),this.initialize()}},Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Sa11y={})}(this,(function(e){"use strict";const t={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",aboutContent:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,showImageOutline:!0,editImageURLofCMS:"",relativePathImageSRC:"",relativePathImageID:"",detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,susAltStopWords:"",linkStopWords:"",extraPlaceholderStopWords:"",headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:'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"], a[href^="https://sway."]',langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},n={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
                /g,'').replaceAll(/`${e} *, ${e}`));r.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else r.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";r.Contrast="script, style, link",e.contrastIgnore&&(r.Contrast=`${e.contrastIgnore}, ${r.Contrast}`),r.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(r.Readability=`${e.readabilityIgnore}, ${r.Readability}`),e.headerIgnore&&(r.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(r.Outline=`${e.outlineIgnore}`),r.Images='[role="presentation"]',e.imageIgnore&&(r.Images=`${e.imageIgnore}, ${r.Images}`),r.Links=".anchorjs-link",e.linkIgnore&&(r.Links=`${e.linkIgnore}, ${r.Links}`),e.linkIgnoreSpan&&(r.LinkSpan=e.linkIgnoreSpan)},Exclusions:r,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Video=`video, ${t.join(", ")}`}else s.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Audio=`audio, ${t.join(", ")}`}else s.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Visualization=t.join(", ")}else s.Visualization="datastudio.google.com, tableau";s.All=`${s.Video}, ${s.Audio}, ${s.Visualization}`},EmbeddedContent:s}}();function i(e,t,n){let i;"document"===t?i=document:"readability"===t?(i=o.Readability.Root,i||(i=o.Root.areaToCheck)):"root"===t?(i=o.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=o.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=document.querySelectorAll("[data-sa11y-has-shadow-root]"),r=a?", [data-sa11y-has-shadow-root]":"",s=o.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[];if(d.forEach(((n,o)=>{n&&n.matches&&n.matches("[data-sa11y-has-shadow-root]")&&n.shadowRoot&&(t[o]=n.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function a(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function r(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function s(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function l(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function d(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function c(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function p(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function u(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const g={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function m(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function f(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function b(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function h(e,t,n){b();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
                ${n}
                `:"";function c(){b();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
                ${t}
                `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function y(e,t){e.forEach((e=>{i(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function v(e,t){i(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function x(e,t,n){setTimeout((()=>{e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0"),n&&(e.setAttribute("aria-label",n),e.setAttribute("role","region"))):t.classList.remove("scrollable")}),50)}function w(e){const t=e.element,n=`
                ${r(e.htmlPath)}
                `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${s(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const E=function(){const e={};const t={};return{initializeElements:function(t){e.Images=i("img","root",o.Exclusions.Images),e.Headings=i('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",o.Exclusions.Headings),e.HeadingOne=i('h1, [role="heading"][aria-level="1"]',"document",o.Exclusions.Headings),e.Links=i("a[href]","root",o.Exclusions.Links),e.Inputs=i("input, select, textarea","root",o.Exclusions.Container),e.Contrast=i("*","root",o.Exclusions.Contrast),e.Labels=i("label","root",o.Exclusions.Container),e.Readability=i("p, li","readability",o.Exclusions.Readability),e.Paragraphs=i("p","root",o.Exclusions.Container),e.Lists=i("li","root",o.Exclusions.Container),e.Spans=i("span","root",o.Exclusions.Container),e.Blockquotes=i("blockquote","root",o.Exclusions.Container),e.Tables=i('table:not([role="presentation"])',"root",o.Exclusions.Container),e.StrongItalics=i("strong, em","root",o.Exclusions.Container),e.Underlines=i("u","root",o.Exclusions.Container),e.Subscripts=i("sup, sub","root",o.Exclusions.Container),e.Language=o.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?i(t.linksToFlag,"root",o.Exclusions.Container):[],e.iframes=i("iframe:not(hidden), audio, video","root",o.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(o.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=i("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();const A=e=>{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};function I(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==g.getItem("sa11y-remember-panel")&&g.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("click",o),window.addEventListener("keydown",o)}}let L,k;function T(e,t,a,r){if(o.Global.dismissAnnotations){k=t=>{(async(e,t,o,a)=>{let r=JSON.parse(g.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=t.find((t=>t.id===e));if(null===r&&(setTimeout((()=>h(n._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=i(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;g.setItem("sa11y-latest-dismissed",n),g.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),g.setItem("sa11y-dismissed",JSON.stringify(r)),g.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await o()}}})(t,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",k),o.Panel.panel.addEventListener("click",k)}L=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));g.setItem("sa11y-dismissed",JSON.stringify(i)),o.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(t,a,r)},o.Panel.dismissButton?.addEventListener("click",L)}var _=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function S(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function P(e,t){const o=function(e,t){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:t.length};function s(e,t){const o={error:n._("ERRORS"),warning:n._("WARNINGS"),dismissed:n._("DISMISSED")}[t];if(!(e.length>0))return"";let i=`

                ${o}

                `,s="
                  ",l="
                ";return"dismissed"===t&&(s=`
                ${n.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
                  `,l="
                "),i+=s,e.forEach((e=>{let t="";e.element&&(t=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
              • \n ${n._("PREVIEW")}:\n ${w(e)}\n
              • \n
              • \n ${n._("ELEMENT")}:\n
                ${r(e.htmlPath)}
                \n
              • `:`\n
              • \n ${n._("ELEMENT")}:\n
                ${r(e.htmlPath)}
                \n
              • `);const o=e.cssPath?`
              • \n ${n._("PATH")}:\n
                ${e.cssPath}
                \n
              • `:"";i+=`
              • \n

                ${e.content.replace('

                '," | ")}

                \n
                  ${t}${o}
                \n
              • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(t,"dismissed"),p=S(),u=p.titleCheck?"":`
                ${n._("PAGE_TITLE")}
                ${p.metaTitle}
                `,g=0!==a.error?`
                ${n._("ERRORS")}
                ${a.error}
                `:"",m=0!==a.warning?`
                ${n._("WARNINGS")}
                ${a.warning}
                `:"",f=0!==a.dismiss?`
                ${n._("DISMISSED")}
                ${a.dismiss}
                `:"";return`\n \n \n \n \n \n ${n._("RESULTS")}: ${p.metaTitle}\n \n \n \n
                \n

                ${n._("RESULTS")}

                \n
                \n
                \n ${u}\n
                URL
                \n
                ${p.pageURL}
                \n
                ${n._("DATE")}
                \n
                ${p.date}
                \n
                \n
                \n ${g}\n ${m}\n ${f}\n
                \n
                \n
                \n ${l}\n ${d}\n ${c}\n
                \n

                ${n.sprintf("GENERATED",'Sa11y')}

                \n
                \n \n \n `}(e,t),i=S(),a=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(a),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function C(e){const t=S(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ").replaceAll(/"/g,'""');const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Uint8Array([239,187,191]),r=new Blob([a,i],{type:"text/csv;charset=utf-8;"}),s=window.URL.createObjectURL(r),l=document.createElement("a");l.href=s,l.href=window.URL.createObjectURL(r);const d=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;l.setAttribute("download",`Sa11y_${t.numericDate+d}.csv`),document.body.appendChild(l),l.click(),setTimeout((()=>{document.body.removeChild(l),window.URL.revokeObjectURL(l.href)}),100)}let O,$;var N='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class R extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+N,e.appendChild(t);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const a=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

                ${n._("ERROR")}

                \n

                ${n.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

                \n

                ${r(this.error.stack)}

                URL: ${a}

                \n `,e.appendChild(i),setTimeout((()=>{o.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class M extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+N,this.shadowRoot.appendChild(e);const t="On"===g.getItem("sa11y-remember-contrast"),i="On"===g.getItem("sa11y-remember-labels"),a="On"===g.getItem("sa11y-remember-links-advanced"),r="On"===g.getItem("sa11y-remember-readability"),s=o.Global.checkAllHideToggles,{panelPosition:l}=o.Global,d=o.Global.contrastPlugin?`\n
              • \n \n \n
              • `:"",c=o.Global.formLabelsPlugin?`\n
              • \n \n \n
              • `:"",p=o.Global.linksAdvancedPlugin?`\n `:"",u=o.Readability.Plugin?`\n
              • \n \n \n
              • `:"",m=o.Global.colourFilterPlugin?`\n
              • \n \n
                \n \n
                \n
              • `:"",f=o.Global.colourFilterPlugin?`\n
                \n \n

                ${n._("COLOUR_FILTER_MESSAGE")}

                \n
                `:"",b=o.Global.exportResultsPlugin?`\n
              • \n ${n._("EXPORT_RESULTS")}\n \n \n
              • `:"",h=o.Global.aboutContent?`\n
                \n ${o.Global.aboutContent}\n
                `:"",y=`\n `,v=`\n
                \n
                \n

                ${n._("PAGE_ISSUES")}

                \n
                \n
                \n
                  \n
                  \n
                  `,x=`\n
                  \n
                  \n

                  ${n._("OUTLINE")}

                  \n
                  \n
                  \n \n
                  \n
                  \n
                  \n

                  ${n._("LANG_READABILITY")}

                  \n

                  \n
                    \n
                    \n
                    \n
                    `,w=o.Global.showImageOutline?`\n
                    \n
                    \n

                    ${n._("IMAGES")}

                    \n
                    \n
                    \n \n
                    \n
                    `:"",E=`\n
                    \n
                    \n

                    ${n._("SETTINGS")}

                    \n
                    \n
                    \n
                      \n ${d}\n ${c}\n ${p}\n ${u}\n
                    • \n \n \n
                    • \n ${b}\n ${m}\n
                    \n ${h}\n
                    \n
                    `,A=`\n \n
                    \n
                    \n \n

                    ${n._("ALERT_TEXT")}

                    \n
                    \n

                    \n
                    \n
                    \n `,I=`\n
                    \n \n \n \n
                    \n

                    ${n._("PANEL_HEADING")}

                    \n

                    \n
                    \n
                    `,L=``,k=o.Global.showImageOutline?'
                    ':'
                    ',T=`\n
                    \n ${"left"===l?k:""}\n \n ${o.Global.showImageOutline?L:""}\n \n ${"right"===l?k:""}\n
                    `,_=document.createElement("div");_.setAttribute("id","container"),_.setAttribute("role","region"),_.setAttribute("lang",n._("LANG_CODE")),_.setAttribute("aria-label",n._("CONTAINER_LABEL")),_.setAttribute("dir",o.Global.langDirection),_.innerHTML="top-left"===l||"top-right"===l?`\n ${y}\n
                    \n ${I}\n ${f}\n ${T}\n ${x}\n ${w}\n ${E}\n ${A}\n ${v}\n
                    `:`\n ${y}\n
                    \n ${v}\n ${x}\n ${w}\n ${E}\n ${A}\n ${f}\n ${I}\n ${T}\n
                    `,this.shadowRoot.appendChild(_),o.initializePanelSelectors()}}const D=()=>{o.Panel.outlineToggle.classList.add("active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-outline","Opened"),x(o.Panel.outlineList,o.Panel.outlineContent);i("sa11y-heading-label","root").forEach((e=>e.hidden=!1));const e=new CustomEvent("sa11y-build-heading-outline");document.dispatchEvent(e)},G=()=>{o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed");i("sa11y-heading-label","root").forEach((e=>e.hidden=!0))},B=()=>{o.Panel.imagesToggle.classList.add("active"),o.Panel.images.classList.add("active"),o.Panel.imagesToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-images","Opened"),x(o.Panel.imagesList,o.Panel.imagesContent);const e=new CustomEvent("sa11y-build-image-outline");document.dispatchEvent(e)},H=()=>{o.Global.showImageOutline&&(o.Panel.imagesToggle.classList.remove("active"),o.Panel.images.classList.remove("active"),o.Panel.imagesToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-images","Closed"))},F=()=>{o.Panel.settingsToggle.classList.add("active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-settings","Opened"),x(o.Panel.settingsContent,o.Panel.settingsContent,n._("SETTINGS"))},U=()=>{o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.classList.remove("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-settings","Closed")};function j(e,t,a){const r=()=>{const s=[];return e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),t.forEach((e=>{const t=e.element,i=e.headingLevel,r=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:m}=e;if(!(o.Exclusions.Outline?Array.from(document.querySelectorAll(o.Exclusions.Outline)):[]).includes(t)){const e=!0===c?'Hidden':"",o=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
                  • \n \n \n \n ${n._("ERROR")} ${f+i}\n ${r}\n \n
                  • `,s.push(b)):"warning"!==d||u||!0!==m?(b=`\n
                  • \n \n ${e} ${f+i}\n ${r}\n \n
                  • `,s.push(b)):(b=`\n
                  • \n \n \n \n ${n._("WARNING")} ${f+i}\n ${r}\n \n
                  • `,s.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){t.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else t.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===g.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),o.Panel.outlineList.innerHTML=0===s.length?`
                  • ${n._("PANEL_NO_HEADINGS")}
                  • `:s.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,t=Array.from(e.querySelectorAll("#outline-list a"));t.forEach(((t,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=i(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",o.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{m(e.parentElement),e.scrollIntoView({behavior:`${o.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?h(`${n._("HEADING_NOT_VISIBLE_ALERT")}`):o.Panel.alert.classList.contains("active")&&b()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void t[a].click();let n;t[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(n=a+1,a===t.length-1&&(n=0)):"ArrowUp"===e.code&&(n=a-1,0===a&&(n=t.length-1)),t[n].setAttribute("tabindex",0),t[n].focus(),a=n,e.preventDefault()};o.Panel.outlineList.addEventListener("focus",(()=>{t.length>0&&(o.Panel.outlineList.setAttribute("tabindex",-1),t[a].setAttribute("tabindex",0),t[a].focus()),o.Panel.outlineList.addEventListener("keydown",r)})),o.Panel.outlineList.addEventListener("blur",(()=>{o.Panel.outlineList.removeEventListener("keydown",r)}))}),0),document.removeEventListener("sa11y-build-heading-outline",r),e};"Opened"===g.getItem("sa11y-remember-outline")&&r(),document.addEventListener("sa11y-build-heading-outline",r)}function W(e,t){const i=()=>{const a=[];e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedImage:!0})})),t.forEach((e=>{const t=e.type,{dismissedImage:i}=e,s=r(e.element.alt),{src:l}=e.element,d=e.element.getAttribute("data-src"),c=d&&d.length>3?d:l,p=(e=>{let t;if(0!==o.Global.editImageURLofCMS.length){const{src:a}=e.element,r=o.Global.relativePathImageSRC?o.Global.relativePathImageSRC:window.location.host,s=a.split(r),l=s.length>1?s[1]:"",d=o.Global.relativePathImageID;let c;d.length&&e.element.classList.length&&e.element.classList.forEach((e=>{if(e.startsWith(d)){const[t]=e.match(/\d+/)||[];c=t}}));const p=r&&d.length?o.Global.editImageURLofCMS+c:o.Global.editImageURLofCMS+l;t=((i=a).includes(window.location.host)||i.startsWith(r))&&void 0!==c?`
                    ${n._("EDIT")}
                    `:""}var i;return t??""})(e);let u;if("error"===t){const e=0===s.length?`
                    ${n._("MISSING")}
                    `:`${s}`;u=`\n
                  • \n \n
                    \n
                    \n \n ${n._("ERROR")}\n ${n._("ALT")}\n
                    \n ${e}\n
                    \n ${p}\n
                  • `,a.push(u)}else if("warning"!==t||i){const e=0===s.length?`
                    ${n._("DECORATIVE")}
                    `:"";u=`\n
                  • \n \n
                    \n
                    ${n._("ALT")}
                    \n ${e} ${s}\n
                    \n ${p}\n
                  • `,a.push(u)}else{const e=0===s.length?`
                    ${n._("DECORATIVE")}
                    `:"";u=`\n
                  • \n \n
                    \n
                    \n \n ${n._("WARNING")}\n ${n._("ALT")}\n
                    \n ${e} ${s}\n
                    \n ${p}\n
                  • `,a.push(u)}})),o.Panel.imagesList.innerHTML=0===a.length?`
                  • ${n._("IMAGES_NOT_FOUND")}
                  • `:a.join(" "),document.removeEventListener("sa11y-build-image-outline",i)};"Opened"===g.getItem("sa11y-remember-images")&&i(),document.addEventListener("sa11y-build-image-outline",i)}var z="top",q="bottom",V="right",Q="left",K="auto",Y=[z,q,V,Q],X="start",Z="end",J="clippingParents",ee="viewport",te="popper",ne="reference",oe=Y.reduce((function(e,t){return e.concat([t+"-"+X,t+"-"+Z])}),[]),ie=[].concat(Y,[K]).reduce((function(e,t){return e.concat([t,t+"-"+X,t+"-"+Z])}),[]),ae=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function re(e){return e?(e.nodeName||"").toLowerCase():null}function se(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function le(e){return e instanceof se(e).Element||e instanceof Element}function de(e){return e instanceof se(e).HTMLElement||e instanceof HTMLElement}function ce(e){return"undefined"!=typeof ShadowRoot&&(e instanceof se(e).ShadowRoot||e instanceof ShadowRoot)}var pe={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];de(i)&&re(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});de(o)&&re(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ue(e){return e.split("-")[0]}var ge=Math.max,me=Math.min,fe=Math.round;function be(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function he(){return!/^((?!chrome|android).)*safari/i.test(be())}function ye(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&de(e)&&(i=e.offsetWidth>0&&fe(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&fe(o.height)/e.offsetHeight||1);var r=(le(e)?se(e):window).visualViewport,s=!he()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ve(e){var t=ye(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function xe(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&ce(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function we(e){return se(e).getComputedStyle(e)}function Ee(e){return["table","td","th"].indexOf(re(e))>=0}function Ae(e){return((le(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ie(e){return"html"===re(e)?e:e.assignedSlot||e.parentNode||(ce(e)?e.host:null)||Ae(e)}function Le(e){return de(e)&&"fixed"!==we(e).position?e.offsetParent:null}function ke(e){for(var t=se(e),n=Le(e);n&&Ee(n)&&"static"===we(n).position;)n=Le(n);return n&&("html"===re(n)||"body"===re(n)&&"static"===we(n).position)?t:n||function(e){var t=/firefox/i.test(be());if(/Trident/i.test(be())&&de(e)&&"fixed"===we(e).position)return null;var n=Ie(e);for(ce(n)&&(n=n.host);de(n)&&["html","body"].indexOf(re(n))<0;){var o=we(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Te(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function _e(e,t,n){return ge(e,me(t,n))}function Se(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Pe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Ce={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ue(n.placement),l=Te(s),d=[Q,V].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return Se("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Pe(e,Y))}(i.padding,n),p=ve(a),u="y"===l?z:Q,g="y"===l?q:V,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ke(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,E=_e(v,w,x),A=l;n.modifiersData[o]=((t={})[A]=E,t.centerOffset=E-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&xe(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Oe(e){return e.split("-")[1]}var $e={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ne(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=Q,x=z,w=window;if(d){var E=ke(n),A="clientHeight",I="clientWidth";if(E===se(n)&&"static"!==we(E=Ae(n)).position&&"absolute"===s&&(A="scrollHeight",I="scrollWidth"),i===z||(i===Q||i===V)&&a===Z)x=q,f-=(p&&E===w&&w.visualViewport?w.visualViewport.height:E[A])-o.height,f*=l?1:-1;if(i===Q||(i===z||i===q)&&a===Z)v=V,g-=(p&&E===w&&w.visualViewport?w.visualViewport.width:E[I])-o.width,g*=l?1:-1}var L,k=Object.assign({position:s},d&&$e),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:fe(n*i)/i||0,y:fe(o*i)/i||0}}({x:g,y:f},se(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},k,((L={})[x]=y?"0":"",L[v]=h?"0":"",L.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",L)):Object.assign({},k,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Re={passive:!0};var Me={left:"right",right:"left",bottom:"top",top:"bottom"};function De(e){return e.replace(/left|right|bottom|top/g,(function(e){return Me[e]}))}var Ge={start:"end",end:"start"};function Be(e){return e.replace(/start|end/g,(function(e){return Ge[e]}))}function He(e){var t=se(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Fe(e){return ye(Ae(e)).left+He(e).scrollLeft}function Ue(e){var t=we(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function je(e){return["html","body","#document"].indexOf(re(e))>=0?e.ownerDocument.body:de(e)&&Ue(e)?e:je(Ie(e))}function We(e,t){var n;void 0===t&&(t=[]);var o=je(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=se(o),r=i?[a].concat(a.visualViewport||[],Ue(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(We(Ie(r)))}function ze(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function qe(e,t,n){return t===ee?ze(function(e,t){var n=se(e),o=Ae(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=he();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+Fe(e),y:l}}(e,n)):le(t)?function(e,t){var n=ye(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ze(function(e){var t,n=Ae(e),o=He(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ge(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ge(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+Fe(e),l=-o.scrollTop;return"rtl"===we(i||n).direction&&(s+=ge(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(Ae(e)))}function Ve(e,t,n,o){var i="clippingParents"===t?function(e){var t=We(Ie(e)),n=["absolute","fixed"].indexOf(we(e).position)>=0&&de(e)?ke(e):e;return le(n)?t.filter((function(e){return le(e)&&xe(e,n)&&"body"!==re(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=qe(e,n,o);return t.top=ge(i.top,t.top),t.right=me(i.right,t.right),t.bottom=me(i.bottom,t.bottom),t.left=ge(i.left,t.left),t}),qe(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Qe(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ue(i):null,r=i?Oe(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case z:t={x:s,y:n.y-o.height};break;case q:t={x:s,y:n.y+n.height};break;case V:t={x:n.x+n.width,y:l};break;case Q:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?Te(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case X:t[d]=t[d]-(n[c]/2-o[c]/2);break;case Z:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Ke(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?J:s,d=n.rootBoundary,c=void 0===d?ee:d,p=n.elementContext,u=void 0===p?te:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=Se("number"!=typeof b?b:Pe(b,Y)),y=u===te?ne:te,v=e.rects.popper,x=e.elements[m?y:u],w=Ve(le(x)?x:x.contextElement||Ae(e.elements.popper),l,c,r),E=ye(e.elements.reference),A=Qe({reference:E,element:v,strategy:"absolute",placement:i}),I=ze(Object.assign({},v,A)),L=u===te?I:E,k={top:w.top-L.top+h.top,bottom:L.bottom-w.bottom+h.bottom,left:w.left-L.left+h.left,right:L.right-w.right+h.right},T=e.modifiersData.offset;if(u===te&&T){var _=T[i];Object.keys(k).forEach((function(e){var t=[V,q].indexOf(e)>=0?1:-1,n=[z,q].indexOf(e)>=0?"y":"x";k[e]+=_[n]*t}))}return k}function Ye(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?ie:l,c=Oe(o),p=c?s?oe:oe.filter((function(e){return Oe(e)===c})):Y,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Ke(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ue(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var Xe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ue(b),y=l||(h===b||!m?[De(b)]:function(e){if(ue(e)===K)return[];var t=De(e);return[Be(e),t,Be(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ue(n)===K?Ye(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,E=new Map,A=!0,I=v[0],L=0;L=0,P=S?"width":"height",C=Ke(t,{placement:k,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?V:Q:_?q:z;x[P]>w[P]&&(O=De(O));var $=De(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){I=k,A=!1;break}E.set(k,N)}if(A)for(var R=function(e){var t=v.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return I=t,"break"},M=m?3:1;M>0;M--){if("break"===R(M))break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ze(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Je(e){return[z,V,q,Q].some((function(t){return e[t]>=0}))}var et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=ie.reduce((function(e,n){return e[n]=function(e,t,n){var o=ue(e),i=[Q,z].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[Q,V].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Ke(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ue(t.placement),y=Oe(t.placement),v=!y,x=Te(h),w="x"===x?"y":"x",E=t.modifiersData.popperOffsets,A=t.rects.reference,I=t.rects.popper,L="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,k="number"==typeof L?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(E){if(a){var S,P="y"===x?z:Q,C="y"===x?q:V,O="y"===x?"height":"width",$=E[x],N=$+b[P],R=$-b[C],M=g?-I[O]/2:0,D=y===X?A[O]:I[O],G=y===X?-I[O]:-A[O],B=t.elements.arrow,H=g&&B?ve(B):{width:0,height:0},F=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},U=F[P],j=F[C],W=_e(0,A[O],H[O]),K=v?A[O]/2-M-W-U-k.mainAxis:D-W-U-k.mainAxis,Y=v?-A[O]/2+M+W+j+k.mainAxis:G+W+j+k.mainAxis,Z=t.elements.arrow&&ke(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+Y-ee,ne=_e(g?me(N,$+K-ee-J):N,$,g?ge(R,te):R);E[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?z:Q,ae="x"===x?q:V,re=E[w],se="y"===w?"height":"width",le=re+b[ie],de=re-b[ae],ce=-1!==[z,Q].indexOf(h),pe=null!=(oe=null==T?void 0:T[w])?oe:0,fe=ce?le:re-A[se]-I[se]-pe+k.altAxis,be=ce?re+A[se]+I[se]-pe-k.altAxis:de,he=g&&ce?function(e,t,n){var o=_e(e,t,n);return o>n?n:o}(fe,re,be):_e(g?fe:le,re,g?be:de);E[w]=he,_[w]=he-re}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function nt(e,t,n){void 0===n&&(n=!1);var o,i,a=de(t),r=de(t)&&function(e){var t=e.getBoundingClientRect(),n=fe(t.width)/e.offsetWidth||1,o=fe(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=Ae(t),l=ye(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==re(t)||Ue(s))&&(d=(o=t)!==se(o)&&de(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:He(o)),de(t)?((c=ye(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=Fe(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function ot(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var it={placement:"bottom",modifiers:[],strategy:"absolute"};function at(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function bt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function ht(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function yt(e){return[].concat(e)}function vt(e,t){-1===e.indexOf(t)&&e.push(t)}function xt(e){return[].slice.call(e)}function wt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function Et(){return document.createElement("div")}function At(e){return["Element","Fragment"].some((function(t){return ft(e,t)}))}function It(e){return At(e)?[e]:function(e){return ft(e,"NodeList")}(e)?xt(e):Array.isArray(e)?e:xt(document.querySelectorAll(e))}function Lt(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function kt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function Tt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function _t(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var St={isTouch:!1},Pt=0;function Ct(){St.isTouch||(St.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ot))}function Ot(){var e=performance.now();e-Pt<20&&(St.isTouch=!1,document.removeEventListener("mousemove",Ot)),Pt=e}function $t(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var Nt=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Rt=Object.assign({appendTo:gt,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),Mt=Object.keys(Rt);function Dt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Rt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Gt(e,t){var n=Object.assign({},t,{content:bt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Dt(Object.assign({},Rt,{plugins:t}))):Mt).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Rt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Bt=function(){return"innerHTML"};function Ht(e,t){e[Bt()]=t}function Ft(e){var t=Et();return!0===e?t.className=ct:(t.className=pt,At(e)?t.appendChild(e):Ht(t,e)),t}function Ut(e,t){At(t.content)?(Ht(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Ht(e,t.content):e.textContent=t.content)}function jt(e){var t=e.firstElementChild,n=xt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(lt)})),arrow:n.find((function(e){return e.classList.contains(ct)||e.classList.contains(pt)})),backdrop:n.find((function(e){return e.classList.contains(dt)}))}}function Wt(e){var t=Et(),n=Et();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=Et();function i(n,o){var i=jt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Ut(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Ft(o.arrow))):a.appendChild(Ft(o.arrow)):s&&a.removeChild(s)}return o.className=lt,o.setAttribute("data-state","hidden"),Ut(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Wt.$$tippy=!0;var zt=1,qt=[],Vt=[];function Qt(e,t){var n,o,i,a,r,s,l,d,c=Gt(e,Object.assign({},Rt,Dt(wt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=ht(V,c.interactiveDebounce),h=zt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:Et(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),z();var n=v.props,o=Gt(e,Object.assign({},n,wt(t),{ignoreAttributes:!0}));v.props=o,W(),n.interactiveDebounce!==o.interactiveDebounce&&(M(),b=ht(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?yt(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),E&&E(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=St.isTouch&&!v.props.touch,i=mt(v.props.duration,0,Rt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();Lt([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;Lt([n,o],i),kt([n,o],"visible")}N(),R(),vt(Vt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===gt||"parent"===t?n.parentNode:bt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=mt(v.props.duration,1,Rt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(M(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(Lt([a,r],o),kt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),vt(qt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Vt=Vt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),z(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,E=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var A=y.map((function(e){return e.fn(v)})),I=e.hasAttribute("aria-expanded");return W(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function L(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function k(){return"hold"===L()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=yt(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return jt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||St.isTouch||a&&"focus"===a.type?0:mt(v.props.delay,e?0:1,Rt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),A.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;yt(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!I&&v.props.aria.expanded&&yt(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function M(){S().removeEventListener("mousemove",b),qt=qt.filter((function(e){return e!==b}))}function D(t){if(!St.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!_t(w,n)){if(yt(v.props.triggerTarget||e).some((function(e){return _t(e,n)}))){if(St.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function G(){g=!0}function B(){g=!1}function H(){var e=S();e.addEventListener("mousedown",D,!0),e.addEventListener("touchend",D,ut),e.addEventListener("touchstart",B,ut),e.addEventListener("touchmove",G,ut)}function F(){var e=S();e.removeEventListener("mousedown",D,!0),e.removeEventListener("touchend",D,ut),e.removeEventListener("touchstart",B,ut),e.removeEventListener("touchmove",G,ut)}function U(e,t){var n=P().box;function o(e){e.target===n&&(Tt(n,"remove",o),t())}if(0===e)return t();Tt(n,"remove",r),Tt(n,"add",o),r=o}function j(t,n,o){void 0===o&&(o=!1),yt(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function W(){var e;k()&&(j("touchstart",q,{passive:!0}),j("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(j(e,q),e){case"mouseenter":j("mouseleave",Q);break;case"focus":j(Nt?"focusout":"blur",K);break;case"focusin":j("focusout",K)}}))}function z(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function q(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&ft(e,"MouseEvent")&&qt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(M(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!St.isTouch&&k()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?jt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=st(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return xt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=L(),i=o[0],a=o[1];St.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Kt(e,t){void 0===t&&(t={});var n=Rt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Ct,ut),window.addEventListener("blur",$t);var o=Object.assign({},t,{plugins:n}),i=It(e).reduce((function(e,t){var n=t&&Qt(t,o);return n&&e.push(n),e}),[]);return At(e)?i[0]:i}Kt.defaultProps=Rt,Kt.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Rt[t]=e[t]}))},Kt.currentInput=St,Object.assign({},pe,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Kt.setDefaultProps({render:Wt});var Yt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class Xt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Yt+N,e.appendChild(t);const i=[];E.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Kt(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Kt(o.Panel.skipButton,{content:`${n._("SHORTCUT_TOOLTIP")} »
                    ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Yt+N,e.appendChild(t),this.object=Kt(o.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+N,e.appendChild(t)}}const en=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class tn extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class nn extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const on=(e,t)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=p(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=w(t.find((e=>e.id===a)));(e=>{const t=p(e.getRootNode().host,"display","none");if(null!==t){m(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(h(`${n._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?u(e).top-150:u(t).top-150}}else b(),o.Panel.skipButton.focus();return u(e).top-150};let an=-1;const rn=()=>{const e=g.getItem("sa11y-latest-dismissed");null!==e&&(an=parseInt(e,10)-1),g.removeItem("sa11y-latest-dismissed");const t=i("[data-sa11y-opened]","root");t[0]&&(an=parseInt(t[0].getAttribute("data-sa11y-position"),10))},sn=e=>{rn();const t=E.Annotations.Array;an>=t.length-1&&(an=-1);const n=t[an+1].shadowRoot.querySelector("button"),i=on(n,e);window.scrollTo({top:i,behavior:`${o.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),an+=1},ln=e=>{if(rn(),an>0){const t=E.Annotations.Array[an-1].shadowRoot.querySelector("button"),n=on(t,e);window.scrollTo({top:n,behavior:`${o.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),an-=1,-1===an&&(an=E.Annotations.Array.length-1)}};let dn,cn;function pn(e){dn=t=>{!function(e,t){E.Annotations.Array.length&&!o.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),sn(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),ln(t)))}(t,e)},cn=()=>{sn(e)},document.addEventListener("keydown",dn),o.Panel.skipButton.addEventListener("click",cn)}const un=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},gn=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},mn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${fn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},fn=(e,t,n=0)=>{const o=mn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=un(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=mn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,gn(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=un(a.currentNode,a.currentNode.getAttribute("alt")),gn(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=un(a.currentNode,"");break;default:i+=un(a.currentNode,"")}}else gn(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function bn(e,t){return E.Found.Images.forEach((i=>{const a="noAria"===mn(i)?i.getAttribute("alt"):mn(i),r=i.closest("a[href]"),l=r?c(r,o.Exclusions.LinkSpan).textContent:"",p=t.linkIgnoreStrings?l.replace(t.linkIgnoreStrings,""):l,u=r?d(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:i,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const t=0===u?n.sprintf("MISSING_ALT_LINK_MESSAGE"):n.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=d(s(a)),l=(e=>{const o=[null,null,null];[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const n=t.toLowerCase();e.toLowerCase().indexOf(n)>=0&&(o[0]=t)})),(t.susAltStopWords?t.susAltStopWords.split(",").map((e=>e.trim())):n._("SUSPICIOUS_ALT_STOPWORDS")).forEach((t=>{const n=e.toLowerCase().indexOf(t);n>-1&&n<6&&(o[1]=t)})),n._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(o[2]=t)}));const{extraPlaceholderStopWords:i}=t;i.length&&i.split(",").map((e=>e.trim())).forEach((t=>{const n=e.toLowerCase().indexOf(t);n>-1&&n<6&&(o[2]=t)}));return o})(o),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),m=g?.querySelector("figcaption"),b=m?m.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===o)return void e.push({element:i,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const t=f(`DECORATIVE${h}`);if(r){const t=0===u?"error":"good",o=0===u?n.sprintf("LINK_IMAGE_NO_ALT_TEXT"):n.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:t,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=m&&b.length?n.sprintf("IMAGE_FIGURE_DECORATIVE"):n.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:i,type:"warning",content:n.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:t});return}if(null!==l[0]){const t=r?n.sprintf("LINK_ALT_HAS_FILE_EXTENSION",l[0],o):n.sprintf("ALT_HAS_FILE_EXTENSION",l[0],o);e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==l[2]){const t=r?n.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",o):n.sprintf("ALT_PLACEHOLDER_MESSAGE",o);e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==l[1]){const t=f(`${h+o}`),a=r?n.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",l[1],o):n.sprintf("ALT_HAS_SUS_WORD",l[1],o);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:t})}else if(a.length>t.altTextMaxCharLength){const t=f(`${h+o+a.length}`),s=r?n.sprintf("LINK_IMAGE_LONG_ALT",a.length,o):n.sprintf("IMAGE_ALT_TOO_LONG",a.length,o);e.push({element:i,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(r){const t=f(`${h+o}`),a=s(d(fn(r))),l=0===u?n.sprintf("LINK_IMAGE_ALT_WARNING",o):n.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",o,a);e.push({element:i,type:"warning",content:l,inline:!1,position:"beforebegin",dismiss:t})}else if(g){if(!!m&&b.toLowerCase()===o.trim().toLowerCase()){const t=f(`FIGURE${h+o}`);e.push({element:i,type:"warning",content:n.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",o),inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:i,type:"good",content:n.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:n.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}})),e}function hn(e,t,i){let a;return E.Found.Headings.forEach(((r,l)=>{const c=fn(r,t.headerIgnoreSpan),u=s(d(t.headerIgnoreStrings?c.replace(t.headerIgnoreStrings,""):c)),g=o.Root.areaToCheck.contains(r),m=o.Root.areaToCheck.contains(r.getRootNode().host),b=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==l)if(t.nonConsecutiveHeadingIsError)v=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const t=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:b})}else if(0===y)if(r.querySelectorAll("img").length){const t=r.querySelector("img").getAttribute("alt");null!==t&&" "!==t&&""!==t||(v=n.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=n.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===l&&1!==h&&2!==h)v=n.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>t.headingMaxCharLength&&t.flagLongHeadings){x=n.sprintf("HEADING_LONG",y);const t=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:b})}a=h;const w=!!((E=r).getAttribute("hidden")||0===E.offsetWidth&&0===E.offsetHeight||1===E.clientHeight&&1===E.clientWidth)||"none"===getComputedStyle(E).getPropertyValue("display");var E;const A=p(r,"display","none");if(null!==v)i.push({element:r,headingLevel:h,text:u,index:l,type:"error",hidden:w,visibleParent:A,isWithinRoot:b});else if(null!==x){const e=f(`HEADING${h+u}`);i.push({element:r,headingLevel:h,text:u,index:l,type:"warning",hidden:w,visibleParent:A,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:r,headingLevel:h,text:u,index:l,hidden:w,visibleParent:A,isWithinRoot:b})})),0===E.Found.HeadingOne.length&&t.missingH1&&e.push({type:"warning",content:n.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function yn(e,t){const i={};return E.Found.Links.forEach((a=>{const r=fn(a,o.Exclusions.LinkSpan),l=d(t.linkIgnoreStrings?r.replace(t.linkIgnoreStrings,""):r),c=(e=>{const o=[null,null,null,null];return n._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(o[0]=t),!1))),(t.linkStopWords?t.linkStopWords.split(",").map((e=>e.trim())):n._("WARNING_ALT_STOPWORDS")).forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[3]=t),!1))),o})(l.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===l.length&&/[^a-zA-Z0-9]/g.test(l),u=l.match(/([<>↣↳←→↓«»↴]+)/),m=u?u[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==l.length)if(null!==c[0])e.push({element:a,type:"error",content:n.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==m){const t=f(`LINK${l+b}`),o=m||c[1];e.push({element:a,type:"warning",content:n.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==c[2]&&t.linksToDOI){const t=f(`LINK${l+c[2]+b}`);l.length>8&&e.push({element:a,type:"warning",content:n.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==c[3]&&t.URLAsLinkTextWarning){const o=f(`LINK${l+c[2]+b}`);l.length>t.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:n.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(t.showGoodLinkButton){const t=s(l);e.push({element:a,type:"good",content:n.sprintf("LINK_LABEL",t),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(t.linksAdvancedPlugin){if("On"===g.getItem("sa11y-remember-links-advanced")||t.headless||t.checkAllHideToggles){const t=n._("NEW_WINDOW_PHRASES").some((e=>l.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(n._("FILE_TYPE_PHRASES")).some((e=>l.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=l.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(i[d]&&!i[b]){const t=f(`LINK${d+b}`),o=s(l);e.push({element:a,type:"warning",content:n.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:t})}else if("_blank"!==a.getAttribute("target")||r||t)if(r&&!o){const t=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:n.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}else i[d]=!0,i[b]=!0;else{const t=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:n.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}}}})),e}const vn=e=>{if(e.startsWith("color(srgb")){const t=/srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/,n=e.match(t);if(n&&n.length>=4){const[e,t,o,i]=n.slice(1),a=Math.min(1,parseFloat(e)),r=Math.min(1,parseFloat(t)),s=Math.min(1,parseFloat(o)),l=void 0!==i?Math.min(1,parseFloat(i)):1;return`rgba(${Math.round(255*a)}, ${Math.round(255*r)}, ${Math.round(255*s)}, ${l})`}return"invalid-format"}return e};e.Lang=n,e.Sa11y=class{constructor(e){const p={...t,...e};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",nn),customElements.define("sa11y-heading-anchor",tn),customElements.define("sa11y-annotation",Jt),customElements.define("sa11y-tooltips",Xt),customElements.define("sa11y-dismiss-tooltip",Zt),customElements.define("sa11y-control-panel",M),customElements.define("sa11y-console-error",R),o.initializeGlobal(p),o.initializeReadability(p),o.initializeExclusions(p),o.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),g.removeItem("sa11y-dismissed");else{const i=new M;document.body.appendChild(i),function(e,t){o.Global.contrastPlugin?o.Panel.contrastToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-contrast")?(g.setItem("sa11y-remember-contrast","Off"),o.Panel.contrastToggle.textContent=`${n._("OFF")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-contrast","On"),o.Panel.contrastToggle.textContent=`${n._("ON")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-contrast","Off"),o.Global.formLabelsPlugin?o.Panel.labelsToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-labels")?(g.setItem("sa11y-remember-labels","Off"),o.Panel.labelsToggle.textContent=`${n._("OFF")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-labels","On"),o.Panel.labelsToggle.textContent=`${n._("ON")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-labels","Off"),o.Global.linksAdvancedPlugin?o.Panel.linksToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-links-advanced")?(g.setItem("sa11y-remember-links-advanced","Off"),o.Panel.linksToggle.textContent=`${n._("OFF")}`,o.Panel.linksToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-links-advanced","On"),o.Panel.linksToggle.textContent=`${n._("ON")}`,o.Panel.linksToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-links-advanced","Off"),o.Readability.Plugin&&(o.Panel.readabilityToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-readability")?(g.setItem("sa11y-remember-readability","Off"),o.Panel.readabilityToggle.textContent=`${n._("OFF")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","false"),o.Panel.readability.classList.remove("active"),t(!1),await e()):(g.setItem("sa11y-remember-readability","On"),o.Panel.readabilityToggle.textContent=`${n._("ON")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","true"),o.Panel.readability.classList.add("active"),t(!1),await e())},"On"===g.getItem("sa11y-remember-readability")&&o.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):(o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(o.Global.html.setAttribute("data-sa11y-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"),g.setItem("sa11y-remember-theme","")):(o.Global.html.setAttribute("data-sa11y-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false"),g.setItem("sa11y-remember-theme",""))})),o.Panel.themeToggle.onclick=async()=>{const e=g.getItem("sa11y-remember-theme");"dark"===e?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=g.getItem("sa11y-remember-theme");"dark"===a?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),o.Global.colourFilterPlugin&&o.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(o.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[n._("RED_EYE"),n._("GREEN_EYE"),n._("BLUE_EYE"),n._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?h(n._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(o.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),o.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),y(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),v(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),o.Panel.skipButton.disabled=!0,o.Panel.pageIssues.classList.remove("active"),"left"!==o.Global.panelPosition&&"right"!==o.Global.panelPosition||o.Panel.settingsContent.classList.add("hide-settings-border"),o.Panel.colourFilterSelect.classList.add("active"),o.Panel.colourPanel.classList.add("active"),o.Panel.colourPanel.setAttribute("data-colour",a[i-1]),o.Panel.content.hidden=!0):(o.Root.areaToCheck.removeAttribute("data-sa11y-filter"),o.Panel.settingsContent.classList.remove("hide-settings-border"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.colourPanel.classList.remove("active"),o.Panel.colourPanel.removeAttribute("data-colour"),o.Panel.content.hidden=!1,t(!1),await e())}))}(this.checkAll,this.resetAll),function(){o.Panel.outlineToggle.addEventListener("click",(()=>{"true"===o.Panel.outlineToggle.getAttribute("aria-expanded")?G():(D(),U(),H()),o.Panel.outlineHeader.focus()})),"Opened"===g.getItem("sa11y-remember-outline")&&D(),o.Global.showImageOutline&&(o.Panel.imagesToggle.addEventListener("click",(()=>{"true"===o.Panel.imagesToggle.getAttribute("aria-expanded")?H():(B(),G(),U()),o.Panel.imagesHeader.focus()})),"Opened"===g.getItem("sa11y-remember-images")&&B()),o.Panel.settingsToggle.addEventListener("click",(()=>{"true"===o.Panel.settingsToggle.getAttribute("aria-expanded")?U():(F(),G(),H()),o.Panel.settingsHeader.focus()})),"Opened"===g.getItem("sa11y-remember-settings")&&F(),o.Panel.skipToPageIssues.addEventListener("click",(()=>{o.Panel.pageIssuesHeader.focus()})),x(o.Panel.pageIssuesList,o.Panel.pageIssuesContent);const e=o.Panel.panel.querySelectorAll("[role=tab]");let t=Array.from(e).findIndex((e=>e.classList.contains("active")));e.forEach((n=>{n.addEventListener("keydown",(n=>{"ArrowRight"===n.key?(n.preventDefault(),t=(t+1)%e.length,e[t].focus()):"ArrowLeft"===n.key&&(n.preventDefault(),t=(t-1+e.length)%e.length,e[t].focus())}))}))}(),function(){if(o.Global.colourFilterPlugin&&!1===o.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),I(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new Zt,document.body.appendChild(this.dismissTooltip),o.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(o.Panel.toggle.disabled=!0),e=this.checkAll,t=this.resetAll,o.Panel.toggle.addEventListener("click",(n=>{"Opened"===g.getItem("sa11y-remember-panel")?(n.preventDefault(),g.setItem("sa11y-remember-panel","Closed"),o.Panel.toggle.classList.remove("on"),o.Panel.toggle.setAttribute("aria-expanded","false"),t(),0===o.Panel.notifCount.innerHTML.trim().length?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"):(n.preventDefault(),g.setItem("sa11y-remember-panel","Opened"),o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),e(),x(o.Panel.outlineList,o.Panel.outlineContent))})),"Opened"===g.getItem("sa11y-remember-panel")&&(o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),o.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(o.Panel.toggle.click(),o.Panel.toggle.focus())}}var e,t},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,t=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.imageOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||h(`${n.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),o.initializeRoot(e,t),function(e){if(e.autoDetectShadowComponents){const t="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",n=document.querySelector(e.checkRoot);(n?Array.from(n.querySelectorAll(`*:not(${t})`)):Array.from(document.body.querySelectorAll(`*:not(${t})`))).forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(e.setAttribute("data-sa11y-has-shadow-root",""),A(e))}))}else e.shadowComponents&&document.querySelectorAll(e.shadowComponents).forEach((e=>{e.setAttribute("data-sa11y-has-shadow-root",""),A(e)}))}(p),E.initializeElements(p),hn(this.results,p,this.headingOutline),yn(this.results,p),bn(this.results,p),function(e,t){if(t.contrastPlugin&&("On"===g.getItem("sa11y-remember-contrast")||t.headless||t.checkAllHideToggles)){let t={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=vn(t.backgroundColor),i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){t={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),m=window.getComputedStyle(n),f=m.clip.replace(/\s/g,""),b=m.getPropertyValue("clip-path"),h=parseFloat(m.width),y=parseFloat(m.height);if(1===h&&1===y&&("inset(50%)"===b||/^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(f)))return;if(s.startsWith("color("))a={elem:n},t.warnings.push(a);else if("SVG"===p)e=Math.round(100*o.contrastRatio(l,u))/100,e<3&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i));else if(g.length||"INPUT"===p||"SELECT"===p||"TEXTAREA"===p){const r=n.getAttribute("type");"range"===r||"color"===r||("image"===u||"alpha"===u?(a={elem:n},t.warnings.push(a)):(e=Math.round(100*o.contrastRatio(s,u))/100,d>=18||d>=14&&c>=700?e<3&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i)):e<4.5&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i))))}}}return t}};o.check(),t.errors.forEach((t=>{const o=t.elem,i=t.ratio,a=s(c(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:n.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:n.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),t.warnings.forEach((t=>{const o=t.elem,i=c(o.cloneNode(!0),"script, style").textContent,a=f(`CONTRAST${i}`),r=s(i);e.push({element:o,type:"warning",content:n.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,t){t.formLabelsPlugin&&("On"===g.getItem("sa11y-remember-labels")||t.headless||t.checkAllHideToggles)&&E.Found.Inputs.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(a(t)||o&&i)return;const r=d(fn(t)),l=t.getAttribute("alt"),c=t.getAttribute("type"),p=t.getAttribute("title"),u=t.getAttribute("aria-label")||t.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!l||" "===l))return void(u||p||e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=f(`INPUT${r}`);return void e.push({element:t,type:"warning",content:n.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===r.length)e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=f(`INPUT${r}`),i=s(r);e.push({element:t,type:"warning",content:n.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=t.closest("label"),m=g?d(fn(g)):"";if(g&&m.length)return;const b=t.getAttribute("id");b?E.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:t,type:"error",content:n.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,t){if(t.badLinksQA&&E.Found.CustomErrorLinks.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("QA_BAD_LINK",t),inline:!0,position:"beforebegin"})})),t.strongItalicsQA&&E.Found.StrongItalics.forEach((t=>{const o=t.textContent.trim().length,i=f(t.tagName+t.textContent);o>400&&e.push({element:t.parentNode,type:"warning",content:n.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),E.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=i.matches(o.Global.documentLinks),s=i.matches('a[href$=".pdf"], a[href*=".pdf?"]'),l=f(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(t.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const t=a.substring(1);document.getElementById(t)||document.getElementById(decodeURIComponent(t))||document.getElementById(encodeURIComponent(t))||e.push({element:i,type:"error",content:n.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}t.documentQA&&r?e.push({element:i,type:"warning",content:n.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):t.pdfQA&&s&&e.push({element:i,type:"warning",content:n.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),t.langQA&&(!E.Found.Language||E.Found.Language.length<2)&&e.push({type:"error",content:n.sprintf("QA_PAGE_LANGUAGE")}),t.blockquotesQA&&E.Found.Blockquotes.forEach((t=>{const o=t.textContent;if(o.trim().length<25){const i=s(o),a=f(`BLOCKQUOTE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),t.tablesQA&&E.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");t.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:n.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),t.tablesQAsemanticHeadings&&a.length>0&&a.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(t.tablesQAemptyTH&&0===i.textContent.trim().length){const a=t.tablesQAemptyTHisError?"error":"warning",r=f(`TABLE${o.textContent}`);e.push({element:i,type:a,content:n.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),t.fakeHeadingsQA){const t='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=l(o),r=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(t)&&d&&r){const t=s(a),i=f(`BOLD${t}`);e.push({element:o,type:"warning",content:n.sprintf("QA_FAKE_HEADING",t),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(t)){const t=o.querySelector("strong, b"),i=l(t),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=c(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=s(i),l=f(`BOLD${r}`);e.push({element:t,type:"warning",content:n.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:l})}}};E.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),d=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",b="",h=!1;if(E.Found.Paragraphs.forEach(((t,o)=>{let s=!1,c=!1;b=b||l(t).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(r),w=p.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const i=E.Found.Paragraphs[o+1];if(i){if(s=l(i).replace("(","").substring(0,2),d.includes(s?.toLowerCase().trim()))return;const e=g(s);y?"A "!==u&&u===e&&(c=!0):x&&!h&&e.match(r)&&(c=!0,h=!0)}if(!c){let e=t?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(c=!0))}if(c){const o=f(`LIST${t.textContent}`);e.push({element:t,type:"warning",content:n.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}b=s?"":s})),t.allCapsQA){const t=t=>{let o="";"LI"===t.tagName?t.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=l(t);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=f(`UPPERCASE${o}`);e.push({element:t,type:"warning",content:n.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e)))}t.duplicateIdQA&&document.querySelectorAll("body, [data-sa11y-has-shadow-root]").forEach((t=>{const i=new Set,a=(t,o)=>{t.forEach((t=>{const{id:a}=t;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:t,type:"error",content:n.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};t.shadowRoot&&a(Array.from(t.shadowRoot.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),t.shadowRoot),a(Array.from(t.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),t)}));if(t.underlinedTextQA){E.Found.Underlines.forEach((t=>{const o=f(`UNDERLINE${l(t)}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const t=t=>{const o=getComputedStyle(t).textDecorationLine,i=l(t);if("underline"===o){const o=f(`UNDERLINE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e))),E.Found.Spans.forEach((e=>t(e)))}if(t.pageTitleQA){const t=document.querySelector("head title");t&&0!==t.textContent.trim().length||e.push({type:"error",content:n.sprintf("QA_PAGE_TITLE")})}t.subscriptQA&&E.Found.Subscripts.forEach((t=>{const o=l(t);if(o.length>=80){const i=f(t.tagName+o);e.push({element:t,type:"warning",content:n.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,t){t.embeddedContentAll&&(t.embeddedContentAudio&&E.Found.Audio.forEach((t=>{const o=f(`AUDIO${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentVideo&&E.Found.Videos.forEach((t=>{const o="undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src"),i=t.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=f(`VIDEO${o}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),t.embeddedContentDataViz&&E.Found.Visualizations.forEach((t=>{const o=f(`DATAVIZ${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentTitles&&E.Found.iframes.forEach((t=>{const o=a(t),i="VIDEO"===t.tagName||"AUDIO"===t.tagName,r="true"===t.getAttribute("aria-hidden"),s="-1"===t.getAttribute("tabindex");if(o||i||r&&s)return;if(s)return void e.push({element:t,type:"error",content:n.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=mn(t);0===d("noAria"===l?t.getAttribute("title")||"":l).length&&e.push({element:t,type:"error",content:n.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),t.embeddedContentGeneral&&E.Found.EmbeddedContent.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(a(t)||o&&i)return;if("VIDEO"===t.tagName||"AUDIO"===t.tagName)return;const r=f(`IFRAME${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(o.Readability.Plugin&&"On"===g.getItem("sa11y-remember-readability")){E.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const t=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?n._("LANG_VERY_DIFFICULT"):g>31&&g<49?n._("LANG_DIFFICULT"):g>50&&g<60?n._("LANG_FAIRLY_DIFFICULT"):n._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(o.Readability.Lang)){const t=(e=>{const t=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=t().length,i=t().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?n._("LANG_GOOD"):r>40&&r<50?n._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?n._("LANG_DIFFICULT"):n._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:t.score,averageWordsPerSentence:t.avgWordsPerSentence,complexWords:t.complexWords,difficultyLevel:t.difficulty,wordCount:t.wordCount}}!1===o.Global.headless&&(0===i.length?o.Panel.readabilityInfo.innerHTML=n._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(o.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,o.Panel.readabilityDetails.innerHTML=`\n
                  • \n ${n._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
                  • \n
                  • \n ${n._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
                  • \n
                  • \n ${n._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
                  • `):o.Panel.readabilityInfo.textContent=n._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),this.imageResults=this.results.filter((e=>"IMG"===e.element?.tagName)),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new R(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,t){let i=g.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(o.Panel.dismissButton.classList.add("active"),o.Panel.dismissTooltip.innerText=n.sprintf("PANEL_DISMISS_BUTTON",l),t.object.setContent(n.sprintf("PANEL_DISMISS_BUTTON",l))):o.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,t){const i=e+t;0===i?(o.Panel.notifCount.innerText="",o.Panel.notifText.innerText="",o.Panel.notifBadge.style.display="none"):t>0&&0===e?(o.Panel.notifBadge.classList.add("notification-badge-warning"),o.Panel.notifCount.innerText=`${t}`,o.Panel.notifText.innerText=`${n._("PANEL_ICON_WARNINGS")}`):(o.Panel.notifBadge.classList.remove("notification-badge-warning"),o.Panel.notifCount.innerText=`${i}`,o.Panel.notifText.innerText=n._("PANEL_ICON_TOTAL")),"Opened"===g.getItem("sa11y-remember-panel")||0===i?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===g.getItem("sa11y-remember-panel")){this.results.forEach(((e,t)=>{Object.assign(e,{id:t}),function(e,t,i,a=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(t))throw Error(`Invalid type [${t}] for annotation`);[t].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:n._("ERROR"),[p[1]]:n._("WARNING"),[p[2]]:n._("GOOD")},g=!0===c&&"warning"===t&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(o.Panel.pageIssues.classList.add("active"),o.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[t]} ${i}${g}`,o.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                    ${u[t]}

                    \n ${r(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),E.initializeAnnotations();const c=new Xt;document.body.appendChild(c),T(this.results,this.dismissed,this.checkAll,this.resetAll),j(this.dismissed,this.headingOutline,p.showHinPageOutline),p.showImageOutline&&W(this.dismissed,this.imageResults),i=l.dismissCount,a=d.error,s=d.warning,o.Panel.skipButton.disabled=!1,o.Panel.panel.classList.add("active"),o.Global.html.setAttribute("data-sa11y-active","true"),o.Panel.skipButton.classList.add("active"),a>0&&s>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${n._("ERRORS")} ${a} ${n._("WARNINGS")} ${s}`):a>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${n._("ERRORS")} ${a}`):s>0?(o.Panel.content.setAttribute("class","warnings"),o.Panel.status.innerHTML=`${n._("WARNINGS")} ${s}`):i>0?(o.Panel.status.innerHTML=`${n._("DISMISSED")} ${i}`,o.Panel.skipButton.classList.remove("active")):(o.Panel.content.setAttribute("class","good"),o.Panel.status.innerHTML=`${n._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(o.Panel.skipButton.disabled=!0),pn(this.results),p.exportResultsPlugin&&(e=this.results,t=l.dismissedResults,o.Global.exportResultsPlugin&&(O=()=>{P(e,t)},$=()=>{C(e)},o.Panel.exportHTML.addEventListener("click",O),o.Panel.exportCSV.addEventListener("click",$))),en(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}o.Panel.toggle.disabled=!1}var e,t,i,a,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(o.Global.html.removeAttribute("data-sa11y-active"),v(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),y(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter","data-sa11y-has-shadow-root"],"document"),o.Panel.outlineList.innerHTML="",p.showImageOutline&&(o.Panel.imagesList.innerHTML=""),o.Panel.pageIssuesList.innerHTML="",o.Panel.readabilityInfo.innerHTML="",o.Panel.readabilityDetails.innerHTML="",o.Panel.panel.classList.remove("has-page-issues"),o.Panel.pageIssues.classList.remove("active"),b(),document.removeEventListener("keydown",dn),o.Panel.skipButton.removeEventListener("click",cn),o.Global.exportResultsPlugin&&(o.Panel.exportHTML.removeEventListener("click",O),o.Panel.exportCSV.removeEventListener("click",$)),o.Panel.panel?.removeEventListener("click",k),o.Panel.dismissButton?.removeEventListener("click",L),o.Global.colourFilterPlugin&&(o.Panel.colourFilterSelect.value=0,o.Panel.colourPanel.classList.remove("active"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.content.hidden=!1);o.Panel.status.firstChild;)o.Panel.status.removeChild(o.Panel.status.firstChild);document.querySelectorAll("[data-sa11y-has-shadow-root]").forEach((e=>{e.removeAttribute("data-sa11y-has-shadow-root")})),e&&o.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===g.getItem("sa11y-remember-panel")&&o.Panel.toggle.click(),o.Panel.toggle.disabled=!0},this.enabled=()=>{o.Panel.toggle.disabled=!1},this.find=(e,t,n)=>i(e,t,n),this.prepareDismissal=e=>f(e),this.sanitizeHTML=e=>s(e),this.initialize()}},Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/docs/assets/css/control-panel.css b/docs/assets/css/control-panel.css index adcf2eb7..cabd96b1 100644 --- a/docs/assets/css/control-panel.css +++ b/docs/assets/css/control-panel.css @@ -173,7 +173,7 @@ audio { inset-inline-start: 42px; } #panel.top-right, #panel.top-left { - top: 45px; + top: 35px; bottom: unset; } #panel.active { @@ -225,6 +225,11 @@ audio { border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } +.top-left #panel-alert-content, +.top-right #panel-alert-content { + border: 0; +} + #panel-alert-preview .close-tooltip { display: none; } @@ -282,7 +287,7 @@ strong { font-weight: 600; } -a:not(#outline-list a) { +a:not(#outline-list a):not(.edit) { color: var(--sa11y-hyperlink); text-decoration: underline; cursor: pointer; @@ -434,6 +439,7 @@ hr { /* 9. Outline and Settings shared styles */ /* ***************************************** */ #page-issues, +#images-panel, #settings-panel, #outline-panel { display: none; @@ -442,6 +448,7 @@ hr { } #page-issues.active, +#images-panel.active, #settings-panel.active, #outline-panel.active { display: block; @@ -453,13 +460,24 @@ hr { text-align: start; } +#about-content { + padding-top: 5px; +} +#about-content p { + display: block; + margin-block-end: 1em; +} + #page-issues-content, +#images-content, #settings-content, #outline-content { padding: 0 15px 10px; border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } .top-right #page-issues-content, .top-left #page-issues-content, +.top-right #images-content, +.top-left #images-content, .top-right #settings-content, .top-left #settings-content, .top-right #outline-content, @@ -472,6 +490,13 @@ hr { overflow-y: auto; } +#settings-content { + max-height: 400px; + overflow-y: auto; +} + +/* Note to self: stop tinkering with the max-height. This is the max height that will accommodate the Page Issues and Readability panel on your average 13" screen. */ +#images-content, #outline-content { max-height: 250px; overflow-y: auto; @@ -528,34 +553,82 @@ hr { margin-inline-start: 75px; } -/* **************************************** */ -/* 11. Page Outline extras */ -/* **************************************** */ -/* Badges */ -.badge { - display: inline; - min-width: 10px; - padding: 2px 5px; - font-size: 13px; - font-weight: 700; +/* ***************************************** */ +/* 10A. Images list */ +/* ***************************************** */ +#images-list { + display: block; + padding: 0; + margin: 0; +} +#images-list li { + display: block; + width: 100%; + margin: 15px 0; + overflow: hidden; + list-style-type: none; + border-bottom: 1px solid var(--sa11y-panel-bg-splitter); +} +#images-list li:first-child { + margin-top: 5px; +} +#images-list li:last-child { + margin-bottom: 0; + border: none; +} +#images-list li .alt { + padding: 2px 5px 10px; +} +#images-list li .edit { + position: relative; + padding: 4px 7px; color: var(--sa11y-panel-primary); - text-align: center; - white-space: nowrap; - background-color: var(--sa11y-panel-badge); - border: 1px solid transparent; - border-radius: 10px; + text-decoration: none; + cursor: pointer; + background: var(--sa11y-panel-bg-secondary); + border: 2px solid var(--sa11y-button-outline); + border-radius: 5px; } - -.error-badge { - color: var(--sa11y-error-text); - background: var(--sa11y-error); +#images-list li .edit:hover, #images-list li .edit:focus { + background-color: var(--sa11y-shortcut-hover); } - -.warning-badge { - color: var(--sa11y-panel-bg); - background: var(--sa11y-yellow-text); +#images-list li .edit::before { + position: absolute; + top: -10px; + right: -10px; + bottom: -10px; + left: -10px; + content: ""; +} +#images-list li .badge { + margin-inline-end: 4px; +} +#images-list li img { + float: inline-start; + max-width: 110px; + margin-inline-end: 10px; + margin-block-end: 15px; + border-radius: 5px; +} +#images-list li.warning .alt { + color: var(--sa11y-yellow-text); +} +#images-list li.warning img { + border: 5px solid var(--sa11y-yellow-text); +} +#images-list li.error .alt { + color: var(--sa11y-error); +} +#images-list li.error img { + border: 5px solid var(--sa11y-error); +} +#images-list li.good img { + border: 5px solid var(--sa11y-panel-badge); } +/* **************************************** */ +/* 11. Page Outline extras */ +/* **************************************** */ /* Error icon */ .error-icon { display: inline-block; @@ -600,8 +673,7 @@ hr { border-radius: 0 0 4px 4px; } -#settings-toggle, -#outline-toggle { +#panel-controls button { position: relative; display: block; width: 100%; @@ -618,26 +690,18 @@ hr { background-color: var(--sa11y-panel-bg-secondary); border-top: 1px solid var(--sa11y-panel-bg-splitter); border-bottom: 1px solid var(--sa11y-panel-bg-splitter); + border-inline-end: 1px solid var(--sa11y-panel-bg-splitter); outline: 0; opacity: 1; transition: background 0.2s; } -#settings-toggle:hover, #settings-toggle.settings-active, #settings-toggle.outline-active, -#outline-toggle:hover, -#outline-toggle.settings-active, -#outline-toggle.outline-active { +#panel-controls button:hover, #panel-controls button.active { background-color: var(--sa11y-shortcut-hover); } -#settings-toggle.settings-active, #settings-toggle.outline-active, -#outline-toggle.settings-active, -#outline-toggle.outline-active { +#panel-controls button.active { font-weight: 500; } -#outline-toggle { - border-inline-end: 1px solid var(--sa11y-panel-bg-splitter); -} - #export-results-mode, label { display: inline-block; @@ -746,6 +810,13 @@ label:not(#colour-filter-mode, #export-results-mode) { display: block; } +.top-left.has-page-issues #page-issues, +.top-right.has-page-issues #page-issues { + /* Hide double border. */ + margin-top: -1px; + border-top: 1px solid var(--sa11y-panel-bg-splitter); +} + /* ************************************* */ /* 15. Colour filters plugin */ /* ************************************* */ @@ -815,16 +886,19 @@ label:not(#colour-filter-mode, #export-results-mode) { } } +.select-dropdown { + position: relative; + display: flex; + align-items: center; +} + .select-dropdown:after { position: absolute; - width: 0; - height: 0; - margin-top: 22.5px; content: " "; border-top: 5px solid var(--sa11y-setting-switch-bg-off); border-right: 5px solid transparent; border-left: 5px solid transparent; - inset-inline-end: 25px; + inset-inline-end: 14px; } #colour-filter-select { @@ -872,11 +946,20 @@ label:not(#colour-filter-mode, #export-results-mode) { opacity: 1; } +.top-left #readability-content, +.top-right #readability-content { + border-top: 1px solid var(--sa11y-panel-bg-splitter); +} + +.left #readability-content, +.right #readability-content { + border-bottom: 1px solid var(--sa11y-panel-bg-splitter); +} + #readability-content { width: 100%; padding: 10px 15px; color: var(--sa11y-panel-primary); - border-bottom: 1px solid var(--sa11y-panel-bg-splitter); } #readability-details { @@ -944,6 +1027,15 @@ label:not(#colour-filter-mode, #export-results-mode) { padding: 0 15px !important; border-bottom: 0 !important; } +.hide-settings-border li:not(#colour-filter-item) { + display: none !important; +} +.hide-settings-border #about-content { + display: none; +} +.hide-settings-border.scrollable::before { + all: unset; +} /* ***************************************** */ /* 19. Scrollbar styling */ @@ -970,14 +1062,24 @@ label:not(#colour-filter-mode, #export-results-mode) { bottom: auto; left: 0; z-index: -1; + width: 100%; height: 250px; content: ""; - background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 70%, var(--sa11y-panel-scrollable) 100%); + background: linear-gradient(180deg, rgba(0, 0, 0, 0) 70%, var(--sa11y-panel-scrollable) 100%); background-position: bottom; transition: opacity 1s ease-in-out; animation: fade 1s ease-in-out; } +#settings-content.scrollable::before { + height: 400px; +} + +.top-right .scrollable::before, +.top-left .scrollable::before { + border-radius: 5px; +} + #page-issues-content.scrollable::before { height: 160px; } @@ -1019,7 +1121,7 @@ label:not(#colour-filter-mode, #export-results-mode) { /* 21. Internationalization (i18n) */ /* ***************************************** */ #panel { - width: 375px; + width: 400px; } #container:lang(en) #panel { @@ -1032,7 +1134,7 @@ label:not(#colour-filter-mode, #export-results-mode) { #container:lang(de) #panel, #container:lang(sv) #panel, #container:lang(zh) #panel { - width: 335px; + width: 350px; } #container:lang(bg) .switch:not(#export-results-item *), diff --git a/docs/assets/css/control-panel.min.css b/docs/assets/css/control-panel.min.css index 0f637cf7..b9683cd0 100644 --- a/docs/assets/css/control-panel.min.css +++ b/docs/assets/css/control-panel.min.css @@ -1 +1 @@ -a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px} \ No newline at end of file +a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px} \ No newline at end of file diff --git a/docs/assets/css/shared.css b/docs/assets/css/shared.css index 85386987..3139f4c2 100644 --- a/docs/assets/css/shared.css +++ b/docs/assets/css/shared.css @@ -51,16 +51,39 @@ kbd, .red-text { font-family: var(--sa11y-font-face); - font-size: var(--sa11y-normal-text); color: var(--sa11y-red-text); } .yellow-text { font-family: var(--sa11y-font-face); - font-size: var(--sa11y-normal-text); color: var(--sa11y-yellow-text); } +/* Badges */ +.badge { + display: inline; + min-width: 10px; + padding: 2px 3px; + font-size: 13px; + font-weight: 700; + color: var(--sa11y-panel-primary); + text-align: center; + white-space: nowrap; + background-color: var(--sa11y-panel-badge); + border: 1px solid transparent; + border-radius: 10px; +} + +.error-badge { + color: var(--sa11y-error-text); + background: var(--sa11y-error); +} + +.warning-badge { + color: var(--sa11y-panel-bg); + background: var(--sa11y-yellow-text); +} + /* ***************************************** */ /* Close button */ /* ***************************************** */ @@ -112,14 +135,13 @@ kbd, #container [tabindex="0"]:focus, #container [tabindex="-1"]:focus, #container select:focus, -#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus, +#container button:not(#panel-controls button):not(.switch):focus, #container a:focus { outline: 0; box-shadow: 0 0 0 5px var(--sa11y-focus-color); } #container .switch:focus, -#container #settings-toggle:focus, -#container #outline-toggle:focus { +#container #panel-controls button:focus { outline: 0; box-shadow: inset 0 0 0 4px var(--sa11y-focus-color); } @@ -131,8 +153,7 @@ kbd, #container [tabindex="-1"]:focus:not(:focus-visible), #container button:focus:not(:focus-visible), #container select:focus:not(:focus-visible), -#container #settings-toggle:focus:not(:focus-visible), -#container #outline-toggle:focus:not(:focus-visible) { +#container #panel-controls button:focus:not(:focus-visible) { outline: 0; box-shadow: none; } @@ -141,7 +162,7 @@ kbd, * C) :focus-visible is supported. **/ #container a:focus-visible, -#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible, +#container button:not(#panel-controls button):not(.switch):focus-visible, #container select:focus-visible, #container [tabindex="0"]:focus-visible, #container [tabindex="-1"]:focus-visible { @@ -149,8 +170,7 @@ kbd, box-shadow: 0 0 0 5px var(--sa11y-focus-color); } #container .switch:focus-visible, -#container #settings-toggle:focus-visible, -#container #outline-toggle:focus-visible { +#container #panel-controls button:focus-visible { outline: 0; box-shadow: inset 0 0 0 4px var(--sa11y-focus-color); } @@ -159,8 +179,7 @@ kbd, /* High contrast focus styles */ /* ***************************************** */ @media screen and (forced-colors: active) { - #outline-toggle:focus, - #settings-toggle:focus { + #panel-controls button:focus { border: inset 3px solid transparent; } .close-btn:focus { diff --git a/docs/assets/css/shared.min.css b/docs/assets/css/shared.min.css index a22e827b..6c3df9d8 100644 --- a/docs/assets/css/shared.min.css +++ b/docs/assets/css/shared.min.css @@ -1 +1 @@ -.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}} \ No newline at end of file +.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}} \ No newline at end of file diff --git a/docs/assets/js/assets/sa11y.esm-2133128d.css b/docs/assets/js/assets/sa11y.esm-2133128d.css new file mode 100644 index 00000000..bffb8b1b --- /dev/null +++ b/docs/assets/js/assets/sa11y.esm-2133128d.css @@ -0,0 +1 @@ +[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}} \ No newline at end of file diff --git a/docs/assets/js/assets/sa11y.esm.min-3e240f22.css b/docs/assets/js/assets/sa11y.esm.min-3e240f22.css new file mode 100644 index 00000000..bffb8b1b --- /dev/null +++ b/docs/assets/js/assets/sa11y.esm.min-3e240f22.css @@ -0,0 +1 @@ +[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}} \ No newline at end of file diff --git a/docs/assets/js/assets/sa11y.umd-e78088f3.css b/docs/assets/js/assets/sa11y.umd-e78088f3.css new file mode 100644 index 00000000..bffb8b1b --- /dev/null +++ b/docs/assets/js/assets/sa11y.umd-e78088f3.css @@ -0,0 +1 @@ +[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}} \ No newline at end of file diff --git a/docs/assets/js/assets/sa11y.umd.min-5cc5ef62.css b/docs/assets/js/assets/sa11y.umd.min-5cc5ef62.css new file mode 100644 index 00000000..bffb8b1b --- /dev/null +++ b/docs/assets/js/assets/sa11y.umd.min-5cc5ef62.css @@ -0,0 +1 @@ +[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}} \ No newline at end of file diff --git a/docs/assets/js/lang/bg.js b/docs/assets/js/lang/bg.js index 6d64a8ad..75963f8b 100644 --- a/docs/assets/js/lang/bg.js +++ b/docs/assets/js/lang/bg.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var bg = { OFF: 'Изключено', ALERT_TEXT: 'Предупреждение', ALERT_CLOSE: 'Затвори', - OUTLINE: 'Конспект на страницата', + OUTLINE: 'Описание', + ALT: 'АЛТ', + IMAGES: 'Изображения', + EDIT: 'Редактиране', + IMAGES_NOT_FOUND: 'Изображения не са намерени.', + DECORATIVE: 'Декоративен', + MISSING: 'Липсващ', PAGE_ISSUES: 'Проблеми на страницата', SETTINGS: 'Настройки', CONTRAST: 'Контраст', @@ -160,7 +166,7 @@ var bg = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Недостатъчно съдържание за изчисляване на оценката за четимост.', HEADING_NON_CONSECUTIVE_LEVEL: 'Използвано е непоследователно ниво на заглавието. Заглавията никога не трябва да прескачат нива или да преминават от Heading %(prevLevel) към Heading %(level).', HEADING_EMPTY: 'Намерено е празно заглавие! За да го поправите, изтрийте този ред или променете формата му от Heading %(level) на Normal или Paragraph.', - HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
                    Брой символи: %(headingLength)', + HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
                    %(HEADING_LENGTH) Символа', HEADING_FIRST: 'Първото заглавие на страницата обикновено трябва да бъде заглавие 1 или заглавие 2. Заглавие 1 трябва да е началото на раздела с основно съдържание и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_MISSING_ONE: 'Липсва заглавие 1. Заглавие 1 трябва да е началото на основната област на съдържанието и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_EMPTY_WITH_IMAGE: 'Заглавието няма текст, но съдържа изображение. Ако това не е заглавие, променете формата му от Heading %(level) на Normal или Paragraph. В противен случай, моля, добавете alt текст към изображението, ако то не е декоративно.', @@ -169,37 +175,37 @@ var bg = { LINK_EMPTY: 'Премахване на празни връзки без текст.', LINK_EMPTY_LABELLEDBY: 'Линкът има стойност за aria-labelledby, която е празна или не съвпада със стойността на атрибута id на друг елемент на страницата.', LINK_EMPTY_LINK_NO_LABEL: 'Връзката няма различим текст, който да е видим за екранни четци и други помощни технологии. За поправка:
                  • Прибавете кратък текст, който описва къде ще ви отведе връзката.
                  • Ако това е връзка с икона или SVG, вероятно липсва описателен етикет.
                  • Ако смятате, че тази връзка е грешка, дължаща се на грешка при копиране/вмъкване, помислете за нейното изтриване.
                  • ', - LINK_LABEL: 'Етикет на връзката: %(sanitizedText)', + LINK_LABEL: 'Етикет на връзката: %(TEXT)', LINK_STOPWORD: 'Текстът на връзката може да не е достатъчно описателен извън контекста: %(грешка)
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен. Избягвайте често срещани думи като "кликнете тук" или "научете повече"', LINK_BEST_PRACTICES: 'Помислете за замяна на текста на връзката: %(грешка)
                    • "Кликнете тук" поставя акцент върху механиката на мишката, когато много хора не използват мишка или може би разглеждат този уебсайт на мобилно устройство. Помислете за използването на друг глагол, който е свързан със задачата.
                    • Избягвайте използването на HTML символи като призив за действие, освен ако не са скрити за помощните технологии.
                    ', - LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', + LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', LINK_DOI: 'За уеб страници или само онлайн ресурси, Ръководството за стила на АПА препоръчва да се използват описателни връзки, като URL адресът или DOI на произведението се обгръща около заглавието му. По-дългите, по-малко разбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощни технологии.', NEW_TAB_WARNING: 'Връзката се отваря в нов раздел или прозорец без предупреждение. Това може да бъде дезориентиращо, особено за хора, които трудно възприемат визуално съдържание. Второ, не винаги е добра практика да контролирате преживяването на някого или да вземате решения вместо него. Посочете, че връзката се отваря в нов прозорец в рамките на текста на връзката
                    Съвет! Научете най-добрите практики: отваряне на връзки в нови прозорци и раздели на браузъра.', - FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
                    Пример: Изпълнителен доклад (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
                    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(sanitizedText)', + FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
                    Пример: Изпълнителен доклад (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
                    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Изображението се използва като връзка със заобикалящ го текст, въпреки че атрибутът alt трябва да бъде маркиран като декоративен или нулев.', MISSING_ALT_LINK_MESSAGE: 'Изображението се използва като връзка, но липсва алтертекст! Моля, уверете се, че алтертекстът описва мястото, до което води връзката.', MISSING_ALT_MESSAGE: 'Липсващ алт текст! Ако изображението предава история, настроение или важна информация, не забравяйте да го опишете.', - LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
                    Алттекст: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
                    Алт текст: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
                    Алттекст: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(altText)', - ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно.
                    Алттекст: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
                    АЛТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
                    АЛТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
                    АЛТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно.
                    АЛТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Връзката има aria-hidden="true", но все още може да се фокусира с клавиатурата. Ако намерите, че връзката е излишна или дублирана, добавете също tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Изображението в линка е маркирано като декоративно и няма текст на линка. Моля, добавете alt текст към изображението, който описва предназначението на връзката.', LINK_IMAGE_HAS_TEXT: 'Изображението е маркирано като декоративно, въпреки че връзката използва околния текст като описателен етикет.', - LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
                    Алт текст (%(altLength) символи): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
                    Алт текст: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
                    Алттекст: %(altText)
                    Етикет на връзката: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
                    АЛТ %(altLength) Символа %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
                    АЛТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
                    АЛТ %(ALT_TEXT)
                    Етикет на връзката: %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии.
                    Въпреки че е предоставен заглавие, в повечето случаи изображението трябва да има и alt текст.
                    • Алттекстът трябва да предоставя кратко описание на това, което се намира на изображението.
                    • Заглавието обикновено трябва да предоставя контекст, който да свързва изображението със заобикалящото го съдържание, или да обръща внимание на конкретна информация.
                    Научете повече: alt срещу figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt срещу figcaption.
                    Алттекст: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt срещу figcaption.
                    АЛТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии. Ако изображението предава история, настроение или важна информация - не забравяйте да добавите alt текст.', - IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
                    Алттекст (%(altLength) знаци): %(altText)', - IMAGE_PASS: 'Алттекст: %(altText)', + IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
                    АЛТ %(altLength) Символа %(ALT_TEXT)', + IMAGE_PASS: 'АЛТ %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'В бутона за изображения липсва текст alt. Моля, добавете alt текст, за да предоставите достъпно име. Например: Издирване или Изпращане.', LABELS_INPUT_RESET_MESSAGE: 'Бутоните за нулиране не трябва да се използват, освен ако не са изрично необходими, тъй като е лесно да бъдат активирани по погрешка.
                    Съвет! Научете защо бутоните за нулиране и отмяна създават проблеми с ползваемостта.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
                    Етикет за вход: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
                    Етикет за вход %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Няма етикет, свързан с този вход. Добавете атрибут for към етикета, който съответства на id на този вход.
                    Идентификаторът на този вход е: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Няма етикет, свързан с този вход. Моля, добавете id към този вход и добавете съответстващ атрибут for към етикета.', EMBED_VIDEO: 'Моля, уверете се, че всички видеоклипове имат затворени субтитри. Осигуряването на субтитри за цялото аудио и видео съдържание е задължително изискване на ниво А. Субтитрите подпомагат хората с D/глухота или с увреден слух.', @@ -208,15 +214,15 @@ var bg = { EMBED_MISSING_TITLE: 'Вграденото съдържание изисква достъпно име, което описва съдържанието му. Моля, посочете уникален атрибут title или aria-label на елемента iframe. Научете повече за iFrames..', EMBED_GENERAL_WARNING: 'Невъзможно е да се провери вграденото съдържание. Моля, уверете се, че изображенията имат alt текст, видеоклиповете имат надписи, текстът е достатъчно контрастен, а интерактивните компоненти са достъпни от клавиатурата.', EMBED_UNFOCUSABLE: '<iframe> с фокусируеми елементи не трябва да има tabindex="-1". Вграденото съдържание няма да бъде достъпно с клавиатурата.', - QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
                    Тази връзка сочи към:
                    %(el)', + QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
                    Тази връзка сочи към:
                    %(LINK)', QA_IN_PAGE_LINK: 'Счупена връзка към същата страница. Целта на връзката не съответства на никакъв елемент на тази страница.', QA_BAD_ITALICS: 'Таговете за удебелен шрифт и курсив имат семантично значение и не трябва да се използват за подчертаване на цели параграфи. Удебеленият текст трябва да се използва за силно подчертаване на дадена дума или фраза. Курсивът трябва да се използва за подчертаване на собствени имена (т.е. заглавия на книги и статии), чужди думи, кавички. Дългите цитати трябва да се форматират като блок-цитат.', QA_PDF: 'Невъзможност за проверка на PDF файловете за достъпност. PDF файловете се считат за уеб съдържание и също трябва да бъдат достъпни. PDF файловете често съдържат проблеми за хора, които използват екранни четци (липсващи структурни тагове или липсващи етикети на полетата на формулярите), и за хора със слабо зрение (текстът не се пренарежда при увеличаване).
                    • Ако това е формуляр, помислете за използване на достъпен HTML формуляр като алтернатива.
                    • Ако това е документ, помислете за преобразуването му в уеб страница.
                    В противен случай, моля, проверете PDF за достъпност в Acrobat DC.', QA_DOCUMENT: 'Не мога да проверя документа за достъпност. Свързаните документи се считат за уеб съдържание и също трябва да бъдат достъпни. Моля, прегледайте ръчно този документ. ', QA_PAGE_LANGUAGE: 'Езикът на страницата не е обявен! Моля, декларирайте езика в HTML тага.', QA_PAGE_TITLE: 'Липсващо заглавие на страницата! Моля, посочете заглавие на страницата.', - QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(sanitizedText)
                    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', - QA_FAKE_HEADING: 'Това заглавие ли е? %(boldtext)
                    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', + QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(TEXT)
                    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', + QA_FAKE_HEADING: 'Това заглавие ли е? %(TEXT)
                    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', QA_SHOULD_BE_LIST: 'Опитвате се да създадете списък? Намерен е възможен елемент от списък: %(firstPrefix)
                    Уверете се, че използвате семантични списъци, като вместо това използвате бутоните за форматиране на курсив или число. Когато се използва семантичен списък, помощните технологии могат да предадат информация като общия брой елементи и относителната позиция на всеки елемент в списъка. Научете повече за семантичните списъци.', QA_UPPERCASE_WARNING: 'Намерени са всички главни букви. Някои екранни четци могат да интерпретират текста с главни букви като акроним и да четат всяка буква поотделно. Освен това някои хора смятат, че всички главни букви се четат по-трудно и могат да създадат впечатлението, че се крещи.', QA_DUPLICATE_ID: 'Намерен е дубликат на ID. Известно е, че грешките с дублиращи се идентификатори причиняват проблеми на помощните технологии, когато те се опитват да взаимодействат със съдържанието.
                    Моля, премахнете или променете следния ID: %(id)', @@ -225,9 +231,9 @@ var bg = { TABLES_MISSING_HEADINGS: 'Липсват заглавия на таблици! Достъпните таблици се нуждаят от HTML маркировка, която обозначава клетките със заглавия и клетките с данни и определя тяхната връзка. Тази информация осигурява контекст за хората, които използват помощни технологии. Таблиците трябва да се използват само за таблични данни.
                    Научете повече за достъпните таблици.', TABLES_SEMANTIC_HEADING: 'Семантичните заглавия, като например Heading 2 или Heading 3, трябва да се използват само за части от съдържанието; не в HTML таблици. Вместо това посочвайте заглавия на таблици, като използвате елемента <th>.
                    Научете повече за достъпните таблици.', TABLES_EMPTY_HEADING: 'Открито е празно заглавие на таблица! Заглавията на таблиците никога не трябва да са празни. Важно е да се обозначат заглавията на редовете и/или колоните, за да се предаде тяхната връзка. Тази информация предоставя контекст на хората, които използват помощни технологии. Моля, имайте предвид, че таблиците трябва да се използват само за таблични данни.
                    Научете повече за достъпните таблици.', - CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношението на контраста е %(cratio) за следния текст: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Моля, прегледайте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Контрастно съотношение: %(cratio)', + CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношение на контраста %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Моля, прегледайте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношение на контраста %(RATIO)', }, }; diff --git a/docs/assets/js/lang/bg.umd.js b/docs/assets/js/lang/bg.umd.js index 5b120d6c..3cf912a4 100644 --- a/docs/assets/js/lang/bg.umd.js +++ b/docs/assets/js/lang/bg.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Изключено', ALERT_TEXT: 'Предупреждение', ALERT_CLOSE: 'Затвори', - OUTLINE: 'Конспект на страницата', + OUTLINE: 'Описание', + ALT: 'АЛТ', + IMAGES: 'Изображения', + EDIT: 'Редактиране', + IMAGES_NOT_FOUND: 'Изображения не са намерени.', + DECORATIVE: 'Декоративен', + MISSING: 'Липсващ', PAGE_ISSUES: 'Проблеми на страницата', SETTINGS: 'Настройки', CONTRAST: 'Контраст', @@ -166,7 +172,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Недостатъчно съдържание за изчисляване на оценката за четимост.', HEADING_NON_CONSECUTIVE_LEVEL: 'Използвано е непоследователно ниво на заглавието. Заглавията никога не трябва да прескачат нива или да преминават от Heading %(prevLevel) към Heading %(level).', HEADING_EMPTY: 'Намерено е празно заглавие! За да го поправите, изтрийте този ред или променете формата му от Heading %(level) на Normal или Paragraph.', - HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
                    Брой символи: %(headingLength)', + HEADING_LONG: 'Курсът е дълъг! Заглавията трябва да се използват за организиране на съдържанието и предаване на структурата. Те трябва да са кратки, информативни и уникални. Моля, запазете заглавията по-малко от 160 знака (не повече от едно изречение).
                    %(HEADING_LENGTH) Символа', HEADING_FIRST: 'Първото заглавие на страницата обикновено трябва да бъде заглавие 1 или заглавие 2. Заглавие 1 трябва да е началото на раздела с основно съдържание и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_MISSING_ONE: 'Липсва заглавие 1. Заглавие 1 трябва да е началото на основната област на съдържанието и е основното заглавие, което описва цялостната цел на страницата. Научете повече за Структурата на заглавията.', HEADING_EMPTY_WITH_IMAGE: 'Заглавието няма текст, но съдържа изображение. Ако това не е заглавие, променете формата му от Heading %(level) на Normal или Paragraph. В противен случай, моля, добавете alt текст към изображението, ако то не е декоративно.', @@ -175,37 +181,37 @@ LINK_EMPTY: 'Премахване на празни връзки без текст.', LINK_EMPTY_LABELLEDBY: 'Линкът има стойност за aria-labelledby, която е празна или не съвпада със стойността на атрибута id на друг елемент на страницата.', LINK_EMPTY_LINK_NO_LABEL: 'Връзката няма различим текст, който да е видим за екранни четци и други помощни технологии. За поправка:
                  • Прибавете кратък текст, който описва къде ще ви отведе връзката.
                  • Ако това е връзка с икона или SVG, вероятно липсва описателен етикет.
                  • Ако смятате, че тази връзка е грешка, дължаща се на грешка при копиране/вмъкване, помислете за нейното изтриване.
                  • ', - LINK_LABEL: 'Етикет на връзката: %(sanitizedText)', + LINK_LABEL: 'Етикет на връзката: %(TEXT)', LINK_STOPWORD: 'Текстът на връзката може да не е достатъчно описателен извън контекста: %(грешка)
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен. Избягвайте често срещани думи като "кликнете тук" или "научете повече"', LINK_BEST_PRACTICES: 'Помислете за замяна на текста на връзката: %(грешка)
                    • "Кликнете тук" поставя акцент върху механиката на мишката, когато много хора не използват мишка или може би разглеждат този уебсайт на мобилно устройство. Помислете за използването на друг глагол, който е свързан със задачата.
                    • Избягвайте използването на HTML символи като призив за действие, освен ако не са скрити за помощните технологии.
                    ', - LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', + LINK_URL: 'По-дългите и неразбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощта на помощни технологии. В повечето случаи е по-добре вместо URL адрес да се използва текст, който може да се чете от човек. Кратките URL адреси (като например началната страница на сайта) са подходящи.
                    Съвет! Текстът на връзката винаги трябва да бъде ясен, уникален и смислен, за да може да бъде разбран извън контекста.', LINK_DOI: 'За уеб страници или само онлайн ресурси, Ръководството за стила на АПА препоръчва да се използват описателни връзки, като URL адресът или DOI на произведението се обгръща около заглавието му. По-дългите, по-малко разбираеми URL адреси, използвани като текст на връзката, може да са трудни за възприемане с помощни технологии.', NEW_TAB_WARNING: 'Връзката се отваря в нов раздел или прозорец без предупреждение. Това може да бъде дезориентиращо, особено за хора, които трудно възприемат визуално съдържание. Второ, не винаги е добра практика да контролирате преживяването на някого или да вземате решения вместо него. Посочете, че връзката се отваря в нов прозорец в рамките на текста на връзката
                    Съвет! Научете най-добрите практики: отваряне на връзки в нови прозорци и раздели на браузъра.', - FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
                    Пример: Изпълнителен доклад (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
                    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(sanitizedText)', + FILE_TYPE_WARNING: 'Връзката сочи към PDF файл или файл за изтегляне (напр. MP3, Zip, Word Doc) без предупреждение. Посочете типа на файла в текста на връзката. Ако става въпрос за голям файл, помислете за включване на размера на файла.
                    Пример: Изпълнителен доклад (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Връзката има идентичен текст като друга връзка, въпреки че сочи към различна страница. Множество връзки с един и същ текст могат да предизвикат объркване за хората, които използват екранни четци.
                    Помислете дали да не направите следната връзка по-описателна, за да я разграничите от другите връзки: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Изображението се използва като връзка със заобикалящ го текст, въпреки че атрибутът alt трябва да бъде маркиран като декоративен или нулев.', MISSING_ALT_LINK_MESSAGE: 'Изображението се използва като връзка, но липсва алтертекст! Моля, уверете се, че алтертекстът описва мястото, до което води връзката.', MISSING_ALT_MESSAGE: 'Липсващ алт текст! Ако изображението предава история, настроение или важна информация, не забравяйте да го опишете.', - LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
                    Алттекст: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
                    Алт текст: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
                    Алттекст: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(altText)', - ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(error)" може да е излишно.
                    Алттекст: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Премахване: %(грешка).
                    АЛТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Намерен е неописан или заместващ alt текст в свързано изображение. Уверете се, че текстът alt описва дестинацията на връзката, а не буквално описание на изображението. Заменете следния alt текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно. Уверете се, че текстът alt описва местоназначението на връзката, а не буквално описание на изображението.
                    АЛТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Намерено е разширение на файла в алтертекста. Ако изображението предава история, настроение или важна информация - не забравяйте да опишете изображението. Премахване: %(грешка).
                    АЛТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Открит е текст без описание или заместител. Заменете следния alt текст с нещо по-смислено: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Подпомагащите технологии вече показват, че това е изображение, така че "%(ERROR)" може да е излишно.
                    АЛТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Връзката има aria-hidden="true", но все още може да се фокусира с клавиатурата. Ако намерите, че връзката е излишна или дублирана, добавете също tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Изображението в линка е маркирано като декоративно и няма текст на линка. Моля, добавете alt текст към изображението, който описва предназначението на връзката.', LINK_IMAGE_HAS_TEXT: 'Изображението е маркирано като декоративно, въпреки че връзката използва околния текст като описателен етикет.', - LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
                    Алт текст (%(altLength) символи): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
                    Алт текст: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
                    Алттекст: %(altText)
                    Етикет на връзката: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Описанието на Alt текста на свързано изображение е прекалено дълго. Alt текстът на свързаните изображения трябва да описва мястото, до което води връзката, а не буквално описание на изображението. Помислете за използване на заглавието на страницата, към която води връзката, като алт текст.
                    АЛТ %(altLength) Символа %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Връзката на изображението съдържа текст alt. Описва ли алтертекстът мястото, до което ви води връзката? Помислете дали да не използвате заглавието на страницата, към която води връзката, като алт текст.
                    АЛТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Връзката към изображението съдържа както alt текст, така и заобикалящ текст на връзката. Ако това изображение е декоративно и се използва като функционална връзка към друга страница, помислете дали да не маркирате изображението като декоративно или нулево - заобикалящият текст на връзката трябва да е достатъчен.
                    АЛТ %(ALT_TEXT)
                    Етикет на връзката: %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии.
                    Въпреки че е предоставен заглавие, в повечето случаи изображението трябва да има и alt текст.
                    • Алттекстът трябва да предоставя кратко описание на това, което се намира на изображението.
                    • Заглавието обикновено трябва да предоставя контекст, който да свързва изображението със заобикалящото го съдържание, или да обръща внимание на конкретна информация.
                    Научете повече: alt срещу figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt срещу figcaption.
                    Алттекст: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не използвайте едни и същи думи за текста на алтер и надписа. Екранните четци ще обявят информацията два пъти.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt срещу figcaption.
                    АЛТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Изображението е маркирано като декоративно и ще бъде игнорирано от помощните технологии. Ако изображението предава история, настроение или важна информация - не забравяйте да добавите alt текст.', - IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
                    Алттекст (%(altLength) знаци): %(altText)', - IMAGE_PASS: 'Алттекст: %(altText)', + IMAGE_ALT_TOO_LONG: 'Описанието на Alt текста е прекалено дълго. Alt текстът трябва да бъде кратък, но съдържателен като tweet (около 100 знака). Ако става въпрос за сложно изображение или графика, помислете дали да не поставите дългото описание на изображението в текста под него или в компонент на хармоника.
                    АЛТ %(altLength) Символа %(ALT_TEXT)', + IMAGE_PASS: 'АЛТ %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'В бутона за изображения липсва текст alt. Моля, добавете alt текст, за да предоставите достъпно име. Например: Издирване или Изпращане.', LABELS_INPUT_RESET_MESSAGE: 'Бутоните за нулиране не трябва да се използват, освен ако не са изрично необходими, тъй като е лесно да бъдат активирани по погрешка.
                    Съвет! Научете защо бутоните за нулиране и отмяна създават проблеми с ползваемостта.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
                    Етикет за вход: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Входът има достъпно име, но се уверете, че има и видим етикет.
                    Етикет за вход %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Няма етикет, свързан с този вход. Добавете атрибут for към етикета, който съответства на id на този вход.
                    Идентификаторът на този вход е: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Няма етикет, свързан с този вход. Моля, добавете id към този вход и добавете съответстващ атрибут for към етикета.', EMBED_VIDEO: 'Моля, уверете се, че всички видеоклипове имат затворени субтитри. Осигуряването на субтитри за цялото аудио и видео съдържание е задължително изискване на ниво А. Субтитрите подпомагат хората с D/глухота или с увреден слух.', @@ -214,15 +220,15 @@ EMBED_MISSING_TITLE: 'Вграденото съдържание изисква достъпно име, което описва съдържанието му. Моля, посочете уникален атрибут title или aria-label на елемента iframe. Научете повече за iFrames..', EMBED_GENERAL_WARNING: 'Невъзможно е да се провери вграденото съдържание. Моля, уверете се, че изображенията имат alt текст, видеоклиповете имат надписи, текстът е достатъчно контрастен, а интерактивните компоненти са достъпни от клавиатурата.', EMBED_UNFOCUSABLE: '<iframe> с фокусируеми елементи не трябва да има tabindex="-1". Вграденото съдържание няма да бъде достъпно с клавиатурата.', - QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
                    Тази връзка сочи към:
                    %(el)', + QA_BAD_LINK: 'Открита е лоша връзка. Изглежда, че връзката сочи към среда за разработка.
                    Тази връзка сочи към:
                    %(LINK)', QA_IN_PAGE_LINK: 'Счупена връзка към същата страница. Целта на връзката не съответства на никакъв елемент на тази страница.', QA_BAD_ITALICS: 'Таговете за удебелен шрифт и курсив имат семантично значение и не трябва да се използват за подчертаване на цели параграфи. Удебеленият текст трябва да се използва за силно подчертаване на дадена дума или фраза. Курсивът трябва да се използва за подчертаване на собствени имена (т.е. заглавия на книги и статии), чужди думи, кавички. Дългите цитати трябва да се форматират като блок-цитат.', QA_PDF: 'Невъзможност за проверка на PDF файловете за достъпност. PDF файловете се считат за уеб съдържание и също трябва да бъдат достъпни. PDF файловете често съдържат проблеми за хора, които използват екранни четци (липсващи структурни тагове или липсващи етикети на полетата на формулярите), и за хора със слабо зрение (текстът не се пренарежда при увеличаване).
                    • Ако това е формуляр, помислете за използване на достъпен HTML формуляр като алтернатива.
                    • Ако това е документ, помислете за преобразуването му в уеб страница.
                    В противен случай, моля, проверете PDF за достъпност в Acrobat DC.', QA_DOCUMENT: 'Не мога да проверя документа за достъпност. Свързаните документи се считат за уеб съдържание и също трябва да бъдат достъпни. Моля, прегледайте ръчно този документ. ', QA_PAGE_LANGUAGE: 'Езикът на страницата не е обявен! Моля, декларирайте езика в HTML тага.', QA_PAGE_TITLE: 'Липсващо заглавие на страницата! Моля, посочете заглавие на страницата.', - QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(sanitizedText)
                    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', - QA_FAKE_HEADING: 'Това заглавие ли е? %(boldtext)
                    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', + QA_BLOCKQUOTE_MESSAGE: 'Това заглавие ли е? %(TEXT)
                    Блок кавичките трябва да се използват само за цитати. Ако това е предназначено за заглавие, променете тази блокова кавичка на семантично заглавие (напр. заглавие 2 или заглавие 3).', + QA_FAKE_HEADING: 'Това заглавие ли е? %(TEXT)
                    Ред с удебелен или голям текст може да изглежда като заглавие, но човек, който използва екранен четец, не може да разбере, че е важен, или да премине към съдържанието му. Удебеленият или големият текст никога не трябва да замества семантичните заглавия (заглавия от 2 до 6).', QA_SHOULD_BE_LIST: 'Опитвате се да създадете списък? Намерен е възможен елемент от списък: %(firstPrefix)
                    Уверете се, че използвате семантични списъци, като вместо това използвате бутоните за форматиране на курсив или число. Когато се използва семантичен списък, помощните технологии могат да предадат информация като общия брой елементи и относителната позиция на всеки елемент в списъка. Научете повече за семантичните списъци.', QA_UPPERCASE_WARNING: 'Намерени са всички главни букви. Някои екранни четци могат да интерпретират текста с главни букви като акроним и да четат всяка буква поотделно. Освен това някои хора смятат, че всички главни букви се четат по-трудно и могат да създадат впечатлението, че се крещи.', QA_DUPLICATE_ID: 'Намерен е дубликат на ID. Известно е, че грешките с дублиращи се идентификатори причиняват проблеми на помощните технологии, когато те се опитват да взаимодействат със съдържанието.
                    Моля, премахнете или променете следния ID: %(id)', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Липсват заглавия на таблици! Достъпните таблици се нуждаят от HTML маркировка, която обозначава клетките със заглавия и клетките с данни и определя тяхната връзка. Тази информация осигурява контекст за хората, които използват помощни технологии. Таблиците трябва да се използват само за таблични данни.
                    Научете повече за достъпните таблици.', TABLES_SEMANTIC_HEADING: 'Семантичните заглавия, като например Heading 2 или Heading 3, трябва да се използват само за части от съдържанието; не в HTML таблици. Вместо това посочвайте заглавия на таблици, като използвате елемента <th>.
                    Научете повече за достъпните таблици.', TABLES_EMPTY_HEADING: 'Открито е празно заглавие на таблица! Заглавията на таблиците никога не трябва да са празни. Важно е да се обозначат заглавията на редовете и/или колоните, за да се предаде тяхната връзка. Тази информация предоставя контекст на хората, които използват помощни технологии. Моля, имайте предвид, че таблиците трябва да се използват само за таблични данни.
                    Научете повече за достъпните таблици.', - CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношението на контраста е %(cratio) за следния текст: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Моля, прегледайте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Контрастно съотношение: %(cratio)', + CONTRAST_ERROR: 'Този текст не контрастира достатъчно с фона. Контрастното съотношение трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношение на контраста %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастът на този текст е неизвестен и трябва да бъде проверен ръчно. Уверете се, че текстът и фонът имат силно контрастиращи цветове. Съотношението на контраста трябва да бъде поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Моля, прегледайте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текстът в този вход не контрастира достатъчно с фона. Съотношението на контраста трябва да е поне 4,5:1 за нормален текст и 3:1 за голям текст.
                    Съотношение на контраста %(RATIO)', }, }; diff --git a/docs/assets/js/lang/cs.js b/docs/assets/js/lang/cs.js index 4a2c616c..cee5dc26 100644 --- a/docs/assets/js/lang/cs.js +++ b/docs/assets/js/lang/cs.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var cs = { OFF: 'Vypnuto', ALERT_TEXT: 'Upozornění', ALERT_CLOSE: 'Zavřít', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Obsah', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upravit', + IMAGES_NOT_FOUND: 'Žádné obrázky nenalezeny.', + DECORATIVE: 'Dekorativní', + MISSING: 'Chybějící', PAGE_ISSUES: 'Problémy se stránkami', SETTINGS: 'Nastavení', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var cs = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatečný obsah pro výpočet skóre čitelnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá úroveň nadpisu, která není po sobě jdoucí. Nadpisy by nikdy neměly přeskakovat úrovně nebo přecházet z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nalezena prázdná rubrika! Chcete-li to opravit, odstraňte tento řádek nebo změňte jeho formát z Záhlaví %(level) na Normální nebo Odstavec.', - HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
                    Počet znaků: %(headingLength) Počet znaků je omezen.', + HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
                    %(HEADING_LENGTH) Znaků', HEADING_FIRST: 'Prvním nadpisem na stránce by obvykle měl být nadpis 1 nebo nadpis 2. Nadpis 1 by měl být začátkem hlavní části obsahu a je hlavním nadpisem, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_MISSING_ONE: 'Chybějící nadpis 1. Nadpis 1 by měl být začátkem hlavní oblasti obsahu a je to hlavní nadpis, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žádný text, ale obrázek. Pokud se nejedná o nadpis, změňte jeho formát z Nadpis %(level) na Normální nebo Odstavec. V opačném případě přidejte k obrázku alt text, pokud není ozdobný.', @@ -157,37 +163,37 @@ var cs = { LINK_EMPTY: 'Odstranění prázdných odkazů bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, která je prázdná nebo neodpovídá hodnotě atributu id jiného prvku na stránce.', LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá čitelný text, který by byl viditelný pro čtečky obrazovky a další asistenční technologie. Oprava:
                  • Přidejte stručný text, který popisuje, kam odkaz vede.
                  • Jestliže se jedná o odkaz na ikonu nebo SVG, pravděpodobně chybí popisný štítek.
                  • Pokud si myslíte, že tento odkaz je chybou způsobenou chybou kopírování/vkládání, zvažte jeho odstranění.
                  • .', - LINK_LABEL: 'Značka odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(error)
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', - LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(error)
                    • "Klikněte zde" klade důraz na mechaniku myši, ačkoli mnoho lidí myš nepoužívá nebo si tyto webové stránky prohlíží na mobilním zařízení. Zvažte použití jiného slovesa, které se vztahuje k danému úkolu.
                    • Vyhněte se používání symbolů HTML jako výzvy k akci, pokud nejsou skryté pro asistenční technologie.
                    ', + LINK_LABEL: 'Značka odkazu: %(TEXT)', + LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(ERROR)
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', + LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(ERROR)
                    • "Klikněte zde" klade důraz na mechaniku myši, ačkoli mnoho lidí myš nepoužívá nebo si tyto webové stránky prohlíží na mobilním zařízení. Zvažte použití jiného slovesa, které se vztahuje k danému úkolu.
                    • Vyhněte se používání symbolů HTML jako výzvy k akci, pokud nejsou skryté pro asistenční technologie.
                    ', LINK_URL: 'Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být obtížně poslouchatelné pomocí asistenční technologie. Ve většině případů je lepší použít místo adresy URL lidsky čitelný text. Krátké adresy URL (například domovská stránka webu) jsou v pořádku.
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný, aby mohl být pochopen i mimo kontext.', LINK_DOI: 'Pro webové stránky nebo zdroje pouze online doporučuje průvodce stylem APA používat popisné odkazy tak, že kolem názvu díla uvedete adresu URL nebo DOI. Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být při přístupu pomocí asistenčních technologií obtížně srozumitelné.', NEW_TAB_WARNING: 'Odkaz se bez varování otevře v nové kartě nebo okně. To může být dezorientující, zejména pro lidi, kteří mají potíže s vnímáním vizuálního obsahu. Za druhé, není vždy vhodné kontrolovat něčí zážitek nebo rozhodovat za něj. Uveďte, že se odkaz otevírá v novém okně, v textu odkazu
                    Tip! Naučte se osvědčené postupy: otevírání odkazů v nových oknech a kartách prohlížeče.', FILE_TYPE_WARNING: 'Odkaz odkazuje na soubor PDF nebo soubor ke stažení (např. MP3, Zip, dokument Word) bez varování. Typ souboru uveďte v textu odkazu. Pokud se jedná o velký soubor, zvažte uvedení jeho velikosti.
                    Příklad: Výkonná zpráva (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
                    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(sanitizedText).', + LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
                    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázek se používá jako odkaz s okolním textem, ačkoli atribut alt by měl být označen jako dekorativní nebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázek se používá jako odkaz, ale chybí text alt! Ujistěte se, že text alt popisuje, kam odkaz vede.', MISSING_ALT_MESSAGE: 'Chybějící text alt! Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(error).
                    Text alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
                    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(error).
                    Text altu: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(altText).', - ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné.
                    Textuální text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je dostupný pomocí klávesnice. Pokud plánujete skrýt nadbytečný nebo duplicitní odkaz, přidejte také tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázek v odkazu je označen jako dekorativní a není v něm žádný text odkazu. Přidejte prosím k obrázku text alt, který popisuje cíl odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázek je označen jako dekorativní, ačkoli odkaz používá okolní text jako popisek.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    Alt text (%(altLength) znaků): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    Textu alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
                    Textuální text: %(altText)
                    Značka odkazu: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    ALT %(altLength) Znaků %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
                    ALT %(ALT_TEXT)
                    Značka odkazu %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat.
                    Přestože byl uveden nadpis, obrázek by měl mít ve většině případů také alt text.
                    • Titul alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Zjistěte více: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát.
                    • Text alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Další informace: alt versus figcaption.
                    Titulky: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát.
                    • Text alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Další informace: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci - nezapomeňte přidat alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
                    Textuální text (%(altLength) znaků): %(altText)', - IMAGE_PASS: 'Textuální text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
                    ALT %(altLength) Znaků %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'U tlačítka obrázku chybí text alt. Přidejte prosím text alt a uveďte přístupný název. Například: Hledat nebo Odeslat.', LABELS_INPUT_RESET_MESSAGE: 'Tlačítka resetování by se neměla používat, pokud to není výslovně nutné, protože je lze snadno aktivovat omylem.
                    Tip! Přečtěte si, proč tlačítka Reset a Cancel představují problém s použitelností.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
                    Štítek vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
                    Štítek vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte atribut for ke štítku, který odpovídá id tohoto vstupu.
                    ID tohoto vstupu je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte prosím k tomuto vstupu id a ke štítku přidejte odpovídající atribut for.', EMBED_VIDEO: 'Zajistěte, aby všechna videa byla opatřena skrytými titulky. Poskytování titulků pro veškerý audio a video obsah je povinným požadavkem úrovně A. Titulky podporují osoby s postižením D/neslyšící nebo nedoslýchavé.', @@ -196,26 +202,26 @@ var cs = { EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje přístupný název, který popisuje jeho obsah. Uveďte jedinečný atribut title nebo aria-label na elementu iframe. Další informace o iFrame..', EMBED_GENERAL_WARNING: 'Nelze zkontrolovat vložený obsah. Ujistěte se prosím, že obrázky mají alt text, videa mají titulky, text je dostatečně kontrastní a interaktivní komponenty jsou přístupné z klávesnice..', EMBED_UNFOCUSABLE: '<iframe> s nezaměřitelnými prvky by nemělo mít tabindex="-1". Vložený obsah nebude přístupný klávesnicí.', - QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
                    Tento odkaz odkazuje na:
                    %(el)', + QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
                    Tento odkaz odkazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Porušený odkaz na stejnou stránku. Cíl odkazu neodpovídá žádnému prvku na této stránce.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva mají sémantický význam a neměly by se používat ke zvýraznění celých odstavců. Tučný text by měl být používán k výraznému zdůraznění slova nebo slovního spojení. Kurzíva by se měla používat ke zvýraznění vlastních jmen (tj. názvů knih a článků), cizích slov, citátů. Dlouhé citace by měly být formátovány jako blokové citace.', QA_PDF: 'Nelze zkontrolovat přístupnost souborů PDF. Soubory PDF jsou považovány za webový obsah a musí být také zpřístupněny. Soubory PDF často obsahují problémy pro lidi, kteří používají čtečky obrazovky (chybějící strukturální značky nebo chybějící popisky formulářových polí), a pro lidi se slabým zrakem (text se při zvětšení nezvětšuje).
                    • Jestliže se jedná o formulář, zvažte jako alternativu použití přístupného formuláře HTML.
                    • Jestliže se jedná o dokument, zvažte jeho převedení na webovou stránku.
                    V opačném případě zkontrolujte PDF pro přístupnost v Acrobatu DC..', QA_DOCUMENT: 'Nelze zkontrolovat přístupnost dokumentu. Propojené dokumenty jsou považovány za webový obsah a musí být rovněž zpřístupněny. Zkontrolujte prosím tento dokument ručně. .', QA_PAGE_LANGUAGE: 'Jazyk stránky není deklarován! Prosím deklarujte jazyk v tagu HTML.', QA_PAGE_TITLE: 'Chybí název stránky! Uveďte prosím název stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
                    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
                    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
                    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
                    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', QA_SHOULD_BE_LIST: 'Snažíte se vytvořit seznam? Nalezena možná položka seznamu: %(firstPrefix)
                    Ujistěte se, že používáte sémantické seznamy tak, že místo nich použijete tlačítka pro formátování odrážek nebo čísel. Při použití sémantického seznamu jsou asistenční technologie schopny zprostředkovat informace, jako je celkový počet položek a relativní pozice každé položky v seznamu. Další informace o sémantických seznamech..', QA_UPPERCASE_WARNING: 'Nalezena všechna velká písmena. Některé čtečky obrazovky mohou text psaný velkými písmeny interpretovat jako zkratku a budou číst každé písmeno zvlášť. Kromě toho se některým lidem všechna velká písmena hůře čtou a mohou působit dojmem, jako by se jednalo o KŘIK.', - QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
                    Odstraňte nebo změňte následující ID: %(id).', + QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
                    Odstraňte nebo změňte následující ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podtržený text může být zaměněn za odkazy. Zvažte použití jiného stylu, například <strong>důležitost</strong> nebo <em>důraz</em>.', QA_SUBSCRIPT_WARNING: 'Možnosti formátování dolního a horního indexu by se měly používat pouze ke změně pozice textu kvůli typografickým konvencím nebo normám. Neměly by se používat výhradně pro účely prezentace nebo vzhledu. Formátování celých vět představuje problém s čitelností. Mezi vhodné případy použití patří zobrazování exponentů, řadových čísel, jako je 4th místo fourth, a chemických vzorců (např. H2O).', TABLES_MISSING_HEADINGS: 'Chybějící záhlaví tabulky! Přístupné tabulky potřebují značku HTML, která označuje buňky záhlaví a datové buňky a definuje jejich vzájemný vztah. Tyto informace poskytují kontext lidem, kteří používají asistenční technologie. Tabulky by se měly používat pouze pro tabulková data.
                    Další informace o přístupných tabulkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, jako je Nadpis 2 nebo Nadpis 3, by se měly používat pouze pro části obsahu; ne v tabulkách HTML. Nadpisy tabulek označujte místo toho pomocí elementu <th>.
                    Další informace o přístupných tabulkách.', TABLES_EMPTY_HEADING: 'Nalezeno prázdné záhlaví tabulky! Záhlaví tabulky by nikdy nemělo být prázdné. Je důležité označit záhlaví řádků a/nebo sloupců, aby byl vyjádřen jejich vztah. Tyto informace poskytují kontext osobám, které používají asistenční technologie. Mějte na paměti, že tabulky by se měly používat pouze pro tabulková data.
                    Další informace o přístupných tabulkách..', - CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Pro následující text je kontrastní poměr %(cratio): %(sanitizedText).', - CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Prosím, zkontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr: %(cratio).', + CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Prosím, zkontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr %(RATIO)', }, }; diff --git a/docs/assets/js/lang/cs.umd.js b/docs/assets/js/lang/cs.umd.js index b9fe7ab7..cf9b1513 100644 --- a/docs/assets/js/lang/cs.umd.js +++ b/docs/assets/js/lang/cs.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Vypnuto', ALERT_TEXT: 'Upozornění', ALERT_CLOSE: 'Zavřít', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Obsah', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upravit', + IMAGES_NOT_FOUND: 'Žádné obrázky nenalezeny.', + DECORATIVE: 'Dekorativní', + MISSING: 'Chybějící', PAGE_ISSUES: 'Problémy se stránkami', SETTINGS: 'Nastavení', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatečný obsah pro výpočet skóre čitelnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá úroveň nadpisu, která není po sobě jdoucí. Nadpisy by nikdy neměly přeskakovat úrovně nebo přecházet z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nalezena prázdná rubrika! Chcete-li to opravit, odstraňte tento řádek nebo změňte jeho formát z Záhlaví %(level) na Normální nebo Odstavec.', - HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
                    Počet znaků: %(headingLength) Počet znaků je omezen.', + HEADING_LONG: 'Záhlaví je dlouhé! Nadpisy by měly sloužit k uspořádání obsahu a vyjádření struktury. Měly by být stručné, informativní a jedinečné. Udržujte nadpisy kratší než 160 znaků (ne delší než jedna věta).
                    %(HEADING_LENGTH) Znaků', HEADING_FIRST: 'Prvním nadpisem na stránce by obvykle měl být nadpis 1 nebo nadpis 2. Nadpis 1 by měl být začátkem hlavní části obsahu a je hlavním nadpisem, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_MISSING_ONE: 'Chybějící nadpis 1. Nadpis 1 by měl být začátkem hlavní oblasti obsahu a je to hlavní nadpis, který popisuje celkový účel stránky. Více informací o Struktuře nadpisů..', HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žádný text, ale obrázek. Pokud se nejedná o nadpis, změňte jeho formát z Nadpis %(level) na Normální nebo Odstavec. V opačném případě přidejte k obrázku alt text, pokud není ozdobný.', @@ -163,37 +169,37 @@ LINK_EMPTY: 'Odstranění prázdných odkazů bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, která je prázdná nebo neodpovídá hodnotě atributu id jiného prvku na stránce.', LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá čitelný text, který by byl viditelný pro čtečky obrazovky a další asistenční technologie. Oprava:
                  • Přidejte stručný text, který popisuje, kam odkaz vede.
                  • Jestliže se jedná o odkaz na ikonu nebo SVG, pravděpodobně chybí popisný štítek.
                  • Pokud si myslíte, že tento odkaz je chybou způsobenou chybou kopírování/vkládání, zvažte jeho odstranění.
                  • .', - LINK_LABEL: 'Značka odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(error)
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', - LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(error)
                    • "Klikněte zde" klade důraz na mechaniku myši, ačkoli mnoho lidí myš nepoužívá nebo si tyto webové stránky prohlíží na mobilním zařízení. Zvažte použití jiného slovesa, které se vztahuje k danému úkolu.
                    • Vyhněte se používání symbolů HTML jako výzvy k akci, pokud nejsou skryté pro asistenční technologie.
                    ', + LINK_LABEL: 'Značka odkazu: %(TEXT)', + LINK_STOPWORD: 'Text odkazu nemusí být z kontextu dostatečně popisný: %(ERROR)
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný. Vyhněte se běžným slovům jako "klikněte zde" nebo "dozvědět se více"', + LINK_BEST_PRACTICES: 'Zvažte nahrazení textu odkazu: %(ERROR)
                    • "Klikněte zde" klade důraz na mechaniku myši, ačkoli mnoho lidí myš nepoužívá nebo si tyto webové stránky prohlíží na mobilním zařízení. Zvažte použití jiného slovesa, které se vztahuje k danému úkolu.
                    • Vyhněte se používání symbolů HTML jako výzvy k akci, pokud nejsou skryté pro asistenční technologie.
                    ', LINK_URL: 'Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být obtížně poslouchatelné pomocí asistenční technologie. Ve většině případů je lepší použít místo adresy URL lidsky čitelný text. Krátké adresy URL (například domovská stránka webu) jsou v pořádku.
                    Tip! Text odkazu by měl být vždy jasný, jedinečný a smysluplný, aby mohl být pochopen i mimo kontext.', LINK_DOI: 'Pro webové stránky nebo zdroje pouze online doporučuje průvodce stylem APA používat popisné odkazy tak, že kolem názvu díla uvedete adresu URL nebo DOI. Delší a méně srozumitelné adresy URL použité jako text odkazu by mohly být při přístupu pomocí asistenčních technologií obtížně srozumitelné.', NEW_TAB_WARNING: 'Odkaz se bez varování otevře v nové kartě nebo okně. To může být dezorientující, zejména pro lidi, kteří mají potíže s vnímáním vizuálního obsahu. Za druhé, není vždy vhodné kontrolovat něčí zážitek nebo rozhodovat za něj. Uveďte, že se odkaz otevírá v novém okně, v textu odkazu
                    Tip! Naučte se osvědčené postupy: otevírání odkazů v nových oknech a kartách prohlížeče.', FILE_TYPE_WARNING: 'Odkaz odkazuje na soubor PDF nebo soubor ke stažení (např. MP3, Zip, dokument Word) bez varování. Typ souboru uveďte v textu odkazu. Pokud se jedná o velký soubor, zvažte uvedení jeho velikosti.
                    Příklad: Výkonná zpráva (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
                    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(sanitizedText).', + LINK_IDENTICAL_NAME: 'Odkaz má stejný text jako jiný odkaz, přestože odkazuje na jinou stránku. Více odkazů se stejným textem může způsobit zmatek u lidí, kteří používají čtečky obrazovky.
                    Zvažte, zda následující odkaz nebude více popisný, abyste ho lépe odlišili od ostatních odkazů: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázek se používá jako odkaz s okolním textem, ačkoli atribut alt by měl být označen jako dekorativní nebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázek se používá jako odkaz, ale chybí text alt! Ujistěte se, že text alt popisuje, kam odkaz vede.', MISSING_ALT_MESSAGE: 'Chybějící text alt! Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(error).
                    Text alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
                    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(error).
                    Text altu: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(altText).', - ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(error)" může být zbytečné.
                    Textuální text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Odstranit: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt v odkazovaném obrázku. Ujistěte se, že text alt popisuje cíl odkazu, nikoli doslovný popis obrázku. Nahraďte následující text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné. Zajistěte, aby text alt popisoval cíl odkazu, nikoli doslovný popis obrázku.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nalezená přípona souboru v textu alt. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci, nezapomeňte ho popsat. Odstraňte: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nalezen nepopsaný nebo zástupný text alt. Nahraďte následující alt text něčím smysluplnějším: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Asistivní technologie již indikují, že se jedná o obrázek, takže "%(ERROR)" může být zbytečné.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je dostupný pomocí klávesnice. Pokud plánujete skrýt nadbytečný nebo duplicitní odkaz, přidejte také tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázek v odkazu je označen jako dekorativní a není v něm žádný text odkazu. Přidejte prosím k obrázku text alt, který popisuje cíl odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázek je označen jako dekorativní, ačkoli odkaz používá okolní text jako popisek.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    Alt text (%(altLength) znaků): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    Textu alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
                    Textuální text: %(altText)
                    Značka odkazu: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu u odkazovaného obrázku je příliš dlouhý. Text alt u odkazovaných obrázků by měl popisovat, kam odkaz vede, nikoli doslovný popis obrázku. Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    ALT %(altLength) Znaků %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázek obsahuje text alt. Popisuje text alt, kam vás odkaz zavede? Zvažte, zda jako alt text nepoužít název stránky, na kterou odkazuje.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázek obsahuje jak text alt, tak okolní text odkazu. Pokud je tento obrázek dekorativní a používá se jako funkční odkaz na jinou stránku, zvažte označení obrázku jako dekorativního nebo nulového - okolní text odkazu by měl být dostačující.
                    ALT %(ALT_TEXT)
                    Značka odkazu %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat.
                    Přestože byl uveden nadpis, obrázek by měl mít ve většině případů také alt text.
                    • Titul alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Zjistěte více: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát.
                    • Text alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Další informace: alt versus figcaption.
                    Titulky: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívejte stejná slova pro text alt i titulek. Čtečky obrazovky budou informace oznamovat dvakrát.
                    • Text alt by měl obsahovat stručný popis toho, co je na obrázku.
                    • Titul by měl obvykle poskytovat kontext, aby obrázek souvisel s okolním obsahem, nebo upozorňovat na konkrétní informaci.
                    Další informace: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázek je označen jako dekorativní a asistenční technologie jej budou ignorovat. Pokud obrázek vyjadřuje příběh, náladu nebo důležitou informaci - nezapomeňte přidat alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
                    Textuální text (%(altLength) znaků): %(altText)', - IMAGE_PASS: 'Textuální text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je příliš dlouhý. Alt text by měl být stručný, ale výstižný jako tweet (přibližně 100 znaků). Pokud se jedná o složitý obrázek nebo graf, zvažte umístění dlouhého popisu obrázku do textu pod ním nebo do akordeonové komponenty.
                    ALT %(altLength) Znaků %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'U tlačítka obrázku chybí text alt. Přidejte prosím text alt a uveďte přístupný název. Například: Hledat nebo Odeslat.', LABELS_INPUT_RESET_MESSAGE: 'Tlačítka resetování by se neměla používat, pokud to není výslovně nutné, protože je lze snadno aktivovat omylem.
                    Tip! Přečtěte si, proč tlačítka Reset a Cancel představují problém s použitelností.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
                    Štítek vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má přístupný název, ale zajistěte, aby byl viditelný i štítek.
                    Štítek vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte atribut for ke štítku, který odpovídá id tohoto vstupu.
                    ID tohoto vstupu je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu není přiřazen žádný štítek. Přidejte prosím k tomuto vstupu id a ke štítku přidejte odpovídající atribut for.', EMBED_VIDEO: 'Zajistěte, aby všechna videa byla opatřena skrytými titulky. Poskytování titulků pro veškerý audio a video obsah je povinným požadavkem úrovně A. Titulky podporují osoby s postižením D/neslyšící nebo nedoslýchavé.', @@ -202,26 +208,26 @@ EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje přístupný název, který popisuje jeho obsah. Uveďte jedinečný atribut title nebo aria-label na elementu iframe. Další informace o iFrame..', EMBED_GENERAL_WARNING: 'Nelze zkontrolovat vložený obsah. Ujistěte se prosím, že obrázky mají alt text, videa mají titulky, text je dostatečně kontrastní a interaktivní komponenty jsou přístupné z klávesnice..', EMBED_UNFOCUSABLE: '<iframe> s nezaměřitelnými prvky by nemělo mít tabindex="-1". Vložený obsah nebude přístupný klávesnicí.', - QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
                    Tento odkaz odkazuje na:
                    %(el)', + QA_BAD_LINK: 'Nalezen špatný odkaz. Zdá se, že odkaz vede na vývojové prostředí.
                    Tento odkaz odkazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Porušený odkaz na stejnou stránku. Cíl odkazu neodpovídá žádnému prvku na této stránce.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva mají sémantický význam a neměly by se používat ke zvýraznění celých odstavců. Tučný text by měl být používán k výraznému zdůraznění slova nebo slovního spojení. Kurzíva by se měla používat ke zvýraznění vlastních jmen (tj. názvů knih a článků), cizích slov, citátů. Dlouhé citace by měly být formátovány jako blokové citace.', QA_PDF: 'Nelze zkontrolovat přístupnost souborů PDF. Soubory PDF jsou považovány za webový obsah a musí být také zpřístupněny. Soubory PDF často obsahují problémy pro lidi, kteří používají čtečky obrazovky (chybějící strukturální značky nebo chybějící popisky formulářových polí), a pro lidi se slabým zrakem (text se při zvětšení nezvětšuje).
                    • Jestliže se jedná o formulář, zvažte jako alternativu použití přístupného formuláře HTML.
                    • Jestliže se jedná o dokument, zvažte jeho převedení na webovou stránku.
                    V opačném případě zkontrolujte PDF pro přístupnost v Acrobatu DC..', QA_DOCUMENT: 'Nelze zkontrolovat přístupnost dokumentu. Propojené dokumenty jsou považovány za webový obsah a musí být rovněž zpřístupněny. Zkontrolujte prosím tento dokument ručně. .', QA_PAGE_LANGUAGE: 'Jazyk stránky není deklarován! Prosím deklarujte jazyk v tagu HTML.', QA_PAGE_TITLE: 'Chybí název stránky! Uveďte prosím název stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
                    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
                    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
                    Blokové uvozovky by se měly používat pouze pro citace. Pokud se má jednat o nadpis, změňte tento blokový citát na sémantický nadpis (např. Nadpis 2 nebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
                    Řádek tučného nebo velkého textu může vypadat jako nadpis, ale člověk používající čtečku obrazovky nemůže poznat, že je důležitý, nebo přejít na jeho obsah. Tučný nebo velký text by nikdy neměl nahrazovat sémantické nadpisy (Nadpis 2 až Nadpis 6).', QA_SHOULD_BE_LIST: 'Snažíte se vytvořit seznam? Nalezena možná položka seznamu: %(firstPrefix)
                    Ujistěte se, že používáte sémantické seznamy tak, že místo nich použijete tlačítka pro formátování odrážek nebo čísel. Při použití sémantického seznamu jsou asistenční technologie schopny zprostředkovat informace, jako je celkový počet položek a relativní pozice každé položky v seznamu. Další informace o sémantických seznamech..', QA_UPPERCASE_WARNING: 'Nalezena všechna velká písmena. Některé čtečky obrazovky mohou text psaný velkými písmeny interpretovat jako zkratku a budou číst každé písmeno zvlášť. Kromě toho se některým lidem všechna velká písmena hůře čtou a mohou působit dojmem, jako by se jednalo o KŘIK.', - QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
                    Odstraňte nebo změňte následující ID: %(id).', + QA_DUPLICATE_ID: 'Nalezeno duplicitní ID. Je známo, že chyby duplicitního ID způsobují asistenčním technologiím problémy při pokusech o interakci s obsahem.
                    Odstraňte nebo změňte následující ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podtržený text může být zaměněn za odkazy. Zvažte použití jiného stylu, například <strong>důležitost</strong> nebo <em>důraz</em>.', QA_SUBSCRIPT_WARNING: 'Možnosti formátování dolního a horního indexu by se měly používat pouze ke změně pozice textu kvůli typografickým konvencím nebo normám. Neměly by se používat výhradně pro účely prezentace nebo vzhledu. Formátování celých vět představuje problém s čitelností. Mezi vhodné případy použití patří zobrazování exponentů, řadových čísel, jako je 4th místo fourth, a chemických vzorců (např. H2O).', TABLES_MISSING_HEADINGS: 'Chybějící záhlaví tabulky! Přístupné tabulky potřebují značku HTML, která označuje buňky záhlaví a datové buňky a definuje jejich vzájemný vztah. Tyto informace poskytují kontext lidem, kteří používají asistenční technologie. Tabulky by se měly používat pouze pro tabulková data.
                    Další informace o přístupných tabulkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, jako je Nadpis 2 nebo Nadpis 3, by se měly používat pouze pro části obsahu; ne v tabulkách HTML. Nadpisy tabulek označujte místo toho pomocí elementu <th>.
                    Další informace o přístupných tabulkách.', TABLES_EMPTY_HEADING: 'Nalezeno prázdné záhlaví tabulky! Záhlaví tabulky by nikdy nemělo být prázdné. Je důležité označit záhlaví řádků a/nebo sloupců, aby byl vyjádřen jejich vztah. Tyto informace poskytují kontext osobám, které používají asistenční technologie. Mějte na paměti, že tabulky by se měly používat pouze pro tabulková data.
                    Další informace o přístupných tabulkách..', - CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Pro následující text je kontrastní poměr %(cratio): %(sanitizedText).', - CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Prosím, zkontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr: %(cratio).', + CONTRAST_ERROR: 'Tento text není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohoto textu není znám a je třeba jej ručně zkontrolovat. Ujistěte se, že text a pozadí mají výrazně kontrastní barvy. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Prosím, zkontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupu není dostatečně kontrastní s pozadím. Kontrastní poměr by měl být alespoň 4,5:1 pro normální text a 3:1 pro velký text.
                    Kontrastní poměr %(RATIO)', }, }; diff --git a/docs/assets/js/lang/da.js b/docs/assets/js/lang/da.js index 3ac33577..c62b73ea 100644 --- a/docs/assets/js/lang/da.js +++ b/docs/assets/js/lang/da.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var da = { ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Luk', OUTLINE: 'Sideoversigt', + ALT: 'ALT', + IMAGES: 'Billeder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen billeder fundet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Manglende', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Indstillinger', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var da = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok indhold til at beregne læsbarhedsscore.', HEADING_NON_CONSECUTIVE_LEVEL: 'Ikke-fortløbende overskriftsniveau brugt. Overskrifter bør aldrig springe niveauer over, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift fundet! For at rette skal du slette denne linje eller ændre dens format fra Overskrift %(level) til Normal eller Afsnit.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
                    Antal tegn: %(headingLength)', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
                    %(HEADING_LENGTH) Tegn', HEADING_FIRST: 'Den første overskrift på en side bør normalt være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hovedindholdssektionen og er den hovedoverskrift, der beskriver det overordnede formål med siden. Læs mere om Overskriftsstruktur.', HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedindholdsområdet og er den hovedoverskrift, der beskriver sidens overordnede formål. Læs mere om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Heading har ingen tekst, men indeholder et billede. Hvis det ikke er en overskrift, skal du ændre formatet fra Overskrift %(level) til Normal eller Afsnit. Ellers bedes du tilføje alt-tekst til billedet, hvis det ikke er dekorativt.', @@ -157,37 +163,37 @@ var da = { LINK_EMPTY: 'Fjern tomme links uden tekst.', LINK_EMPTY_LABELLEDBY: 'Linket har en værdi for aria-labelledby, der enten er tom eller ikke matcher værdien af attributten id for et andet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Linket har ikke tydelig tekst, der er synlig for skærmlæsere og andre hjælpemidler. Sådan rettes det:
                    • Tilføj en kort tekst, der beskriver, hvor linket fører dig hen.
                    • Hvis det er et ikonlink eller SVG, mangler det sandsynligvis en beskrivende etiket.
                    • Hvis du tror, at dette link er en fejl på grund af en copy/paste-fejl, kan du overveje at slette det.
                    ', - LINK_LABEL: 'Link-etiket: %(sanitizedText)', - LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(error)
                    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', - LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(error)
                    • "Klik her" sætter fokus på musemekanik, når mange mennesker ikke bruger en mus eller måske ser denne hjemmeside på en mobil enhed. Overvej at bruge et andet verbum, der relaterer til opgaven.
                    • Undgå at bruge HTML-symboler som call to actions, medmindre de er skjult for hjælpeteknologier.
                    ', - LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
                    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', + LINK_LABEL: 'Link-etiket %(TEXT)', + LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(ERROR)
                    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', + LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(ERROR)
                    • "Klik her" sætter fokus på musemekanik, når mange mennesker ikke bruger en mus eller måske ser denne hjemmeside på en mobil enhed. Overvej at bruge et andet verbum, der relaterer til opgaven.
                    • Undgå at bruge HTML-symboler som call to actions, medmindre de er skjult for hjælpeteknologier.
                    ', + LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
                    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', LINK_DOI: 'For websider eller ressourcer, der kun er online, anbefaler APA Style guide at bruge beskrivende links ved at omslutte værkets URL eller DOI omkring dets titel. Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at forstå, når de tilgås med hjælpemidler.', - NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten
                    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', - FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
                    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten.
                    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', + FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
                    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Billedet bruges som et link med omgivende tekst, selvom alt-attributten burde være markeret som dekorativ eller nul.', MISSING_ALT_LINK_MESSAGE: 'Billedet bliver brugt som et link, men mangler alt-tekst! Sørg for, at alt-teksten beskriver, hvor linket fører dig hen.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
                    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linket har aria-hidden="true", men er stadig tastaturfokuserbar. Hvis du har til hensigt at skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Billedet i linket er markeret som dekorativt, og der er ingen linktekst. Tilføj venligst alt-tekst til billedet, der beskriver linkets destination.', LINK_IMAGE_HAS_TEXT: 'Billedet er markeret som dekorativt, selvom linket bruger den omgivende tekst som en beskrivende label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
                    Alt-tekst: %(altText)
                    Link-etiket: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
                    ALT %(ALT_TEXT)
                    Link-etiket %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler.
                    Selvom der er angivet en caption, bør billedet i de fleste tilfælde også have en alt-tekst.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er på billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er i billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet tilbage til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.
                    Alttekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er i billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet tilbage til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler. Hvis billedet formidler en historie, stemning eller vigtig information - så sørg for at tilføje alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
                    Alt-tekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Billedknappen mangler alt-tekst. Tilføj venligst alt-tekst for at give et tilgængeligt navn. For eksempel: Søg eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Nulstillingsknapper bør ikke bruges, medmindre det er specifikt nødvendigt, fordi de er lette at aktivere ved en fejl.
                    Tip! Lær, hvorfor Reset- og Cancel-knapper giver problemer med brugervenligheden.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
                    Indtastningsmærke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
                    Indtastningsmærke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj en for-attribut til den label, der matcher id for dette input.
                    ID\'et for dette input er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj venligst et id til dette input, og tilføj en matchende for-attribut til etiketten.', EMBED_VIDEO: 'Sørg for, at alle videoer har undertekster. Det er et obligatorisk krav på niveau A at levere undertekster til alt lyd- og videoindhold. Undertekster støtter mennesker, der er døve eller hørehæmmede.', @@ -196,15 +202,15 @@ var da = { EMBED_MISSING_TITLE: 'Indlejret indhold kræver et tilgængeligt navn, der beskriver dets indhold. Angiv venligst en unik title eller aria-label attribut på iframe-elementet. Få mere at vide om iFrames.', EMBED_GENERAL_WARNING: 'Kan ikke kontrollere indlejret indhold. Sørg for, at billeder har alt-tekst, videoer har undertekster, tekst har tilstrækkelig kontrast, og interaktive komponenter er tilgængelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke have tabindex="-1". Det indlejrede indhold vil ikke være tilgængeligt med tastaturet.', - QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
                    Dette link peger på:
                    %(el)', + QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
                    Dette link peger på:
                    %(LINK)', QA_IN_PAGE_LINK: 'Brudt samme-sides link. Linkmålet stemmer ikke overens med nogen element på denne side.', QA_BAD_ITALICS: 'Fede og kursive tags har semantisk betydning og bør ikke bruges til at fremhæve hele afsnit. Fed tekst skal bruges til at give stærk fremhævelse af et ord eller en sætning. Kursiv bør bruges til at fremhæve egennavne (f.eks. bog- og artikeltitler), fremmedord og citater. Lange citater skal formateres som blokcitater.', QA_PDF: 'Kan ikke tjekke PDF\'er for tilgængelighed. PDF\'er betragtes som webindhold og skal også gøres tilgængelige. PDF\'er indeholder ofte problemer for folk, der bruger skærmlæsere (manglende strukturelle tags eller manglende formularfeltetiketter) og folk, der ser dårligt (teksten flyder ikke ud igen, når den forstørres).
                    • Hvis dette er en formular, kan du overveje at bruge en tilgængelig HTML-formular som alternativ.
                    • Hvis dette er et dokument, kan du overveje at konvertere det til en webside.
                    Ellers bedes du tjekke PDF for tilgængelighed i Acrobat DC.', QA_DOCUMENT: 'Kan ikke tjekke dokumentet for tilgængelighed. Linkede dokumenter betragtes som webindhold og skal også gøres tilgængelige. Gennemgå venligst dette dokument manuelt. ', QA_PAGE_LANGUAGE: 'Sidens sprog er ikke angivet! Venligst deklarer sprog på HTML-tag.', QA_PAGE_TITLE: 'Manglende sidetitel! Angiv venligst en sidetitel.', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
                    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
                    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
                    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
                    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', QA_SHOULD_BE_LIST: 'Prøver du at oprette en liste? Muligt listeelement fundet: %(firstPrefix)
                    Sørg for at bruge semantiske lister ved at bruge punkt- eller talformateringsknapperne i stedet. Når du bruger en semantisk liste, kan hjælpeteknologier formidle oplysninger som det samlede antal elementer og den relative placering af hvert element i listen. Få mere at vide om semantiske lister.', QA_UPPERCASE_WARNING: 'Fundet med store bogstaver. Nogle skærmlæsere kan fortolke tekst med store bogstaver som et akronym og vil læse hvert bogstav individuelt. Derudover synes nogle mennesker, at store bogstaver er sværere at læse, og det kan se ud, som om man råber.', QA_DUPLICATE_ID: 'Fandt duplikat-ID. Fejl med dublerede ID\'er er kendt for at give problemer for hjælpeteknologier, når de forsøger at interagere med indhold.
                    Fjern eller ændr venligst følgende ID: %(id)', @@ -213,9 +219,9 @@ var da = { TABLES_MISSING_HEADINGS: 'Manglende tabeloverskrifter! Tilgængelige tabeller har brug for HTML-markup, der angiver overskriftsceller og dataceller, som definerer deres forhold. Disse oplysninger giver kontekst til folk, der bruger hjælpemidler. Tabeller bør kun bruges til tabeldata.
                    Få mere at vide om tilgængelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som Heading 2 eller Heading 3 bør kun bruges til sektioner af indhold; ikke i HTML-tabeller. Angiv tabeloverskrifter ved hjælp af <th>-elementet i stedet.
                    Få mere at vide om tilgængelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabeloverskrift fundet! Tabeloverskrifter bør aldrig være tomme. Det er vigtigt at udpege række- og/eller kolonneoverskrifter for at formidle deres relation. Disse oplysninger giver kontekst til personer, der bruger hjælpemidler. Husk, at tabeller kun bør bruges til tabeldata.
                    Få mere at vide om tilgængelige tabeller.', - CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforholdet er %(cratio) for den følgende tekst: %(sanitizedText) for følgende tekst', - CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vær venlig at gennemgå: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vær venlig at gennemgå: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO)', }, }; diff --git a/docs/assets/js/lang/da.umd.js b/docs/assets/js/lang/da.umd.js index 5390dac0..b70b8ce0 100644 --- a/docs/assets/js/lang/da.umd.js +++ b/docs/assets/js/lang/da.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Luk', OUTLINE: 'Sideoversigt', + ALT: 'ALT', + IMAGES: 'Billeder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen billeder fundet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Manglende', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Indstillinger', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok indhold til at beregne læsbarhedsscore.', HEADING_NON_CONSECUTIVE_LEVEL: 'Ikke-fortløbende overskriftsniveau brugt. Overskrifter bør aldrig springe niveauer over, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift fundet! For at rette skal du slette denne linje eller ændre dens format fra Overskrift %(level) til Normal eller Afsnit.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
                    Antal tegn: %(headingLength)', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal bruges til at organisere indhold og formidle struktur. De skal være korte, informative og unikke. Hold venligst overskrifter på mindre end 160 tegn (ikke mere end en sætning).
                    %(HEADING_LENGTH) Tegn', HEADING_FIRST: 'Den første overskrift på en side bør normalt være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hovedindholdssektionen og er den hovedoverskrift, der beskriver det overordnede formål med siden. Læs mere om Overskriftsstruktur.', HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedindholdsområdet og er den hovedoverskrift, der beskriver sidens overordnede formål. Læs mere om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Heading har ingen tekst, men indeholder et billede. Hvis det ikke er en overskrift, skal du ændre formatet fra Overskrift %(level) til Normal eller Afsnit. Ellers bedes du tilføje alt-tekst til billedet, hvis det ikke er dekorativt.', @@ -163,37 +169,37 @@ LINK_EMPTY: 'Fjern tomme links uden tekst.', LINK_EMPTY_LABELLEDBY: 'Linket har en værdi for aria-labelledby, der enten er tom eller ikke matcher værdien af attributten id for et andet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Linket har ikke tydelig tekst, der er synlig for skærmlæsere og andre hjælpemidler. Sådan rettes det:
                    • Tilføj en kort tekst, der beskriver, hvor linket fører dig hen.
                    • Hvis det er et ikonlink eller SVG, mangler det sandsynligvis en beskrivende etiket.
                    • Hvis du tror, at dette link er en fejl på grund af en copy/paste-fejl, kan du overveje at slette det.
                    ', - LINK_LABEL: 'Link-etiket: %(sanitizedText)', - LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(error)
                    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', - LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(error)
                    • "Klik her" sætter fokus på musemekanik, når mange mennesker ikke bruger en mus eller måske ser denne hjemmeside på en mobil enhed. Overvej at bruge et andet verbum, der relaterer til opgaven.
                    • Undgå at bruge HTML-symboler som call to actions, medmindre de er skjult for hjælpeteknologier.
                    ', - LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
                    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', + LINK_LABEL: 'Link-etiket %(TEXT)', + LINK_STOPWORD: 'Linkteksten er måske ikke beskrivende nok uden for kontekst: %(ERROR)
                    Tip! Linktekst skal altid være tydelig, unik og meningsfuld. Undgå almindelige ord som "klik her" eller "lær mere"', + LINK_BEST_PRACTICES: 'Overvej at udskifte linkteksten: %(ERROR)
                    • "Klik her" sætter fokus på musemekanik, når mange mennesker ikke bruger en mus eller måske ser denne hjemmeside på en mobil enhed. Overvej at bruge et andet verbum, der relaterer til opgaven.
                    • Undgå at bruge HTML-symboler som call to actions, medmindre de er skjult for hjælpeteknologier.
                    ', + LINK_URL: 'Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at lytte til med hjælpemidler. I de fleste tilfælde er det bedre at bruge menneskeligt læsbar tekst i stedet for URL\'en. Korte URL\'er (som f.eks. en hjemmesides startside) er okay.
                    Tip! Linktekst skal altid være klar, unik og meningsfuld, så den kan forstås uden for kontekst.', LINK_DOI: 'For websider eller ressourcer, der kun er online, anbefaler APA Style guide at bruge beskrivende links ved at omslutte værkets URL eller DOI omkring dets titel. Længere, mindre forståelige URL\'er, der bruges som linktekst, kan være svære at forstå, når de tilgås med hjælpemidler.', - NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten
                    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', - FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
                    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link åbner i en ny fane eller et nyt vindue uden advarsel. Det kan være desorienterende, især for folk, der har svært ved at opfatte visuelt indhold. For det andet er det ikke altid en god praksis at kontrollere andres oplevelse eller træffe beslutninger for dem. Angiv, at linket åbner i et nyt vindue i linkteksten.
                    Tip! Lær bedste praksis: åbning af links i nye browservinduer og faner.', + FILE_TYPE_WARNING: 'Link peger på en PDF eller en downloadbar fil (f.eks. MP3, Zip, Word Doc) uden advarsel. Angiv filtypen i linkteksten. Hvis det er en stor fil, kan du overveje at inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linket har samme tekst som et andet link, selvom det peger på en anden side. Flere links med samme tekst kan skabe forvirring for folk, der bruger skærmlæsere.
                    Overvej at gøre følgende link mere beskrivende for at hjælpe med at skelne det fra andre links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Billedet bruges som et link med omgivende tekst, selvom alt-attributten burde være markeret som dekorativ eller nul.', MISSING_ALT_LINK_MESSAGE: 'Billedet bliver brugt som et link, men mangler alt-tekst! Sørg for, at alt-teksten beskriver, hvor linket fører dig hen.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
                    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(error)" kan være overflødigt.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filtypenavn i alt-teksten fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Fjern: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst i et linket billede fundet. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet. Erstat den følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt. Sørg for, at alt-teksten beskriver linkets destination, ikke en bogstavelig beskrivelse af billedet.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypenavn i den fundne alt-tekst. Hvis billedet formidler en historie, en stemning eller vigtig information - så sørg for at beskrive billedet. Fjern det: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende eller pladsholder-alt-tekst fundet. Udskift den følgende alt-tekst med noget mere meningsfuldt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjælpemidler indikerer allerede, at dette er et billede, så "%(ERROR)" kan være overflødigt.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linket har aria-hidden="true", men er stadig tastaturfokuserbar. Hvis du har til hensigt at skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Billedet i linket er markeret som dekorativt, og der er ingen linktekst. Tilføj venligst alt-tekst til billedet, der beskriver linkets destination.', LINK_IMAGE_HAS_TEXT: 'Billedet er markeret som dekorativt, selvom linket bruger den omgivende tekst som en beskrivende label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
                    Alt-tekst: %(altText)
                    Link-etiket: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et linket billede er for lang. Alt-teksten på linkede billeder skal beskrive, hvor linket fører dig hen, ikke en bogstavelig beskrivelse af billedet. Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Billedlink indeholder alt-tekst. Beskriver alt-teksten, hvor linket fører dig hen? Overvej at bruge titlen på den side, der linkes til, som alt-tekst.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Billedlink indeholder både alt-tekst og omgivende linktekst. Hvis dette billede er dekorativt og bruges som et funktionelt link til en anden side, skal du overveje at markere billedet som dekorativt eller nul - den omgivende linktekst bør være tilstrækkelig.
                    ALT %(ALT_TEXT)
                    Link-etiket %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler.
                    Selvom der er angivet en caption, bør billedet i de fleste tilfælde også have en alt-tekst.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er på billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er i billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet tilbage til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.
                    Alttekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Brug ikke nøjagtig de samme ord til både alt- og billedtekst. Skærmlæsere vil annoncere informationen to gange.
                    • Alt-teksten skal give en kortfattet beskrivelse af, hvad der er i billedet.
                    • Billedteksten skal normalt give kontekst for at relatere billedet tilbage til det omgivende indhold eller gøre opmærksom på et bestemt stykke information.
                    Lær mere: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Billedet er markeret som dekorativt og vil blive ignoreret af hjælpemidler. Hvis billedet formidler en historie, stemning eller vigtig information - så sørg for at tilføje alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
                    Alt-tekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten skal være kortfattet, men alligevel meningsfuld som et tweet (omkring 100 tegn). Hvis det er et komplekst billede eller en graf, kan du overveje at placere den lange beskrivelse af billedet i teksten nedenfor eller i en harmonika-komponent.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Billedknappen mangler alt-tekst. Tilføj venligst alt-tekst for at give et tilgængeligt navn. For eksempel: Søg eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Nulstillingsknapper bør ikke bruges, medmindre det er specifikt nødvendigt, fordi de er lette at aktivere ved en fejl.
                    Tip! Lær, hvorfor Reset- og Cancel-knapper giver problemer med brugervenligheden.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
                    Indtastningsmærke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input har et tilgængeligt navn, men sørg for, at der også er en synlig label.
                    Indtastningsmærke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj en for-attribut til den label, der matcher id for dette input.
                    ID\'et for dette input er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Der er ingen label knyttet til dette input. Tilføj venligst et id til dette input, og tilføj en matchende for-attribut til etiketten.', EMBED_VIDEO: 'Sørg for, at alle videoer har undertekster. Det er et obligatorisk krav på niveau A at levere undertekster til alt lyd- og videoindhold. Undertekster støtter mennesker, der er døve eller hørehæmmede.', @@ -202,15 +208,15 @@ EMBED_MISSING_TITLE: 'Indlejret indhold kræver et tilgængeligt navn, der beskriver dets indhold. Angiv venligst en unik title eller aria-label attribut på iframe-elementet. Få mere at vide om iFrames.', EMBED_GENERAL_WARNING: 'Kan ikke kontrollere indlejret indhold. Sørg for, at billeder har alt-tekst, videoer har undertekster, tekst har tilstrækkelig kontrast, og interaktive komponenter er tilgængelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke have tabindex="-1". Det indlejrede indhold vil ikke være tilgængeligt med tastaturet.', - QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
                    Dette link peger på:
                    %(el)', + QA_BAD_LINK: 'Dårligt link fundet. Linket ser ud til at pege på et udviklingsmiljø.
                    Dette link peger på:
                    %(LINK)', QA_IN_PAGE_LINK: 'Brudt samme-sides link. Linkmålet stemmer ikke overens med nogen element på denne side.', QA_BAD_ITALICS: 'Fede og kursive tags har semantisk betydning og bør ikke bruges til at fremhæve hele afsnit. Fed tekst skal bruges til at give stærk fremhævelse af et ord eller en sætning. Kursiv bør bruges til at fremhæve egennavne (f.eks. bog- og artikeltitler), fremmedord og citater. Lange citater skal formateres som blokcitater.', QA_PDF: 'Kan ikke tjekke PDF\'er for tilgængelighed. PDF\'er betragtes som webindhold og skal også gøres tilgængelige. PDF\'er indeholder ofte problemer for folk, der bruger skærmlæsere (manglende strukturelle tags eller manglende formularfeltetiketter) og folk, der ser dårligt (teksten flyder ikke ud igen, når den forstørres).
                    • Hvis dette er en formular, kan du overveje at bruge en tilgængelig HTML-formular som alternativ.
                    • Hvis dette er et dokument, kan du overveje at konvertere det til en webside.
                    Ellers bedes du tjekke PDF for tilgængelighed i Acrobat DC.', QA_DOCUMENT: 'Kan ikke tjekke dokumentet for tilgængelighed. Linkede dokumenter betragtes som webindhold og skal også gøres tilgængelige. Gennemgå venligst dette dokument manuelt. ', QA_PAGE_LANGUAGE: 'Sidens sprog er ikke angivet! Venligst deklarer sprog på HTML-tag.', QA_PAGE_TITLE: 'Manglende sidetitel! Angiv venligst en sidetitel.', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
                    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
                    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
                    Blokcitater bør kun bruges til citater. Hvis dette er tænkt som en overskrift, skal du ændre dette blokcitat til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
                    En linje med fed eller stor tekst kan ligne en overskrift, men en person, der bruger en skærmlæser, kan ikke se, at den er vigtig eller springe til indholdet. Fed eller stor tekst bør aldrig erstatte semantiske overskrifter (Overskrift 2 til Overskrift 6).', QA_SHOULD_BE_LIST: 'Prøver du at oprette en liste? Muligt listeelement fundet: %(firstPrefix)
                    Sørg for at bruge semantiske lister ved at bruge punkt- eller talformateringsknapperne i stedet. Når du bruger en semantisk liste, kan hjælpeteknologier formidle oplysninger som det samlede antal elementer og den relative placering af hvert element i listen. Få mere at vide om semantiske lister.', QA_UPPERCASE_WARNING: 'Fundet med store bogstaver. Nogle skærmlæsere kan fortolke tekst med store bogstaver som et akronym og vil læse hvert bogstav individuelt. Derudover synes nogle mennesker, at store bogstaver er sværere at læse, og det kan se ud, som om man råber.', QA_DUPLICATE_ID: 'Fandt duplikat-ID. Fejl med dublerede ID\'er er kendt for at give problemer for hjælpeteknologier, når de forsøger at interagere med indhold.
                    Fjern eller ændr venligst følgende ID: %(id)', @@ -219,9 +225,9 @@ TABLES_MISSING_HEADINGS: 'Manglende tabeloverskrifter! Tilgængelige tabeller har brug for HTML-markup, der angiver overskriftsceller og dataceller, som definerer deres forhold. Disse oplysninger giver kontekst til folk, der bruger hjælpemidler. Tabeller bør kun bruges til tabeldata.
                    Få mere at vide om tilgængelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som Heading 2 eller Heading 3 bør kun bruges til sektioner af indhold; ikke i HTML-tabeller. Angiv tabeloverskrifter ved hjælp af <th>-elementet i stedet.
                    Få mere at vide om tilgængelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabeloverskrift fundet! Tabeloverskrifter bør aldrig være tomme. Det er vigtigt at udpege række- og/eller kolonneoverskrifter for at formidle deres relation. Disse oplysninger giver kontekst til personer, der bruger hjælpemidler. Husk, at tabeller kun bør bruges til tabeldata.
                    Få mere at vide om tilgængelige tabeller.', - CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforholdet er %(cratio) for den følgende tekst: %(sanitizedText) for følgende tekst', - CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vær venlig at gennemgå: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne tekst har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne tekst er ukendt og skal gennemgås manuelt. Sørg for, at teksten og baggrunden har stærke kontrastfarver. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vær venlig at gennemgå: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i dette input har ikke nok kontrast til baggrunden. Kontrastforholdet skal være mindst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO)', }, }; diff --git a/docs/assets/js/lang/de.js b/docs/assets/js/lang/de.js index bd4db5ad..95f3070f 100644 --- a/docs/assets/js/lang/de.js +++ b/docs/assets/js/lang/de.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,6 +26,12 @@ var de = { ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Schließen', OUTLINE: 'Seitenumriss', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Bearbeiten', + IMAGES_NOT_FOUND: 'Keine Bilder gefunden.', + DECORATIVE: 'Dekorativ', + MISSING: 'Fehlend', PAGE_ISSUES: 'Seitenprobleme', SETTINGS: 'Einstellungen', CONTRAST: 'Kontrast', @@ -149,7 +155,7 @@ var de = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nicht-konsekutive Überschriftenebene verwendet. Überschriften sollten niemals Ebenen überspringen oder von Überschrift %(prevLevel) zu Überschrift %(level) gehen.', HEADING_EMPTY: 'Leere Überschrift gefunden! Um dies zu beheben, löschen Sie diese Zeile oder ändern Sie ihr Format von Überschrift %(level) zu Normal oder Absatz (p).', - HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
                    Zeichen Anzahl: %(headingLength)', + HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
                    %(HEADING_LENGTH) Zeichen', HEADING_FIRST: 'Die erste Überschrift auf einer Seite sollte in der Regel Überschrift 1 oder Überschrift 2 sein. Überschrift 1 sollte der Beginn des Hauptinhaltsabschnitts sein und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_MISSING_ONE: 'Fehlende Überschrift 1: Überschrift 1 sollte am Anfang des Hauptinhaltsbereichs stehen und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_EMPTY_WITH_IMAGE: 'Die Überschrift hat keinen Text, enthält aber ein Bild. Wenn es sich nicht um eine Überschrift handelt, ändere das Format von Überschrift %(level) zu Normal oder Absatz (p). Andernfalls füge bitte einen Alt-Text zum Bild hinzu, wenn es nicht dekorativ ist.', @@ -160,43 +166,43 @@ var de = { LINK_EMPTY: 'Entferne leere Links ohne Text.', LINK_EMPTY_LABELLEDBY: 'Der Link hat einen Wert für aria-labelledby, der leer ist oder nicht mit dem Wert des id-Attributs eines anderen Elements auf der Seite übereinstimmt.', LINK_EMPTY_LINK_NO_LABEL: 'Der Link hat keinen erkennbaren Text, der für Bildschirmleser und andere unterstützenden Technologien sichtbar ist. Zu beheben:
                    • Füge einen kurzen Text hinzu, der beschreibt, wohin der Link führt.
                    • Wenn es ein Icon Link oder ein SVG ist, ist es sehr wahrscheinlich, dass ein beschreibendes Label fehlt.
                    • Wenn Du glaubst, dass dieser Link aufgrund eines Kopier-/Einfügefehlers fehlerhaft ist, solltest Du ihn löschen.
                    ', - LINK_LABEL: 'Link Label: %(sanitizedText)', - LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(error)
                    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', - LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(error)
                    • "Hier klicken" legt den Schwerpunkt auf die Mausmechanik, obwohl viele Menschen keine Maus benutzen oder diese Website möglicherweise auf einem mobilen Gerät betrachten. Erwäge die Verwendung eines anderen Verbs, das sich auf die Aufgabe bezieht.
                    • Vermeide die Verwendung von HTML-Symbolen als Aktionsaufrufe, es sei denn, sie sind für unterstützende Technologien verborgen.
                    ', - LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
                    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', + LINK_LABEL: 'Link Label %(TEXT)', + LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(ERROR)
                    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', + LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(ERROR)
                    • "Hier klicken" legt den Schwerpunkt auf die Mausmechanik, obwohl viele Menschen keine Maus benutzen oder diese Website möglicherweise auf einem mobilen Gerät betrachten. Erwäge die Verwendung eines anderen Verbs, das sich auf die Aufgabe bezieht.
                    • Vermeide die Verwendung von HTML-Symbolen als Aktionsaufrufe, es sei denn, sie sind für unterstützende Technologien verborgen.
                    ', + LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
                    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', LINK_DOI: 'Für Webseiten oder reine Online-Ressourcen empfiehlt der APA Style guide die Verwendung von deskriptiven Links, indem die URL oder DOI des Werks um den Titel herumgeschrieben wird. Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein.', // Links advanced - NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
                    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', - FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
                    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
                    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(sanitizedText)', + NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
                    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', + FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
                    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
                    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Das Bild wird als Link mit umliegendem Text verwendet, obwohl das alt-Attribut als dekorativ oder null markiert sein sollte.', MISSING_ALT_LINK_MESSAGE: 'Das Bild wird als Link verwendet, aber es fehlt der Alt-Text! Bitte stellen Sie sicher, dass der Alt-Text beschreibt, wohin der Link Dich führt.', MISSING_ALT_MESSAGE: 'Fehlender Alt text! Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt.', - LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Der Link hat aria-hidden="true", ist aber trotzdem tastaturfokussierbar. Wenn du beabsichtigst, einen überflüssigen oder doppelten Link zu verbergen, füge auch tabindex="-1" hinzu.', LINK_IMAGE_NO_ALT_TEXT: 'Das Bild innerhalb des Links ist als dekorativ gekennzeichnet und es gibt keinen Linktext. Bitte füge dem Bild einen Alt-Text hinzu, der das Ziel des Links beschreibt.', LINK_IMAGE_HAS_TEXT: 'Das Bild ist als dekorativ gekennzeichnet, obwohl der Link den umgebenden Text als beschreibende Bezeichnung verwendet.', - LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
                    Alt text: %(altText)
                    Link Label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
                    ALT %(altLength) Zeichen %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert.
                    Obwohl eine Beschriftung angegeben wurde, sollte das Bild in den meisten Fällen auch einen Alt-Text haben.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert. Wenn das Bild eine Geschichte, eine Stimmung oder wichtige Informationen vermittelt - füge unbedingt einen Alt-Text hinzu.', - IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
                    Alt text (%(altLength) Zeichen): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
                    ALT %(altLength) Zeichen %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildschaltfläche fehlt Alt-Text. Bitte füge alternativen Text hinzu, um einen barrierefreien Namen bereitzustellen. Zum Beispiel: Suchen oder Senden.', - LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
                    Tipp! Erfahre, warum Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.< /a>', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
                    Eingabelabel: %(sanitizedText)', + LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
                    Tipp! Erfahre, warum
                    Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
                    Eingabelabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Füge dem Label ein for-Attribut hinzu, das der id dieser Eingabe entspricht.
                    Die ID für diese Eingabe lautet: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Bitte füge dieser Eingabe eine id hinzu und füge dem Label ein passendes for-Attribut hinzu.', @@ -209,19 +215,19 @@ var de = { EMBED_UNFOCUSABLE: '<iframe> mit nicht fokussierbaren Elementen sollte kein tabindex="-1" haben. Der eingebettete Inhalt wird nicht mit der Tastatur erreichbar sein.', // Quality assurance - QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
                    Dieser Link verweist auf:
                    %(el)', + QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
                    Dieser Link verweist auf:
                    %(LINK)', QA_IN_PAGE_LINK: 'Defekter Verweis innerhalb der Seite. Das Ziel des Verweises stimmt mit keinem Element auf dieser Seite überein.', QA_BAD_ITALICS: 'Fett- und Kursiv-Tags haben semantische Bedeutung und sollten nicht verwendet werden, um ganze Absätze hervorzuheben. Fettgedruckter Text sollte verwendet werden, um ein Wort oder einen Ausdruck stark zu betonen. Kursiv sollte verwendet werden, um Eigennamen (z. B. Buch- und Artikeltitel), Fremdwörter, Zitate hervorzuheben. Lange Zitate sollten als Blockquote formatiert werden.', - QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ).
                    • Wenn es sich um ein Formular handelt, solltest Du alternativ ein barrierefreies HTML-Formular verwenden.
                    • Wenn es sich um ein Dokument handelt, solltest Du es in eine Webseite umwandeln.
                    Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', + QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ).
                    • Wenn es sich um ein Formular handelt, solltest Du alternativ ein barrierefreies HTML-Formular verwenden.
                    • Wenn es sich um ein Dokument handelt, solltest Du es in eine Webseite umwandeln.
                    Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', QA_DOCUMENT: 'Das Dokument kann nicht auf Zugänglichkeit geprüft werden. Verknüpfte Dokumente gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. Bitte überprüfen Sie dieses Dokument manuell. ', QA_PAGE_LANGUAGE: 'Seitensprache nicht angegeben! Bitte deklariere die Sprache im HTML-Tag.', QA_PAGE_TITLE: 'Seitentitel fehlt! Bitte gib einen Seitentitel an.', - QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(sanitizedText)
                    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', - QA_FAKE_HEADING: 'Ist das eine Überschrift? %(boldtext)
                    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', - QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
                    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', + QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(TEXT)
                    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', + QA_FAKE_HEADING: 'Ist das eine Überschrift? %(TEXT)
                    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', + QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
                    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', QA_UPPERCASE_WARNING: 'Text in Großbuchstaben gefunden. Einige Screenreader interpretieren Text in Großbuchstaben möglicherweise als Akronym und lesen jeden Buchstaben einzeln. Außerdem finden manche Leute, dass Großbuchstaben schwieriger zu lesen sind, und es kann den Anschein erwecken, als würden man SCHREIEN.', QA_DUPLICATE_ID: 'Doppelte ID gefunden. Doppelte ID-Fehler verursachen bekanntermaßen Probleme für Hilfstechnologien, wenn man versucht, mit Inhalten zu interagieren.
                    Bitte entferne oder ändere die folgende ID: %(id)', - QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', + QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', QA_SUBSCRIPT_WARNING: 'Die Formatierungsoptionen für tiefgestellten und hochgestellten Text sollten nur verwendet werden, um die Textposition für typografische Konventionen oder Standards zu ändern. Es sollte nicht ausschließlich zu Präsentations- oder Erscheinungszwecken verwendet werden. Das Formatieren ganzer Sätze wirft Lesbarkeitsprobleme auf. Geeignete Anwendungsfälle wären die Anzeige von Exponenten, Ordnungszahlen wie 4th anstelle von 4 und chemischen Formeln (z. B. H2O).', // Tables @@ -230,9 +236,9 @@ var de = { TABLES_EMPTY_HEADING: 'Leerer Tabellenkopf gefunden! Tabellenüberschriften sollten niemals leer sein. Es ist wichtig, Zeilen- und/oder Spaltenüberschriften zu benennen, um ihre Beziehung zu verdeutlichen. Diese Informationen bieten Menschen, die Hilfsmittel verwenden, einen Kontext. Bitte beachte, dass Tabellen nur für tabellarische Daten verwendet werden sollten.
                    Erfahre mehr über barrierefreie Tabellen.', // Contrast - CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Das Kontrastverhältnis beträgt %(cratio) für den folgenden Text: %(sanitizedText)', - CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Bitte überprüfen: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis: %(cratio)', + CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Bitte überprüfen: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis %(RATIO)', }, }; diff --git a/docs/assets/js/lang/de.umd.js b/docs/assets/js/lang/de.umd.js index 557e92ca..d5dd3ac9 100644 --- a/docs/assets/js/lang/de.umd.js +++ b/docs/assets/js/lang/de.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,6 +32,12 @@ ALERT_TEXT: 'Alarm', ALERT_CLOSE: 'Schließen', OUTLINE: 'Seitenumriss', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Bearbeiten', + IMAGES_NOT_FOUND: 'Keine Bilder gefunden.', + DECORATIVE: 'Dekorativ', + MISSING: 'Fehlend', PAGE_ISSUES: 'Seitenprobleme', SETTINGS: 'Einstellungen', CONTRAST: 'Kontrast', @@ -155,7 +161,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nicht-konsekutive Überschriftenebene verwendet. Überschriften sollten niemals Ebenen überspringen oder von Überschrift %(prevLevel) zu Überschrift %(level) gehen.', HEADING_EMPTY: 'Leere Überschrift gefunden! Um dies zu beheben, löschen Sie diese Zeile oder ändern Sie ihr Format von Überschrift %(level) zu Normal oder Absatz (p).', - HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
                    Zeichen Anzahl: %(headingLength)', + HEADING_LONG: 'Die Überschrift ist lang! Überschriften sollten dazu dienen, den Inhalt zu gliedern und eine Struktur zu vermitteln. Sie sollten kurz, informativ und eindeutig sein. Überschriften sollten nicht länger als 160 Zeichen sein (nicht länger als ein Satz).
                    %(HEADING_LENGTH) Zeichen', HEADING_FIRST: 'Die erste Überschrift auf einer Seite sollte in der Regel Überschrift 1 oder Überschrift 2 sein. Überschrift 1 sollte der Beginn des Hauptinhaltsabschnitts sein und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_MISSING_ONE: 'Fehlende Überschrift 1: Überschrift 1 sollte am Anfang des Hauptinhaltsbereichs stehen und ist die Hauptüberschrift, die den allgemeinen Zweck der Seite beschreibt. Erfahre mehr über Überschriften-Struktur.', HEADING_EMPTY_WITH_IMAGE: 'Die Überschrift hat keinen Text, enthält aber ein Bild. Wenn es sich nicht um eine Überschrift handelt, ändere das Format von Überschrift %(level) zu Normal oder Absatz (p). Andernfalls füge bitte einen Alt-Text zum Bild hinzu, wenn es nicht dekorativ ist.', @@ -166,43 +172,43 @@ LINK_EMPTY: 'Entferne leere Links ohne Text.', LINK_EMPTY_LABELLEDBY: 'Der Link hat einen Wert für aria-labelledby, der leer ist oder nicht mit dem Wert des id-Attributs eines anderen Elements auf der Seite übereinstimmt.', LINK_EMPTY_LINK_NO_LABEL: 'Der Link hat keinen erkennbaren Text, der für Bildschirmleser und andere unterstützenden Technologien sichtbar ist. Zu beheben:
                    • Füge einen kurzen Text hinzu, der beschreibt, wohin der Link führt.
                    • Wenn es ein Icon Link oder ein SVG ist, ist es sehr wahrscheinlich, dass ein beschreibendes Label fehlt.
                    • Wenn Du glaubst, dass dieser Link aufgrund eines Kopier-/Einfügefehlers fehlerhaft ist, solltest Du ihn löschen.
                    ', - LINK_LABEL: 'Link Label: %(sanitizedText)', - LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(error)
                    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', - LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(error)
                    • "Hier klicken" legt den Schwerpunkt auf die Mausmechanik, obwohl viele Menschen keine Maus benutzen oder diese Website möglicherweise auf einem mobilen Gerät betrachten. Erwäge die Verwendung eines anderen Verbs, das sich auf die Aufgabe bezieht.
                    • Vermeide die Verwendung von HTML-Symbolen als Aktionsaufrufe, es sei denn, sie sind für unterstützende Technologien verborgen.
                    ', - LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
                    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', + LINK_LABEL: 'Link Label %(TEXT)', + LINK_STOPWORD: 'Der Linktext ist ohne Kontext möglicherweise nicht aussagekräftig genug: %(ERROR)
                    Tipp!Der Linktext sollte immer klar, eindeutig und aussagekräftig sein. Vermeide gängige Wörter wie "hier klicken" oder "mehr erfahren"', + LINK_BEST_PRACTICES: 'Erwäge, den Linktext zu ersetzen: %(ERROR)
                    • "Hier klicken" legt den Schwerpunkt auf die Mausmechanik, obwohl viele Menschen keine Maus benutzen oder diese Website möglicherweise auf einem mobilen Gerät betrachten. Erwäge die Verwendung eines anderen Verbs, das sich auf die Aufgabe bezieht.
                    • Vermeide die Verwendung von HTML-Symbolen als Aktionsaufrufe, es sei denn, sie sind für unterstützende Technologien verborgen.
                    ', + LINK_URL: 'Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein. In den meisten Fällen ist es besser, anstelle der URL einen von Menschen lesbaren Text zu verwenden. Kurze URLs (z. B. die Homepage einer Website) sind in Ordnung.
                    Tipp! Der Linktext sollte immer klar, eindeutig und aussagekräftig sein, damit er auch ohne Kontext verstanden werden kann.', LINK_DOI: 'Für Webseiten oder reine Online-Ressourcen empfiehlt der APA Style guide die Verwendung von deskriptiven Links, indem die URL oder DOI des Werks um den Titel herumgeschrieben wird. Längere, weniger verständliche URLs, die als Linktext verwendet werden, könnten beim Zugriff mit Hilfe von Hilfsmitteln schwer zu verstehen sein.', // Links advanced - NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
                    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', - FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
                    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
                    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(sanitizedText)', + NEW_TAB_WARNING: 'Der Link öffnet sich in einem neuen Tab oder einem neuen Fenster ohne Warnung. Dies kann verwirrend sein, insbesondere für Menschen, die Schwierigkeiten haben, visuelle Inhalte wahrzunehmen. Zweitens ist es nicht immer eine gute Praxis, die Erfahrungen der anderen zu kontrollieren oder für sie Entscheidungen zu treffen. Gib im Linktext an, dass der Link in einem neuen Fenster geöffnet wird.
                    Tipp! Lerne bewährte Praktiken kennen: Öffnen von Links in neuen Browserfenstern und Tabs.', + FILE_TYPE_WARNING: 'Der Link verweist ohne Warnung auf eine PDF- oder herunterladbare Datei (z. B. MP3, Zip, Word Doc). Gib den Dateityp im Linktext an. Wenn es sich um eine große Datei handelt, solltest Du die Dateigröße angeben.
                    Beispiel: Bericht der Geschäftsführung (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Der Link hat den gleichen Text wie ein anderer Link, obwohl er auf eine andere Seite verweist. Mehrere Links mit demselben Text können bei Personen, die Bildschirmlesegeräte verwenden, zu Verwirrung führen.
                    Erwäge, den folgenden Link beschreibender zu gestalten, um ihn von anderen Links zu unterscheiden: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Das Bild wird als Link mit umliegendem Text verwendet, obwohl das alt-Attribut als dekorativ oder null markiert sein sollte.', MISSING_ALT_LINK_MESSAGE: 'Das Bild wird als Link verwendet, aber es fehlt der Alt-Text! Bitte stellen Sie sicher, dass der Alt-Text beschreibt, wohin der Link Dich führt.', MISSING_ALT_MESSAGE: 'Fehlender Alt text! Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt.', - LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(error)" möglicherweise überflüssig ist.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Entferne: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nicht beschreibender oder Platzhalter-Alt-Text innerhalb eines verlinkten Bildes gefunden. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist. Achte darauf, dass der Alt-Text das Ziel des Links beschreibt und nicht eine wörtliche Beschreibung des Bildes ist.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Dateierweiterung im Alt-Text gefunden. Wenn das Bild eine Geschichte, eine Stimmung oder eine wichtige Information vermittelt - beschreibe das Bild unbedingt. Entferne: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nicht-beschreibender oder Platzhalter-Alt-Text gefunden. Ersetze den folgenden Alt-Text durch einen aussagekräftigeren Text: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive Technologien zeigen bereits an, dass es sich um ein Bild handelt, so dass "%(ERROR)" möglicherweise überflüssig ist.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Der Link hat aria-hidden="true", ist aber trotzdem tastaturfokussierbar. Wenn du beabsichtigst, einen überflüssigen oder doppelten Link zu verbergen, füge auch tabindex="-1" hinzu.', LINK_IMAGE_NO_ALT_TEXT: 'Das Bild innerhalb des Links ist als dekorativ gekennzeichnet und es gibt keinen Linktext. Bitte füge dem Bild einen Alt-Text hinzu, der das Ziel des Links beschreibt.', LINK_IMAGE_HAS_TEXT: 'Das Bild ist als dekorativ gekennzeichnet, obwohl der Link den umgebenden Text als beschreibende Bezeichnung verwendet.', - LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
                    Alt text: %(altText)
                    Link Label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt-Text-Beschreibung auf einem verlinkten Bild ist zu lang. Der Alt-Text von verlinkten Bildern sollte beschreiben, wohin der Link führt, und nicht eine wörtliche Beschreibung des Bildes enthalten. Erwäge, den Titel der Seite, auf die verlinkt wird, als Alt-Text zu verwenden.
                    ALT %(altLength) Zeichen %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Der Bildlink enthält einen Alt-Text. Beschreibt der Alt-Text, wohin der Link Sie führt? Erwägen Sie, den Titel der Seite, zu der der Link führt, als Alt-Text zu verwenden.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Der Bildlink enthält beide Alt-Texte und den umgebenden Linktext. Wenn dieses Bild dekorativ ist und als funktionaler Link zu einer anderen Seite verwendet wird, sollte das Bild als dekorativ oder nichtig gekennzeichnet werden - der umgebende Linktext sollte ausreichen.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert.
                    Obwohl eine Beschriftung angegeben wurde, sollte das Bild in den meisten Fällen auch einen Alt-Text haben.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Verwende nicht genau dieselben Wörter für den Alt-Text und die Überschrift. Bildschirmlesegeräte melden die Informationen doppelt.
                    • Der Alt-Text sollte eine prägnante Beschreibung des Bildes enthalten.
                    • Die Bildunterschrift sollte in der Regel einen Zusammenhang zwischen dem Bild und dem umgebenden Inhalt herstellen oder auf eine bestimmte Information hinweisen.
                    Erfahre mehr: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Das Bild ist als dekorativ gekennzeichnet und wird von Hilfsmitteln ignoriert. Wenn das Bild eine Geschichte, eine Stimmung oder wichtige Informationen vermittelt - füge unbedingt einen Alt-Text hinzu.', - IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
                    Alt text (%(altLength) Zeichen): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Die Beschreibung des Alt-Textes ist zu lang. Der Alt-Text sollte prägnant, aber aussagekräftig wie ein Tweet sein (etwa 100 Zeichen). Wenn es sich um ein komplexes Bild oder eine Grafik handelt, sollten Sie erwägen, die lange Beschreibung des Bildes in den Text darunter oder in eine Akkordeonkomponente zu integrieren.
                    ALT %(altLength) Zeichen %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildschaltfläche fehlt Alt-Text. Bitte füge alternativen Text hinzu, um einen barrierefreien Namen bereitzustellen. Zum Beispiel: Suchen oder Senden.', - LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
                    Tipp! Erfahre, warum Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.< /a>', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
                    Eingabelabel: %(sanitizedText)', + LABELS_INPUT_RESET_MESSAGE: 'Reset-Buttons sollten nicht verwendet werden, es sei denn, dies wird ausdrücklich benötigt, da sie leicht versehentlich aktiviert werden können.
                    Tipp! Erfahre, warum
                    Zurücksetzen- und Abbrechen-Schaltflächen Probleme mit der Benutzerfreundlichkeit aufwerfen.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Die Eingabe hat einen zugänglichen Namen, stelle bitte trotzdem sicher, dass es auch ein sichtbares Label gibt.
                    Eingabelabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Füge dem Label ein for-Attribut hinzu, das der id dieser Eingabe entspricht.
                    Die ID für diese Eingabe lautet: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Dieser Eingabe ist kein Label zugeordnet. Bitte füge dieser Eingabe eine id hinzu und füge dem Label ein passendes for-Attribut hinzu.', @@ -215,19 +221,19 @@ EMBED_UNFOCUSABLE: '<iframe> mit nicht fokussierbaren Elementen sollte kein tabindex="-1" haben. Der eingebettete Inhalt wird nicht mit der Tastatur erreichbar sein.', // Quality assurance - QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
                    Dieser Link verweist auf:
                    %(el)', + QA_BAD_LINK: 'Ungültiger Link gefunden. Link scheint auf eine Entwicklungsumgebung zu verweisen.
                    Dieser Link verweist auf:
                    %(LINK)', QA_IN_PAGE_LINK: 'Defekter Verweis innerhalb der Seite. Das Ziel des Verweises stimmt mit keinem Element auf dieser Seite überein.', QA_BAD_ITALICS: 'Fett- und Kursiv-Tags haben semantische Bedeutung und sollten nicht verwendet werden, um ganze Absätze hervorzuheben. Fettgedruckter Text sollte verwendet werden, um ein Wort oder einen Ausdruck stark zu betonen. Kursiv sollte verwendet werden, um Eigennamen (z. B. Buch- und Artikeltitel), Fremdwörter, Zitate hervorzuheben. Lange Zitate sollten als Blockquote formatiert werden.', - QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ).
                    • Wenn es sich um ein Formular handelt, solltest Du alternativ ein barrierefreies HTML-Formular verwenden.
                    • Wenn es sich um ein Dokument handelt, solltest Du es in eine Webseite umwandeln.
                    Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', + QA_PDF: 'PDFs können nicht auf Barrierefreiheit geprüft werden. PDFs gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. PDFs enthalten oft Probleme für Personen, die Screenreader verwenden (fehlende Struktur-Tags oder fehlende Beschriftungen von Formularfeldern) und Personen mit Sehbehinderung (Text umfließt beim Vergrößern nicht ).
                    • Wenn es sich um ein Formular handelt, solltest Du alternativ ein barrierefreies HTML-Formular verwenden.
                    • Wenn es sich um ein Dokument handelt, solltest Du es in eine Webseite umwandeln.
                    Andernfalls überprüfe bitte PDF für Barrierefreiheit in Acrobat DC.', QA_DOCUMENT: 'Das Dokument kann nicht auf Zugänglichkeit geprüft werden. Verknüpfte Dokumente gelten als Webinhalte und müssen ebenfalls zugänglich gemacht werden. Bitte überprüfen Sie dieses Dokument manuell. ', QA_PAGE_LANGUAGE: 'Seitensprache nicht angegeben! Bitte deklariere die Sprache im HTML-Tag.', QA_PAGE_TITLE: 'Seitentitel fehlt! Bitte gib einen Seitentitel an.', - QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(sanitizedText)
                    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', - QA_FAKE_HEADING: 'Ist das eine Überschrift? %(boldtext)
                    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', - QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
                    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', + QA_BLOCKQUOTE_MESSAGE: 'Ist das eine Überschrift? %(TEXT)
                    Blockquotes sollten nur für Zitate verwendet werden. Wenn dies eine Überschrift sein soll, ändere dieses Blockquote in eine semantische Überschrift (z. B. Überschrift 2 oder Überschrift 3).', + QA_FAKE_HEADING: 'Ist das eine Überschrift? %(TEXT)
                    Eine Zeile mit fettem Text mag wie eine Überschrift aussehen, aber jemand, der einen Bildschirmleser verwendet, kann nicht erkennen, dass sie wichtig ist, oder zu ihrem Inhalt springen. Fettgedruckter Text sollte niemals semantische Überschriften ersetzen (Überschrift 2 bis Überschrift 6).', + QA_SHOULD_BE_LIST: 'Versuchst Du, eine Liste zu erstellen? Mögliches gefundenes Listenelement: %(firstPrefix)
                    Stelle sicher, dass Du semantische Listen verwendest, indem Du stattdessen eine Aufzählungsliste formatierst (Zahlen oder Bullet-Points). Bei der Verwendung einer semantischen Liste sind Hilfstechnologien in der Lage, Informationen wie die Gesamtzahl der Elemente und die relative Position jedes Elements in der Liste zu übermitteln. Erfahre mehr über semantische Listen.', QA_UPPERCASE_WARNING: 'Text in Großbuchstaben gefunden. Einige Screenreader interpretieren Text in Großbuchstaben möglicherweise als Akronym und lesen jeden Buchstaben einzeln. Außerdem finden manche Leute, dass Großbuchstaben schwieriger zu lesen sind, und es kann den Anschein erwecken, als würden man SCHREIEN.', QA_DUPLICATE_ID: 'Doppelte ID gefunden. Doppelte ID-Fehler verursachen bekanntermaßen Probleme für Hilfstechnologien, wenn man versucht, mit Inhalten zu interagieren.
                    Bitte entferne oder ändere die folgende ID: %(id)', - QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', + QA_TEXT_UNDERLINE_WARNING: 'Unterstrichener Text kann mit Links verwechselt werden. Erwäge die Verwendung eines anderen Stils wie <strong>starke Wichtigkeit</strong> oder <em>Hervorhebung</em>.', QA_SUBSCRIPT_WARNING: 'Die Formatierungsoptionen für tiefgestellten und hochgestellten Text sollten nur verwendet werden, um die Textposition für typografische Konventionen oder Standards zu ändern. Es sollte nicht ausschließlich zu Präsentations- oder Erscheinungszwecken verwendet werden. Das Formatieren ganzer Sätze wirft Lesbarkeitsprobleme auf. Geeignete Anwendungsfälle wären die Anzeige von Exponenten, Ordnungszahlen wie 4th anstelle von 4 und chemischen Formeln (z. B. H2O).', // Tables @@ -236,9 +242,9 @@ TABLES_EMPTY_HEADING: 'Leerer Tabellenkopf gefunden! Tabellenüberschriften sollten niemals leer sein. Es ist wichtig, Zeilen- und/oder Spaltenüberschriften zu benennen, um ihre Beziehung zu verdeutlichen. Diese Informationen bieten Menschen, die Hilfsmittel verwenden, einen Kontext. Bitte beachte, dass Tabellen nur für tabellarische Daten verwendet werden sollten.
                    Erfahre mehr über barrierefreie Tabellen.', // Contrast - CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Das Kontrastverhältnis beträgt %(cratio) für den folgenden Text: %(sanitizedText)', - CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Bitte überprüfen: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis: %(cratio)', + CONTRAST_ERROR: 'Dieser Text hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Der Kontrast dieses Textes ist unbekannt und muss manuell überprüft werden. Stelle sicher, dass der Text und der Hintergrund einen starken Farbkontrast aufweisen. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Bitte überprüfen: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Der Text in dieser Eingabe hat nicht genügend Kontrast zum Hintergrund. Das Kontrastverhältnis sollte mindestens 4,5:1 für normalen Text und 3:1 für großen Text betragen.
                    Kontrastverhältnis %(RATIO)', }, }; diff --git a/docs/assets/js/lang/el.js b/docs/assets/js/lang/el.js index a6d89709..47d2afea 100644 --- a/docs/assets/js/lang/el.js +++ b/docs/assets/js/lang/el.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var el = { OFF: 'Ανενεργό', ALERT_TEXT: 'Ειδοποίηση', ALERT_CLOSE: 'Κλείστε το', - OUTLINE: 'Περίγραμμα σελίδας', + OUTLINE: 'Περίγραμμα', + ALT: 'ALT', + IMAGES: 'Εικόνες', + EDIT: 'Επεξεργασία', + IMAGES_NOT_FOUND: 'Δεν βρέθηκαν εικόνες.', + DECORATIVE: 'Διακοσμητικό', + MISSING: 'Λείπει', PAGE_ISSUES: 'Ζητήματα σελίδας', SETTINGS: 'Ρυθμίσεις', CONTRAST: 'Αντίθεση', @@ -146,7 +152,7 @@ var el = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Δεν υπάρχει αρκετό περιεχόμενο για τον υπολογισμό της βαθμολογίας αναγνωσιμότητας.', HEADING_NON_CONSECUTIVE_LEVEL: 'Χρησιμοποιήθηκε μη διαδοχικό επίπεδο επικεφαλίδας. Οι επικεφαλίδες δεν πρέπει ποτέ να παραλείπουν επίπεδα ή να πηγαίνουν από Κεφαλίδα %(prevLevel) σε Κεφαλίδα %(level).', HEADING_EMPTY: 'Βρέθηκε κενή επικεφαλίδα! Για να το διορθώσετε, διαγράψτε αυτή τη γραμμή ή αλλάξτε τη μορφή της από επικεφαλίδα %(επίπεδο) σε κανονική ή παράγραφος.', - HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
                    Αριθμός χαρακτήρων: %(headingLength)', + HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
                    %(HEADING_LENGTH) χαρακτήρες', HEADING_FIRST: 'Η πρώτη επικεφαλίδα σε μια σελίδα θα πρέπει συνήθως να είναι επικεφαλίδα 1 ή επικεφαλίδα 2. Η επικεφαλίδα 1 θα πρέπει να αποτελεί την αρχή της κύριας ενότητας περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει το γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_MISSING_ONE: 'Λείπει η επικεφαλίδα 1. Η επικεφαλίδα 1 πρέπει να αποτελεί την αρχή της κύριας περιοχής περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει τον γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_EMPTY_WITH_IMAGE: 'Η επικεφαλίδα δεν έχει κείμενο, αλλά περιέχει μια εικόνα. Αν δεν πρόκειται για επικεφαλίδα, αλλάξτε τη μορφή της από Κεφαλίδα %(επίπεδο) σε Κανονική ή Παράγραφος. Διαφορετικά, προσθέστε κείμενο alt στην εικόνα, αν δεν είναι διακοσμητικό.', @@ -155,37 +161,37 @@ var el = { LINK_EMPTY: 'Αφαίρεση κενών συνδέσμων χωρίς κείμενο.', LINK_EMPTY_LABELLEDBY: 'Ο σύνδεσμος έχει μια τιμή για το aria-labelledby, η οποία είναι άδεια ή δεν ταιριάζει με την τιμή του χαρακτηριστικού id ενός άλλου στοιχείου στη σελίδα.', LINK_EMPTY_LINK_NO_LABEL: 'Ο σύνδεσμος δεν έχει ευδιάκριτο κείμενο που να είναι ορατό σε προγράμματα ανάγνωσης οθόνης και άλλες υποστηρικτικές τεχνολογίες. Για να το διορθώσετε:
                    • Προσθέστε κάποιο συνοπτικό κείμενο που να περιγράφει πού σας οδηγεί ο σύνδεσμος.
                    • Αν πρόκειται για σύνδεσμο εικονίδιο ή SVG, είναι πιθανό να λείπει μια περιγραφική ετικέτα.
                    • Αν πιστεύετε ότι αυτός ο σύνδεσμος είναι σφάλμα που οφείλεται σε σφάλμα αντιγραφής/επικόλλησης, σκεφτείτε να τον διαγράψετε.
                    ', - LINK_LABEL: 'Ετικέτα συνδέσμου: %(sanitizedText)', - LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(error)
                    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', + LINK_LABEL: 'Ετικέτα συνδέσμου %(TEXT)', + LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(ERROR)
                    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', LINK_BEST_PRACTICES: 'Εξετάστε το ενδεχόμενο αντικατάστασης του κειμένου του συνδέσμου: %(σφάλμα)
                    • "Κάντε κλικ εδώ" δίνει έμφαση στη μηχανική του ποντικιού, ενώ πολλοί άνθρωποι δεν χρησιμοποιούν ποντίκι ή μπορεί να βλέπουν αυτόν τον ιστότοπο από κινητή συσκευή. Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε ένα διαφορετικό ρήμα που να σχετίζεται με την εργασία.
                    • Αποφύγετε τη χρήση συμβόλων HTML ως κλήση σε ενέργειες, εκτός αν είναι κρυμμένα σε υποστηρικτικές τεχνολογίες.
                    ', - LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
                    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', + LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
                    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', LINK_DOI: 'Για ιστοσελίδες ή αποκλειστικά διαδικτυακούς πόρους, ο Οδηγός στυλ της ΑΡΑ συνιστά τη χρήση περιγραφικών συνδέσμων, τυλίγοντας τη διεύθυνση URL ή το DOI του έργου γύρω από τον τίτλο του. Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία.', NEW_TAB_WARNING: 'Ο σύνδεσμος ανοίγει σε νέα καρτέλα ή παράθυρο χωρίς προειδοποίηση. Κάτι τέτοιο μπορεί να αποπροσανατολίσει, ειδικά τα άτομα που δυσκολεύονται να αντιληφθούν το οπτικό περιεχόμενο. Δεύτερον, δεν είναι πάντα καλή πρακτική να ελέγχετε την εμπειρία κάποιου ή να παίρνετε αποφάσεις για λογαριασμό του. Αναφέρετε ότι ο σύνδεσμος ανοίγει σε νέο παράθυρο μέσα στο κείμενο του συνδέσμου
                    Σύμβουλος! Μάθετε τις βέλτιστες πρακτικές: Ανοιγμα συνδέσμων σε νέα παράθυρα και καρτέλες του προγράμματος περιήγησης.', FILE_TYPE_WARNING: 'Ο σύνδεσμος παραπέμπει σε αρχείο PDF ή αρχείο με δυνατότητα λήψης (π.χ. MP3, Zip, Word Doc) χωρίς προειδοποίηση. Αναφέρετε τον τύπο του αρχείου στο κείμενο του συνδέσμου. Εάν πρόκειται για μεγάλο αρχείο, εξετάστε το ενδεχόμενο να συμπεριλάβετε το μέγεθος του αρχείου.
                    Παράδειγμα: Εκτελεστική έκθεση (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
                    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
                    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος με περιβάλλων κείμενο, αν και το χαρακτηριστικό alt θα πρέπει να επισημανθεί ως διακοσμητικό ή μηδενικό.', MISSING_ALT_LINK_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος, αλλά λείπει το κείμενο alt! Βεβαιωθείτε ότι το alt text περιγράφει πού σας οδηγεί ο σύνδεσμος.', MISSING_ALT_MESSAGE: 'Λείπει το κείμενο alt! Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία - φροντίστε να περιγράψετε την εικόνα.', - LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(σφάλμα).
                    Κείμενο alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
                    Κείμενο alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(σφάλμα).
                    Κείμενο alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(altText)', - ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό.
                    Κείμενο άλτου: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Ο σύνδεσμος έχει aria-hidden="true" αλλά εξακολουθεί να είναι προσβάσιμος με το πληκτρολόγιο. Αν σκοπεύετε να κρύψετε έναν περιττό ή διπλό σύνδεσμο, προσθέστε επίσης tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Η εικόνα εντός του συνδέσμου χαρακτηρίζεται ως διακοσμητική και δεν υπάρχει κείμενο συνδέσμου. Προσθέστε κείμενο alt στην εικόνα που περιγράφει τον προορισμό του συνδέσμου.', LINK_IMAGE_HAS_TEXT: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική, αν και ο σύνδεσμος χρησιμοποιεί το περιβάλλον κείμενο ως περιγραφική ετικέτα.', - LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    Κείμενο alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
                    Κείμενο alt: %(altText)
                    Ετικέτα συνδέσμου: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
                    ALT %(ALT_TEXT)
                    Ετικέτα συνδέσμου %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία.
                    Παρόλο που δόθηκε επικεφαλίδα, η εικόνα θα πρέπει επίσης να έχει κείμενο alt στις περισσότερες περιπτώσεις.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.
                    Κείμενο alt: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία. Εάν η εικόνα μεταφέρει μια ιστορία, διάθεση ή σημαντικές πληροφορίες - φροντίστε να προσθέσετε κείμενο alt.', - IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
                    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - IMAGE_PASS: 'Κείμενο alt: %(altText)', + IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
                    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Από το κουμπί εικόνας λείπει το κείμενο alt. Παρακαλούμε προσθέστε κείμενο alt για να δώσετε ένα προσβάσιμο όνομα. Για παράδειγμα: Αναζήτηση ή Υποβολή.', LABELS_INPUT_RESET_MESSAGE: 'Τα κουμπιά επαναφοράς δεν πρέπει να χρησιμοποιούνται, εκτός αν είναι ειδικά απαραίτητα, διότι είναι εύκολο να ενεργοποιηθούν κατά λάθος.
                    Συμβουλή! Μάθετε γιατί τα κουμπιά Reset και Cancel δημιουργούν προβλήματα ευχρηστίας.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
                    Ετικέτα εισόδου: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
                    Ετικέτα εισόδου %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα χαρακτηριστικό for στην ετικέτα που ταιριάζει με το id αυτής της εισόδου.
                    Το αναγνωριστικό αυτής της εισόδου είναι: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα id σε αυτή την είσοδο και προσθέστε ένα αντίστοιχο χαρακτηριστικό for στην ετικέτα.', EMBED_VIDEO: 'Παρακαλούμε βεβαιωθείτε ότι όλα τα βίντεο διαθέτουν κλειστούς υπότιτλους. Η παροχή υπότιτλων για όλο το περιεχόμενο ήχου και βίντεο αποτελεί υποχρεωτική απαίτηση του επιπέδου Α. Οι λεζάντες υποστηρίζουν τα άτομα που είναι κωφά ή βαρήκοα.', @@ -194,15 +200,15 @@ var el = { EMBED_MISSING_TITLE: 'Το ενσωματωμένο περιεχόμενο απαιτεί ένα προσβάσιμο όνομα που περιγράφει το περιεχόμενό του. Παρακαλείστε να δώσετε ένα μοναδικό χαρακτηριστικό title ή aria-label στο στοιχείο iframe. Μάθετε περισσότερα για τα iFrames.', EMBED_GENERAL_WARNING: 'Δεν είναι δυνατός ο έλεγχος του ενσωματωμένου περιεχομένου. Παρακαλούμε βεβαιωθείτε ότι οι εικόνες έχουν alt κείμενο, τα βίντεο έχουν λεζάντες, το κείμενο έχει επαρκή αντίθεση και τα διαδραστικά στοιχεία είναι προσβάσιμα στο πληκτρολόγιο.', EMBED_UNFOCUSABLE: 'Το <iframe> με στοιχεία που δεν είναι εστιασμένα δεν πρέπει να έχει tabindex="-1". Το ενσωματωμένο περιεχόμενο δεν θα είναι προσβάσιμο με το πληκτρολόγιο.', - QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
                    Αυτός ο σύνδεσμος παραπέμπει σε:
                    %(el)', + QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
                    Αυτός ο σύνδεσμος παραπέμπει σε:
                    %(LINK)', QA_IN_PAGE_LINK: 'Σπασμένος σύνδεσμος στην ίδια σελίδα. Το στόχος του συνδέσμου δεν αντιστοιχεί σε κανένα στοιχείο σε αυτήν τη σελίδα.', QA_BAD_ITALICS: 'Οι ετικέτες bold και italic έχουν σημασιολογική σημασία και δεν πρέπει να χρησιμοποιούνται για να τονίζουν ολόκληρες παραγράφους. Το κείμενο με έντονη γραφή θα πρέπει να χρησιμοποιείται για να παρέχει ισχυρή έμφαση σε μια λέξη ή φράση. Η πλάγια γραφή θα πρέπει να χρησιμοποιείται για να τονίζονται τα κύρια ονόματα (π.χ. τίτλοι βιβλίων και άρθρων), ξένες λέξεις, εισαγωγικά. Τα μακροσκελή εισαγωγικά θα πρέπει να μορφοποιούνται ως blockquote.', QA_PDF: 'Αδυναμία ελέγχου PDF για προσβασιμότητα. Τα PDF θεωρούνται περιεχόμενο ιστού και πρέπει επίσης να είναι προσβάσιμα. Τα PDF περιέχουν συχνά προβλήματα για άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης (λείπουν δομικές ετικέτες ή λείπουν ετικέτες πεδίων φόρμας) και άτομα με χαμηλή όραση (το κείμενο δεν ανακυκλώνεται όταν μεγεθύνεται).
                    • Αν πρόκειται για φόρμα, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια προσβάσιμη φόρμα HTML ως εναλλακτική λύση.
                    • Αν πρόκειται για έγγραφο, εξετάστε το ενδεχόμενο να το μετατρέψετε σε ιστοσελίδα.
                    Αλλιώς, ελέγξτε το PDF για προσβασιμότητα στο Acrobat DC.', QA_DOCUMENT: 'Αδυναμία ελέγχου του εγγράφου για προσβασιμότητα. Τα συνδεδεμένα έγγραφα θεωρούνται διαδικτυακό περιεχόμενο και πρέπει επίσης να είναι προσβάσιμα. Παρακαλούμε ελέγξτε αυτό το έγγραφο με μη αυτόματο τρόπο. ', QA_PAGE_LANGUAGE: 'Η γλώσσα της σελίδας δεν έχει δηλωθεί! Παρακαλούμε δήλωσε τη γλώσσα στην ετικέτα HTML.', QA_PAGE_TITLE: 'Λείπει ο τίτλος της σελίδας! Παρακαλούμε δώστε έναν τίτλο σελίδας.', - QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(sanitizedText)
                    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', - QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(boldtext)
                    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', + QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(TEXT)
                    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', + QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(TEXT)
                    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', QA_SHOULD_BE_LIST: "Προσπαθείτε να δημιουργήσετε μια λίστα; Βρέθηκε πιθανό στοιχείο λίστας: %(firstPrefix)
                    Βεβαιωθείτε ότι χρησιμοποιείτε σημασιολογικές λίστες, χρησιμοποιώντας αντ' αυτού τα κουμπιά μορφοποίησης κουκκίδων ή αριθμών. Όταν χρησιμοποιείτε μια σημασιολογική λίστα, οι υποστηρικτικές τεχνολογίες είναι σε θέση να μεταφέρουν πληροφορίες όπως ο συνολικός αριθμός των στοιχείων και η σχετική θέση κάθε στοιχείου στη λίστα. Μάθετε περισσότερα για τις σημασιολογικές λίστες.", QA_UPPERCASE_WARNING: 'Βρέθηκαν όλα τα κεφαλαία. Ορισμένα προγράμματα ανάγνωσης οθόνης ενδέχεται να ερμηνεύσουν το κείμενο με κεφαλαία γράμματα ως ακρωνύμιο και θα διαβάσουν κάθε γράμμα ξεχωριστά. Επιπλέον, ορισμένοι άνθρωποι βρίσκουν τα κεφαλαία γράμματα πιο δυσανάγνωστα και μπορεί να δώσουν την εντύπωση ότι φωνάζουν.', QA_DUPLICATE_ID: 'Βρέθηκε διπλό αναγνωριστικό. Τα σφάλματα διπλού αναγνωριστικού είναι γνωστό ότι προκαλούν προβλήματα στις υποστηρικτικές τεχνολογίες όταν αυτές προσπαθούν να αλληλεπιδράσουν με το περιεχόμενο.
                    Παρακαλούμε αφαιρέστε ή αλλάξτε το ακόλουθο ID: %(id)', @@ -211,9 +217,9 @@ var el = { TABLES_MISSING_HEADINGS: 'Λείπουν οι επικεφαλίδες των πινάκων! Οι προσβάσιμοι πίνακες χρειάζονται σήμανση HTML που να υποδεικνύει τα κελιά κεφαλίδας και τα κελιά δεδομένων που καθορίζουν τη σχέση τους. Αυτές οι πληροφορίες παρέχουν περιεχόμενο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε μορφή πίνακα.
                    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.', TABLES_SEMANTIC_HEADING: "Σημασιολογικές επικεφαλίδες όπως οι επικεφαλίδες 2 ή 3 θα πρέπει να χρησιμοποιούνται μόνο για τμήματα περιεχομένου- όχι σε πίνακες HTML. Υποδείξτε επικεφαλίδες πινάκων χρησιμοποιώντας αντ' αυτού το στοιχείο <th>.
                    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.", TABLES_EMPTY_HEADING: 'Βρέθηκε κενή επικεφαλίδα πίνακα! Οι επικεφαλίδες των πινάκων δεν πρέπει να είναι ποτέ κενές. Είναι σημαντικό να ορίζονται επικεφαλίδες γραμμών ή/και στηλών για να αποδίδεται η σχέση τους. Αυτές οι πληροφορίες παρέχουν πλαίσιο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Λάβετε υπόψη σας ότι οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε πίνακες.
                    Μάθετε περισσότερα σχετικά με τους προσβάσιμους πίνακες.', - CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Ο λόγος αντίθεσης είναι %(cratio) για το ακόλουθο κείμενο: %(sanitizedText)', - CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Παρακαλούμε ελέγξτε: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αναλογία αντίθεσης: %(cratio)', + CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αντίθεση Αναλογία %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Παρακαλούμε ελέγξτε: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αντίθεση Αναλογία %(RATIO)', }, }; diff --git a/docs/assets/js/lang/el.umd.js b/docs/assets/js/lang/el.umd.js index 03259f8f..d638f9c4 100644 --- a/docs/assets/js/lang/el.umd.js +++ b/docs/assets/js/lang/el.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Ανενεργό', ALERT_TEXT: 'Ειδοποίηση', ALERT_CLOSE: 'Κλείστε το', - OUTLINE: 'Περίγραμμα σελίδας', + OUTLINE: 'Περίγραμμα', + ALT: 'ALT', + IMAGES: 'Εικόνες', + EDIT: 'Επεξεργασία', + IMAGES_NOT_FOUND: 'Δεν βρέθηκαν εικόνες.', + DECORATIVE: 'Διακοσμητικό', + MISSING: 'Λείπει', PAGE_ISSUES: 'Ζητήματα σελίδας', SETTINGS: 'Ρυθμίσεις', CONTRAST: 'Αντίθεση', @@ -152,7 +158,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Δεν υπάρχει αρκετό περιεχόμενο για τον υπολογισμό της βαθμολογίας αναγνωσιμότητας.', HEADING_NON_CONSECUTIVE_LEVEL: 'Χρησιμοποιήθηκε μη διαδοχικό επίπεδο επικεφαλίδας. Οι επικεφαλίδες δεν πρέπει ποτέ να παραλείπουν επίπεδα ή να πηγαίνουν από Κεφαλίδα %(prevLevel) σε Κεφαλίδα %(level).', HEADING_EMPTY: 'Βρέθηκε κενή επικεφαλίδα! Για να το διορθώσετε, διαγράψτε αυτή τη γραμμή ή αλλάξτε τη μορφή της από επικεφαλίδα %(επίπεδο) σε κανονική ή παράγραφος.', - HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
                    Αριθμός χαρακτήρων: %(headingLength)', + HEADING_LONG: 'Η κεφαλή είναι μακριά! Οι επικεφαλίδες θα πρέπει να χρησιμοποιούνται για την οργάνωση του περιεχομένου και τη μετάδοση της δομής. Θα πρέπει να είναι σύντομοι, ενημερωτικοί και μοναδικοί. Παρακαλούμε να διατηρείτε τις επικεφαλίδες σε λιγότερο από 160 χαρακτήρες (όχι περισσότερο από μια πρόταση).
                    %(HEADING_LENGTH) χαρακτήρες', HEADING_FIRST: 'Η πρώτη επικεφαλίδα σε μια σελίδα θα πρέπει συνήθως να είναι επικεφαλίδα 1 ή επικεφαλίδα 2. Η επικεφαλίδα 1 θα πρέπει να αποτελεί την αρχή της κύριας ενότητας περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει το γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_MISSING_ONE: 'Λείπει η επικεφαλίδα 1. Η επικεφαλίδα 1 πρέπει να αποτελεί την αρχή της κύριας περιοχής περιεχομένου και είναι η κύρια επικεφαλίδα που περιγράφει τον γενικό σκοπό της σελίδας. Μάθετε περισσότερα για την Δομή επικεφαλίδων.', HEADING_EMPTY_WITH_IMAGE: 'Η επικεφαλίδα δεν έχει κείμενο, αλλά περιέχει μια εικόνα. Αν δεν πρόκειται για επικεφαλίδα, αλλάξτε τη μορφή της από Κεφαλίδα %(επίπεδο) σε Κανονική ή Παράγραφος. Διαφορετικά, προσθέστε κείμενο alt στην εικόνα, αν δεν είναι διακοσμητικό.', @@ -161,37 +167,37 @@ LINK_EMPTY: 'Αφαίρεση κενών συνδέσμων χωρίς κείμενο.', LINK_EMPTY_LABELLEDBY: 'Ο σύνδεσμος έχει μια τιμή για το aria-labelledby, η οποία είναι άδεια ή δεν ταιριάζει με την τιμή του χαρακτηριστικού id ενός άλλου στοιχείου στη σελίδα.', LINK_EMPTY_LINK_NO_LABEL: 'Ο σύνδεσμος δεν έχει ευδιάκριτο κείμενο που να είναι ορατό σε προγράμματα ανάγνωσης οθόνης και άλλες υποστηρικτικές τεχνολογίες. Για να το διορθώσετε:
                    • Προσθέστε κάποιο συνοπτικό κείμενο που να περιγράφει πού σας οδηγεί ο σύνδεσμος.
                    • Αν πρόκειται για σύνδεσμο εικονίδιο ή SVG, είναι πιθανό να λείπει μια περιγραφική ετικέτα.
                    • Αν πιστεύετε ότι αυτός ο σύνδεσμος είναι σφάλμα που οφείλεται σε σφάλμα αντιγραφής/επικόλλησης, σκεφτείτε να τον διαγράψετε.
                    ', - LINK_LABEL: 'Ετικέτα συνδέσμου: %(sanitizedText)', - LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(error)
                    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', + LINK_LABEL: 'Ετικέτα συνδέσμου %(TEXT)', + LINK_STOPWORD: 'Το κείμενο συνδέσμου μπορεί να μην είναι αρκετά περιγραφικό εκτός πλαισίου: %(ERROR)
                    Σύμβουλος! Το κείμενο συνδέσμου πρέπει να είναι πάντα σαφές, μοναδικό και ουσιαστικό. Αποφύγετε κοινές λέξεις όπως "κάντε κλικ εδώ" ή "μάθετε περισσότερα",', LINK_BEST_PRACTICES: 'Εξετάστε το ενδεχόμενο αντικατάστασης του κειμένου του συνδέσμου: %(σφάλμα)
                    • "Κάντε κλικ εδώ" δίνει έμφαση στη μηχανική του ποντικιού, ενώ πολλοί άνθρωποι δεν χρησιμοποιούν ποντίκι ή μπορεί να βλέπουν αυτόν τον ιστότοπο από κινητή συσκευή. Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε ένα διαφορετικό ρήμα που να σχετίζεται με την εργασία.
                    • Αποφύγετε τη χρήση συμβόλων HTML ως κλήση σε ενέργειες, εκτός αν είναι κρυμμένα σε υποστηρικτικές τεχνολογίες.
                    ', - LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
                    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', + LINK_URL: 'Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία. Στις περισσότερες περιπτώσεις, είναι προτιμότερο να χρησιμοποιείτε κείμενο που διαβάζεται από τον άνθρωπο αντί για τη διεύθυνση URL. Οι σύντομες διευθύνσεις URL (όπως η αρχική σελίδα ενός ιστότοπου) είναι εντάξει.
                    Σύμβουλος! Το κείμενο συνδέσμου θα πρέπει πάντα να είναι σαφές, μοναδικό και με νόημα, ώστε να μπορεί να γίνει κατανοητό εκτός πλαισίου.', LINK_DOI: 'Για ιστοσελίδες ή αποκλειστικά διαδικτυακούς πόρους, ο Οδηγός στυλ της ΑΡΑ συνιστά τη χρήση περιγραφικών συνδέσμων, τυλίγοντας τη διεύθυνση URL ή το DOI του έργου γύρω από τον τίτλο του. Οι μακρύτερες, λιγότερο κατανοητές διευθύνσεις URL που χρησιμοποιούνται ως κείμενο συνδέσμου ενδέχεται να είναι δύσκολο να κατανοηθούν όταν η πρόσβαση γίνεται με υποστηρικτική τεχνολογία.', NEW_TAB_WARNING: 'Ο σύνδεσμος ανοίγει σε νέα καρτέλα ή παράθυρο χωρίς προειδοποίηση. Κάτι τέτοιο μπορεί να αποπροσανατολίσει, ειδικά τα άτομα που δυσκολεύονται να αντιληφθούν το οπτικό περιεχόμενο. Δεύτερον, δεν είναι πάντα καλή πρακτική να ελέγχετε την εμπειρία κάποιου ή να παίρνετε αποφάσεις για λογαριασμό του. Αναφέρετε ότι ο σύνδεσμος ανοίγει σε νέο παράθυρο μέσα στο κείμενο του συνδέσμου
                    Σύμβουλος! Μάθετε τις βέλτιστες πρακτικές: Ανοιγμα συνδέσμων σε νέα παράθυρα και καρτέλες του προγράμματος περιήγησης.', FILE_TYPE_WARNING: 'Ο σύνδεσμος παραπέμπει σε αρχείο PDF ή αρχείο με δυνατότητα λήψης (π.χ. MP3, Zip, Word Doc) χωρίς προειδοποίηση. Αναφέρετε τον τύπο του αρχείου στο κείμενο του συνδέσμου. Εάν πρόκειται για μεγάλο αρχείο, εξετάστε το ενδεχόμενο να συμπεριλάβετε το μέγεθος του αρχείου.
                    Παράδειγμα: Εκτελεστική έκθεση (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
                    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Ο σύνδεσμος έχει το ίδιο κείμενο με έναν άλλο σύνδεσμο, αν και δείχνει σε διαφορετική σελίδα. Πολλαπλοί σύνδεσμοι με το ίδιο κείμενο μπορεί να προκαλέσουν σύγχυση σε άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης.
                    Σκεφτείτε να κάνετε τον ακόλουθο σύνδεσμο πιο περιγραφικό για να τον ξεχωρίσετε από άλλους συνδέσμους: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος με περιβάλλων κείμενο, αν και το χαρακτηριστικό alt θα πρέπει να επισημανθεί ως διακοσμητικό ή μηδενικό.', MISSING_ALT_LINK_MESSAGE: 'Η εικόνα χρησιμοποιείται ως σύνδεσμος, αλλά λείπει το κείμενο alt! Βεβαιωθείτε ότι το alt text περιγράφει πού σας οδηγεί ο σύνδεσμος.', MISSING_ALT_MESSAGE: 'Λείπει το κείμενο alt! Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία - φροντίστε να περιγράψετε την εικόνα.', - LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(σφάλμα).
                    Κείμενο alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
                    Κείμενο alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(σφάλμα).
                    Κείμενο alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(altText)', - ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(error)" μπορεί να είναι περιττό.
                    Κείμενο άλτου: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αφαιρέστε: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο μέσα σε μια συνδεδεμένη εικόνα. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας. Αντικαταστήστε το ακόλουθο κείμενο alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό. Βεβαιωθείτε ότι το κείμενο alt περιγράφει τον προορισμό του συνδέσμου και όχι μια κυριολεκτική περιγραφή της εικόνας.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Βρέθηκε επέκταση αρχείου μέσα στο κείμενο alt. Εάν η εικόνα μεταφέρει μια ιστορία, μια διάθεση ή μια σημαντική πληροφορία, φροντίστε να περιγράψετε την εικόνα. Αφαιρέστε: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Βρέθηκε μη περιγραφικό κείμενο ή κείμενο alt με ψευδώνυμο. Αντικαταστήστε το ακόλουθο κείμενο alt με κάτι πιο ουσιαστικό: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Οι υποστηρικτικές τεχνολογίες υποδεικνύουν ήδη ότι πρόκειται για εικόνα, οπότε το "%(ERROR)" μπορεί να είναι περιττό.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Ο σύνδεσμος έχει aria-hidden="true" αλλά εξακολουθεί να είναι προσβάσιμος με το πληκτρολόγιο. Αν σκοπεύετε να κρύψετε έναν περιττό ή διπλό σύνδεσμο, προσθέστε επίσης tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Η εικόνα εντός του συνδέσμου χαρακτηρίζεται ως διακοσμητική και δεν υπάρχει κείμενο συνδέσμου. Προσθέστε κείμενο alt στην εικόνα που περιγράφει τον προορισμό του συνδέσμου.', LINK_IMAGE_HAS_TEXT: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική, αν και ο σύνδεσμος χρησιμοποιεί το περιβάλλον κείμενο ως περιγραφική ετικέτα.', - LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    Κείμενο alt: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
                    Κείμενο alt: %(altText)
                    Ετικέτα συνδέσμου: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Η περιγραφή του κειμένου Alt σε μια συνδεδεμένη εικόνα είναι υπερβολικά μεγάλη. Το κείμενο alt σε εικόνες που συνδέονται με συνδέσμους θα πρέπει να περιγράφει πού σας οδηγεί ο σύνδεσμος και όχι μια κυριολεκτική περιγραφή της εικόνας. Σκεφτείτε να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει κείμενο alt. Περιγράφει το κείμενο alt πού σας οδηγεί ο σύνδεσμος; Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον τίτλο της σελίδας στην οποία παραπέμπει ως κείμενο alt.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Ο σύνδεσμος εικόνας περιέχει τόσο το κείμενο alt όσο και το περιβάλλον κείμενο συνδέσμου. Εάν αυτή η εικόνα είναι διακοσμητική και χρησιμοποιείται ως λειτουργικός σύνδεσμος προς μια άλλη σελίδα, σκεφτείτε να χαρακτηρίσετε την εικόνα ως διακοσμητική ή μηδενική - το περιβάλλον κείμενο συνδέσμου θα πρέπει να αρκεί.
                    ALT %(ALT_TEXT)
                    Ετικέτα συνδέσμου %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία.
                    Παρόλο που δόθηκε επικεφαλίδα, η εικόνα θα πρέπει επίσης να έχει κείμενο alt στις περισσότερες περιπτώσεις.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.
                    Κείμενο alt: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Μην χρησιμοποιείτε τις ίδιες ακριβώς λέξεις τόσο για το κείμενο alt όσο και για τη λεζάντα. Τα προγράμματα ανάγνωσης οθόνης θα αναγγείλουν την πληροφορία δύο φορές.
                    • Το κείμενο alt θα πρέπει να παρέχει μια συνοπτική περιγραφή του περιεχομένου της εικόνας.
                    • Η λεζάντα θα πρέπει συνήθως να παρέχει πλαίσιο για να συσχετίσει την εικόνα με το περιβάλλον περιεχόμενο ή να δώσει προσοχή σε μια συγκεκριμένη πληροφορία.
                    Μάθετε περισσότερα: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Η εικόνα χαρακτηρίζεται ως διακοσμητική και θα αγνοηθεί από την υποστηρικτική τεχνολογία. Εάν η εικόνα μεταφέρει μια ιστορία, διάθεση ή σημαντικές πληροφορίες - φροντίστε να προσθέσετε κείμενο alt.', - IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
                    Κείμενο alt (%(altLength) χαρακτήρες): %(altText)', - IMAGE_PASS: 'Κείμενο alt: %(altText)', + IMAGE_ALT_TOO_LONG: 'Η περιγραφή του κειμένου Alt είναι υπερβολικά μεγάλη. Το κείμενο Alt πρέπει να είναι σύντομο, αλλά ουσιαστικό όπως ένα tweet (περίπου 100 χαρακτήρες). Εάν πρόκειται για μια σύνθετη εικόνα ή ένα γράφημα, σκεφτείτε να τοποθετήσετε τη μακροσκελή περιγραφή της εικόνας στο κείμενο παρακάτω ή σε ένα στοιχείο ακορντεόν.
                    ALT %(altLength) χαρακτήρες %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Από το κουμπί εικόνας λείπει το κείμενο alt. Παρακαλούμε προσθέστε κείμενο alt για να δώσετε ένα προσβάσιμο όνομα. Για παράδειγμα: Αναζήτηση ή Υποβολή.', LABELS_INPUT_RESET_MESSAGE: 'Τα κουμπιά επαναφοράς δεν πρέπει να χρησιμοποιούνται, εκτός αν είναι ειδικά απαραίτητα, διότι είναι εύκολο να ενεργοποιηθούν κατά λάθος.
                    Συμβουλή! Μάθετε γιατί τα κουμπιά Reset και Cancel δημιουργούν προβλήματα ευχρηστίας.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
                    Ετικέτα εισόδου: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Η είσοδος έχει ένα προσβάσιμο όνομα, αν και παρακαλούμε βεβαιωθείτε ότι υπάρχει και μια ορατή ετικέτα.
                    Ετικέτα εισόδου %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα χαρακτηριστικό for στην ετικέτα που ταιριάζει με το id αυτής της εισόδου.
                    Το αναγνωριστικό αυτής της εισόδου είναι: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Δεν υπάρχει ετικέτα που να σχετίζεται με αυτή την είσοδο. Προσθέστε ένα id σε αυτή την είσοδο και προσθέστε ένα αντίστοιχο χαρακτηριστικό for στην ετικέτα.', EMBED_VIDEO: 'Παρακαλούμε βεβαιωθείτε ότι όλα τα βίντεο διαθέτουν κλειστούς υπότιτλους. Η παροχή υπότιτλων για όλο το περιεχόμενο ήχου και βίντεο αποτελεί υποχρεωτική απαίτηση του επιπέδου Α. Οι λεζάντες υποστηρίζουν τα άτομα που είναι κωφά ή βαρήκοα.', @@ -200,15 +206,15 @@ EMBED_MISSING_TITLE: 'Το ενσωματωμένο περιεχόμενο απαιτεί ένα προσβάσιμο όνομα που περιγράφει το περιεχόμενό του. Παρακαλείστε να δώσετε ένα μοναδικό χαρακτηριστικό title ή aria-label στο στοιχείο iframe. Μάθετε περισσότερα για τα iFrames.', EMBED_GENERAL_WARNING: 'Δεν είναι δυνατός ο έλεγχος του ενσωματωμένου περιεχομένου. Παρακαλούμε βεβαιωθείτε ότι οι εικόνες έχουν alt κείμενο, τα βίντεο έχουν λεζάντες, το κείμενο έχει επαρκή αντίθεση και τα διαδραστικά στοιχεία είναι προσβάσιμα στο πληκτρολόγιο.', EMBED_UNFOCUSABLE: 'Το <iframe> με στοιχεία που δεν είναι εστιασμένα δεν πρέπει να έχει tabindex="-1". Το ενσωματωμένο περιεχόμενο δεν θα είναι προσβάσιμο με το πληκτρολόγιο.', - QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
                    Αυτός ο σύνδεσμος παραπέμπει σε:
                    %(el)', + QA_BAD_LINK: 'Βρέθηκε κακός σύνδεσμος. Ο σύνδεσμος φαίνεται να δείχνει σε περιβάλλον ανάπτυξης.
                    Αυτός ο σύνδεσμος παραπέμπει σε:
                    %(LINK)', QA_IN_PAGE_LINK: 'Σπασμένος σύνδεσμος στην ίδια σελίδα. Το στόχος του συνδέσμου δεν αντιστοιχεί σε κανένα στοιχείο σε αυτήν τη σελίδα.', QA_BAD_ITALICS: 'Οι ετικέτες bold και italic έχουν σημασιολογική σημασία και δεν πρέπει να χρησιμοποιούνται για να τονίζουν ολόκληρες παραγράφους. Το κείμενο με έντονη γραφή θα πρέπει να χρησιμοποιείται για να παρέχει ισχυρή έμφαση σε μια λέξη ή φράση. Η πλάγια γραφή θα πρέπει να χρησιμοποιείται για να τονίζονται τα κύρια ονόματα (π.χ. τίτλοι βιβλίων και άρθρων), ξένες λέξεις, εισαγωγικά. Τα μακροσκελή εισαγωγικά θα πρέπει να μορφοποιούνται ως blockquote.', QA_PDF: 'Αδυναμία ελέγχου PDF για προσβασιμότητα. Τα PDF θεωρούνται περιεχόμενο ιστού και πρέπει επίσης να είναι προσβάσιμα. Τα PDF περιέχουν συχνά προβλήματα για άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης (λείπουν δομικές ετικέτες ή λείπουν ετικέτες πεδίων φόρμας) και άτομα με χαμηλή όραση (το κείμενο δεν ανακυκλώνεται όταν μεγεθύνεται).
                    • Αν πρόκειται για φόρμα, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια προσβάσιμη φόρμα HTML ως εναλλακτική λύση.
                    • Αν πρόκειται για έγγραφο, εξετάστε το ενδεχόμενο να το μετατρέψετε σε ιστοσελίδα.
                    Αλλιώς, ελέγξτε το PDF για προσβασιμότητα στο Acrobat DC.', QA_DOCUMENT: 'Αδυναμία ελέγχου του εγγράφου για προσβασιμότητα. Τα συνδεδεμένα έγγραφα θεωρούνται διαδικτυακό περιεχόμενο και πρέπει επίσης να είναι προσβάσιμα. Παρακαλούμε ελέγξτε αυτό το έγγραφο με μη αυτόματο τρόπο. ', QA_PAGE_LANGUAGE: 'Η γλώσσα της σελίδας δεν έχει δηλωθεί! Παρακαλούμε δήλωσε τη γλώσσα στην ετικέτα HTML.', QA_PAGE_TITLE: 'Λείπει ο τίτλος της σελίδας! Παρακαλούμε δώστε έναν τίτλο σελίδας.', - QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(sanitizedText)
                    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', - QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(boldtext)
                    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', + QA_BLOCKQUOTE_MESSAGE: 'Πρόκειται για τίτλο; %(TEXT)
                    Τα εισαγωγικά πρέπει να χρησιμοποιούνται μόνο για εισαγωγικά. Αν πρόκειται για επικεφαλίδα, αλλάξτε αυτό το blockquote σε σημασιολογική επικεφαλίδα (π.χ. επικεφαλίδα 2 ή επικεφαλίδα 3).', + QA_FAKE_HEADING: 'Πρόκειται για τίτλο; %(TEXT)
                    Μια γραμμή έντονου ή μεγάλου κειμένου μπορεί να μοιάζει με επικεφαλίδα, αλλά κάποιος που χρησιμοποιεί πρόγραμμα ανάγνωσης οθόνης δεν μπορεί να καταλάβει ότι είναι σημαντική ή να μεταβεί στο περιεχόμενό της. Το έντονο ή μεγάλο κείμενο δεν πρέπει ποτέ να αντικαθιστά τις σημασιολογικές επικεφαλίδες (επικεφαλίδα 2 έως επικεφαλίδα 6).', QA_SHOULD_BE_LIST: "Προσπαθείτε να δημιουργήσετε μια λίστα; Βρέθηκε πιθανό στοιχείο λίστας: %(firstPrefix)
                    Βεβαιωθείτε ότι χρησιμοποιείτε σημασιολογικές λίστες, χρησιμοποιώντας αντ' αυτού τα κουμπιά μορφοποίησης κουκκίδων ή αριθμών. Όταν χρησιμοποιείτε μια σημασιολογική λίστα, οι υποστηρικτικές τεχνολογίες είναι σε θέση να μεταφέρουν πληροφορίες όπως ο συνολικός αριθμός των στοιχείων και η σχετική θέση κάθε στοιχείου στη λίστα. Μάθετε περισσότερα για τις σημασιολογικές λίστες.", QA_UPPERCASE_WARNING: 'Βρέθηκαν όλα τα κεφαλαία. Ορισμένα προγράμματα ανάγνωσης οθόνης ενδέχεται να ερμηνεύσουν το κείμενο με κεφαλαία γράμματα ως ακρωνύμιο και θα διαβάσουν κάθε γράμμα ξεχωριστά. Επιπλέον, ορισμένοι άνθρωποι βρίσκουν τα κεφαλαία γράμματα πιο δυσανάγνωστα και μπορεί να δώσουν την εντύπωση ότι φωνάζουν.', QA_DUPLICATE_ID: 'Βρέθηκε διπλό αναγνωριστικό. Τα σφάλματα διπλού αναγνωριστικού είναι γνωστό ότι προκαλούν προβλήματα στις υποστηρικτικές τεχνολογίες όταν αυτές προσπαθούν να αλληλεπιδράσουν με το περιεχόμενο.
                    Παρακαλούμε αφαιρέστε ή αλλάξτε το ακόλουθο ID: %(id)', @@ -217,9 +223,9 @@ TABLES_MISSING_HEADINGS: 'Λείπουν οι επικεφαλίδες των πινάκων! Οι προσβάσιμοι πίνακες χρειάζονται σήμανση HTML που να υποδεικνύει τα κελιά κεφαλίδας και τα κελιά δεδομένων που καθορίζουν τη σχέση τους. Αυτές οι πληροφορίες παρέχουν περιεχόμενο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε μορφή πίνακα.
                    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.', TABLES_SEMANTIC_HEADING: "Σημασιολογικές επικεφαλίδες όπως οι επικεφαλίδες 2 ή 3 θα πρέπει να χρησιμοποιούνται μόνο για τμήματα περιεχομένου- όχι σε πίνακες HTML. Υποδείξτε επικεφαλίδες πινάκων χρησιμοποιώντας αντ' αυτού το στοιχείο <th>.
                    Μάθετε περισσότερα για τους προσβάσιμους πίνακες.", TABLES_EMPTY_HEADING: 'Βρέθηκε κενή επικεφαλίδα πίνακα! Οι επικεφαλίδες των πινάκων δεν πρέπει να είναι ποτέ κενές. Είναι σημαντικό να ορίζονται επικεφαλίδες γραμμών ή/και στηλών για να αποδίδεται η σχέση τους. Αυτές οι πληροφορίες παρέχουν πλαίσιο σε άτομα που χρησιμοποιούν υποστηρικτική τεχνολογία. Λάβετε υπόψη σας ότι οι πίνακες πρέπει να χρησιμοποιούνται μόνο για δεδομένα σε πίνακες.
                    Μάθετε περισσότερα σχετικά με τους προσβάσιμους πίνακες.', - CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Ο λόγος αντίθεσης είναι %(cratio) για το ακόλουθο κείμενο: %(sanitizedText)', - CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Παρακαλούμε ελέγξτε: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αναλογία αντίθεσης: %(cratio)', + CONTRAST_ERROR: 'Αυτό το κείμενο δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αντίθεση Αναλογία %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Η αντίθεση αυτού του κειμένου είναι άγνωστη και πρέπει να επανεξεταστεί χειροκίνητα. Βεβαιωθείτε ότι το κείμενο και το φόντο έχουν έντονη χρωματική αντίθεση. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Παρακαλούμε ελέγξτε: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Το κείμενο σε αυτή την εισαγωγή δεν έχει αρκετή αντίθεση με το φόντο. Η αναλογία αντίθεσης πρέπει να είναι τουλάχιστον 4,5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο.
                    Αντίθεση Αναλογία %(RATIO)', }, }; diff --git a/docs/assets/js/lang/en.js b/docs/assets/js/lang/en.js index a8db543f..5deede54 100644 --- a/docs/assets/js/lang/en.js +++ b/docs/assets/js/lang/en.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var en = { OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', + MISSING: 'Missing', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -75,8 +81,8 @@ var en = { COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Colour filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -131,7 +137,7 @@ var en = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -142,43 +148,43 @@ var en = { LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
                    • Add some concise text that describes where the link takes you.
                    • If it is an icon link or SVG, it is likely missing a descriptive label.
                    • If you think this link is an error due to a copy/paste bug, consider deleting it.
                    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
                    Tip! Learn best practices: opening links in new browser windows and tabs.', - FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example:
                    Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    Alt text: %(altText)
                    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
                    Although a caption was provided, the image should also have alt text in most cases.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
                    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
                    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -191,14 +197,14 @@ var en = { EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
                    • If this is a form, consider using an accessible HTML form as an alternative.
                    • If this is a document, consider converting it into a web page.
                    Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
                    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
                    Please remove or change the following ID: %(id)', @@ -212,9 +218,9 @@ var en = { TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
                    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO)', }, }; diff --git a/docs/assets/js/lang/en.umd.js b/docs/assets/js/lang/en.umd.js index bdbe9e19..4e00c833 100644 --- a/docs/assets/js/lang/en.umd.js +++ b/docs/assets/js/lang/en.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', + MISSING: 'Missing', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -81,8 +87,8 @@ COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Colour filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -137,7 +143,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -148,43 +154,43 @@ LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
                    • Add some concise text that describes where the link takes you.
                    • If it is an icon link or SVG, it is likely missing a descriptive label.
                    • If you think this link is an error due to a copy/paste bug, consider deleting it.
                    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
                    Tip! Learn best practices: opening links in new browser windows and tabs.', - FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example:
                    Executive Report (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    Alt text: %(altText)
                    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
                    Although a caption was provided, the image should also have alt text in most cases.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
                    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
                    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -197,14 +203,14 @@ EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
                    • If this is a form, consider using an accessible HTML form as an alternative.
                    • If this is a document, consider converting it into a web page.
                    Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
                    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
                    Please remove or change the following ID: %(id)', @@ -218,9 +224,9 @@ TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
                    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO)', }, }; diff --git a/docs/assets/js/lang/enUS.js b/docs/assets/js/lang/enUS.js index b951bf39..2ec4e873 100644 --- a/docs/assets/js/lang/enUS.js +++ b/docs/assets/js/lang/enUS.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,12 @@ var enUS = { OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -75,8 +80,8 @@ var enUS = { COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Color filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -131,7 +136,7 @@ var enUS = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -142,43 +147,43 @@ var enUS = { LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
                    • Add some concise text that describes where the link takes you.
                    • If it is an icon link or SVG, it is likely missing a descriptive label.
                    • If you think this link is an error due to a copy/paste bug, consider deleting it.
                    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', - LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', + LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced - NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text
                    Tip! Learn best practices: opening links in new browser windows and tabs.', + NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
                    Tip! Learn best practices: opening links in new browser windows and tabs.', FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    Alt text: %(altText)
                    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
                    Although a caption was provided, the image should also have alt text in most cases.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
                    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
                    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -191,14 +196,14 @@ var enUS = { EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
                    • If this is a form, consider using an accessible HTML form as an alternative.
                    • If this is a document, consider converting it into a web page.
                    Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
                    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
                    Please remove or change the following ID: %(id)', @@ -212,9 +217,9 @@ var enUS = { TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
                    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO)', }, }; diff --git a/docs/assets/js/lang/enUS.umd.js b/docs/assets/js/lang/enUS.umd.js index 1feced4c..e6cc945e 100644 --- a/docs/assets/js/lang/enUS.umd.js +++ b/docs/assets/js/lang/enUS.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,12 @@ OFF: 'Off', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Close', - OUTLINE: 'Page Outline', + OUTLINE: 'Outline', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'No images found.', + DECORATIVE: 'Decorative', PAGE_ISSUES: 'Page Issues', SETTINGS: 'Settings', CONTRAST: 'Contrast', @@ -81,8 +86,8 @@ COLOUR_FILTER_HIGH_CONTRAST_MESSAGE: 'Color filters do not work in high contrast mode.', // Alternative text stop words - SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo'], - PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do'], + SUSPICIOUS_ALT_STOPWORDS: ['image', 'graphic', 'picture', 'photo', 'thumbnail'], + PLACEHOLDER_ALT_STOPWORDS: ['alt', 'chart', 'decorative', 'image', 'graphic', 'photo', 'placeholder', 'placeholder image', 'spacer', 'tbd', 'todo', 'to do', 'thumbnail'], PARTIAL_ALT_STOPWORDS: [ 'click', 'click here', @@ -137,7 +142,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level).', HEADING_EMPTY: 'Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph.', - HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    Character count: %(headingLength)', + HEADING_LONG: 'Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence).
                    %(HEADING_LENGTH) Characters', HEADING_FIRST: 'The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_MISSING_ONE: 'Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure.', HEADING_EMPTY_WITH_IMAGE: 'Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative.', @@ -148,43 +153,43 @@ LINK_EMPTY: 'Remove empty links without any text.', LINK_EMPTY_LABELLEDBY: 'Link has an aria-labelledby value that is empty or does not match the id value of another element on the page.', LINK_EMPTY_LINK_NO_LABEL: 'Link does not have discernible text that is visible to screen readers and other assistive technology. To fix:
                    • Add some concise text that describes where the link takes you.
                    • If it is an icon link or SVG, it is likely missing a descriptive label.
                    • If you think this link is an error due to a copy/paste bug, consider deleting it.
                    ', - LINK_LABEL: 'Link label: %(sanitizedText)', - LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(error)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', - LINK_BEST_PRACTICES: 'Consider replacing the link text: %(error)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', - LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', + LINK_LABEL: 'Label %(TEXT)', + LINK_STOPWORD: 'Link text may not be descriptive enough out of context: %(ERROR)
                    Tip! Link text should always be clear, unique, and meaningful. Avoid common words like "click here" or "learn more"', + LINK_BEST_PRACTICES: 'Consider replacing the link text: %(ERROR)
                    • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
                    • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
                    ', + LINK_URL: 'Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site\'s homepage) are okay.
                    Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context.', LINK_DOI: 'For web pages or online-only resources, the APA Style guide recommends using descriptive links by wrapping the URL or DOI of the work around its title. Longer, less intelligible URLs used as link text might be difficult to comprehend with assistive technology.', // Links advanced - NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text
                    Tip! Learn best practices: opening links in new browser windows and tabs.', + NEW_TAB_WARNING: 'Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone\'s experience or make decisions for them. Indicate that the link opens in a new window within the link text.
                    Tip! Learn best practices: opening links in new browser windows and tabs.', FILE_TYPE_WARNING: 'Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size.
                    Example: Executive Report (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers.
                    Consider making the following link more descriptive to help distinguish it from other links: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative.', MISSING_ALT_LINK_MESSAGE: 'Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you.', MISSING_ALT_MESSAGE: 'Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image.', - LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)', - ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(error)" may be redundant.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image. Remove: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Assistive technologies already indicate that this is an image, so "%(ERROR)" may be redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well.', LINK_IMAGE_NO_ALT_TEXT: 'Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link.', LINK_IMAGE_HAS_TEXT: 'Image is marked as decorative, although the link is using the surrounding text as a descriptive label.', - LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    Alt text (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    Alt text: %(altText)
                    Link label: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text.
                    ALT %(altLength) Characters %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Image link contains alt text. Does the alt text describe where the link takes you? Consider using the title of the page it links to as the alt text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative. The surrounding link text should suffice.
                    ALT %(ALT_TEXT)
                    Label %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology.
                    Although a caption was provided, the image should also have alt text in most cases.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    Alt text: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice.
                    • The alt text should provide a concise description of what is in the image.
                    • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
                    Learn more: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    Alt text (%(altLength) characters): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component.
                    ALT %(altLength) Characters %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset buttons should not be used unless specifically needed because they are easy to activate by mistake.
                    Tip! Learn why Reset and Cancel buttons pose usability issues.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input has an accessible name, although please ensure there is a visible label too.
                    Input label %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'There is no label associated with this input. Add a for attribute to the label that matches the id of this input.
                    The ID for this input is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label.', @@ -197,14 +202,14 @@ EMBED_UNFOCUSABLE: '<iframe> with focusable elements should not have tabindex="-1". The embedded content will not be keyboard accessible.', // Quality assurance - QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(el)', + QA_BAD_LINK: 'Bad link found. Link appears to point to a development environment.
                    This link points to:
                    %(LINK)', QA_BAD_ITALICS: 'Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote.', QA_PDF: 'Unable to check PDFs for accessibility. PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
                    • If this is a form, consider using an accessible HTML form as an alternative.
                    • If this is a document, consider converting it into a web page.
                    Otherwise, please check PDF for accessibility in Acrobat DC.', QA_DOCUMENT: 'Unable to check document for accessibility. Linked documents are considered web content and must be made accessible as well. Please manually review this document. ', QA_PAGE_LANGUAGE: 'Page language not declared! Please declare language on HTML tag.', QA_PAGE_TITLE: 'Missing page title! Please provide a page title.', - QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(sanitizedText)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', - QA_FAKE_HEADING: 'Is this a heading? %(boldtext)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', + QA_BLOCKQUOTE_MESSAGE: 'Is this a heading? %(TEXT)
                    Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3).', + QA_FAKE_HEADING: 'Is this a heading? %(TEXT)
                    A line of bold or large text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bold or large text should never replace semantic headings (Heading 2 to Heading 6).', QA_SHOULD_BE_LIST: 'Are you trying to create a list? Possible list item found: %(firstPrefix)
                    Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists.', QA_UPPERCASE_WARNING: 'Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING.', QA_DUPLICATE_ID: 'Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content.
                    Please remove or change the following ID: %(id)', @@ -218,9 +223,9 @@ TABLES_EMPTY_HEADING: 'Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only.
                    Learn more about accessible tables.', // Contrast - CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    The contrast ratio is %(cratio) for the following text: %(sanitizedText)', - CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colors. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Please review: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast Ratio %(RATIO)', }, }; diff --git a/docs/assets/js/lang/es.js b/docs/assets/js/lang/es.js index 6abc10fa..7136b41d 100644 --- a/docs/assets/js/lang/es.js +++ b/docs/assets/js/lang/es.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var es = { OFF: 'Desactivado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Cerrar', - OUTLINE: 'Esquema de Página', + OUTLINE: 'Esquema', + ALT: 'ALT', + IMAGES: 'Imágenes', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'No se encontraron imágenes.', + DECORATIVE: 'Decorativo', + MISSING: 'Faltante', PAGE_ISSUES: 'Problemas de la Página', SETTINGS: 'Ajustes', CONTRAST: 'Contraste', @@ -129,7 +135,7 @@ var es = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de encabezamiento no consecutivo utilizado. Los encabezados nunca deben saltar niveles, o ir de Título %(prevLevel) en Título %(level).', HEADING_EMPTY: 'Encabezado vacío encontrado! Para corregir, elimine esta línea o cambie su formato de Encabezado %(level) a Normal o Párrafo.', - HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración)
                    Número de caracteres: %(headingLength)', + HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'El primer encabezado de una página generalmente debe ser un encabezado 1 o un encabezado 2. El encabezado 1 debe ser el comienzo de la sección de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_MISSING_ONE: 'Falta el encabezado 1. El encabezado 1 debe ser el comienzo del área de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_EMPTY_WITH_IMAGE: 'El encabezado no tiene texto, pero contiene una imagen. Si no es un encabezado, cambie su formato de Título %(level) a Normal o Párrafo. De lo contrario, agregue texto alternativo a la imagen si no es decorativa.', @@ -140,43 +146,43 @@ var es = { LINK_EMPTY: 'Eliminar enlaces vacíos sin texto.', LINK_EMPTY_LABELLEDBY: 'El enlace tiene un valor para aria-labelledby que está vacío o no coincide con el valor del atributo id de otro elemento en la página.', LINK_EMPTY_LINK_NO_LABEL: 'El enlace no tiene texto perceptible que sea visible para los lectores de pantalla y otras tecnologías de asistencia. Para solucionarlo:
                    • Agregue un texto conciso que describa a dónde lo lleva el enlace.
                    • Si es un icono de enlace o SVG, es probable que le falte una etiqueta descriptiva.
                    • Si cree que este enlace es un error debido a un error de copiar/pegar, considere eliminarlo.
                    ', - LINK_LABEL: 'Etiqueta de enlace: %(sanitizedText)', - LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(error)
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', - LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(error)
                    • "Haga clic aquí" Los lugares se enfocan en la mecánica del mouse, cuando muchas personas no usan un mouse o pueden estar viendo este sitio web en un dispositivo móvil. Considere usar un verbo diferente que se relacione con la tarea.
                    • Evite usar símbolos HTML como llamadas a la acción, a menos que estén ocultos a las tecnologías de asistencia.
                    ', - LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', + LINK_LABEL: 'Etiqueta de enlace %(TEXT)', + LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(ERROR)
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', + LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(ERROR)
                    • "Haga clic aquí" Los lugares se enfocan en la mecánica del mouse, cuando muchas personas no usan un mouse o pueden estar viendo este sitio web en un dispositivo móvil. Considere usar un verbo diferente que se relacione con la tarea.
                    • Evite usar símbolos HTML como llamadas a la acción, a menos que estén ocultos a las tecnologías de asistencia.
                    ', + LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', LINK_DOI: 'En el caso de páginas web o recursos en línea, la Guía de estilo de la APA recomienda utilizar enlaces descriptivos que incluyan la URL o el DOI de la obra alrededor de su título. Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden resultar difíciles de comprender cuando se accede a ellas con tecnología de asistencia.', // Links advanced NEW_TAB_WARNING: 'El enlace se abre en una nueva pestaña o ventana sin previo aviso. Si lo hace, puede ser desorientador, especialmente para las personas que tienen dificultades para percibir el contenido visual. En segundo lugar, no siempre es una buena práctica controlar la experiencia de alguien o tomar decisiones por ellos. Indique que el enlace se abre en una nueva ventana dentro del texto del enlace.
                    ¡Consejo! Aprenda las mejores prácticas: abrir enlaces en nuevas ventanas y pestañas del navegador.', FILE_TYPE_WARNING: 'El enlace apunta a un archivo PDF o descargable (por ejemplo, MP3, Zip, Word Doc) sin previo aviso. Indique el tipo de archivo dentro del texto del enlace. Si es un archivo grande, considere incluir el tamaño del archivo.
                    Ejemplo: Informe ejecutivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
                    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
                    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'La imagen se utiliza como vínculo con el texto circundante, aunque el atributo alt debe marcarse como decorativo o nulo.', MISSING_ALT_LINK_MESSAGE: 'La imagen se está utilizando como enlace, ¡pero falta el texto alternativo! Asegúrese de que el texto alternativo describa a dónde lo lleva el enlace.', MISSING_ALT_MESSAGE: '¡Falta el texto alternativo! Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(error).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(altText)', - ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'El enlace tiene aria-hidden="true" pero sigue siendo enfocable por el teclado. Si tienes la intención de ocultar un enlace redundante o duplicado, añade también tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'La imagen dentro del enlace está marcada como decorativa y no hay texto de enlace. Agregue texto alternativo a la imagen que describa el destino del enlace.', LINK_IMAGE_HAS_TEXT: 'La imagen está marcada como decorativa, aunque el enlace utiliza el texto circundante como etiqueta descriptiva.', - LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
                    Texto alternativo: %(altText)
                    Etiqueta de enlace: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
                    ALT %(ALT_TEXT)
                    Etiqueta de enlace %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará.
                    Aunque se proporcionó un título, la imagen también debe tener texto alternativo en la mayoría de los casos.
                    • El texto alternativo debe brindar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe brindar contexto para relacionar la imagen con el contenido que la rodea, o llamar la atención sobre un tema en particular. pieza de información.
                    Más información: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces.
                    • El texto alternativo debe proporcionar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe proporcionar contexto para relacionar la imagen con el entorno. contenido o preste atención a una información en particular.
                    Obtenga más información: alt versus figcaption.
                    Texto alternativo: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces.
                    • El texto alternativo debe proporcionar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe proporcionar contexto para relacionar la imagen con el entorno. contenido o preste atención a una información en particular.
                    Obtenga más información: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de agregar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Al botón de imagen le falta el texto alternativo. Agregue texto alternativo para proporcionar un nombre accesible. Por ejemplo: Buscar o Enviar.', LABELS_INPUT_RESET_MESSAGE: 'Los botones de reinicio no deben usarse a menos que se necesiten específicamente porque son fáciles de activar por error.
                    ¡Consejo! Descubra por qué los botones Restablecer y Cancelar plantean problemas de uso.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
                    Etiqueta de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
                    Etiqueta de entrada %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un atributo for a la etiqueta que coincida con el id de esta entrada.
                    El ID de esta entrada es: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un id a esta entrada y agregue un atributo for coincidente a la etiqueta.', @@ -190,14 +196,14 @@ var es = { EMBED_UNFOCUSABLE: '<iframe> con elementos no enfocables no debe tener tabindex="-1". El contenido incrustado no será accesible mediante el teclado.', // Quality assurance - QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
                    Este enlace apunta a:
                    %(el)', + QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
                    Este enlace apunta a:
                    %(LINK)', QA_BAD_ITALICS: 'Las etiquetas en negrita y cursiva tienen un significado semántico y no deben usarse para resaltar párrafos completos. El texto en negrita se debe utilizar para dar un fuerte énfasis a una palabra o frase. Se debe usar cursiva para resaltar nombres propios (es decir, títulos de libros y artículos), palabras extranjeras, citas. Las comillas largas deben formatearse como comillas en bloque.', QA_PDF: 'No se pueden verificar los archivos PDF para accesibilidad. Los archivos PDF se consideran contenido web y también deben ser accesibles. Los archivos PDF a menudo contienen problemas para las personas que usan lectores de pantalla (faltan etiquetas estructurales o etiquetas de campos de formulario) y personas con problemas de visión (el texto no se ajusta cuando se amplía).
                    • Si se trata de un formulario, considere usar un formulario HTML accesible como alternativa.
                    • Si se trata de un documento, considere convertirlo en una página web.
                    De lo contrario, consulte PDF para conocer la accesibilidad en Acrobat DC.', QA_DOCUMENT: 'No se puede comprobar la accesibilidad del documento. Los documentos vinculados se consideran contenido web y también deben ser accesibles. Por favor revise manualmente este documento. ', QA_PAGE_LANGUAGE: '¡Idioma de la página no declarado! declare el idioma en la etiqueta HTML.', QA_PAGE_TITLE: '¡Falta el título de la página! Proporcione un título de página.', - QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(sanitizedText)
                    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', - QA_FAKE_HEADING: '¿Es esto un encabezado? %(boldtext)
                    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', + QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(TEXT)
                    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', + QA_FAKE_HEADING: '¿Es esto un encabezado? %(TEXT)
                    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', QA_SHOULD_BE_LIST: '¿Estás tratando de crear una lista? Posible elemento de lista encontrado: %(firstPrefix)
                    Asegúrese de usar listas semánticas utilizando los botones de formato de viñetas o números en su lugar. Cuando se utiliza una lista semántica, las tecnologías de asistencia pueden transmitir información como el número total de elementos y la posición relativa de cada elemento en la lista. Obtenga más información sobre las listas semánticas.', QA_UPPERCASE_WARNING: 'Encontrado todo en mayúsculas. Algunos lectores de pantalla pueden interpretar todo el texto en mayúsculas como un acrónimo y leerán cada letra individualmente. Además, algunas personas encuentran que las mayúsculas son más difíciles de leer y puede dar la apariencia de GRITO.', QA_DUPLICATE_ID: 'Identificación duplicada encontrada. Se sabe que los errores de ID duplicados causan problemas a las tecnologías de asistencia cuando intentan interactuar con el contenido.
                    Elimine o cambie el siguiente ID: %(id)', @@ -211,9 +217,9 @@ var es = { TABLES_EMPTY_HEADING: '¡Encabezado de tabla vacío encontrado! Los encabezados de las tablas nunca deben estar vacíos. Es importante designar encabezados de fila y/o columna para transmitir su relación. Esta información brinda contexto a las personas que usan tecnología de asistencia. Tenga en cuenta que las tablas deben usarse solo para datos tabulares.
                    Más información sobre las tablas accesibles.', // Contrast - CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    La relación de contraste es %(cratio) para el siguiente texto: %(sanitizedText)', - CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/es.umd.js b/docs/assets/js/lang/es.umd.js index 8c47c426..6df616bc 100644 --- a/docs/assets/js/lang/es.umd.js +++ b/docs/assets/js/lang/es.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Desactivado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Cerrar', - OUTLINE: 'Esquema de Página', + OUTLINE: 'Esquema', + ALT: 'ALT', + IMAGES: 'Imágenes', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'No se encontraron imágenes.', + DECORATIVE: 'Decorativo', + MISSING: 'Faltante', PAGE_ISSUES: 'Problemas de la Página', SETTINGS: 'Ajustes', CONTRAST: 'Contraste', @@ -135,7 +141,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de encabezamiento no consecutivo utilizado. Los encabezados nunca deben saltar niveles, o ir de Título %(prevLevel) en Título %(level).', HEADING_EMPTY: 'Encabezado vacío encontrado! Para corregir, elimine esta línea o cambie su formato de Encabezado %(level) a Normal o Párrafo.', - HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración)
                    Número de caracteres: %(headingLength)', + HEADING_LONG: '¡El título es largo! Los encabezados deben usarse para organizar el contenido y transmitir la estructura. Deben ser breves, informativos y únicos. Mantenga los encabezados de menos de 160 caracteres (no más de una oración).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'El primer encabezado de una página generalmente debe ser un encabezado 1 o un encabezado 2. El encabezado 1 debe ser el comienzo de la sección de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_MISSING_ONE: 'Falta el encabezado 1. El encabezado 1 debe ser el comienzo del área de contenido principal y es el encabezado principal que describe el propósito general de la página. Aprender más acerca de la estructura de encabezado.', HEADING_EMPTY_WITH_IMAGE: 'El encabezado no tiene texto, pero contiene una imagen. Si no es un encabezado, cambie su formato de Título %(level) a Normal o Párrafo. De lo contrario, agregue texto alternativo a la imagen si no es decorativa.', @@ -146,43 +152,43 @@ LINK_EMPTY: 'Eliminar enlaces vacíos sin texto.', LINK_EMPTY_LABELLEDBY: 'El enlace tiene un valor para aria-labelledby que está vacío o no coincide con el valor del atributo id de otro elemento en la página.', LINK_EMPTY_LINK_NO_LABEL: 'El enlace no tiene texto perceptible que sea visible para los lectores de pantalla y otras tecnologías de asistencia. Para solucionarlo:
                    • Agregue un texto conciso que describa a dónde lo lleva el enlace.
                    • Si es un icono de enlace o SVG, es probable que le falte una etiqueta descriptiva.
                    • Si cree que este enlace es un error debido a un error de copiar/pegar, considere eliminarlo.
                    ', - LINK_LABEL: 'Etiqueta de enlace: %(sanitizedText)', - LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(error)
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', - LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(error)
                    • "Haga clic aquí" Los lugares se enfocan en la mecánica del mouse, cuando muchas personas no usan un mouse o pueden estar viendo este sitio web en un dispositivo móvil. Considere usar un verbo diferente que se relacione con la tarea.
                    • Evite usar símbolos HTML como llamadas a la acción, a menos que estén ocultos a las tecnologías de asistencia.
                    ', - LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', + LINK_LABEL: 'Etiqueta de enlace %(TEXT)', + LINK_STOPWORD: 'Es posible que el texto del enlace no sea lo suficientemente descriptivo fuera de contexto: %(ERROR)
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo. Evite palabras comunes como "haga clic aquí" o "más información"', + LINK_BEST_PRACTICES: 'Considere reemplazar el texto del enlace: %(ERROR)
                    • "Haga clic aquí" Los lugares se enfocan en la mecánica del mouse, cuando muchas personas no usan un mouse o pueden estar viendo este sitio web en un dispositivo móvil. Considere usar un verbo diferente que se relacione con la tarea.
                    • Evite usar símbolos HTML como llamadas a la acción, a menos que estén ocultos a las tecnologías de asistencia.
                    ', + LINK_URL: 'Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden ser difíciles de escuchar con tecnología de asistencia. En la mayoría de los casos, es mejor usar texto legible por humanos en lugar de la URL. Las URL cortas (como la página de inicio de un sitio) están bien.
                    ¡Consejo! El texto del enlace siempre debe ser claro, único y significativo para que pueda entenderse fuera de contexto.', LINK_DOI: 'En el caso de páginas web o recursos en línea, la Guía de estilo de la APA recomienda utilizar enlaces descriptivos que incluyan la URL o el DOI de la obra alrededor de su título. Las URL más largas y menos inteligibles utilizadas como texto de enlace pueden resultar difíciles de comprender cuando se accede a ellas con tecnología de asistencia.', // Links advanced NEW_TAB_WARNING: 'El enlace se abre en una nueva pestaña o ventana sin previo aviso. Si lo hace, puede ser desorientador, especialmente para las personas que tienen dificultades para percibir el contenido visual. En segundo lugar, no siempre es una buena práctica controlar la experiencia de alguien o tomar decisiones por ellos. Indique que el enlace se abre en una nueva ventana dentro del texto del enlace.
                    ¡Consejo! Aprenda las mejores prácticas: abrir enlaces en nuevas ventanas y pestañas del navegador.', FILE_TYPE_WARNING: 'El enlace apunta a un archivo PDF o descargable (por ejemplo, MP3, Zip, Word Doc) sin previo aviso. Indique el tipo de archivo dentro del texto del enlace. Si es un archivo grande, considere incluir el tamaño del archivo.
                    Ejemplo: Informe ejecutivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
                    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'El enlace tiene el mismo texto que otro enlace, aunque apunta a una página diferente. Varios enlaces con el mismo texto pueden causar confusión a las personas que usan lectores de pantalla.
                    Considere hacer el siguiente enlace más descriptivo para ayudar a distinguirlo de otros enlaces: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'La imagen se utiliza como vínculo con el texto circundante, aunque el atributo alt debe marcarse como decorativo o nulo.', MISSING_ALT_LINK_MESSAGE: 'La imagen se está utilizando como enlace, ¡pero falta el texto alternativo! Asegúrese de que el texto alternativo describa a dónde lo lleva el enlace.', MISSING_ALT_MESSAGE: '¡Falta el texto alternativo! Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(error).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(altText)', - ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(error)" puede ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Eliminar: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición dentro de una imagen vinculada. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen. Reemplace el siguiente texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante. Asegúrese de que el texto alternativo describa el destino del enlace, no una descripción literal de la imagen.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensión de archivo dentro del texto alternativo encontrado. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de describir la imagen. Eliminar: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Se encontró texto alternativo no descriptivo o de marcador de posición. Reemplace el siguiente texto alternativo con algo más significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Las tecnologías de asistencia ya indican que se trata de una imagen, por lo que "%(ERROR)" puede ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'El enlace tiene aria-hidden="true" pero sigue siendo enfocable por el teclado. Si tienes la intención de ocultar un enlace redundante o duplicado, añade también tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'La imagen dentro del enlace está marcada como decorativa y no hay texto de enlace. Agregue texto alternativo a la imagen que describa el destino del enlace.', LINK_IMAGE_HAS_TEXT: 'La imagen está marcada como decorativa, aunque el enlace utiliza el texto circundante como etiqueta descriptiva.', - LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
                    Texto alternativo: %(altText)
                    Etiqueta de enlace: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'La descripción del texto alternativo en una imagen vinculada es demasiado larga. El texto alternativo en las imágenes vinculadas debe describir a dónde lo lleva el enlace, no una descripción literal de la imagen. Considere usar el título de la página a la que enlaza como texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'El enlace de la imagen contiene un texto alternativo. ¿Describe el texto alternativo a dónde lleva el enlace? Considere la posibilidad de utilizar el título de la página a la que enlaza como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'El enlace de la imagen contiene texto alternativo y texto del enlace que la rodea. Si esta imagen es decorativa y se usa como un enlace funcional a otra página, considere marcar la imagen como decorativa o nula; el texto del enlace que la rodea debería ser suficiente.
                    ALT %(ALT_TEXT)
                    Etiqueta de enlace %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará.
                    Aunque se proporcionó un título, la imagen también debe tener texto alternativo en la mayoría de los casos.
                    • El texto alternativo debe brindar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe brindar contexto para relacionar la imagen con el contenido que la rodea, o llamar la atención sobre un tema en particular. pieza de información.
                    Más información: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces.
                    • El texto alternativo debe proporcionar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe proporcionar contexto para relacionar la imagen con el entorno. contenido o preste atención a una información en particular.
                    Obtenga más información: alt versus figcaption.
                    Texto alternativo: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'No utilices exactamente las mismas palabras para el texto alternativo y el subtítulo. Los lectores de pantalla anunciarán la información dos veces.
                    • El texto alternativo debe proporcionar una descripción concisa de lo que hay en la imagen.
                    • La leyenda generalmente debe proporcionar contexto para relacionar la imagen con el entorno. contenido o preste atención a una información en particular.
                    Obtenga más información: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'La imagen está marcada como decorativa y la tecnología de asistencia la ignorará. Si la imagen transmite una historia, un estado de ánimo o información importante, asegúrese de agregar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'La descripción del texto alternativo es demasiado larga. El texto alternativo debe ser conciso, pero significativo como un tweet (alrededor de 100 caracteres). Si se trata de una imagen compleja o un gráfico, considere colocar la descripción larga de la imagen en el texto a continuación o en un componente de acordeón.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Al botón de imagen le falta el texto alternativo. Agregue texto alternativo para proporcionar un nombre accesible. Por ejemplo: Buscar o Enviar.', LABELS_INPUT_RESET_MESSAGE: 'Los botones de reinicio no deben usarse a menos que se necesiten específicamente porque son fáciles de activar por error.
                    ¡Consejo! Descubra por qué los botones Restablecer y Cancelar plantean problemas de uso.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
                    Etiqueta de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'La entrada tiene un nombre accesible, aunque asegúrese de que también haya una etiqueta visible.
                    Etiqueta de entrada %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un atributo for a la etiqueta que coincida con el id de esta entrada.
                    El ID de esta entrada es: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'No hay ninguna etiqueta asociada con esta entrada. Agregue un id a esta entrada y agregue un atributo for coincidente a la etiqueta.', @@ -196,14 +202,14 @@ EMBED_UNFOCUSABLE: '<iframe> con elementos no enfocables no debe tener tabindex="-1". El contenido incrustado no será accesible mediante el teclado.', // Quality assurance - QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
                    Este enlace apunta a:
                    %(el)', + QA_BAD_LINK: 'Enlace incorrecto encontrado. El enlace parece apuntar a un entorno de desarrollo.
                    Este enlace apunta a:
                    %(LINK)', QA_BAD_ITALICS: 'Las etiquetas en negrita y cursiva tienen un significado semántico y no deben usarse para resaltar párrafos completos. El texto en negrita se debe utilizar para dar un fuerte énfasis a una palabra o frase. Se debe usar cursiva para resaltar nombres propios (es decir, títulos de libros y artículos), palabras extranjeras, citas. Las comillas largas deben formatearse como comillas en bloque.', QA_PDF: 'No se pueden verificar los archivos PDF para accesibilidad. Los archivos PDF se consideran contenido web y también deben ser accesibles. Los archivos PDF a menudo contienen problemas para las personas que usan lectores de pantalla (faltan etiquetas estructurales o etiquetas de campos de formulario) y personas con problemas de visión (el texto no se ajusta cuando se amplía).
                    • Si se trata de un formulario, considere usar un formulario HTML accesible como alternativa.
                    • Si se trata de un documento, considere convertirlo en una página web.
                    De lo contrario, consulte PDF para conocer la accesibilidad en Acrobat DC.', QA_DOCUMENT: 'No se puede comprobar la accesibilidad del documento. Los documentos vinculados se consideran contenido web y también deben ser accesibles. Por favor revise manualmente este documento. ', QA_PAGE_LANGUAGE: '¡Idioma de la página no declarado! declare el idioma en la etiqueta HTML.', QA_PAGE_TITLE: '¡Falta el título de la página! Proporcione un título de página.', - QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(sanitizedText)
                    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', - QA_FAKE_HEADING: '¿Es esto un encabezado? %(boldtext)
                    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', + QA_BLOCKQUOTE_MESSAGE: '¿Es esto un encabezado? %(TEXT)
                    Las comillas en bloque deben usarse solo para comillas. Si pretende ser un encabezado, cambie esta cita en bloque a un encabezado semántico (por ejemplo, Título 2 o Título 3).', + QA_FAKE_HEADING: '¿Es esto un encabezado? %(TEXT)
                    Una línea de texto en negrita o grande puede parecer un encabezado, pero alguien que usa un lector de pantalla no puede decir que es importante o saltar a su contenido. El texto en negrita o grande nunca debe reemplazar los encabezados semánticos (Título 2 a Título 6).', QA_SHOULD_BE_LIST: '¿Estás tratando de crear una lista? Posible elemento de lista encontrado: %(firstPrefix)
                    Asegúrese de usar listas semánticas utilizando los botones de formato de viñetas o números en su lugar. Cuando se utiliza una lista semántica, las tecnologías de asistencia pueden transmitir información como el número total de elementos y la posición relativa de cada elemento en la lista. Obtenga más información sobre las listas semánticas.', QA_UPPERCASE_WARNING: 'Encontrado todo en mayúsculas. Algunos lectores de pantalla pueden interpretar todo el texto en mayúsculas como un acrónimo y leerán cada letra individualmente. Además, algunas personas encuentran que las mayúsculas son más difíciles de leer y puede dar la apariencia de GRITO.', QA_DUPLICATE_ID: 'Identificación duplicada encontrada. Se sabe que los errores de ID duplicados causan problemas a las tecnologías de asistencia cuando intentan interactuar con el contenido.
                    Elimine o cambie el siguiente ID: %(id)', @@ -217,9 +223,9 @@ TABLES_EMPTY_HEADING: '¡Encabezado de tabla vacío encontrado! Los encabezados de las tablas nunca deben estar vacíos. Es importante designar encabezados de fila y/o columna para transmitir su relación. Esta información brinda contexto a las personas que usan tecnología de asistencia. Tenga en cuenta que las tablas deben usarse solo para datos tabulares.
                    Más información sobre las tablas accesibles.', // Contrast - CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    La relación de contraste es %(cratio) para el siguiente texto: %(sanitizedText)', - CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Se desconoce el contraste de este texto y debe revisarse manualmente. Asegúrese de que el texto y el fondo tengan colores fuertes que contrasten. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'El texto dentro de esta entrada no tiene suficiente contraste con el fondo. La relación de contraste debe ser de al menos 4,5:1 para texto normal y 3:1 para texto grande.
                    Relación de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/et.js b/docs/assets/js/lang/et.js index bcb409c1..a9dc3733 100644 --- a/docs/assets/js/lang/et.js +++ b/docs/assets/js/lang/et.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var et = { OFF: 'Väljaspool', ALERT_TEXT: 'Hoiatus', ALERT_CLOSE: 'Sulge', - OUTLINE: 'Lehekülje ülevaade', + OUTLINE: 'Ülevaade', + ALT: 'ALT', + IMAGES: 'Pildid', + EDIT: 'Muuda', + IMAGES_NOT_FOUND: 'Pilte ei leitud.', + DECORATIVE: 'Dekoratiivne', + MISSING: 'Puudu', PAGE_ISSUES: 'Lehekülje probleemid', SETTINGS: 'Seaded', CONTRAST: 'Kontrast', @@ -153,7 +159,7 @@ var et = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Loetavuse hinde arvutamiseks ei ole piisavalt sisu.', HEADING_NON_CONSECUTIVE_LEVEL: 'Kasutatakse mittejärjepideva pealkirja tasandit. Pealkirjad ei tohiks kunagi taset vahele jätta ega minna pealkirjast %(prevLevel) kuni pealkirjast %(level).', HEADING_EMPTY: 'Tühi rubriik leitud! Parandamiseks kustutage see rida või muutke selle vorming pealkiri %(level) normaalseks või paragrahviks.', - HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
                    Märkide arv: %(headingLength)', + HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
                    %(HEADING_LENGTH) Tähemärki', HEADING_FIRST: 'Lehekülje esimene pealkiri peaks tavaliselt olema pealkiri 1 või 2. Pealkiri 1 peaks olema peamise sisuosa algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirjade struktuuri kohta.', HEADING_MISSING_ONE: 'Puudub pealkiri 1. Pealkiri 1 peaks olema peamise sisuala algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirja struktuur.', HEADING_EMPTY_WITH_IMAGE: 'Pealkiri ei sisalda teksti, kuid sisaldab pilti. Kui see ei ole pealkiri, muutke selle formaat pealkiri %(level)-st normaalseks või paragrahviks. Vastasel juhul lisage pildile alt-tekst, kui see ei ole dekoratiivne.', @@ -161,38 +167,38 @@ var et = { PANEL_NO_HEADINGS: 'Pealkirju ei leitud.', LINK_EMPTY: 'Eemaldage tühjad lingid ilma tekstita.', LINK_EMPTY_LABELLEDBY: 'Lingil on väärtus aria-labelledby, mis on tühi või ei ühti lehe teise elemendi atribuudi id väärtusega.', - LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
                    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
                    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
                    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
                    Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.', - LINK_LABEL: 'Linki silt: %(sanitizedText)', - LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(error)
                    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', - LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(error)
                    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
                    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
                    ', - LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
                    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', + LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
                    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
                    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
                    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
                    • Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.
                    ', + LINK_LABEL: 'Linki silt %(TEXT)', + LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(ERROR)
                    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', + LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(ERROR)
                    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
                    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
                    ', + LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
                    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', LINK_DOI: 'Veebilehtede või ainult veebipõhiste ressursside puhul soovitab APA stiilijuhend kasutada kirjeldavaid linke, ümbritsedes teose URL-i või DOI-d selle pealkirja ümber. Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil.', - NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas
                    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', - FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
                    Näide: Juhtkonna aruanne (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
                    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(sanitizedText)', + NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas.
                    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', + FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
                    Näide: Juhtkonna aruanne (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
                    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Pilti kasutatakse lingina koos ümbritseva tekstiga, kuigi alt-atribuut peaks olema märgitud dekoratiivseks või null.', MISSING_ALT_LINK_MESSAGE: 'Pilti kasutatakse lingina, kuid puudub alt-tekst! Palun veenduge, et alt-tekst kirjeldab, kuhu link viib.', MISSING_ALT_MESSAGE: 'Puuduv alt-tekst! Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(error).
                    Alt tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(error)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
                    Alt tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(error).
                    Alt tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(altText)', - ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(error)" võib olla üleliigne.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(ERROR)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(ERROR)" võib olla üleliigne.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lingil on aria-hidden="true", kuid see on ikkagi klaviatuuriga fookuses. Kui kavatsete peita ülearuse või topeltlingi, lisage ka tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linki sees olev pilt on märgitud dekoratiivseks ja lingi tekst puudub. Palun lisage pildile alt-tekst, mis kirjeldab lingi sihtkohta.', LINK_IMAGE_HAS_TEXT: 'Pilt on märgitud dekoratiivseks, kuigi link kasutab ümbritsevat teksti kirjeldava märgisena.', - LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
                    Alt-tekst (%(altLength) tähemärki): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
                    Alt tekst: %(altText)
                    Linki silt: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
                    ALT %(altLength) Tähemärki %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
                    ALT %(ALT_TEXT)
                    Linki silt %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda.
                    Kuigi on esitatud caption, peaks pildil olema enamasti ka alt-tekst.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisaks: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisateave: alt versus figcaption.
                    Alt tekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisateave: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda. Kui pilt edastab lugu, meeleolu või olulist teavet - lisage kindlasti alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
                    Alt tekst (%(altLength) tähemärki): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
                    ALT %(altLength) Tähemärki %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Pildi nupul puudub alt-tekst. Palun lisage alt-tekst, et anda ligipääsetav nimi. Näiteks: Search või Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset-nuppe ei tohiks ei kasutada, kui see pole spetsiaalselt vajalik, sest neid on lihtne kogemata aktiveerida.
                    Nipp! Lugege, miks Reset ja Cancel nupud tekitavad kasutatavusprobleeme.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
                    Sisendmärgis: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
                    Sisendmärgis %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Lisage sildile for atribuut, mis vastab selle sisendi id.
                    Selle sisendi ID on: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Palun lisage sellele sisendile id ja lisage sildile vastav for atribuut.', EMBED_VIDEO: 'Palun veenduge, et kõik millisel videol on kinnised subtiitrid. Kogu heli- ja videosisu puhul on subtiitrite esitamine kohustuslik A-taseme nõue. Üleskirjutused toetavad kurte ja vaegkuuljaid inimesi, kes on kurdid või vaegkuuljad.', @@ -201,26 +207,26 @@ var et = { EMBED_MISSING_TITLE: 'Varjatud sisu vajab juurdepääsetavat nime, mis kirjeldab selle sisu. Andke iframe elemendile tiitle või aria-label atribuut unikaalne tiitle või aria-label. Lisateave iFrame\'i kohta.', EMBED_GENERAL_WARNING: 'Ei saa kontrollida varjatud sisu. Palun veenduge, et piltidel on alt-tekst, videote pealkirjad, tekst on piisavalt kontrastne ja interaktiivsed komponendid on tahvlile juurdepääsetavad..', EMBED_UNFOCUSABLE: '<iframe> koos fookustamata elementidega ei tohiks olla tabindex="-1". Manustatud sisu ei ole klaviatuuriga juurdepääsetav.', - QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
                    See link viitab:
                    %(el)', + QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
                    See link viitab:
                    %(LINK)', QA_IN_PAGE_LINK: 'Katkine samalehekülje link. Lingi sihtmärk ei vasta sellel lehel ühelegi elemendile.', QA_BAD_ITALICS: 'Paks ja kursiivne märgistus on semantilise tähendusega ja neid ei tohiks ei kasutada tervete lõigete esiletõstmiseks. Häälestatud teksti tuleks kasutada selleks, et rõhutada sõna või fraasi tugevalt kõrge. Kursiivkirjas tuleks kasutada pärisnimede (st raamatute ja artiklite pealkirjade), võõrsõnade, jutumärkide esiletõstmiseks. Pikad tsitaadid tuleks vormistada plokktsitaatidena.', - QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
                    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
                    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
                    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', + QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
                    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
                    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
                    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', QA_DOCUMENT: 'Ei saa kontrollida dokumendi juurdepääsetavust. Lingitud dokumente loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. Palun vaadake see dokument käsitsi üle. ', QA_PAGE_LANGUAGE: 'Lehekülje keel ei ole deklareeritud! Palun deklareerige keel HTML-sildil.', QA_PAGE_TITLE: 'Puudub lehekülje pealkiri! Palun sisestage lehe pealkiri..', - QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(sanitizedText)
                    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', - QA_FAKE_HEADING: 'Kas see on pealkiri? %(boldtext)
                    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', - QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
                    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', + QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(TEXT)
                    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', + QA_FAKE_HEADING: 'Kas see on pealkiri? %(TEXT)
                    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', + QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
                    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', QA_UPPERCASE_WARNING: 'Leidsin kõik suurtähed. Mõned ekraanilugejad võivad tõlgendada täistähti akronüümina ja lugeda iga tähte eraldi. Lisaks sellele on mõnedel inimestel raskem lugeda ja see võib jätta mulje, nagu oleks see HÄÄLETUS.', - QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
                    Palun eemaldage või muutke järgmine ID: %(id).', + QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
                    Palun eemaldage või muutke järgmine ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Allakriipsutatud teksti võib segi ajada linkidega. Kaaluge teistsuguse stiili kasutamist, näiteks <strong>tugev tähtsus</strong> või <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'Alam- ja ülaindeksite vormindamise võimalusi tuleks kasutada ainult teksti asukoha muutmiseks tüpograafiliste konventsioonide või standardite alusel. Seda ei tohiks ei kasutada ainult esitlus- või välimuseesmärkidel. Tervete lausete vormindamine tekitab probleeme loetavusega. Asjakohased kasutusjuhud on näiteks eksponentide, ordinaalarvude, näiteks 4th asemel 4, ja keemiliste valemite (nt H2O) kuvamine.', TABLES_MISSING_HEADINGS: 'Puuduvad tabeli päised! Kättesaadavad tabelid vajavad HTML-märgistust, mis tähistab päise- ja andmerakke, mis määratleb nende omavahelise seose. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Tabeleid tuleks kasutada ainult tabeliandmete jaoks.
                    Lisateave juurdepääsetavate tabelite kohta.', TABLES_SEMANTIC_HEADING: 'Semantilisi pealkirju, nagu pealkiri 2 või pealkiri 3, tuleks kasutada ainult sisulõikudes; ei HTML-tabelites. Märkige tabelipealkirjad hoopis elemendi <th> abil.
                    Lisateave juurdepääsetavate tabelite kohta.', TABLES_EMPTY_HEADING: 'Leitud on tühi tabeli päis! Tabeli päised ei tohiks ei tohiks kunagi olla tühjad. Oluline on määrata rea ja/või veeru päised, et anda edasi nende seos. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Pidage meeles, et tabeleid tuleks kasutada ainult tabeliandmete jaoks.
                    Lisateave juurdepääsetavate tabelite kohta.', - CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuse suhe on %(cratio) järgmise teksti puhul: %(sanitizedText)', - CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Palun kontrollige: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuse suhe: %(cratio)', + CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuhe %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Palun kontrollige: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuhe %(RATIO)', }, }; diff --git a/docs/assets/js/lang/et.umd.js b/docs/assets/js/lang/et.umd.js index 9c49da0f..3712f092 100644 --- a/docs/assets/js/lang/et.umd.js +++ b/docs/assets/js/lang/et.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Väljaspool', ALERT_TEXT: 'Hoiatus', ALERT_CLOSE: 'Sulge', - OUTLINE: 'Lehekülje ülevaade', + OUTLINE: 'Ülevaade', + ALT: 'ALT', + IMAGES: 'Pildid', + EDIT: 'Muuda', + IMAGES_NOT_FOUND: 'Pilte ei leitud.', + DECORATIVE: 'Dekoratiivne', + MISSING: 'Puudu', PAGE_ISSUES: 'Lehekülje probleemid', SETTINGS: 'Seaded', CONTRAST: 'Kontrast', @@ -159,7 +165,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Loetavuse hinde arvutamiseks ei ole piisavalt sisu.', HEADING_NON_CONSECUTIVE_LEVEL: 'Kasutatakse mittejärjepideva pealkirja tasandit. Pealkirjad ei tohiks kunagi taset vahele jätta ega minna pealkirjast %(prevLevel) kuni pealkirjast %(level).', HEADING_EMPTY: 'Tühi rubriik leitud! Parandamiseks kustutage see rida või muutke selle vorming pealkiri %(level) normaalseks või paragrahviks.', - HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
                    Märkide arv: %(headingLength)', + HEADING_LONG: 'Pealkiri on pikk! Pealkirju tuleks kasutada sisu korrastamiseks ja struktuuri edastamiseks. Need peaksid olema lühikesed, informatiivsed ja unikaalsed. Palun hoidke pealkirjad alla 160 tähemärgi (mitte rohkem kui üks lause).
                    %(HEADING_LENGTH) Tähemärki', HEADING_FIRST: 'Lehekülje esimene pealkiri peaks tavaliselt olema pealkiri 1 või 2. Pealkiri 1 peaks olema peamise sisuosa algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirjade struktuuri kohta.', HEADING_MISSING_ONE: 'Puudub pealkiri 1. Pealkiri 1 peaks olema peamise sisuala algus ja on peamine pealkiri, mis kirjeldab lehe üldist eesmärki. Lisateave pealkirja struktuur.', HEADING_EMPTY_WITH_IMAGE: 'Pealkiri ei sisalda teksti, kuid sisaldab pilti. Kui see ei ole pealkiri, muutke selle formaat pealkiri %(level)-st normaalseks või paragrahviks. Vastasel juhul lisage pildile alt-tekst, kui see ei ole dekoratiivne.', @@ -167,38 +173,38 @@ PANEL_NO_HEADINGS: 'Pealkirju ei leitud.', LINK_EMPTY: 'Eemaldage tühjad lingid ilma tekstita.', LINK_EMPTY_LABELLEDBY: 'Lingil on väärtus aria-labelledby, mis on tühi või ei ühti lehe teise elemendi atribuudi id väärtusega.', - LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
                    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
                    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
                    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
                    Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.', - LINK_LABEL: 'Linki silt: %(sanitizedText)', - LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(error)
                    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', - LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(error)
                    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
                    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
                    ', - LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
                    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', + LINK_EMPTY_LINK_NO_LABEL: 'Lingil ei ole eristatavat teksti, mis oleks nähtav ekraanilugejatele ja muudele abivahenditele. Parandada:
                    • Lisandage lühike tekst, mis kirjeldab, kuhu link viib.
                    • Kui tegemist on ikoonilink või SVG, puudub tõenäoliselt kirjeldav märgistus.
                    • Kui arvate, et see link on kopeerimis-/liidevigast tingitud viga, kaaluge selle kustutamist.
                    • Kui arvate, et tegemist on kopeerimis-/liidevigast tingitud veaga, kaaluge selle kustutamist.
                    ', + LINK_LABEL: 'Linki silt %(TEXT)', + LINK_STOPWORD: 'Linkide tekst ei pruugi olla piisavalt kirjeldav kontekstiväliselt: %(ERROR)
                    Tipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas. Vältige tavalisi sõnu nagu "kliki siia" või "õpi rohkem"', + LINK_BEST_PRACTICES: 'Kaaluge lingi teksti asendamist: %(ERROR)
                    • "Click here" keskendub hiire mehaanikale, kui paljud inimesed ei kasuta hiirt või võivad vaadata seda veebisaiti mobiilseadmega. Kaaluge teise, ülesandega seotud verbi kasutamist.
                    • Vältige HTML-sümbolite kasutamist üleskutsena, välja arvatud juhul, kui need on abistava tehnoloogia jaoks varjatud.
                    ', + LINK_URL: 'Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil. Enamasti on parem kasutada URL-i asemel inimesele loetavat teksti. Lühikesed URL-aadressid (näiteks saidi koduleht) on okei.
                    Nipp! Linkide tekst peaks alati olema selge, unikaalne ja sisukas, et see oleks kontekstiväliselt arusaadav.', LINK_DOI: 'Veebilehtede või ainult veebipõhiste ressursside puhul soovitab APA stiilijuhend kasutada kirjeldavaid linke, ümbritsedes teose URL-i või DOI-d selle pealkirja ümber. Pikemad, vähem arusaadavad URL-aadressid, mida kasutatakse linkide tekstina, võivad olla raskesti mõistetavad, kui neid kasutatakse abivahendi abil.', - NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas
                    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', - FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
                    Näide: Juhtkonna aruanne (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
                    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(sanitizedText)', + NEW_TAB_WARNING: 'Link avaneb uues vahekaardis või aknas ilma hoiatuseta. See võib olla häiriv, eriti inimestele, kellel on raskusi visuaalse sisu tajumisega. Teiseks ei ole alati hea tava kontrollida kellegi kogemust või teha otsuseid tema eest. Märkige lingi tekstis, et link avaneb uues aknas.
                    Nipp! Õppige ära parimad tavad: Linkide avamine uues brauseriaknas ja vahekaardis.', + FILE_TYPE_WARNING: 'Link viitab ilma hoiatuseta PDF- või allalaaditavale failile (nt MP3, Zip, Word Doc). Märkige faili tüüp lingi tekstis. Kui tegemist on suure failiga, kaaluge faili suuruse lisamist.
                    Näide: Juhtkonna aruanne (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Lingi tekst on identne teise lingiga, kuigi see viitab teisele lehele. Mitu sama tekstiga linki võib tekitada segadust inimestele, kes kasutavad ekraanilugejaid.
                    Võtke arvesse, et järgmine link oleks kirjeldavam, et aidata seda teistest linkidest eristada: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Pilti kasutatakse lingina koos ümbritseva tekstiga, kuigi alt-atribuut peaks olema märgitud dekoratiivseks või null.', MISSING_ALT_LINK_MESSAGE: 'Pilti kasutatakse lingina, kuid puudub alt-tekst! Palun veenduge, et alt-tekst kirjeldab, kuhu link viib.', MISSING_ALT_MESSAGE: 'Puuduv alt-tekst! Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(error).
                    Alt tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(error)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
                    Alt tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(error).
                    Alt tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(altText)', - ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(error)" võib olla üleliigne.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Eemaldage: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Leitud lingitud pildi sees olev mittekirjeldav või paigutatud alt-tekst. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust. Asendage järgmine alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega võib "%(ERROR)" olla üleliigne. Veenduge, et alt-tekst kirjeldab lingi sihtkohta, mitte pildi sõna-sõnalist kirjeldust.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstis olev faililaiend leitud. Kui pilt edastab lugu, meeleolu või olulist teavet - kirjeldage kindlasti pilti. Eemaldage: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Leitud mittekirjeldav või paigutatud alt-tekst. Asendage järgmine alt-tekst millegi sisukamaga: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Abitehnoloogiad näitavad juba, et tegemist on pildiga, seega "%(ERROR)" võib olla üleliigne.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lingil on aria-hidden="true", kuid see on ikkagi klaviatuuriga fookuses. Kui kavatsete peita ülearuse või topeltlingi, lisage ka tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linki sees olev pilt on märgitud dekoratiivseks ja lingi tekst puudub. Palun lisage pildile alt-tekst, mis kirjeldab lingi sihtkohta.', LINK_IMAGE_HAS_TEXT: 'Pilt on märgitud dekoratiivseks, kuigi link kasutab ümbritsevat teksti kirjeldava märgisena.', - LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
                    Alt-tekst (%(altLength) tähemärki): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
                    Alt tekst: %(altText)
                    Linki silt: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Lingitud pildi Alt-teksti kirjeldus on liiga pikk. Lingitud piltide alt-tekst peaks kirjeldama, kuhu link viib, mitte pildi sõna-sõnaline kirjeldus. Võta arvesse, et kasuta alt-tekstina selle lehekülje pealkirja, millele see viitab.
                    ALT %(altLength) Tähemärki %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Pildilink sisaldab alternatiivset teksti. Kas alternatiivne tekst kirjeldab, kuhu link viib? Kaaluge alternatiivse tekstina selle lehekülje pealkirja kasutamist, millele link viitab.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Pildilink sisaldab sellise alt-teksti ja ümbritseva lingi teksti. Kui see pilt on dekoratiivne ja seda kasutatakse funktsionaalse lingina teisele lehele, kaaluge pildi märkimist dekoratiivseks või nullina - ümbritsevast lingi tekstist peaks piisama.
                    ALT %(ALT_TEXT)
                    Linki silt %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda.
                    Kuigi on esitatud caption, peaks pildil olema enamasti ka alt-tekst.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisaks: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisateave: alt versus figcaption.
                    Alt tekst: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ärge kasutage täpselt samu sõnu nii alt- kui ka tiiteltekstis. Ekraanilugejad annavad teavet kaks korda teada.
                    • Alt-tekst peaks andma lühikese kirjelduse selle kohta, mis on pildil.
                    • Tekstis peaks tavaliselt olema kontekst, et seostada pilt ümbritseva sisuga või juhtida tähelepanu konkreetsele teabele.
                    Lisateave: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Pilt on märgitud kui dekoratiivne ja abitehnoloogiad ignoreerivad seda. Kui pilt edastab lugu, meeleolu või olulist teavet - lisage kindlasti alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
                    Alt tekst (%(altLength) tähemärki): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-teksti kirjeldus on liiga pikk. Alt-tekst peaks olema lühike, kuid sisukas nagu tweet (umbes 100 tähemärki). Kui tegemist on keerulise pildi või graafikuga, kaaluge pildi pika kirjelduse paigutamist allolevasse teksti või akordionikomponenti.
                    ALT %(altLength) Tähemärki %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Pildi nupul puudub alt-tekst. Palun lisage alt-tekst, et anda ligipääsetav nimi. Näiteks: Search või Submit.', LABELS_INPUT_RESET_MESSAGE: 'Reset-nuppe ei tohiks ei kasutada, kui see pole spetsiaalselt vajalik, sest neid on lihtne kogemata aktiveerida.
                    Nipp! Lugege, miks Reset ja Cancel nupud tekitavad kasutatavusprobleeme.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
                    Sisendmärgis: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Sisendil on juurdepääsetav nimi, kuigi palun veenduge, et ka silt on nähtav.
                    Sisendmärgis %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Lisage sildile for atribuut, mis vastab selle sisendi id.
                    Selle sisendi ID on: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Selle sisendiga ei ole seotud mingit märgistust. Palun lisage sellele sisendile id ja lisage sildile vastav for atribuut.', EMBED_VIDEO: 'Palun veenduge, et kõik millisel videol on kinnised subtiitrid. Kogu heli- ja videosisu puhul on subtiitrite esitamine kohustuslik A-taseme nõue. Üleskirjutused toetavad kurte ja vaegkuuljaid inimesi, kes on kurdid või vaegkuuljad.', @@ -207,26 +213,26 @@ EMBED_MISSING_TITLE: 'Varjatud sisu vajab juurdepääsetavat nime, mis kirjeldab selle sisu. Andke iframe elemendile tiitle või aria-label atribuut unikaalne tiitle või aria-label. Lisateave iFrame\'i kohta.', EMBED_GENERAL_WARNING: 'Ei saa kontrollida varjatud sisu. Palun veenduge, et piltidel on alt-tekst, videote pealkirjad, tekst on piisavalt kontrastne ja interaktiivsed komponendid on tahvlile juurdepääsetavad..', EMBED_UNFOCUSABLE: '<iframe> koos fookustamata elementidega ei tohiks olla tabindex="-1". Manustatud sisu ei ole klaviatuuriga juurdepääsetav.', - QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
                    See link viitab:
                    %(el)', + QA_BAD_LINK: 'Leitud halb link. Link näib viitavat arenduskeskkonnale.
                    See link viitab:
                    %(LINK)', QA_IN_PAGE_LINK: 'Katkine samalehekülje link. Lingi sihtmärk ei vasta sellel lehel ühelegi elemendile.', QA_BAD_ITALICS: 'Paks ja kursiivne märgistus on semantilise tähendusega ja neid ei tohiks ei kasutada tervete lõigete esiletõstmiseks. Häälestatud teksti tuleks kasutada selleks, et rõhutada sõna või fraasi tugevalt kõrge. Kursiivkirjas tuleks kasutada pärisnimede (st raamatute ja artiklite pealkirjade), võõrsõnade, jutumärkide esiletõstmiseks. Pikad tsitaadid tuleks vormistada plokktsitaatidena.', - QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
                    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
                    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
                    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', + QA_PDF: 'Ei saa kontrollida PDF-failide juurdepääsetavust. PDF-failid loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. PDF-failid sisaldavad sageli probleeme inimeste jaoks, kes kasutavad ekraanilugejaid (puuduvad struktuurilised märgised või vormiväljade märgised) ja inimeste jaoks, kellel on vaegnägemine (tekst ei voola suurendatud kujul tagasi).
                    • Kui tegemist on vormiga, kaaluge alternatiivina ligipääsetava HTML-vormi kasutamist.
                    • Kui tegemist on dokumendiga, kaaluge selle teisendamist veebileheks.
                    Muudel juhtudel kontrollige PDF-i ligipääsetavust Acrobat DC-s..', QA_DOCUMENT: 'Ei saa kontrollida dokumendi juurdepääsetavust. Lingitud dokumente loetakse veebisisuks ja need tuleb samuti juurdepääsetavaks muuta. Palun vaadake see dokument käsitsi üle. ', QA_PAGE_LANGUAGE: 'Lehekülje keel ei ole deklareeritud! Palun deklareerige keel HTML-sildil.', QA_PAGE_TITLE: 'Puudub lehekülje pealkiri! Palun sisestage lehe pealkiri..', - QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(sanitizedText)
                    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', - QA_FAKE_HEADING: 'Kas see on pealkiri? %(boldtext)
                    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', - QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
                    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', + QA_BLOCKQUOTE_MESSAGE: 'Kas see on pealkiri? %(TEXT)
                    Plokkviiteid tuleks kasutada ainult jutumärkide jaoks. Kui see on mõeldud pealkirjaks, muutke see plokktsitaat semantiliseks pealkirjaks (nt pealkiri 2 või pealkiri 3).', + QA_FAKE_HEADING: 'Kas see on pealkiri? %(TEXT)
                    Raske või suur tekstirida võib tunduda pealkirjana, kuid keegi, kes kasutab ekraanilugejat, ei saa aru, et see on oluline või ei saa selle sisu juurde hüpata. Paks või suur tekst ei tohiks kunagi asendada semantilisi pealkirju (rubriik 2 kuni rubriik 6).', + QA_SHOULD_BE_LIST: 'Kas püüate koostada nimekirja? Võimalik nimekiri on leitud: %(firstPrefix)
                    Veenduge, et kasutate semantilisi nimekirju, kasutades selle asemel bullet- või numbrivormingu nuppe. Kui kasutate semantilist loetelu, saavad abivahendid edastada teavet, näiteks elementide koguarvu ja iga elemendi suhtelise positsiooni loetelus. Lisateave semantiliste loetelude kohta.', QA_UPPERCASE_WARNING: 'Leidsin kõik suurtähed. Mõned ekraanilugejad võivad tõlgendada täistähti akronüümina ja lugeda iga tähte eraldi. Lisaks sellele on mõnedel inimestel raskem lugeda ja see võib jätta mulje, nagu oleks see HÄÄLETUS.', - QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
                    Palun eemaldage või muutke järgmine ID: %(id).', + QA_DUPLICATE_ID: 'Leiti korduv ID. Teadaolevalt põhjustavad dubleeritud ID-vead probleeme tugitehnoloogiatele, kui need üritavad sisuga suhelda.
                    Palun eemaldage või muutke järgmine ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Allakriipsutatud teksti võib segi ajada linkidega. Kaaluge teistsuguse stiili kasutamist, näiteks <strong>tugev tähtsus</strong> või <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'Alam- ja ülaindeksite vormindamise võimalusi tuleks kasutada ainult teksti asukoha muutmiseks tüpograafiliste konventsioonide või standardite alusel. Seda ei tohiks ei kasutada ainult esitlus- või välimuseesmärkidel. Tervete lausete vormindamine tekitab probleeme loetavusega. Asjakohased kasutusjuhud on näiteks eksponentide, ordinaalarvude, näiteks 4th asemel 4, ja keemiliste valemite (nt H2O) kuvamine.', TABLES_MISSING_HEADINGS: 'Puuduvad tabeli päised! Kättesaadavad tabelid vajavad HTML-märgistust, mis tähistab päise- ja andmerakke, mis määratleb nende omavahelise seose. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Tabeleid tuleks kasutada ainult tabeliandmete jaoks.
                    Lisateave juurdepääsetavate tabelite kohta.', TABLES_SEMANTIC_HEADING: 'Semantilisi pealkirju, nagu pealkiri 2 või pealkiri 3, tuleks kasutada ainult sisulõikudes; ei HTML-tabelites. Märkige tabelipealkirjad hoopis elemendi <th> abil.
                    Lisateave juurdepääsetavate tabelite kohta.', TABLES_EMPTY_HEADING: 'Leitud on tühi tabeli päis! Tabeli päised ei tohiks ei tohiks kunagi olla tühjad. Oluline on määrata rea ja/või veeru päised, et anda edasi nende seos. See teave annab konteksti inimestele, kes kasutavad abivahendeid. Pidage meeles, et tabeleid tuleks kasutada ainult tabeliandmete jaoks.
                    Lisateave juurdepääsetavate tabelite kohta.', - CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuse suhe on %(cratio) järgmise teksti puhul: %(sanitizedText)', - CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Palun kontrollige: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuse suhe: %(cratio)', + CONTRAST_ERROR: 'See tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuhe %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Selle teksti kontrastsus on teadmata ja see tuleb käsitsi üle vaadata. Veenduge, et teksti ja tausta värvid oleksid tugevalt kontrastsed. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Palun kontrollige: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Selle sisendi tekst ei ole taustaga piisavalt kontrastne. Kontrastsuse suhe peaks olema tavalise teksti puhul vähemalt 4,5:1 ja suure teksti puhul 3:1.
                    Kontrastsuhe %(RATIO)', }, }; diff --git a/docs/assets/js/lang/fi.js b/docs/assets/js/lang/fi.js index c6c59960..fda61d52 100644 --- a/docs/assets/js/lang/fi.js +++ b/docs/assets/js/lang/fi.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var fi = { OFF: 'Pois päältä', ALERT_TEXT: 'Hälytys', ALERT_CLOSE: 'Sulje', - OUTLINE: 'Sivun pääpiirteet', + OUTLINE: 'Sivuluettelo', + ALT: 'ALT', + IMAGES: 'Kuvat', + EDIT: 'Muokkaa', + IMAGES_NOT_FOUND: 'Ei kuvia löytynyt.', + DECORATIVE: 'Koristeellinen', + MISSING: 'Puuttuva', PAGE_ISSUES: 'Sivukysymykset', SETTINGS: 'Asetukset', CONTRAST: 'Kontrasti', @@ -144,46 +150,46 @@ var fi = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ei tarpeeksi sisältöä luettavuuspisteiden laskemiseksi.', HEADING_NON_CONSECUTIVE_LEVEL: 'Käytetään muuta kuin peräkkäistä otsikkotasoa. Otsikot eivät saisi koskaan ohittaa tasoja tai siirtyä otsikko %(prevLevel):stä otsikko %(level):iin.', HEADING_EMPTY: 'Tyhjä otsikko löytyi! Korjaa ongelma poistamalla tämä rivi tai muuttamalla sen muoto otsikko %(level) muotoon Normaali tai Paragraph.', - HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
                    Merkkien määrä: %(headingLength)', - HEADING_FIRST: 'Sivun ensimmäisen otsikon pitäisi yleensä olla otsikko 1 tai otsikko 2. Otsikon 1 pitäisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne.sivuotsikkorakenteesta.', + HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
                    %(HEADING_LENGTH) Merkkiä', + HEADING_FIRST: 'Sivun ensimmäisen otsikon tulisi yleensä olla Otsikko 1 tai Otsikko 2. Otsikon 1 tulisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Otsikon rakenteesta.', HEADING_MISSING_ONE: 'Puuttuva otsikko 1. Otsikon 1 pitäisi olla pääsisältöalueen alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne..', - HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos kyseessä ei ole otsikko, vaihda sen muoto otsikko %(level):sta normaaliksi tai kappaleeksi. Muussa tapauksessa lisää kuvaan alt-teksti, jos se ei ole koristeellinen.', + HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos tämä ei ole otsikko, muuta sen muotoa Otsikko %(level) muotoon Normaali tai Kappale. Muussa tapauksessa, lisää alt-teksti kuvaan, jos se ei ole koristeellinen.', PANEL_HEADING_MISSING_ONE: 'Otsikko 1 puuttuu!', PANEL_NO_HEADINGS: 'Otsikoita ei löytynyt.', LINK_EMPTY: 'Poista tyhjät linkit ilman tekstiä.', LINK_EMPTY_LABELLEDBY: 'Linkillä on arvo aria-labelledby, joka on tyhjä tai ei vastaa toisen sivun elementin id-ominaisuuden arvoa.', LINK_EMPTY_LINK_NO_LABEL: 'Linkissä ei ole erottuvaa tekstiä, joka näkyy ruudunlukijoille ja muille apuvälineille. Korjaus:
                    • Lisää tiivis teksti, joka kuvaa, minne linkki vie.
                    • Jos kyseessä on kuvakkeellinen linkki tai SVG, siitä puuttuu todennäköisesti kuvaava merkintä.
                    • Jos luulet, että linkki on kopiointi/liitä-virheestä johtuva virhe, harkitse sen poistamista.
                    ', - LINK_LABEL: 'Linkki etiketti: %(sanitizedText)', - LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(error)
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', - LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(error)
                    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
                    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
                    ', - LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', + LINK_LABEL: 'Linkki etiketti %(TEXT)', + LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(ERROR)
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', + LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(ERROR)
                    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
                    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
                    ', + LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', LINK_DOI: 'Verkkosivujen tai vain verkossa olevien resurssien osalta APA:n tyyliopas suosittelee kuvailevien linkkien käyttämistä kietomalla teoksen URL-osoite tai DOI-osoite sen otsikon ympärille. Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä.', NEW_TAB_WARNING: 'Linkki avautuu uuteen välilehteen tai ikkunaan ilman varoitusta. Tämä voi olla hämmentävää erityisesti henkilöille, joilla on vaikeuksia visuaalisen sisällön hahmottamisessa. Toiseksi, ei ole aina hyvä käytäntö hallita toisen kokemusta tai tehdä päätöksiä hänen puolestaan. Ilmoita linkkitekstissä, että linkki avautuu uuteen ikkunaan
                    Vinkki! Opi parhaat käytännöt: Linkkien avaaminen uusissa selainikkunoissa ja välilehdissä.', - FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
                    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
                    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(sanitizedText)', + FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
                    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
                    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Kuvaa käytetään linkkinä ympäröivän tekstin kanssa, vaikka alt-attribuutti pitäisi merkitä koristeelliseksi tai nollaksi.', MISSING_ALT_LINK_MESSAGE: 'Kuvaa käytetään linkkinä, mutta siitä puuttuu alt-teksti! Varmista, että alt-teksti kuvaa, minne linkki vie.', MISSING_ALT_MESSAGE: 'Puuttuva alt-teksti! Jos kuva välittää tarinan, tunnelman tai tärkeää tietoa - muista kuvata kuva.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(altText)', - ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linkillä on aria-hidden="true", mutta se on edelleen näppäimistöllä valittavissa. Jos aiot piilottaa tarpeettoman tai kaksoiskappaleen linkin, lisää myös tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linkissä oleva kuva on merkitty koristeeksi, eikä linkkitekstiä ole. Lisää kuvaan alt-teksti, joka kuvaa linkin kohdetta.', LINK_IMAGE_HAS_TEXT: 'Kuva on merkitty koristeelliseksi, vaikka linkki käyttää ympäröivää tekstiä kuvaavana merkintänä.', - LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
                    Alt-teksti (%(altLength) merkkiä): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
                    Alt text: %(altText)
                    Linkki etiketti: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
                    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
                    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lisää lisää: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
                    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lue lisää: alt versus figcaption.
                    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
                    ALT %(altLength) Merkkiä %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
                    ALT %(ALT_TEXT)
                    Linkki etiketti %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
                    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
                    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lisää lisää: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
                    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lue lisää: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta. Jos kuva välittää tarinaa, tunnelmaa tai tärkeää tietoa - muista lisätä alt-teksti.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
                    Alt-teksti (%(altLength) merkkiä): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
                    ALT %(altLength) Merkkiä %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Kuvapainikkeesta puuttuu alt-teksti. Lisää alt-tekstiä, jotta nimi on helposti saatavilla. Esimerkiksi: Haku tai Lähetä.', LABELS_INPUT_RESET_MESSAGE: 'Nollauspainikkeita ei tulisi käyttää, ellei niitä erityisesti tarvita, koska ne on helppo aktivoida vahingossa.
                    Vinkki! Lue, miksi Reset- ja Cancel-painikkeet aiheuttavat käytettävyysongelmia.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
                    Syötelabeli: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
                    Syötelabeli %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää for-attribuutti labeliin, joka vastaa tämän syötteen id:tä.
                    Tämän syötteen tunnus on: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää tälle syötteelle id ja lisää labeliin vastaava for-attribuutti.', EMBED_VIDEO: 'Varmista, että kaikissa videoissa on kuvatekstit. Kaiken ääni- ja videosisällön tekstittäminen on pakollinen A-tason vaatimus. Kuvatekstit tukevat kuuroja ja huonokuuloisia.', @@ -192,26 +198,26 @@ var fi = { EMBED_MISSING_TITLE: 'Sulautettu sisältö edellyttää sen sisältöä kuvaavaa nimeä. Anna iframe-elementille yksilöllinen title- tai aria-label-attribuutti. Lisätietoja iFrameista.', EMBED_GENERAL_WARNING: 'Upotetun sisällön tarkistaminen ei onnistu. Varmista, että kuvissa on alt-teksti, videoissa on kuvateksti, tekstissä on riittävä kontrasti ja vuorovaikutteiset komponentit ovat näppäimistöllä käytettävissä..', EMBED_UNFOCUSABLE: '<iframe> jossa ei ole fokusointikelpoisia elementtejä, ei pitäisi olla tabindex="-1". Upotettu sisältö ei ole näppäimistöllä saavutettavissa.', - QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
                    Tämä linkki osoittaa:
                    %(el)', + QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
                    Tämä linkki osoittaa:
                    %(LINK)', QA_IN_PAGE_LINK: 'Rikkinäinen samalla sivulla oleva linkki. Linkin kohde ei vastaa mitään tämän sivun elementtiä.', QA_BAD_ITALICS: 'Lihavointi- ja kursivointitunnisteilla on semanttinen merkitys, eikä niitä tulisi ei käyttää kokonaisten kappaleiden korostamiseen. Lihavoitua tekstiä tulisi käyttää sanan tai lauseen voimakkaaseen korostamiseen. Kursivointia tulisi käyttää oikeiden nimien (esim. kirjan ja artikkelin otsikot), vierasperäisten sanojen ja lainausmerkkien korostamiseen. Pitkät lainaukset olisi muotoiltava blokkilainauksiksi.', QA_PDF: 'PDF-tiedostojen saavutettavuuden tarkistaminen ei onnistu. PDF-tiedostoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. PDF-tiedostoissa on usein ongelmia ruudunlukuohjelmia käyttäville henkilöille (puuttuvat rakennetunnisteet tai lomakekenttien merkinnät) ja heikkonäköisille (teksti ei virtaa uudelleen, kun sitä suurennetaan).
                    • Jos kyseessä on lomake, harkitse esteettömän HTML-lomakkeen käyttämistä vaihtoehtona.
                    • Jos kyseessä on asiakirja, harkitse sen muuntamista verkkosivuksi.
                    Muussa tapauksessa tarkista PDF:n esteettömyys Acrobat DC:ssä.', - QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', + QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', QA_PAGE_LANGUAGE: 'Sivun kieltä ei ole ilmoitettu! Ole hyvä ja ilmoita kieli HTML-tagissa.', QA_PAGE_TITLE: 'Sivun otsikko puuttuu! Anna sivun otsikko..', - QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(sanitizedText)
                    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', - QA_FAKE_HEADING: 'Onko tämä otsikko? %(boldtext)
                    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', - QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
                    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', + QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(TEXT)
                    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', + QA_FAKE_HEADING: 'Onko tämä otsikko? %(TEXT)
                    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', + QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
                    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', QA_UPPERCASE_WARNING: 'Löytyi kaikki suuraakkoset. Jotkin ruudunlukuohjelmat saattavat tulkita isokirjaimellisen tekstin lyhenteeksi ja lukea jokaisen kirjaimen erikseen. Lisäksi joidenkin ihmisten mielestä isokirjaimet ovat vaikeampia lukea, ja ne voivat antaa vaikutelman huutamisesta.', - QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
                    Poista tai vaihda seuraava ID: %(id).', + QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
                    Poista tai vaihda seuraava ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Alleviivattu teksti voidaan sekoittaa linkkeihin. Harkitse eri tyylin, kuten <strong>strong importance</strong> tai <em>emphasis</em> käyttöä.', QA_SUBSCRIPT_WARNING: 'Ala- ja yläindeksin muotoiluvaihtoehtoja tulisi käyttää vain tekstin sijainnin muuttamiseen typografisten konventioiden tai standardien vuoksi. Niitä ei pitäisi käyttää pelkästään esitystarkoituksiin tai ulkoasuun. Kokonaisten lauseiden muotoilu aiheuttaa luettavuusongelmia. Sopivia käyttötapauksia olisivat esimerkiksi eksponenttien, järjestyslukujen, kuten 4th neljännen sijasta, ja kemiallisten kaavojen (esim. H2O) näyttäminen.', TABLES_MISSING_HEADINGS: 'Puuttuvat taulukkootsikot! Esteettömät taulukot tarvitsevat HTML-merkintää, joka osoittaa otsikkosolut ja datasolut, jotka määrittelevät niiden välisen suhteen. Tämä tieto antaa kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Taulukoita tulisi käyttää vain taulukkomuotoiseen tietoon.
                    Lisätietoja saavutettavista taulukoista..', TABLES_SEMANTIC_HEADING: 'Semanttisia otsikoita, kuten Heading 2 tai Heading 3, tulisi käyttää vain sisällön osioissa; ei HTML-taulukoissa. Ilmoita taulukkootsikot sen sijaan <th>-elementillä.
                    Lisätietoja saavutettavista taulukoista.', TABLES_EMPTY_HEADING: 'Tyhjä taulukkootsikko löytyi! Taulukkootsikoiden ei pitäisi ei koskaan olla tyhjiä. On tärkeää nimetä rivi- ja/tai sarakeotsikot, jotta niiden välinen suhde välittyy. Nämä tiedot tarjoavat kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Muista, että taulukoita tulisi käyttää vain taulukkomuotoisiin tietoihin.
                    Lisätietoja saavutettavista taulukoista.', - CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde on %(cratio) seuraavalle tekstille: %(sanitizedText).', - CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
                    Tarkista: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde: %(cratio)', + CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
                    Tarkista: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde %(RATIO)', }, }; diff --git a/docs/assets/js/lang/fi.umd.js b/docs/assets/js/lang/fi.umd.js index 72545abc..d1da5983 100644 --- a/docs/assets/js/lang/fi.umd.js +++ b/docs/assets/js/lang/fi.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Pois päältä', ALERT_TEXT: 'Hälytys', ALERT_CLOSE: 'Sulje', - OUTLINE: 'Sivun pääpiirteet', + OUTLINE: 'Sivuluettelo', + ALT: 'ALT', + IMAGES: 'Kuvat', + EDIT: 'Muokkaa', + IMAGES_NOT_FOUND: 'Ei kuvia löytynyt.', + DECORATIVE: 'Koristeellinen', + MISSING: 'Puuttuva', PAGE_ISSUES: 'Sivukysymykset', SETTINGS: 'Asetukset', CONTRAST: 'Kontrasti', @@ -150,46 +156,46 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ei tarpeeksi sisältöä luettavuuspisteiden laskemiseksi.', HEADING_NON_CONSECUTIVE_LEVEL: 'Käytetään muuta kuin peräkkäistä otsikkotasoa. Otsikot eivät saisi koskaan ohittaa tasoja tai siirtyä otsikko %(prevLevel):stä otsikko %(level):iin.', HEADING_EMPTY: 'Tyhjä otsikko löytyi! Korjaa ongelma poistamalla tämä rivi tai muuttamalla sen muoto otsikko %(level) muotoon Normaali tai Paragraph.', - HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
                    Merkkien määrä: %(headingLength)', - HEADING_FIRST: 'Sivun ensimmäisen otsikon pitäisi yleensä olla otsikko 1 tai otsikko 2. Otsikon 1 pitäisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne.sivuotsikkorakenteesta.', + HEADING_LONG: 'Otsikko on pitkä! Otsikoita tulisi käyttää sisällön järjestämiseen ja rakenteen välittämiseen. Niiden tulisi olla lyhyitä, informatiivisia ja ainutlaatuisia. Pidä otsikot alle 160 merkin pituisina (enintään lause).
                    %(HEADING_LENGTH) Merkkiä', + HEADING_FIRST: 'Sivun ensimmäisen otsikon tulisi yleensä olla Otsikko 1 tai Otsikko 2. Otsikon 1 tulisi olla pääsisältöosion alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Otsikon rakenteesta.', HEADING_MISSING_ONE: 'Puuttuva otsikko 1. Otsikon 1 pitäisi olla pääsisältöalueen alku, ja se on pääotsikko, joka kuvaa sivun yleistä tarkoitusta. Lue lisää Ohjeiden rakenne..', - HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos kyseessä ei ole otsikko, vaihda sen muoto otsikko %(level):sta normaaliksi tai kappaleeksi. Muussa tapauksessa lisää kuvaan alt-teksti, jos se ei ole koristeellinen.', + HEADING_EMPTY_WITH_IMAGE: 'Otsikossa ei ole tekstiä, mutta se sisältää kuvan. Jos tämä ei ole otsikko, muuta sen muotoa Otsikko %(level) muotoon Normaali tai Kappale. Muussa tapauksessa, lisää alt-teksti kuvaan, jos se ei ole koristeellinen.', PANEL_HEADING_MISSING_ONE: 'Otsikko 1 puuttuu!', PANEL_NO_HEADINGS: 'Otsikoita ei löytynyt.', LINK_EMPTY: 'Poista tyhjät linkit ilman tekstiä.', LINK_EMPTY_LABELLEDBY: 'Linkillä on arvo aria-labelledby, joka on tyhjä tai ei vastaa toisen sivun elementin id-ominaisuuden arvoa.', LINK_EMPTY_LINK_NO_LABEL: 'Linkissä ei ole erottuvaa tekstiä, joka näkyy ruudunlukijoille ja muille apuvälineille. Korjaus:
                    • Lisää tiivis teksti, joka kuvaa, minne linkki vie.
                    • Jos kyseessä on kuvakkeellinen linkki tai SVG, siitä puuttuu todennäköisesti kuvaava merkintä.
                    • Jos luulet, että linkki on kopiointi/liitä-virheestä johtuva virhe, harkitse sen poistamista.
                    ', - LINK_LABEL: 'Linkki etiketti: %(sanitizedText)', - LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(error)
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', - LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(error)
                    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
                    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
                    ', - LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', + LINK_LABEL: 'Linkki etiketti %(TEXT)', + LINK_STOPWORD: 'Linkkiteksti ei ehkä ole riittävän kuvaava asiayhteydestään: %(ERROR)
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen. Vältä yleisiä sanoja, kuten "klikkaa tästä" tai "opi lisää";', + LINK_BEST_PRACTICES: 'Harkitse linkkitekstin korvaamista: %(ERROR)
                    • "Klikkaa tästä" painottaa hiiren mekaniikkaa, vaikka monet ihmiset eivät käytä hiirtä tai saattavat tarkastella verkkosivustoa mobiililaitteella. Harkitse eri verbin käyttöä, joka liittyy tehtävään.
                    • Vältä HTML-symbolien käyttöä toimintakutsuina, elleivät ne ole piilossa avustavia teknologioita varten.
                    ', + LINK_URL: 'Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä. Useimmissa tapauksissa on parempi käyttää URL-osoitteen sijasta ihmisen luettavissa olevaa tekstiä. Lyhyet URL-osoitteet (kuten sivuston etusivu) ovat ok.
                    Vinkki! Linkkitekstin tulisi aina olla selkeä, yksilöllinen ja merkityksellinen, jotta se voitaisiin ymmärtää asiayhteydestä irrotettuna.', LINK_DOI: 'Verkkosivujen tai vain verkossa olevien resurssien osalta APA:n tyyliopas suosittelee kuvailevien linkkien käyttämistä kietomalla teoksen URL-osoite tai DOI-osoite sen otsikon ympärille. Linkkitekstinä käytetyt pidemmät, vaikeaselkoiset URL-osoitteet saattavat olla vaikeasti ymmärrettäviä, kun niitä käytetään apuvälineillä.', NEW_TAB_WARNING: 'Linkki avautuu uuteen välilehteen tai ikkunaan ilman varoitusta. Tämä voi olla hämmentävää erityisesti henkilöille, joilla on vaikeuksia visuaalisen sisällön hahmottamisessa. Toiseksi, ei ole aina hyvä käytäntö hallita toisen kokemusta tai tehdä päätöksiä hänen puolestaan. Ilmoita linkkitekstissä, että linkki avautuu uuteen ikkunaan
                    Vinkki! Opi parhaat käytännöt: Linkkien avaaminen uusissa selainikkunoissa ja välilehdissä.', - FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
                    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
                    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(sanitizedText)', + FILE_TYPE_WARNING: 'Linkki osoittaa PDF-tiedostoon tai ladattavaan tiedostoon (esim. MP3, Zip, Word Doc) ilman varoitusta. Ilmoita tiedostotyyppi linkkitekstissä. Jos kyseessä on suuri tiedosto, harkitse tiedoston koon ilmoittamista.
                    Esimerkki: Toimitusjohtajan raportti (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkillä on sama teksti kuin toisella linkillä, vaikka se osoittaa eri sivulle. Useat linkit, joissa on sama teksti, voivat aiheuttaa sekaannusta ruudunlukuohjelmia käyttäville henkilöille.
                    Harkitse seuraavan linkin tekemistä kuvaavammaksi, jotta se erottuu paremmin muista linkeistä: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Kuvaa käytetään linkkinä ympäröivän tekstin kanssa, vaikka alt-attribuutti pitäisi merkitä koristeelliseksi tai nollaksi.', MISSING_ALT_LINK_MESSAGE: 'Kuvaa käytetään linkkinä, mutta siitä puuttuu alt-teksti! Varmista, että alt-teksti kuvaa, minne linkki vie.', MISSING_ALT_MESSAGE: 'Puuttuva alt-teksti! Jos kuva välittää tarinan, tunnelman tai tärkeää tietoa - muista kuvata kuva.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(altText)', - ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(error)" voi olla tarpeeton.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Poista: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Linkitetyn kuvan sisältämä ei-kuvaava tai sijoitettu alt-teksti löydetty. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta. Korvaa seuraava alt-teksti: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton. Varmista, että alt-teksti kuvaa linkin määränpäätä, ei kuvan kirjaimellista kuvausta.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Alt-tekstissä oleva tiedostopääte löydetty. Jos kuva välittää tarinan, tunnelman tai tärkeän tiedon - muista kuvata kuva. Poista: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ei-kuvaava tai paikannettu alt-teksti löydetty. Korvaa seuraava alt-teksti jollain merkityksellisemmällä: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Avustavat teknologiat osoittavat jo, että kyseessä on kuva, joten "%(ERROR)" voi olla tarpeeton.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Linkillä on aria-hidden="true", mutta se on edelleen näppäimistöllä valittavissa. Jos aiot piilottaa tarpeettoman tai kaksoiskappaleen linkin, lisää myös tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Linkissä oleva kuva on merkitty koristeeksi, eikä linkkitekstiä ole. Lisää kuvaan alt-teksti, joka kuvaa linkin kohdetta.', LINK_IMAGE_HAS_TEXT: 'Kuva on merkitty koristeelliseksi, vaikka linkki käyttää ympäröivää tekstiä kuvaavana merkintänä.', - LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
                    Alt-teksti (%(altLength) merkkiä): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
                    Alt text: %(altText)
                    Linkki etiketti: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
                    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
                    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lisää lisää: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
                    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lue lisää: alt versus figcaption.
                    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Linkitetyn kuvan Alt-tekstin kuvaus on liian pitkä. Linkitettyjen kuvien alt-tekstin tulisi kuvata, minne linkki vie, ei kirjaimellista kuvausta kuvasta. Harkitse sen sivun otsikon käyttämistä alt-tekstinä, johon linkki johtaa.
                    ALT %(altLength) Merkkiä %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Kuvalinkki sisältää alt-tekstin. Kuvaako alt-teksti, minne linkki vie? Harkitse linkin sisältämän sivun otsikon käyttämistä alt-tekstinä.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Kuvalinkki sisältää sekä alt-tekstin että ympäröivän linkkitekstin. Jos kuva on koristeellinen ja sitä käytetään toiminnallisena linkkinä toiselle sivulle, harkitse kuvan merkitsemistä koristeelliseksi tai nollaksi - ympäröivän linkkitekstin pitäisi riittää.
                    ALT %(ALT_TEXT)
                    Linkki etiketti %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta.
                    Vaikka kuvateksti on annettu, kuvassa pitäisi useimmissa tapauksissa olla myös alt-teksti.
                    • Alttitekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan takaisin ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lisää lisää: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Älä käytä täsmälleen samoja sanoja sekä alt- että kuvatekstissä. Ruudunlukuohjelmat ilmoittavat tiedon kahdesti.
                    • Alt-tekstin tulisi antaa tiivis kuvaus siitä, mitä kuvassa on.
                    • Tekstikuvan kuvatekstin tulisi yleensä tarjota konteksti, joka liittää kuvan ympäröivään sisältöön, tai kiinnittää huomiota tiettyyn tietoon.
                    Lue lisää: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Kuva on merkitty koristeelliseksi ja avustava teknologia jättää sen huomiotta. Jos kuva välittää tarinaa, tunnelmaa tai tärkeää tietoa - muista lisätä alt-teksti.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
                    Alt-teksti (%(altLength) merkkiä): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstin kuvaus on liian pitkä. Alt-tekstin tulisi olla tiivis, mutta merkityksellinen kuten tweet (noin 100 merkkiä). Jos kyseessä on monimutkainen kuva tai graafi, harkitse kuvan pitkän kuvauksen sijoittamista alla olevaan tekstiin tai harmonikkaosaan.
                    ALT %(altLength) Merkkiä %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Kuvapainikkeesta puuttuu alt-teksti. Lisää alt-tekstiä, jotta nimi on helposti saatavilla. Esimerkiksi: Haku tai Lähetä.', LABELS_INPUT_RESET_MESSAGE: 'Nollauspainikkeita ei tulisi käyttää, ellei niitä erityisesti tarvita, koska ne on helppo aktivoida vahingossa.
                    Vinkki! Lue, miksi Reset- ja Cancel-painikkeet aiheuttavat käytettävyysongelmia.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
                    Syötelabeli: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Syötteellä on helppokäyttöinen nimi, mutta varmista, että myös merkintä on näkyvissä.
                    Syötelabeli %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää for-attribuutti labeliin, joka vastaa tämän syötteen id:tä.
                    Tämän syötteen tunnus on: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Tähän syötteeseen ei liity nimikettä. Lisää tälle syötteelle id ja lisää labeliin vastaava for-attribuutti.', EMBED_VIDEO: 'Varmista, että kaikissa videoissa on kuvatekstit. Kaiken ääni- ja videosisällön tekstittäminen on pakollinen A-tason vaatimus. Kuvatekstit tukevat kuuroja ja huonokuuloisia.', @@ -198,26 +204,26 @@ EMBED_MISSING_TITLE: 'Sulautettu sisältö edellyttää sen sisältöä kuvaavaa nimeä. Anna iframe-elementille yksilöllinen title- tai aria-label-attribuutti. Lisätietoja iFrameista.', EMBED_GENERAL_WARNING: 'Upotetun sisällön tarkistaminen ei onnistu. Varmista, että kuvissa on alt-teksti, videoissa on kuvateksti, tekstissä on riittävä kontrasti ja vuorovaikutteiset komponentit ovat näppäimistöllä käytettävissä..', EMBED_UNFOCUSABLE: '<iframe> jossa ei ole fokusointikelpoisia elementtejä, ei pitäisi olla tabindex="-1". Upotettu sisältö ei ole näppäimistöllä saavutettavissa.', - QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
                    Tämä linkki osoittaa:
                    %(el)', + QA_BAD_LINK: 'Huono linkki löytyi. Linkki näyttää osoittavan kehitysympäristöön.
                    Tämä linkki osoittaa:
                    %(LINK)', QA_IN_PAGE_LINK: 'Rikkinäinen samalla sivulla oleva linkki. Linkin kohde ei vastaa mitään tämän sivun elementtiä.', QA_BAD_ITALICS: 'Lihavointi- ja kursivointitunnisteilla on semanttinen merkitys, eikä niitä tulisi ei käyttää kokonaisten kappaleiden korostamiseen. Lihavoitua tekstiä tulisi käyttää sanan tai lauseen voimakkaaseen korostamiseen. Kursivointia tulisi käyttää oikeiden nimien (esim. kirjan ja artikkelin otsikot), vierasperäisten sanojen ja lainausmerkkien korostamiseen. Pitkät lainaukset olisi muotoiltava blokkilainauksiksi.', QA_PDF: 'PDF-tiedostojen saavutettavuuden tarkistaminen ei onnistu. PDF-tiedostoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. PDF-tiedostoissa on usein ongelmia ruudunlukuohjelmia käyttäville henkilöille (puuttuvat rakennetunnisteet tai lomakekenttien merkinnät) ja heikkonäköisille (teksti ei virtaa uudelleen, kun sitä suurennetaan).
                    • Jos kyseessä on lomake, harkitse esteettömän HTML-lomakkeen käyttämistä vaihtoehtona.
                    • Jos kyseessä on asiakirja, harkitse sen muuntamista verkkosivuksi.
                    Muussa tapauksessa tarkista PDF:n esteettömyys Acrobat DC:ssä.', - QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', + QA_DOCUMENT: 'Asiakirjan saavutettavuuden tarkistaminen ei onnistu. Linkitettyjä asiakirjoja pidetään verkkosisältönä, ja ne on myös saatettava saavutettaviksi. Tarkista asiakirja manuaalisesti. ', QA_PAGE_LANGUAGE: 'Sivun kieltä ei ole ilmoitettu! Ole hyvä ja ilmoita kieli HTML-tagissa.', QA_PAGE_TITLE: 'Sivun otsikko puuttuu! Anna sivun otsikko..', - QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(sanitizedText)
                    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', - QA_FAKE_HEADING: 'Onko tämä otsikko? %(boldtext)
                    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', - QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
                    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', + QA_BLOCKQUOTE_MESSAGE: 'Onko tämä otsikko? %(TEXT)
                    Lainausmerkkejä tulisi käyttää vain lainausmerkeissä. Jos tämän on tarkoitus olla otsikko, vaihda tämä blockquote semanttiseen otsikkoon (esim. otsikko 2 tai otsikko 3).', + QA_FAKE_HEADING: 'Onko tämä otsikko? %(TEXT)
                    Lihavoitu tai suuri tekstirivi saattaa näyttää otsikolta, mutta ruudunlukuohjelmaa käyttävä ei voi todeta sitä tärkeäksi tai siirtyä sen sisältöön. Lihavoidun tai ison tekstin ei pitäisi koskaan korvata semanttisia otsikoita (otsikot 2-6).', + QA_SHOULD_BE_LIST: 'Yritätkö luoda luettelon? Mahdollinen luettelokohde löytyi: %(firstPrefix)
                    Varmista, että käytät semanttisia luetteloita käyttämällä sen sijaan luettelopainikkeita tai numeromuotoilupainikkeita. Kun käytät semanttista luetteloa, avustavat teknologiat pystyvät välittämään tietoja, kuten kohteiden kokonaismäärän ja kunkin kohteen suhteellisen sijainnin luettelossa. Lisätietoja semanttisista luetteloista..', QA_UPPERCASE_WARNING: 'Löytyi kaikki suuraakkoset. Jotkin ruudunlukuohjelmat saattavat tulkita isokirjaimellisen tekstin lyhenteeksi ja lukea jokaisen kirjaimen erikseen. Lisäksi joidenkin ihmisten mielestä isokirjaimet ovat vaikeampia lukea, ja ne voivat antaa vaikutelman huutamisesta.', - QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
                    Poista tai vaihda seuraava ID: %(id).', + QA_DUPLICATE_ID: 'Löytyi kaksoistunniste. Kaksoistunnusvirheiden tiedetään aiheuttavan ongelmia avustaville teknologioille, kun ne yrittävät toimia vuorovaikutuksessa sisällön kanssa.
                    Poista tai vaihda seuraava ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Alleviivattu teksti voidaan sekoittaa linkkeihin. Harkitse eri tyylin, kuten <strong>strong importance</strong> tai <em>emphasis</em> käyttöä.', QA_SUBSCRIPT_WARNING: 'Ala- ja yläindeksin muotoiluvaihtoehtoja tulisi käyttää vain tekstin sijainnin muuttamiseen typografisten konventioiden tai standardien vuoksi. Niitä ei pitäisi käyttää pelkästään esitystarkoituksiin tai ulkoasuun. Kokonaisten lauseiden muotoilu aiheuttaa luettavuusongelmia. Sopivia käyttötapauksia olisivat esimerkiksi eksponenttien, järjestyslukujen, kuten 4th neljännen sijasta, ja kemiallisten kaavojen (esim. H2O) näyttäminen.', TABLES_MISSING_HEADINGS: 'Puuttuvat taulukkootsikot! Esteettömät taulukot tarvitsevat HTML-merkintää, joka osoittaa otsikkosolut ja datasolut, jotka määrittelevät niiden välisen suhteen. Tämä tieto antaa kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Taulukoita tulisi käyttää vain taulukkomuotoiseen tietoon.
                    Lisätietoja saavutettavista taulukoista..', TABLES_SEMANTIC_HEADING: 'Semanttisia otsikoita, kuten Heading 2 tai Heading 3, tulisi käyttää vain sisällön osioissa; ei HTML-taulukoissa. Ilmoita taulukkootsikot sen sijaan <th>-elementillä.
                    Lisätietoja saavutettavista taulukoista.', TABLES_EMPTY_HEADING: 'Tyhjä taulukkootsikko löytyi! Taulukkootsikoiden ei pitäisi ei koskaan olla tyhjiä. On tärkeää nimetä rivi- ja/tai sarakeotsikot, jotta niiden välinen suhde välittyy. Nämä tiedot tarjoavat kontekstin ihmisille, jotka käyttävät apuvälineteknologiaa. Muista, että taulukoita tulisi käyttää vain taulukkomuotoisiin tietoihin.
                    Lisätietoja saavutettavista taulukoista.', - CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde on %(cratio) seuraavalle tekstille: %(sanitizedText).', - CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
                    Tarkista: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde: %(cratio)', + CONTRAST_ERROR: 'Tässä tekstissä ei ole riittävästi kontrastia taustaan nähden. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Tämän tekstin kontrasti on tuntematon, ja se on tarkistettava manuaalisesti. Varmista, että tekstin ja taustan värit ovat voimakkaan kontrastiset. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalissa tekstissä ja 3:1 suuressa tekstissä.
                    Tarkista: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekstin kontrasti taustaan nähden ei ole riittävä. Kontrastisuhteen tulisi olla vähintään 4,5:1 normaalille tekstille ja 3:1 suurelle tekstille.
                    Kontrastisuhde %(RATIO)', }, }; diff --git a/docs/assets/js/lang/fr.js b/docs/assets/js/lang/fr.js index 70d4af75..1205015f 100644 --- a/docs/assets/js/lang/fr.js +++ b/docs/assets/js/lang/fr.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var fr = { OFF: 'Éteindre', ALERT_TEXT: 'Alerte', ALERT_CLOSE: 'Fermer', - OUTLINE: 'Page du schéma', + OUTLINE: 'Schéma', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Modifier', + IMAGES_NOT_FOUND: 'Aucune image trouvée.', + DECORATIVE: 'Décoratif', + MISSING: 'Manquant', PAGE_ISSUES: 'Problèmes de pages', SETTINGS: 'Paramètres', CONTRAST: 'Contraste', @@ -127,7 +133,7 @@ var fr = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Utilisation d’un niveau d’en-tête non consécutif. Les en-têtes ne doivent jamais sauter de niveaux ou aller de L’en-tête %(prevLevel) à L’en-tête %(level).', HEADING_EMPTY: 'En-tête vide trouvé! Pour résoudre, supprimer cette ligne ou changer le format de L’en-tête %(level) à Normal ou Paragraphe.', - HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
                    Nombre de caractère(s): %(headingLength)', + HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
                    %(HEADING_LENGTH) Caractères', HEADING_FIRST: 'Le premier en-tête sur la page doit être habituellement En-tête 1 ou En-tête 2. L’en-tête 1 doit débuter dans la section principale du contenu, car il s\'agit de l’en-tête prin-cipal qui décrit l\'objectif général de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_MISSING_ONE: 'En-tête 1 manquant. L’en-tête 1 doit débuter dans la zone principale de contenu, il est l’en-tête principal qui décrit l’objectif global de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_EMPTY_WITH_IMAGE: 'L’en-tête ne contient pas de texte, mais seulement une image. Si ce n’est pas un en-tête, veuillez changer son format pour L’en-tête %(level) à Normal ou Paragraphe. Sinon, veuillez ajouter du texte de remplacement à l’image si elle n’est pas décorative.', @@ -138,79 +144,79 @@ var fr = { LINK_EMPTY: 'Retirer les liens vides sans texte.', LINK_EMPTY_LABELLEDBY: 'Le lien a une valeur pour aria-labelledby qui est vide ou ne correspond pas à la valeur de l\'attributid d\'un autre élément de la page.', LINK_EMPTY_LINK_NO_LABEL: 'Le lien ne comporte pas de texte perceptible par les lecteurs d\'écran ou autres techno-logies d\'assistance. À corriger:
                    • Ajoutez un texte bref qui décrit où le lien vous mène.
                    • S’il s’agit d’un lien d’icône SVG (vectoriel), il manque alors une description.
                    • Si ce lien est une erreur due à un bogue de copier/coller, tentez de supprimer.
                    ', - LINK_LABEL: 'Lien de l’étiquette: %(sanitizedText)', - LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(error)
                    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', - LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(error)
                    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
                    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
                    ', - LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
                    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', + LINK_LABEL: 'Lien de l’étiquette %(TEXT)', + LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(ERROR)
                    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', + LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(ERROR)
                    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
                    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
                    ', + LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
                    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', LINK_DOI: 'Pour les pages web ou les ressources en ligne uniquement, le guide de style de l\'APA recommande d\'utiliser des liens descriptifs en entourant l\'URL ou le DOI de l\'œuvre autour de son titre. Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance.', // Links advanced - NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
                    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', - FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
                    Exemple: Rapport de synthèse (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
                    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(sanitizedText)', + NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
                    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', + FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
                    Exemple: Rapport de synthèse (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
                    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'L’image est utilisé en tant que lien avec un texte autour, alors que l’attribut de rem-placement doit être signalé comme décoratif ou nul.', MISSING_ALT_LINK_MESSAGE: 'L’image est utilisée en tant que lien mais manque de texte de remplacement! Veuillez vous assurer que le texte de remplacement décrit où le lien vous mène.', MISSING_ALT_MESSAGE: 'Texte de remplacement manquant! Si l’image transmet un message, une émotion ou des informations importantes - assurez-vous d’ajouter une description de l’image.', - LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(error).
                    Texte de remplacement: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(error)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
                    Texte de remplacement: %(altText)', - ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(error).
                    Texte de remplacement: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(altText)', - ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(error)" peut être redondant.
                    Texte de remplacement: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(ERROR)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(ERROR)" peut être redondant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Le lien a aria-hidden="true" mais reste focusable au clavier. Si vous avez l\'intention de cacher un lien redondant ou en double, ajoutez également tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'L’image dans le lien est marquée comme décorative et il n’y a pas de lien de texte. Veuillez ajouter du texte de remplacement à l’image qui décrit la destination du lien.', LINK_IMAGE_HAS_TEXT: 'L’image est marqué comme étant décorative, bien que le lien utilise le texte autour en tant que description.', - LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
                    Texte de remplacement: (%(altLength) caractères): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
                    Texte de remplacement: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
                    Texte de remplacement: %(altText)
                    Lien de l’étiquette: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
                    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).
                    Texte de remplacement: %(altText)', + LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
                    ALT %(altLength) Caractères %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
                    ALT %(ALT_TEXT)
                    Lien de l’étiquette %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
                    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'L’image est perçue de manière décorative et sera ignorée par la technologie d’assistance. Si l’image transmet un message, une émotion ou une information importante - assurez-vous d’ajouter le texte de rempla-cement.', - IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
                    Texte de remplacement (%(altLength) caractères): %(altText)', - IMAGE_PASS: 'Texte de remplacement: %(altText)', + IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
                    ALT %(altLength) Caractères %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Le bouton de l’image manque un texte de remplacement. Veuillez ajouter un texte de remplacement pour fournir un nom accessible. Par exemple: Rechercher ou Soumettre.', LABELS_INPUT_RESET_MESSAGE: 'Le bouton réinitialiser ne devrait pas être utiliser sauf en cas de besoin spécifique, car il est facile de l’activer par erreur.
                    Conseil! En savoir plus sur les problèmes liés aux boutons Réinitialiser et Annuler.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
                    Étiquette d\'entrée : %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
                    Étiquette d\'entrée %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Ajouter en un pour l’attribut de l’étiquette qui correspond id à l’id(identifiant) de cette entrée.
                    L’ID (L’identifiant) de cette entrée est: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Veuillez ajouter un id id (identifiant) à cette entrée et ajouter un for attribut correspondant à l’étiquette.', // Embedded content EMBED_VIDEO: 'Assurez-vous que les vidéos ont des sous-titres codés. Fournir les sous-titres pour tout type de contenu audio ou vidéo est une exigence obli-gatoire de Niveau A. Les sous-titres aident les gens qui sont malentendants.', EMBED_AUDIO: 'Assurez-vous de fournir une transcription pour tous les balados. Fournir les transcriptions pour tout type de contenu audio est une exigence obligatoire de Niveau A. Les transcriptions aident les gens qui sont malentendant, mais peuvent profiter à tout le monde. Positionnez la transcription sous ou à l’intérieur du panneau accordéon.', - EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
                    En savoir plus sur les images complexes.', + EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
                    En savoir plus sur les images complexes.', EMBED_MISSING_TITLE: 'Le contenu intégré requiert un nom accessible qui décrit le contenu. Veuillez fournir un titre (title) unique ou aria-label un attribut à l’élément iframe. En savoir plus sur les iFrames.', - EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', + EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', EMBED_UNFOCUSABLE: 'Les <iframe> avec des éléments non focusables ne doivent pas avoir de tabindex="-1". Le contenu incorporé ne sera pas accessible au clavier.', // Quality assurance - QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
                    Le lien dirige vers:
                    %(el)', + QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
                    Le lien dirige vers:
                    %(LINK)', QA_IN_PAGE_LINK: 'Lien interne cassé. La cible du lien ne correspond à aucun élément de cette page.', QA_BAD_ITALICS: 'Les balises Gras et Italique ont une signification sémantique et ne devraient pas être utiliser pour surligner des paragraphes en entier. Les textes en Gras doivent être utilisés pour mettre l’emphase sur un mot ou une phrase. Les textes en Italiques doivent être utilisés pour surligneur les noms propres (ex. livres et titre d’articles), les mots étrangers et les citations. Les citations longues doivent être formatées comme une citation en bloc.', - QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
                    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
                    • S’il s’agit d’un document, convertissez-le en page web.
                    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', - QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', - QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', + QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
                    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
                    • S’il s’agit d’un document, convertissez-le en page web.
                    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', + QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', + QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', QA_PAGE_TITLE: 'Titre de la page manquant ! Veuillez fournir un titre de page.', - QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(sanitizedText)
                    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', - QA_FAKE_HEADING: 'Est-ce un en-tête? %(boldtext)
                    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', - QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
                    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', + QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(TEXT)
                    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', + QA_FAKE_HEADING: 'Est-ce un en-tête? %(TEXT)
                    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', + QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
                    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', QA_UPPERCASE_WARNING: 'Majuscules trouvées. Certains lecteur d’écran pourraient interpréter les textes majus-cules en tant qu’acronyme et pourraient être tentés de les lire individuellement. De plus, certaines personnes trouvent les majuscules difficiles à lire et peuvent donner l’impression de CRIER.', QA_DUPLICATE_ID: 'ID (Identifiant) dupliqué trouvé. Les erreurs d’ID (d’identifiants) dupliqués sont re-connues pour causer des problèmes au niveau de la technologie d’assistance lors-qu’ils tentent d’interagir avec le contenu.
                    Veuillez retirer ou modifier l’ID (l’identifiant) suivant: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Le texte soulignés peuvent être confondus avec les liens. Envisagez d’utiliser un style différent comme <strong>forte importance</strong> ou <em>l’emphase.</em>.', QA_SUBSCRIPT_WARNING: 'Les options de mise en forme en indice et en exposant ne doivent être utilisées que pour modifier la position du texte afin de se conformer aux conventions ou normes typographiques. Il ne doit pas être utilisé uniquement à des fins de présentation ou d’apparence. La mise en forme de phrases entières pose des problèmes de lisibilité. Les cas d’utilisation appropriés incluent l’affichage d’exposants, de nombres ordinaux tels que 4th au lieu de quatrième et de formules chimiques (H2O).', // Tables - TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
                    En savoir plus sur les tableaux accessibles.', - TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
                    En savoir plus sur les tableaux accessibles.', - TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
                    En savoir plus sur les tableaux accessibles.', + TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
                    En savoir plus sur les tableaux accessibles.', + TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
                    En savoir plus sur les tableaux accessibles.', + TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
                    En savoir plus sur les tableaux accessibles.', // Contrast - CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Le ratio du contraste est de %(cratio) pour le texte suivant: %(sanitizedText)', - CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
                    Veuillez réviser: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio du contraste: %(cratio)', + CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
                    Veuillez réviser: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/fr.umd.js b/docs/assets/js/lang/fr.umd.js index 4a9492ef..6a3b3bfb 100644 --- a/docs/assets/js/lang/fr.umd.js +++ b/docs/assets/js/lang/fr.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Éteindre', ALERT_TEXT: 'Alerte', ALERT_CLOSE: 'Fermer', - OUTLINE: 'Page du schéma', + OUTLINE: 'Schéma', + ALT: 'ALT', + IMAGES: 'Images', + EDIT: 'Modifier', + IMAGES_NOT_FOUND: 'Aucune image trouvée.', + DECORATIVE: 'Décoratif', + MISSING: 'Manquant', PAGE_ISSUES: 'Problèmes de pages', SETTINGS: 'Paramètres', CONTRAST: 'Contraste', @@ -133,7 +139,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Utilisation d’un niveau d’en-tête non consécutif. Les en-têtes ne doivent jamais sauter de niveaux ou aller de L’en-tête %(prevLevel) à L’en-tête %(level).', HEADING_EMPTY: 'En-tête vide trouvé! Pour résoudre, supprimer cette ligne ou changer le format de L’en-tête %(level) à Normal ou Paragraphe.', - HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
                    Nombre de caractère(s): %(headingLength)', + HEADING_LONG: 'L’en-tête est long! Les en-têtes doivent être utilisées pour organiser le contenu et acheminer la structure. Ils doivent être brefs, informatifs et uniques. Les en-têtes doi-vent être inférieures à 160 caractères (pas plus d’une phrase).
                    %(HEADING_LENGTH) Caractères', HEADING_FIRST: 'Le premier en-tête sur la page doit être habituellement En-tête 1 ou En-tête 2. L’en-tête 1 doit débuter dans la section principale du contenu, car il s\'agit de l’en-tête prin-cipal qui décrit l\'objectif général de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_MISSING_ONE: 'En-tête 1 manquant. L’en-tête 1 doit débuter dans la zone principale de contenu, il est l’en-tête principal qui décrit l’objectif global de la page. En savoir plus sur La Structure Des En-têtes.', HEADING_EMPTY_WITH_IMAGE: 'L’en-tête ne contient pas de texte, mais seulement une image. Si ce n’est pas un en-tête, veuillez changer son format pour L’en-tête %(level) à Normal ou Paragraphe. Sinon, veuillez ajouter du texte de remplacement à l’image si elle n’est pas décorative.', @@ -144,79 +150,79 @@ LINK_EMPTY: 'Retirer les liens vides sans texte.', LINK_EMPTY_LABELLEDBY: 'Le lien a une valeur pour aria-labelledby qui est vide ou ne correspond pas à la valeur de l\'attributid d\'un autre élément de la page.', LINK_EMPTY_LINK_NO_LABEL: 'Le lien ne comporte pas de texte perceptible par les lecteurs d\'écran ou autres techno-logies d\'assistance. À corriger:
                    • Ajoutez un texte bref qui décrit où le lien vous mène.
                    • S’il s’agit d’un lien d’icône SVG (vectoriel), il manque alors une description.
                    • Si ce lien est une erreur due à un bogue de copier/coller, tentez de supprimer.
                    ', - LINK_LABEL: 'Lien de l’étiquette: %(sanitizedText)', - LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(error)
                    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', - LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(error)
                    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
                    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
                    ', - LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
                    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', + LINK_LABEL: 'Lien de l’étiquette %(TEXT)', + LINK_STOPWORD: 'Le texte du lien peut ne pas être suffisamment descriptif hors du contexte: %(ERROR)
                    Conseil! Le texte du lien doit toujours être précis, unique et significatif. Évitez les mots courants comme "cliquez ici" ou "en savoir plus".', + LINK_BEST_PRACTICES: 'Remplacer le lien du texte: %(ERROR)
                    • "Cliquer ici" fait référence au mouvement de la souris, alors que de nombreuses personnes n\'utilisent pas de souris ou consultent peut-être ce site web sur un appareil mobile. Envisagez d\'utiliser un verbe différent qui se rapporte à la tâche.
                    • Éviter l’utilisation de symbole HTML comme appel à l’action à moins qu\'ils ne soient cachés aux technologies d\'assistance.
                    ', + LINK_URL: 'Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance. Dans la plu-part des cas, il est recommandé d’utiliser du texte lisible plutôt qu’une adresse URL. Les adresses URL courtes (tels que les pages d’accueil de site web) sont correctes.
                    Conseil! Un lien de texte doit toujours être précis, unique et significatif pour qu\'il puisse être compris hors contexte.', LINK_DOI: 'Pour les pages web ou les ressources en ligne uniquement, le guide de style de l\'APA recommande d\'utiliser des liens descriptifs en entourant l\'URL ou le DOI de l\'œuvre autour de son titre. Des adresses URLs plus longues et moins compréhensibles utilisé en tant que lien de texte peuvent être difficiles à écouter avec une technologie d’assistance.', // Links advanced - NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
                    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', - FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
                    Exemple: Rapport de synthèse (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
                    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(sanitizedText)', + NEW_TAB_WARNING: 'Le lien s’ouvre dans une nouvelle fenêtre ou un nouvel onglet sans avertissement. Ce-la peut spécialement désorienter les gens qui ont une difficulté à percevoir le contenu visuel. Deuxièmement, ce n’est pas recommandé de contrôler l\'expérience d\'une per-sonne ou de prendre des décisions à sa place. Indiquer que le lient s’ouvrira dans une nouvelle fenêtre à l’intérieur du texte du lien.
                    Conseil! Apprenez les meilleures pratiques: l’ouverture de lien dans les nouvelles fenêtres ou onglets des navigateurs.', + FILE_TYPE_WARNING: 'Le lien dirige vers un PDF ou un fichier téléchargeable (exemple: MP3, Zip, Word Doc) sans avertissements. Indiquer le type de fichier dans le lien du texte. S’il s’agit d’un fi-chier volumineux, envisagez d’inclure la taille du ficher.
                    Exemple: Rapport de synthèse (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Le texte du lien est identique à un autre, bien qu’il pointe vers une page différente. Des liens qui contiennent le même texte peuvent porter à confusion pour les gens qui utilisent des lecteurs d’écran.
                    Ajoutez davantage de description au lien suivant pour le différencier de l’autre: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'L’image est utilisé en tant que lien avec un texte autour, alors que l’attribut de rem-placement doit être signalé comme décoratif ou nul.', MISSING_ALT_LINK_MESSAGE: 'L’image est utilisée en tant que lien mais manque de texte de remplacement! Veuillez vous assurer que le texte de remplacement décrit où le lien vous mène.', MISSING_ALT_MESSAGE: 'Texte de remplacement manquant! Si l’image transmet un message, une émotion ou des informations importantes - assurez-vous d’ajouter une description de l’image.', - LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(error).
                    Texte de remplacement: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(error)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
                    Texte de remplacement: %(altText)', - ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(error).
                    Texte de remplacement: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(altText)', - ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(error)" peut être redondant.
                    Texte de remplacement: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Assurez-vous que le texte de remplacement décrit la destination du lien pas une description complète de l’image. Retirer: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Assurez-vous que le texte de remplacement décrit la destination du lien, pas une description compète de l’image. Remplacer le texte de remplacement suivant: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'La technologie d’assistance indiquer déjà que c’est une image, donc "%(ERROR)" pourrait être redondant. Assurez-vous que le texte de remplacement décrit la destination du lien, pas la des-cription complète de l’image.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'L’extension du fichier trouvé à l’intérieur du texte de remplacement. Si l’image trans-met un message, une émotion ou une information importante - assurez-vous d’ajouter une description de l’image. Retirer: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texte de remplacement non-descriptif ou séparateur trouvé dans une image. Modifier le texte de remplacement suivant pour le rendre plus significatif: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Les technologies d’assistances indiquent déjà qu’il s’agit d’une image, donc "%(ERROR)" peut être redondant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Le lien a aria-hidden="true" mais reste focusable au clavier. Si vous avez l\'intention de cacher un lien redondant ou en double, ajoutez également tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'L’image dans le lien est marquée comme décorative et il n’y a pas de lien de texte. Veuillez ajouter du texte de remplacement à l’image qui décrit la destination du lien.', LINK_IMAGE_HAS_TEXT: 'L’image est marqué comme étant décorative, bien que le lien utilise le texte autour en tant que description.', - LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
                    Texte de remplacement: (%(altLength) caractères): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
                    Texte de remplacement: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
                    Texte de remplacement: %(altText)
                    Lien de l’étiquette: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
                    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).
                    Texte de remplacement: %(altText)', + LINK_IMAGE_LONG_ALT: 'La description du texte de remplacement sur l’image lié est trop longue. Le texte de remplacement sur l’image liée devrait décrire où le lien vous mène, pas une description complète de l’image. Utilisez le titre de l’image en tant que lien du texte de remplacement.
                    ALT %(altLength) Caractères %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Le lien vers l\'image contient un texte de remplacement. Le texte de remplacement décrit- il la destination du lien? Pensez à utiliser le titre de la page à laquelle le lien renvoie comme texte de remplacement.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Le lien de l’image contient du texte de remplacement et du texte à l’entour. Si cette image est décorative et est utilisé en tant que lien qui mène à une autre page, envisagez marquer l’image en tant que décorative, ou nulle - les liens texte autour de-vraient suffire.
                    ALT %(ALT_TEXT)
                    Lien de l’étiquette %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'L’image est perçue de manière décorative décorative et sera ignorée par la technologie d’assistance.
                    Bien qu’une légende est fournie, l’image devrait aussi avoir du texte de remplacement dans la plupart des cas.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne pas utiliser le même mot pour la légende et le texte de remplacement. Les lecteurs d’écrans vont annoncer l’information en double.
                    • Le texte de remplacement devrait fournir une description précise de l’image.
                    • La légende devrait fournir habituellement le contexte lié à l’image derrière le contenu environnant ou prêter attention à un élément d’information.
                    En savoir plus: alt versus figcaption (légende de la figure).
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'L’image est perçue de manière décorative et sera ignorée par la technologie d’assistance. Si l’image transmet un message, une émotion ou une information importante - assurez-vous d’ajouter le texte de rempla-cement.', - IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
                    Texte de remplacement (%(altLength) caractères): %(altText)', - IMAGE_PASS: 'Texte de remplacement: %(altText)', + IMAGE_ALT_TOO_LONG: 'La description du texte de remplacement est trop longue. Le texte de remplacement doit être précis, mais significatif tout comme un gazouillis (micromessage) (environ 100 caractères). S’il s’agit d’une image complexe ou d’une illustration, ajoutez une longue description de l’image dans le texte ci-dessous ou dans la composante accordéon.
                    ALT %(altLength) Caractères %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Le bouton de l’image manque un texte de remplacement. Veuillez ajouter un texte de remplacement pour fournir un nom accessible. Par exemple: Rechercher ou Soumettre.', LABELS_INPUT_RESET_MESSAGE: 'Le bouton réinitialiser ne devrait pas être utiliser sauf en cas de besoin spécifique, car il est facile de l’activer par erreur.
                    Conseil! En savoir plus sur les problèmes liés aux boutons Réinitialiser et Annuler.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
                    Étiquette d\'entrée : %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'L’entrée a un nom accessible, assurez-vouer qu’il y a aussi une étiquette visible.
                    Étiquette d\'entrée %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Ajouter en un pour l’attribut de l’étiquette qui correspond id à l’id(identifiant) de cette entrée.
                    L’ID (L’identifiant) de cette entrée est: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Il n’y a pas d’étiquette associée à cette entrée. Veuillez ajouter un id id (identifiant) à cette entrée et ajouter un for attribut correspondant à l’étiquette.', // Embedded content EMBED_VIDEO: 'Assurez-vous que les vidéos ont des sous-titres codés. Fournir les sous-titres pour tout type de contenu audio ou vidéo est une exigence obli-gatoire de Niveau A. Les sous-titres aident les gens qui sont malentendants.', EMBED_AUDIO: 'Assurez-vous de fournir une transcription pour tous les balados. Fournir les transcriptions pour tout type de contenu audio est une exigence obligatoire de Niveau A. Les transcriptions aident les gens qui sont malentendant, mais peuvent profiter à tout le monde. Positionnez la transcription sous ou à l’intérieur du panneau accordéon.', - EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
                    En savoir plus sur les images complexes.', + EMBED_DATA_VIZ: 'Les gadgets logiciels de visualisation de données comme ceci sont souvent problématiques pour les gens qui utilisent un clavier ou un lecteur d’écran lors de la navigation et peuvent présenter d’importante difficultés pour les gens qui ont une malvoyance ou du daltonisme. Il est recommandé de fournir la même information de remplacement (texte ou tableau) dans le format ci-dessous du gadget logiciel.
                    En savoir plus sur les images complexes.', EMBED_MISSING_TITLE: 'Le contenu intégré requiert un nom accessible qui décrit le contenu. Veuillez fournir un titre (title) unique ou aria-label un attribut à l’élément iframe. En savoir plus sur les iFrames.', - EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', + EMBED_GENERAL_WARNING: 'Impossible de vérifier le contenu intégré. Assurez-vous que les images ont du texte de remplacement, les vidéos ont des sous-titres, le texte est suffisamment contrasté et que les éléments interactifs sont accessible par le clavier.', EMBED_UNFOCUSABLE: 'Les <iframe> avec des éléments non focusables ne doivent pas avoir de tabindex="-1". Le contenu incorporé ne sera pas accessible au clavier.', // Quality assurance - QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
                    Le lien dirige vers:
                    %(el)', + QA_BAD_LINK: 'Lien incorrect trouvé. Le lien semble diriger vers un environnement de développement. Assurez vous que le lien ne contient pas dev ou wp-admin dans l’adresse URL.
                    Le lien dirige vers:
                    %(LINK)', QA_IN_PAGE_LINK: 'Lien interne cassé. La cible du lien ne correspond à aucun élément de cette page.', QA_BAD_ITALICS: 'Les balises Gras et Italique ont une signification sémantique et ne devraient pas être utiliser pour surligner des paragraphes en entier. Les textes en Gras doivent être utilisés pour mettre l’emphase sur un mot ou une phrase. Les textes en Italiques doivent être utilisés pour surligneur les noms propres (ex. livres et titre d’articles), les mots étrangers et les citations. Les citations longues doivent être formatées comme une citation en bloc.', - QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
                    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
                    • S’il s’agit d’un document, convertissez-le en page web.
                    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', - QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', - QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', + QA_PDF: 'Impossible de vérifier l’accessibilité des fichiers PDF. Les PDFSs sont considérés comme contenu web et doivent être accessible comme tel. Les PDFs contiennent souvent des erreurs pour les gens qui utilisent les lecteurs d’écrans (balises structurelles manquante ou des champs de formulaire manquants) et les gens qui ont une malvoyance (le texte ne resurgit pas lorsqu’il est agrandi).
                    • S’il s’agit d’un formulaire, utilisez un formulaire HTML comme alternative.
                    • S’il s’agit d’un document, convertissez-le en page web.
                    Sinon, veuillez vérifier PDF pour assurer l’accessibilité dans Acrobat DC.', + QA_DOCUMENT: 'Impossible de vérifier l\'accessibilité du document. Les documents liés sont considérés comme du contenu web et doivent également être rendus accessibles. Veuillez vérifier manuellement ce document. ', + QA_PAGE_LANGUAGE: 'La langue de la page n’est pas indiquée! Veuillez indiquer la langue sur la balise HTML.', QA_PAGE_TITLE: 'Titre de la page manquant ! Veuillez fournir un titre de page.', - QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(sanitizedText)
                    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', - QA_FAKE_HEADING: 'Est-ce un en-tête? %(boldtext)
                    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', - QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
                    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', + QA_BLOCKQUOTE_MESSAGE: 'Est-ce un en-tête? %(TEXT)
                    Les citations en bloc doivent être utilisées pour les citations uniquement. S’il s’agit d’un en-tête, changez cette citation en bloc pour un en-tête sémantique (ex. En-tête 2 ou En-tête 3).', + QA_FAKE_HEADING: 'Est-ce un en-tête? %(TEXT)
                    Une ligne de texte en gras ou de grande taille peut ressembler à un titre, mais pour une personne utili-sant un lecteur d’écran, il est impossible de déterminer ce qui est important ou com-ment accéder au contenu. Un texte en gras ou de grande taille ne doit jamais remplacer un en-tête sémantique (En-tête 2 à En-tête 6).', + QA_SHOULD_BE_LIST: 'Voulez-vous créer une liste? Une liste d’élément possible est trouvée: %(firstPrefix)
                    Assurez-vous de créer une liste en suivant le formatage de bouton, de puces ou de nombre. Lors d’une liste relative, la technologie d’assistance est en mesure de transmettre l’information telle que le nombre total d’élément et la position relative de chaque élément sur la site. En savoir plus sur les listes relatives.', QA_UPPERCASE_WARNING: 'Majuscules trouvées. Certains lecteur d’écran pourraient interpréter les textes majus-cules en tant qu’acronyme et pourraient être tentés de les lire individuellement. De plus, certaines personnes trouvent les majuscules difficiles à lire et peuvent donner l’impression de CRIER.', QA_DUPLICATE_ID: 'ID (Identifiant) dupliqué trouvé. Les erreurs d’ID (d’identifiants) dupliqués sont re-connues pour causer des problèmes au niveau de la technologie d’assistance lors-qu’ils tentent d’interagir avec le contenu.
                    Veuillez retirer ou modifier l’ID (l’identifiant) suivant: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Le texte soulignés peuvent être confondus avec les liens. Envisagez d’utiliser un style différent comme <strong>forte importance</strong> ou <em>l’emphase.</em>.', QA_SUBSCRIPT_WARNING: 'Les options de mise en forme en indice et en exposant ne doivent être utilisées que pour modifier la position du texte afin de se conformer aux conventions ou normes typographiques. Il ne doit pas être utilisé uniquement à des fins de présentation ou d’apparence. La mise en forme de phrases entières pose des problèmes de lisibilité. Les cas d’utilisation appropriés incluent l’affichage d’exposants, de nombres ordinaux tels que 4th au lieu de quatrième et de formules chimiques (H2O).', // Tables - TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
                    En savoir plus sur les tableaux accessibles.', - TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
                    En savoir plus sur les tableaux accessibles.', - TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
                    En savoir plus sur les tableaux accessibles.', + TABLES_MISSING_HEADINGS: 'En-têtes de tableau manquants! Les tableaux accessibles doivent contenir le balisage HTML pour indiquer la cellule de l’en-tête et la cellule des donnés qui déterminent leur relation. Cette information fournit le contexte aux gens qui utilisent la technolo-gie d’assistance. Les tableaux doivent être utilisés pour les données relatives uni-quement.
                    En savoir plus sur les tableaux accessibles.', + TABLES_SEMANTIC_HEADING: 'Les en-têtes sémantiques tels que En-tête 2 ou En-tête 3 doivent être utilisées uni-quement pour les sections de contenu; non pas pour les tableaux HTML. Indiquez les en-têtes de tableau en utilisant plutôt l’élément <th>.
                    En savoir plus sur les tableaux accessibles.', + TABLES_EMPTY_HEADING: 'En-tête de tableau vide trouvé! Les en-têtes de tableau ne devraient jamais être vides. Il est important de déterminer les rangées et/ou colonnes des en-têtes pour détermi-ner leur relation. Cette information fournit le contexte aux gens qui utilisent la tech-nologie d’assistance. Veuillez garder à l’esprit que les tableaux devraient être utilisés pour les données relatives uniquement.
                    En savoir plus sur les tableaux accessibles.', // Contrast - CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Le ratio du contraste est de %(cratio) pour le texte suivant: %(sanitizedText)', - CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
                    Veuillez réviser: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio du contraste: %(cratio)', + CONTRAST_ERROR: 'Ce texte n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devrait être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Le contraste de ce texte est inconnu et doit être manuellement révisé. Assurez-vous que le texte et l’arrière-plan représentent des couleurs contrastantes. Le ratio du con-traste devrait être au moins de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands.
                    Veuillez réviser: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Le texte à l’intérieur de cette entrée n’est pas suffisamment contrasté avec l’arrière-plan. Le ratio du contraste devraient être au moins de 4.5:1 pour le texte normal et 3:1 pour les textes plus grands.
                    Ratio de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/hu.js b/docs/assets/js/lang/hu.js index 70e8cd3a..81db55c5 100644 --- a/docs/assets/js/lang/hu.js +++ b/docs/assets/js/lang/hu.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var hu = { ALERT_TEXT: 'Riasztás', ALERT_CLOSE: 'Zárja be a', OUTLINE: 'Oldalvázlat', + ALT: 'ALT', + IMAGES: 'Képek', + EDIT: 'Szerkesztés', + IMAGES_NOT_FOUND: 'Nem találhatók képek.', + DECORATIVE: 'Dekoratív', + MISSING: 'Hiányzó', PAGE_ISSUES: 'Oldalproblémák', SETTINGS: 'Beállítások', CONTRAST: 'Kontraszt', @@ -159,64 +165,64 @@ var hu = { READABILITY_NO_P_OR_LI_MESSAGE: 'Nem lehet kiszámítani az olvashatósági pontszámot. Nem találtunk bekezdést <p> vagy listatartalmat <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nem elég tartalom az olvashatósági pontszám kiszámításához.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nem egymást követő címsorszintet használtak. A fejlécek soha nem ugorhatnak szinteket, vagy nem mehetnek Felirat %(prevLevel)-ről Felirat %(level)-ra.', - HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra.', - HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
                    Karakterek száma: %(headingLength)', - HEADING_FIRST: 'Az oldal első címsorának általában az 1. vagy a 2. címsornak kell lennie. Az 1. címsornak kell a fő tartalmi rész kezdetének lennie, és ez a fő címsor írja le az oldal általános célját. Tudjon meg többet a Feliratszerkezet.-ról.', - HEADING_MISSING_ONE: 'Hiányzik az 1. címsor. Az 1. címsornak kell a fő tartalmi terület kezdetének lennie, és ez a főcím, amely leírja az oldal általános célját. Tudjon meg többet a Főcímek szerkezete.-ről.', - HEADING_EMPTY_WITH_IMAGE: 'A fejlécnek nincs szövege, de tartalmaz egy képet. Ha ez nem egy címsor, változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra. Ellenkező esetben kérjük, adjon alt szöveget a képhez, ha az nem dekoratív.', + HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(level)-ról Normál vagy Paragraph formátumra.', + HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
                    %(HEADING_LENGTH) Karakterek', + HEADING_FIRST: 'Az oldal első címe általában Cím 1 vagy Cím 2 legyen.A Cím 1-nek a fő tartalom szakaszának kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját.Tudj meg többet aFejléc szerkezetéről.', + HEADING_MISSING_ONE: 'Hiányzó Cím 1. A Cím 1-nek a fő tartalom területének kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját. További információkért látogasson el ide: Fejléck struktúra.', + HEADING_EMPTY_WITH_IMAGE: 'A címsor nem tartalmaz szöveget, de képet tartalmaz. Ha ez nem címsor, akkor változtassa meg a formátumát Címsor %(level) formátumra Normál vagy Bekezdés. Ellenkező esetben kérem, adja hozzá az alternatív szöveget a képhez, ha az nem díszítőelem.', PANEL_HEADING_MISSING_ONE: 'Hiányzik az 1. címsor!', PANEL_NO_HEADINGS: 'Nem találtunk címszavakat.', LINK_EMPTY: 'Szöveg nélküli üres linkek eltávolítása.', LINK_EMPTY_LABELLEDBY: 'A hivatkozásnak van egy értéke a aria-labelledby számára, ami üres vagy nem egyezik meg egy másik elem id attribútumának az értékével az oldalon.', LINK_EMPTY_LINK_NO_LABEL: 'A link nem rendelkezik olyan szöveggel, amely a képernyőolvasók és más segítő technológiák számára is látható. A javításhoz:
                    • Adjon hozzá egy tömör szöveget, amely leírja, hogy hová vezet a link.
                    • Ha ikonos link vagy SVG, akkor valószínűleg hiányzik egy leíró felirat.
                    • Ha úgy gondolja, hogy ez a link egy másolási/beillesztési hiba miatt hibás, akkor fontolja meg a törlését.
                    .', - LINK_LABEL: 'Link címke: %(sanitizedText)', - LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', - LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(hiba)
                    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
                    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
                    ', - LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', + LINK_LABEL: 'Link címke %(TEXT)', + LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', + LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(ERROR)
                    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
                    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
                    ', + LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', LINK_DOI: 'Weboldalak vagy kizárólag online elérhető források esetében az APA Style guide leíró linkek használatát javasolja, a mű URL-jét vagy DOI-ját a cím köré tekerve. A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetőek lehetnek a segédeszközökkel.', NEW_TAB_WARNING: 'A link figyelmeztetés nélkül új lapon vagy ablakban nyílik meg. Ez zavaró lehet, különösen azok számára, akik nehezen érzékelik a vizuális tartalmakat. Másodszor, nem mindig jó gyakorlat, ha valakinek az élményét irányítjuk, vagy döntéseket hozunk helyettük. Jelezze, hogy a link új ablakban nyílik meg a link szövegében
                    Tipp! Ismerje meg a legjobb gyakorlatokat: Hivatkozások megnyitása új böngészőablakban és lapon.', - FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
                    Példa: Vezetői jelentés (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
                    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(sanitizedText)', + FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
                    Példa: Vezetői jelentés (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
                    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A képet linkként használják a körülötte lévő szöveggel, bár az alt attribútumot dekoratívnak vagy nullának kell jelölni.', MISSING_ALT_LINK_MESSAGE: 'A képet linkként használják, de hiányzik az alt szöveg! Kérjük, gondoskodjon arról, hogy az alt szöveg leírja, hová vezet a link.', MISSING_ALT_MESSAGE: 'Hiányzó alt szöveg! Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(hiba).
                    Alt szöveg: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
                    Alt szöveg: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(hiba).
                    Alt szöveg: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(altText)', - ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet.
                    Alt szöveg: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'A hivatkozásnak van aria-hidden="true" tulajdonsága, de még mindig billentyűzettel fókuszálható. Ha felesleges vagy duplikált hivatkozást szeretnél elrejteni, adj hozzá tabindex="-1" tulajdonságot is.', LINK_IMAGE_NO_ALT_TEXT: 'A linkben lévő kép dekoratívnak van jelölve, és nincs linkszöveg. Kérjük, adjon a képhez alt szöveget, amely leírja a link célját.', LINK_IMAGE_HAS_TEXT: 'A kép dekoratívként van megjelölve, bár a link a környező szöveget használja leíró címkeként.', - LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
                    Alt szöveg (%(altLength) karakterek): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
                    Alt szöveg: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
                    Alt szöveg: %(altText)
                    Link címke: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
                    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
                    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
                    Tudjon meg többet: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
                    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
                    További információ: alt versus figcaption.
                    Alt szöveg: %(altText)', + LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
                    ALT %(altLength) Karakterek %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
                    ALT %(ALT_TEXT)
                    Link címke %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
                    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
                    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
                    Tudjon meg többet: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
                    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
                    További információ: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen adjon hozzá alt szöveget.', - IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
                    Alt szöveg (%(altLength) karakterek): %(altText)', - IMAGE_PASS: 'Alt szöveg: %(altText)', + IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
                    ALT %(altLength) Karakterek %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'A képgombból hiányzik az alt szöveg. Kérjük, adjon hozzá alt szöveget, hogy elérhető nevet adjon. Például: Keresés vagy Submit.', LABELS_INPUT_RESET_MESSAGE: 'A visszaállító gombokat nem szabad használni, hacsak nem kifejezetten szükséges, mert könnyen aktiválhatók tévedésből.
                    Tipp! Tudja meg, hogy a A visszaállítás és a törlés gombok miért jelentenek használhatósági problémát.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
                    Bemeneti címke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
                    Bemeneti címke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Adjon hozzá egy for attribútumot a címkéhez, amely megfelel a bemenet id azonosítójának.
                    Ennek a bemenetnek az azonosítója a következő: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Kérjük, adjon hozzá egy id-t ehhez a bemenethez, és adjon hozzá egy megfelelő for attribútumot a címkéhez.', EMBED_VIDEO: 'Kérjük, gondoskodjon arról, hogy minden videó feliratozással legyen ellátva. A feliratozás biztosítása minden hang- és videotartalomhoz kötelező A-szintű követelmény. A feliratozás a siket vagy nagyothalló embereket támogatja.', EMBED_AUDIO: 'Kérjük, gondoskodjon arról, hogy minden podcasthoz átiratot adjon. A hanganyag átiratának megadása kötelező A-szintű követelmény. Az átiratok a siket/süket vagy nagyothalló embereket támogatják, de mindenki számára hasznosak lehetnek. Fontolja meg az átirat elhelyezését alul vagy egy harmonika panelen belül.', EMBED_DATA_VIZ: 'Az ilyen adatvizualizációs widgetek gyakran problémát jelentenek azok számára, akik billentyűzetet vagy képernyőolvasót használnak a navigáláshoz, és jelentős nehézségeket okozhatnak a gyengén látók vagy színvakok számára. Javasoljuk, hogy ugyanezt az információt alternatív (szöveges vagy táblázatos) formátumban adjuk meg a widget alatt.
                    Tudjon meg többet a komplex képekről.', - EMBED_MISSING_TITLE: 'A beágyazott tartalomnak olyan hozzáférhető névre van szüksége, amely leírja a tartalmát. Kérjük, adjon meg egy egyedi title vagy aria-label attribútumot a iframe elemen. Tudjon meg többet a iFrames.-ről.', + EMBED_MISSING_TITLE: 'A beágyazott tartalomhoz hozzáférhető névre van szükség, amely leírja annak tartalmát. Kérjük, adjon meg egyedi title vagy aria-label attribútumot az iframe elemen. További információkért látogasson el ide: iFrame-ek.', EMBED_GENERAL_WARNING: 'Beágyazott tartalom ellenőrzése nem lehetséges. Kérjük, győződjön meg róla, hogy a képek alt szöveggel, a videók felirattal, a szöveg megfelelő kontraszttal és az interaktív komponensek billentyűzettel elérhetőek.', EMBED_UNFOCUSABLE: 'Azoknak a <iframe>-nek, amelyek nem fókuszálható elemekkel rendelkeznek, nem kell tabindex="-1" tulajdonságot rendelni. A beágyazott tartalom nem lesz billentyűzettel elérhető.', - QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
                    Ez a link a következőre mutat:
                    %(el)', + QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
                    Ez a link a következőre mutat:
                    %(LINK)', QA_IN_PAGE_LINK: 'Sérült azonos oldalú link. A hivatkozás célja nem egyezik meg egyetlen elemmel sem ezen az oldalon.', QA_BAD_ITALICS: 'A vastag és dőlt betűs címkéknek szemantikai jelentésük van, és nem szabad egész bekezdések kiemelésére használni őket. A félkövérrel kiemelt szöveget egy szó vagy kifejezés erős kiemelésére kell használni. A dőlt betűt a tulajdonnevek (pl. könyv- és cikkcímek), idegen szavak, idézőjelek kiemelésére kell használni. A hosszú idézeteket blokkidézetként kell formázni.', QA_PDF: 'Nem lehet ellenőrizni a PDF-ek hozzáférhetőségét. A PDF-ek webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. A PDF-ek gyakran tartalmaznak problémákat a képernyőolvasót használók (hiányzó szerkezeti címkék vagy hiányzó űrlapmező-címkék) és a gyengén látók (a szöveg nagyításkor nem folyik vissza) számára.
                    • Ha ez egy űrlap, fontolja meg egy hozzáférhető HTML űrlap használatát alternatívaként.
                    • Ha ez egy dokumentum, fontolja meg a weboldallá alakítását.
                    Máskülönben ellenőrizze a PDF hozzáférhetőségét az Acrobat DC-ben.Megközelíthetőségét az PDF-ben..', - QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', + QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', QA_PAGE_LANGUAGE: 'Az oldal nyelve nincs megadva! Kérjük, declare language on HTML tag.', QA_PAGE_TITLE: 'Hiányzik az oldal címe! Kérjük, adjon meg egy oldal címet.', - QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(sanitizedText)

                    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', - QA_FAKE_HEADING: 'Ez egy címszó? %(boldtext)
                    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', + QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(TEXT)
                    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', + QA_FAKE_HEADING: 'Ez egy címszó? %(TEXT)
                    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', QA_SHOULD_BE_LIST: 'Megpróbál listát készíteni? Lehetséges listaelemet találtunk: %(firstPrefix)
                    Győződjön meg róla, hogy szemantikus listákat használ, és használja helyette a felsorolás- vagy számformázó gombokat. Szemantikus lista használata esetén a segédtechnológiák képesek olyan információkat közvetíteni, mint az elemek teljes száma és az egyes elemek relatív pozíciója a listában. További információ a szemantikus listákról.', QA_UPPERCASE_WARNING: 'Találtam minden nagybetűt. Egyes képernyőolvasók a csupa nagybetűs szöveget betűszónak értelmezhetik, és minden egyes betűt külön-külön olvasnak. Ezenkívül egyesek nehezebben olvashatónak találják a csupa nagybetűs szöveget, és úgy tűnhet, mintha kiabálnának.', QA_DUPLICATE_ID: 'Találtunk duplikált azonosítót. A duplikált azonosító hibák köztudottan problémákat okoznak a segítő technológiák számára, amikor azok megpróbálnak interakcióba lépni a tartalommal.
                    Kérjük, távolítsa el vagy változtassa meg a következő azonosítót: %(id)', @@ -225,9 +231,9 @@ var hu = { TABLES_MISSING_HEADINGS: 'Hiányzó táblázatfejlécek! A hozzáférhető táblázatokhoz olyan HTML-jelölésre van szükség, amely jelzi a fejléccellákat és az adatcellákat, amelyek meghatározzák a kapcsolatukat. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. A táblázatokat csak táblázatos adatokhoz szabad használni.
                    Tudjon meg többet a hozzáférhető táblázatokról.', TABLES_SEMANTIC_HEADING: 'Az olyan szemantikus címsorokat, mint a Heading 2 vagy Heading 3, csak a tartalmi részeknél szabad használni; nem a HTML táblázatokban. A táblázatcímeket ehelyett a <th> elemmel jelezze.
                    Tudjon meg többet a elérhető táblázatokról.', TABLES_EMPTY_HEADING: 'Üres asztali fejlécet találtunk! A táblázat fejlécének soha nem szabad üresnek lennie. Fontos a sor- és/vagy oszlopfejlécek kijelölése a kapcsolatuk érzékeltetése érdekében. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. Ne feledje, hogy a táblázatok csak táblázatos adatokhoz használhatók.
                    Tudjon meg többet a elérhető táblázatokról.', - CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    A kontrasztarány %(cratio) a következő szöveg esetében: %(sanitizedText)', - CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kérem, vizsgálja felül: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány: %(cratio)', + CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kérem, vizsgálja felül: %(TEXT)', + CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány %(RATIO)', }, }; diff --git a/docs/assets/js/lang/hu.umd.js b/docs/assets/js/lang/hu.umd.js index 1cf8804e..d8f77ba7 100644 --- a/docs/assets/js/lang/hu.umd.js +++ b/docs/assets/js/lang/hu.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Riasztás', ALERT_CLOSE: 'Zárja be a', OUTLINE: 'Oldalvázlat', + ALT: 'ALT', + IMAGES: 'Képek', + EDIT: 'Szerkesztés', + IMAGES_NOT_FOUND: 'Nem találhatók képek.', + DECORATIVE: 'Dekoratív', + MISSING: 'Hiányzó', PAGE_ISSUES: 'Oldalproblémák', SETTINGS: 'Beállítások', CONTRAST: 'Kontraszt', @@ -165,64 +171,64 @@ READABILITY_NO_P_OR_LI_MESSAGE: 'Nem lehet kiszámítani az olvashatósági pontszámot. Nem találtunk bekezdést <p> vagy listatartalmat <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nem elég tartalom az olvashatósági pontszám kiszámításához.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nem egymást követő címsorszintet használtak. A fejlécek soha nem ugorhatnak szinteket, vagy nem mehetnek Felirat %(prevLevel)-ről Felirat %(level)-ra.', - HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra.', - HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
                    Karakterek száma: %(headingLength)', - HEADING_FIRST: 'Az oldal első címsorának általában az 1. vagy a 2. címsornak kell lennie. Az 1. címsornak kell a fő tartalmi rész kezdetének lennie, és ez a fő címsor írja le az oldal általános célját. Tudjon meg többet a Feliratszerkezet.-ról.', - HEADING_MISSING_ONE: 'Hiányzik az 1. címsor. Az 1. címsornak kell a fő tartalmi terület kezdetének lennie, és ez a főcím, amely leírja az oldal általános célját. Tudjon meg többet a Főcímek szerkezete.-ről.', - HEADING_EMPTY_WITH_IMAGE: 'A fejlécnek nincs szövege, de tartalmaz egy képet. Ha ez nem egy címsor, változtassa meg a formátumát Felirat %(szint)-ról Normál vagy Paragraph formátumra. Ellenkező esetben kérjük, adjon alt szöveget a képhez, ha az nem dekoratív.', + HEADING_EMPTY: 'Üres fejlécet találtunk! A javításhoz törölje ezt a sort, vagy változtassa meg a formátumát Felirat %(level)-ról Normál vagy Paragraph formátumra.', + HEADING_LONG: 'A fejléc hosszú! A címsorokat a tartalom rendszerezésére és a szerkezet közvetítésére kell használni. Rövidnek, informatívnak és egyedinek kell lenniük. Kérjük, hogy a címsorokat 160 karakternél (egy mondatnál nem több) rövidebbre tartsa.
                    %(HEADING_LENGTH) Karakterek', + HEADING_FIRST: 'Az oldal első címe általában Cím 1 vagy Cím 2 legyen.A Cím 1-nek a fő tartalom szakaszának kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját.Tudj meg többet aFejléc szerkezetéről.', + HEADING_MISSING_ONE: 'Hiányzó Cím 1. A Cím 1-nek a fő tartalom területének kezdetét kell jelentenie, és ez a fő cím, amely leírja az oldal általános célját. További információkért látogasson el ide: Fejléck struktúra.', + HEADING_EMPTY_WITH_IMAGE: 'A címsor nem tartalmaz szöveget, de képet tartalmaz. Ha ez nem címsor, akkor változtassa meg a formátumát Címsor %(level) formátumra Normál vagy Bekezdés. Ellenkező esetben kérem, adja hozzá az alternatív szöveget a képhez, ha az nem díszítőelem.', PANEL_HEADING_MISSING_ONE: 'Hiányzik az 1. címsor!', PANEL_NO_HEADINGS: 'Nem találtunk címszavakat.', LINK_EMPTY: 'Szöveg nélküli üres linkek eltávolítása.', LINK_EMPTY_LABELLEDBY: 'A hivatkozásnak van egy értéke a aria-labelledby számára, ami üres vagy nem egyezik meg egy másik elem id attribútumának az értékével az oldalon.', LINK_EMPTY_LINK_NO_LABEL: 'A link nem rendelkezik olyan szöveggel, amely a képernyőolvasók és más segítő technológiák számára is látható. A javításhoz:
                    • Adjon hozzá egy tömör szöveget, amely leírja, hogy hová vezet a link.
                    • Ha ikonos link vagy SVG, akkor valószínűleg hiányzik egy leíró felirat.
                    • Ha úgy gondolja, hogy ez a link egy másolási/beillesztési hiba miatt hibás, akkor fontolja meg a törlését.
                    .', - LINK_LABEL: 'Link címke: %(sanitizedText)', - LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', - LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(hiba)
                    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
                    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
                    ', - LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', + LINK_LABEL: 'Link címke %(TEXT)', + LINK_STOPWORD: 'Előfordulhat, hogy a link szövege kontextuson kívül nem elég leíró: %(hiba)
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie. Kerülje az olyan gyakori szavakat, mint a "kattintson ide" vagy a "tudjon meg többet";', + LINK_BEST_PRACTICES: 'Fontolja meg a link szövegének cseréjét: %(ERROR)
                    • "Kattintson ide" az egér mechanikájára helyezi a hangsúlyt, holott sokan nem használnak egeret, vagy esetleg mobileszközön nézik a weboldalt. Fontolja meg egy másik, a feladathoz kapcsolódó ige használatát.
                    • Kerülje a HTML szimbólumok használatát cselekvéshívóként, kivéve, ha azok a segédtechnológiák számára rejtve vannak.
                    ', + LINK_URL: 'A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetők a segítő technológiával. A legtöbb esetben jobb, ha az URL helyett ember által olvasható szöveget használ. A rövid URL-címek (például egy webhely kezdőlapja) rendben vannak.
                    Tipp! A linkszövegnek mindig világosnak, egyedinek és értelmesnek kell lennie, hogy kontextuson kívül is érthető legyen.', LINK_DOI: 'Weboldalak vagy kizárólag online elérhető források esetében az APA Style guide leíró linkek használatát javasolja, a mű URL-jét vagy DOI-ját a cím köré tekerve. A linkszövegként használt hosszabb, kevésbé érthető URL-címek nehezen érthetőek lehetnek a segédeszközökkel.', NEW_TAB_WARNING: 'A link figyelmeztetés nélkül új lapon vagy ablakban nyílik meg. Ez zavaró lehet, különösen azok számára, akik nehezen érzékelik a vizuális tartalmakat. Másodszor, nem mindig jó gyakorlat, ha valakinek az élményét irányítjuk, vagy döntéseket hozunk helyettük. Jelezze, hogy a link új ablakban nyílik meg a link szövegében
                    Tipp! Ismerje meg a legjobb gyakorlatokat: Hivatkozások megnyitása új böngészőablakban és lapon.', - FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
                    Példa: Vezetői jelentés (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
                    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(sanitizedText)', + FILE_TYPE_WARNING: 'A link figyelmeztetés nélkül PDF vagy letölthető fájlra (pl. MP3, Zip, Word Doc) mutat. A hivatkozás szövegében tüntesse fel a fájl típusát. Ha nagyméretű fájlról van szó, fontolja meg a fájlméret feltüntetését.
                    Példa: Vezetői jelentés (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A link szövege megegyezik egy másik link szövegével, bár egy másik oldalra mutat. A több azonos szövegű hivatkozás zavart okozhat a képernyőolvasót használó emberek számára.
                    Figyeljen arra, hogy a következő hivatkozás leíróbb legyen, hogy jobban megkülönböztethető legyen a többi hivatkozástól: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A képet linkként használják a körülötte lévő szöveggel, bár az alt attribútumot dekoratívnak vagy nullának kell jelölni.', MISSING_ALT_LINK_MESSAGE: 'A képet linkként használják, de hiányzik az alt szöveg! Kérjük, gondoskodjon arról, hogy az alt szöveg leírja, hová vezet a link.', MISSING_ALT_MESSAGE: 'Hiányzó alt szöveg! Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(hiba).
                    Alt szöveg: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
                    Alt szöveg: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(hiba).
                    Alt szöveg: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(altText)', - ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(hiba)" felesleges lehet.
                    Alt szöveg: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Távolítsa el: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg a linkelt képen belül. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását. Cserélje ki a következő alt szöveget: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet. Győződjön meg róla, hogy az alt szöveg a link célját írja le, nem pedig a kép szó szerinti leírását.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Fájlkiterjesztés az alt szövegben található. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen írja le a képet. Távolítsa el: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nem leíró vagy helyőrző alt szöveg található. Cserélje ki a következő alt szöveget valami értelmesebbre: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'A segítő technológiák már jelzik, hogy ez egy kép, így a "%(ERROR)" felesleges lehet.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'A hivatkozásnak van aria-hidden="true" tulajdonsága, de még mindig billentyűzettel fókuszálható. Ha felesleges vagy duplikált hivatkozást szeretnél elrejteni, adj hozzá tabindex="-1" tulajdonságot is.', LINK_IMAGE_NO_ALT_TEXT: 'A linkben lévő kép dekoratívnak van jelölve, és nincs linkszöveg. Kérjük, adjon a képhez alt szöveget, amely leírja a link célját.', LINK_IMAGE_HAS_TEXT: 'A kép dekoratívként van megjelölve, bár a link a környező szöveget használja leíró címkeként.', - LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
                    Alt szöveg (%(altLength) karakterek): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
                    Alt szöveg: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
                    Alt szöveg: %(altText)
                    Link címke: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
                    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
                    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
                    Tudjon meg többet: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
                    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
                    További információ: alt versus figcaption.
                    Alt szöveg: %(altText)', + LINK_IMAGE_LONG_ALT: 'A linkelt kép Alt szöveges leírása túl hosszú. A linkelt képek alt szövegének azt kell leírnia, hogy hová vezet a link, nem pedig a kép szó szerinti leírását. Figyeljen arra, hogy alt szövegként a linkelt oldal címét használja.
                    ALT %(altLength) Karakterek %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A kép linkje alt szöveget tartalmaz. Az alt szöveg leírja, hogy hová vezet a link? Figyeljen arra, hogy alt szövegként annak az oldalnak a címét használja, amelyre a link mutat.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'A kép linkje mind az alt szöveget, mind a környező linkszöveget tartalmazza. Ha ez a kép dekoratív, és egy másik oldalra mutató funkcionális linkként használják, fontolja meg a kép dekoratív vagy nullás megjelölését - a környező linkszövegnek elegendőnek kell lennie.
                    ALT %(ALT_TEXT)
                    Link címke %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja.
                    Bár feliratot adtunk meg, a képnek a legtöbb esetben alt szöveggel is rendelkeznie kell.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi található a képen.
                    • A feliratnak általában kontextust kell biztosítania, hogy a képet a környező tartalomhoz kapcsolja, vagy egy adott információra hívja fel a figyelmet.
                    Tudjon meg többet: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne használja pontosan ugyanazokat a szavakat az alt és a felirat szövegében. A képernyőolvasók kétszer fogják bemondani az információt.
                    • Az alt szövegnek tömör leírást kell adnia arról, hogy mi van a képen.
                    • A feliratnak általában kontextust kell nyújtania, hogy a képet a környező tartalomhoz kapcsolja, vagy felhívja a figyelmet egy adott információra.
                    További információ: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A kép dekoratívnak van jelölve, és a segítő technológia figyelmen kívül hagyja. Ha a kép történetet, hangulatot vagy fontos információt közvetít - mindenképpen adjon hozzá alt szöveget.', - IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
                    Alt szöveg (%(altLength) karakterek): %(altText)', - IMAGE_PASS: 'Alt szöveg: %(altText)', + IMAGE_ALT_TOO_LONG: 'Az Alt szöveges leírás túl hosszú. Az Alt szövegnek tömörnek, mégis értelmesnek kell lennie, mint egy tweet (kb. 100 karakter). Ha összetett képről vagy grafikonról van szó, fontolja meg, hogy a kép hosszú leírását az alatta lévő szövegben vagy egy harmonika komponensben helyezze el.
                    ALT %(altLength) Karakterek %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'A képgombból hiányzik az alt szöveg. Kérjük, adjon hozzá alt szöveget, hogy elérhető nevet adjon. Például: Keresés vagy Submit.', LABELS_INPUT_RESET_MESSAGE: 'A visszaállító gombokat nem szabad használni, hacsak nem kifejezetten szükséges, mert könnyen aktiválhatók tévedésből.
                    Tipp! Tudja meg, hogy a A visszaállítás és a törlés gombok miért jelentenek használhatósági problémát.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
                    Bemeneti címke: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A bemenetnek elérhető neve van, de kérjük, gondoskodjon arról, hogy a címke is látható legyen.
                    Bemeneti címke %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Adjon hozzá egy for attribútumot a címkéhez, amely megfelel a bemenet id azonosítójának.
                    Ennek a bemenetnek az azonosítója a következő: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Ehhez a bemenethez nincs címke társítva. Kérjük, adjon hozzá egy id-t ehhez a bemenethez, és adjon hozzá egy megfelelő for attribútumot a címkéhez.', EMBED_VIDEO: 'Kérjük, gondoskodjon arról, hogy minden videó feliratozással legyen ellátva. A feliratozás biztosítása minden hang- és videotartalomhoz kötelező A-szintű követelmény. A feliratozás a siket vagy nagyothalló embereket támogatja.', EMBED_AUDIO: 'Kérjük, gondoskodjon arról, hogy minden podcasthoz átiratot adjon. A hanganyag átiratának megadása kötelező A-szintű követelmény. Az átiratok a siket/süket vagy nagyothalló embereket támogatják, de mindenki számára hasznosak lehetnek. Fontolja meg az átirat elhelyezését alul vagy egy harmonika panelen belül.', EMBED_DATA_VIZ: 'Az ilyen adatvizualizációs widgetek gyakran problémát jelentenek azok számára, akik billentyűzetet vagy képernyőolvasót használnak a navigáláshoz, és jelentős nehézségeket okozhatnak a gyengén látók vagy színvakok számára. Javasoljuk, hogy ugyanezt az információt alternatív (szöveges vagy táblázatos) formátumban adjuk meg a widget alatt.
                    Tudjon meg többet a komplex képekről.', - EMBED_MISSING_TITLE: 'A beágyazott tartalomnak olyan hozzáférhető névre van szüksége, amely leírja a tartalmát. Kérjük, adjon meg egy egyedi title vagy aria-label attribútumot a iframe elemen. Tudjon meg többet a iFrames.-ről.', + EMBED_MISSING_TITLE: 'A beágyazott tartalomhoz hozzáférhető névre van szükség, amely leírja annak tartalmát. Kérjük, adjon meg egyedi title vagy aria-label attribútumot az iframe elemen. További információkért látogasson el ide: iFrame-ek.', EMBED_GENERAL_WARNING: 'Beágyazott tartalom ellenőrzése nem lehetséges. Kérjük, győződjön meg róla, hogy a képek alt szöveggel, a videók felirattal, a szöveg megfelelő kontraszttal és az interaktív komponensek billentyűzettel elérhetőek.', EMBED_UNFOCUSABLE: 'Azoknak a <iframe>-nek, amelyek nem fókuszálható elemekkel rendelkeznek, nem kell tabindex="-1" tulajdonságot rendelni. A beágyazott tartalom nem lesz billentyűzettel elérhető.', - QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
                    Ez a link a következőre mutat:
                    %(el)', + QA_BAD_LINK: 'Rossz linket találtunk. Úgy tűnik, hogy a link egy fejlesztői környezetre mutat.
                    Ez a link a következőre mutat:
                    %(LINK)', QA_IN_PAGE_LINK: 'Sérült azonos oldalú link. A hivatkozás célja nem egyezik meg egyetlen elemmel sem ezen az oldalon.', QA_BAD_ITALICS: 'A vastag és dőlt betűs címkéknek szemantikai jelentésük van, és nem szabad egész bekezdések kiemelésére használni őket. A félkövérrel kiemelt szöveget egy szó vagy kifejezés erős kiemelésére kell használni. A dőlt betűt a tulajdonnevek (pl. könyv- és cikkcímek), idegen szavak, idézőjelek kiemelésére kell használni. A hosszú idézeteket blokkidézetként kell formázni.', QA_PDF: 'Nem lehet ellenőrizni a PDF-ek hozzáférhetőségét. A PDF-ek webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. A PDF-ek gyakran tartalmaznak problémákat a képernyőolvasót használók (hiányzó szerkezeti címkék vagy hiányzó űrlapmező-címkék) és a gyengén látók (a szöveg nagyításkor nem folyik vissza) számára.
                    • Ha ez egy űrlap, fontolja meg egy hozzáférhető HTML űrlap használatát alternatívaként.
                    • Ha ez egy dokumentum, fontolja meg a weboldallá alakítását.
                    Máskülönben ellenőrizze a PDF hozzáférhetőségét az Acrobat DC-ben.Megközelíthetőségét az PDF-ben..', - QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', + QA_DOCUMENT: 'Nem lehet ellenőrizni a dokumentum hozzáférhetőségét. A hivatkozott dokumentumok webes tartalomnak minősülnek, és azokat is hozzáférhetővé kell tenni. Kérjük, kézzel ellenőrizze a dokumentumot. .', QA_PAGE_LANGUAGE: 'Az oldal nyelve nincs megadva! Kérjük, declare language on HTML tag.', QA_PAGE_TITLE: 'Hiányzik az oldal címe! Kérjük, adjon meg egy oldal címet.', - QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(sanitizedText)

                    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', - QA_FAKE_HEADING: 'Ez egy címszó? %(boldtext)
                    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', + QA_BLOCKQUOTE_MESSAGE: 'Ez egy címszó? %(TEXT)
                    A blokkos idézőjeleket csak idézőjeleknél kell használni. Ha ez egy fejlécnek szánja, akkor ezt a blokkidézetet változtassa meg egy szemantikus fejlécre (pl. Fejléc 2 vagy Fejléc 3).', + QA_FAKE_HEADING: 'Ez egy címszó? %(TEXT)
                    Egy félkövér vagy nagyméretű szövegsor címnek tűnhet, de a képernyőolvasót használó személy nem tudja megállapítani, hogy ez fontos, vagy nem tud a tartalmára ugrani. A félkövér vagy nagyméretű szöveg soha nem helyettesítheti a szemantikus címsorokat (Címsor 2-től a Címsor 6-ig).', QA_SHOULD_BE_LIST: 'Megpróbál listát készíteni? Lehetséges listaelemet találtunk: %(firstPrefix)
                    Győződjön meg róla, hogy szemantikus listákat használ, és használja helyette a felsorolás- vagy számformázó gombokat. Szemantikus lista használata esetén a segédtechnológiák képesek olyan információkat közvetíteni, mint az elemek teljes száma és az egyes elemek relatív pozíciója a listában. További információ a szemantikus listákról.', QA_UPPERCASE_WARNING: 'Találtam minden nagybetűt. Egyes képernyőolvasók a csupa nagybetűs szöveget betűszónak értelmezhetik, és minden egyes betűt külön-külön olvasnak. Ezenkívül egyesek nehezebben olvashatónak találják a csupa nagybetűs szöveget, és úgy tűnhet, mintha kiabálnának.', QA_DUPLICATE_ID: 'Találtunk duplikált azonosítót. A duplikált azonosító hibák köztudottan problémákat okoznak a segítő technológiák számára, amikor azok megpróbálnak interakcióba lépni a tartalommal.
                    Kérjük, távolítsa el vagy változtassa meg a következő azonosítót: %(id)', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Hiányzó táblázatfejlécek! A hozzáférhető táblázatokhoz olyan HTML-jelölésre van szükség, amely jelzi a fejléccellákat és az adatcellákat, amelyek meghatározzák a kapcsolatukat. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. A táblázatokat csak táblázatos adatokhoz szabad használni.
                    Tudjon meg többet a hozzáférhető táblázatokról.', TABLES_SEMANTIC_HEADING: 'Az olyan szemantikus címsorokat, mint a Heading 2 vagy Heading 3, csak a tartalmi részeknél szabad használni; nem a HTML táblázatokban. A táblázatcímeket ehelyett a <th> elemmel jelezze.
                    Tudjon meg többet a elérhető táblázatokról.', TABLES_EMPTY_HEADING: 'Üres asztali fejlécet találtunk! A táblázat fejlécének soha nem szabad üresnek lennie. Fontos a sor- és/vagy oszlopfejlécek kijelölése a kapcsolatuk érzékeltetése érdekében. Ez az információ kontextust biztosít a segítő technológiát használó emberek számára. Ne feledje, hogy a táblázatok csak táblázatos adatokhoz használhatók.
                    Tudjon meg többet a elérhető táblázatokról.', - CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    A kontrasztarány %(cratio) a következő szöveg esetében: %(sanitizedText)', - CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kérem, vizsgálja felül: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány: %(cratio)', + CONTRAST_ERROR: 'Ez a szöveg nem elég kontrasztos a háttérrel szemben. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Ennek a szövegnek a kontrasztja ismeretlen, és kézzel kell ellenőrizni. Biztosítsa, hogy a szöveg és a háttér színei erősen kontrasztosak legyenek. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kérem, vizsgálja felül: %(TEXT)', + CONTRAST_INPUT_ERROR: 'A szövegnek ebben a bevitelben nincs elég kontrasztja a háttérrel. A kontrasztaránynak normál szöveg esetén legalább 4,5:1, nagyméretű szöveg esetén pedig 3:1 arányúnak kell lennie.
                    Kontrasztarány %(RATIO)', }, }; diff --git a/docs/assets/js/lang/id.js b/docs/assets/js/lang/id.js index fc52f1be..d19ad00f 100644 --- a/docs/assets/js/lang/id.js +++ b/docs/assets/js/lang/id.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var id = { OFF: 'Mati', ALERT_TEXT: 'Waspada', ALERT_CLOSE: 'Tutup', - OUTLINE: 'Garis Besar Halaman', + OUTLINE: 'Halaman', + ALT: 'ALT', + IMAGES: 'Gambar', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'Tidak ada gambar ditemukan.', + DECORATIVE: 'Dekoratif', + MISSING: 'Hilang', PAGE_ISSUES: 'Masalah Halaman', SETTINGS: 'Pengaturan', CONTRAST: 'Kontras', @@ -41,7 +47,7 @@ var id = { PANEL_ICON_WARNINGS: 'peringatan ditemukan.', PANEL_ICON_TOTAL: 'total masalah yang ditemukan.', NOT_VISIBLE_ALERT: 'Item yang ingin Anda lihat tidak terlihat; item tersebut mungkin tersembunyi atau berada di dalam komponen akordeon atau tab. Berikut ini adalah pratinjau:', - ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', + ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', HEADING_NOT_VISIBLE_ALERT: 'Judul tidak terlihat; judul mungkin tersembunyi atau berada di dalam komponen akordeon atau tab.', SKIP_TO_PAGE_ISSUES: 'Loncat ke Halaman Masalah', CONSOLE_ERROR_MESSAGE: 'Maaf, ada masalah dengan pemeriksa aksesibilitas di halaman ini. Bisakah Anda melaporkannya melalui formulir ini atau di GitHub?', @@ -148,11 +154,11 @@ var id = { LANG_DIFFICULT: 'Sulit', LANG_FAIRLY_DIFFICULT: 'Cukup sulit', LANG_GOOD: 'Bagus.', - READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', + READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Konten tidak cukup untuk menghitung skor keterbacaan.', HEADING_NON_CONSECUTIVE_LEVEL: 'Level heading yang digunakan tidak berurutan. Judul tidak boleh melompati level, atau berpindah dari Judul %(prevLevel) ke Judul %(level).', HEADING_EMPTY: 'Judul kosong ditemukan! Untuk memperbaikinya, hapus baris ini atau ubah formatnya dari Header %(level) ke Normal atau Paragraph.', - HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
                    Jumlah karakter: %(headingLength)', + HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
                    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Judul pertama pada halaman biasanya adalah Heading 1 atau Heading 2. Heading 1 harus menjadi awal dari bagian konten utama, dan merupakan judul utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Heading.', HEADING_MISSING_ONE: 'Heading 1. Heading 1 seharusnya menjadi awal dari area konten utama, dan merupakan heading utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Judul.', HEADING_EMPTY_WITH_IMAGE: 'Judul tidak memiliki teks, namun berisi gambar. Jika ini bukan judul, ubah formatnya dari Judul %(level) ke Normal atau Paragraf. Jika tidak, tambahkan teks alt ke gambar jika tidak bersifat dekoratif.', @@ -161,65 +167,65 @@ var id = { LINK_EMPTY: 'Hapus tautan kosong tanpa teks apa pun.', LINK_EMPTY_LABELLEDBY: 'Tautan memiliki nilai untuk aria-labelledby yang kosong atau tidak cocok dengan nilai atribut id dari elemen lain di halaman.', LINK_EMPTY_LINK_NO_LABEL: 'Tautan tidak memiliki teks yang dapat dilihat oleh pembaca layar dan teknologi bantuan lainnya. Untuk memperbaiki:
                    • Tambahkan beberapa teks ringkas yang menjelaskan ke mana tautan tersebut membawa Anda.
                    • Jika tautan tersebut adalah tautan ikon atau SVG, kemungkinan besar tautan tersebut tidak memiliki label deskriptif.
                    • Jika Anda merasa tautan tersebut merupakan kesalahan akibat bug salin/tempel, pertimbangkan untuk menghapusnya.
                    ', - LINK_LABEL: 'Label tautan: %(sanitizedText)', - LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(error)
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', - LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(error)
                    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
                    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
                    ', - LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', + LINK_LABEL: 'Label tautan %(TEXT)', + LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(ERROR)
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', + LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(ERROR)
                    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
                    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
                    ', + LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', LINK_DOI: 'Untuk halaman web atau sumber daya yang hanya tersedia secara online, Panduan Gaya APA merekomendasikan penggunaan pranala deskriptif dengan membungkus URL atau DOI karya di sekeliling judulnya. URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit dipahami saat diakses dengan teknologi bantu.', - NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan
                    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', - FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
                    Contoh: Laporan Eksekutif (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(sanitizedText)', + NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan.
                    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', + FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
                    Contoh: Laporan Eksekutif (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Gambar digunakan sebagai tautan dengan teks di sekitarnya, meskipun atribut alt harus ditandai sebagai dekoratif atau nol.', MISSING_ALT_LINK_MESSAGE: 'Gambar digunakan sebagai tautan tetapi tidak memiliki teks alt! Pastikan teks alt menjelaskan ke mana tautan tersebut membawa Anda.', MISSING_ALT_MESSAGE: 'Teks alt yang hilang! Jika gambar menyampaikan suatu cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar tersebut.', - LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(altText)', - ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Tautan memiliki aria-hidden="true" tetapi masih dapat difokuskan menggunakan keyboard. Jika Anda bermaksud menyembunyikan tautan yang redundan atau duplikat, tambahkan juga tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Gambar di dalam tautan ditandai sebagai dekoratif dan tidak ada teks tautan. Tambahkan teks alt ke gambar yang menjelaskan tujuan tautan.', LINK_IMAGE_HAS_TEXT: 'Gambar ditandai sebagai dekoratif, meskipun tautannya menggunakan teks di sekelilingnya sebagai label deskriptif.', - LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    Teks alt (%(panjang alt) karakter):%(altText)', - LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
                    Alt text: %(altText)
                    Label tautan: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
                    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.
                    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
                    ALT %(ALT_TEXT)
                    Label tautan %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
                    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk menambahkan teks alternatif.', - IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
                    Teks alt (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Tombol gambar tidak memiliki teks alt. Tambahkan teks alt untuk memberikan nama yang dapat diakses. Sebagai contoh: Cari atau Kirim.', LABELS_INPUT_RESET_MESSAGE: 'Tombol Reset sebaiknya tidak digunakan kecuali jika secara khusus diperlukan karena mudah diaktifkan secara tidak sengaja.
                    Tip! Pelajari mengapa tombol Reset dan Batal menimbulkan masalah dalam hal kegunaan.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
                    Label masukan: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
                    ID untuk input ini adalah: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
                    Label masukan %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
                    ID untuk input ini adalah: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', EMBED_VIDEO: 'Pastikan semua video memiliki teks tertutup. Menyediakan teks untuk semua konten audio dan video adalah persyaratan Level A wajib. Teks mendukung orang-orang yang tuli atau sulit mendengar.', EMBED_AUDIO: 'Pastikan untuk menyediakan transkrip untuk semua podcast. Menyediakan transkrip untuk konten audio adalah persyaratan Level A wajib. Transkrip membantu orang-orang yang tuli atau sulit mendengar, tetapi dapat bermanfaat bagi semua orang. Pertimbangkan untuk menempatkan transkrip di bawah atau di dalam panel akordeon.', - EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
                    Pelajari lebih lanjut tentang gambar kompleks.', - EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', - EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang memadai, dan komponen interaktif dapat diakses dengan keyboard.', + EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
                    Pelajari lebih lanjut tentang gambar kompleks.', + EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', + EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang cukup, dan komponen interaktif dapat diakses menggunakan keyboard. Pelajari lebih lanjut tentang aksesibilitas keyboard.', EMBED_UNFOCUSABLE: '<iframe> dengan elemen yang tidak dapat difokuskan seharusnya tidak memiliki tabindex="-1". Konten yang disematkan tidak akan dapat diakses menggunakan keyboard.', - QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
                    Tautan ini mengarah ke:
                    %(el)', + QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
                    Tautan ini mengarah ke:
                    %(LINK)', QA_IN_PAGE_LINK: 'Tautan dalam halaman rusak. Tujuan tautan tidak cocok dengan elemen apa pun di halaman ini.', QA_BAD_ITALICS: 'Tag cetak tebal dan miring memiliki makna semantik, dan tidak boleh digunakan untuk menyorot seluruh paragraf. Teks yang dicetak tebal harus digunakan untuk memberikan penekanan yang kuat pada sebuah kata atau frasa. Huruf miring harus digunakan untuk menyoroti nama diri (misalnya judul buku dan artikel), kata-kata asing, kutipan. Kutipan panjang harus diformat sebagai kutipan blok.', - QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
                    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
                    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
                    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', + QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
                    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
                    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
                    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', QA_DOCUMENT: 'Tidak dapat memeriksa aksesibilitas dokumen. Dokumen yang ditautkan dianggap sebagai konten web dan harus dapat diakses juga. Silakan tinjau dokumen ini secara manual. ', QA_PAGE_LANGUAGE: 'Bahasa halaman tidak dideklarasikan! Silakan deklarasikan bahasa pada tag HTML.', QA_PAGE_TITLE: 'Judul halaman tidak ada! Harap berikan judul halaman.', - QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(sanitizedText)
                    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', - QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(boldtext)
                    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', - QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
                    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', + QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(TEXT)
                    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', + QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(TEXT)
                    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', + QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
                    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', QA_UPPERCASE_WARNING: 'Ditemukan semua huruf besar. Beberapa pembaca layar mungkin menafsirkan teks huruf besar semua sebagai akronim dan akan membaca setiap huruf satu per satu. Selain itu, beberapa orang menganggap huruf besar lebih sulit dibaca dan mungkin memberikan kesan berteriak.', QA_DUPLICATE_ID: 'Ditemukan duplikat ID. Kesalahan ID duplikat diketahui dapat menyebabkan masalah pada teknologi bantuan saat mencoba berinteraksi dengan konten.
                    Harap hapus atau ubah ID berikut ini: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Teks yang digarisbawahi dapat membingungkan dengan tautan. Pertimbangkan untuk menggunakan gaya yang berbeda seperti <strong>kepentingan yang kuat</strong> atau <em>penekanan</em>.', QA_SUBSCRIPT_WARNING: 'Opsi pemformatan subskrip dan superskrip hanya boleh digunakan untuk mengubah posisi teks untuk konvensi atau standar tipografi. Opsi ini tidak boleh tidak digunakan hanya untuk tujuan presentasi atau penampilan. Memformat seluruh kalimat dapat menimbulkan masalah keterbacaan. Kasus penggunaan yang tepat akan mencakup menampilkan eksponen, angka ordinal seperti 4th, bukan keempat, dan rumus kimia (misalnya H2O).', TABLES_MISSING_HEADINGS: 'Header tabel yang hilang! Tabel yang dapat diakses membutuhkan markup HTML yang menunjukkan sel header dan sel data yang mendefinisikan hubungannya. Informasi ini memberikan konteks kepada orang yang menggunakan teknologi bantu. Tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio kontras adalah %(cratio) untuk teks berikut ini: %(sanitizedText)', - CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Tolong tinjau: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio kontras: %(cratio)', + TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio Kontras %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Tolong tinjau: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio Kontras %(RATIO)', }, }; diff --git a/docs/assets/js/lang/id.umd.js b/docs/assets/js/lang/id.umd.js index 8c7eb7a7..e57e87da 100644 --- a/docs/assets/js/lang/id.umd.js +++ b/docs/assets/js/lang/id.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Mati', ALERT_TEXT: 'Waspada', ALERT_CLOSE: 'Tutup', - OUTLINE: 'Garis Besar Halaman', + OUTLINE: 'Halaman', + ALT: 'ALT', + IMAGES: 'Gambar', + EDIT: 'Edit', + IMAGES_NOT_FOUND: 'Tidak ada gambar ditemukan.', + DECORATIVE: 'Dekoratif', + MISSING: 'Hilang', PAGE_ISSUES: 'Masalah Halaman', SETTINGS: 'Pengaturan', CONTRAST: 'Kontras', @@ -47,7 +53,7 @@ PANEL_ICON_WARNINGS: 'peringatan ditemukan.', PANEL_ICON_TOTAL: 'total masalah yang ditemukan.', NOT_VISIBLE_ALERT: 'Item yang ingin Anda lihat tidak terlihat; item tersebut mungkin tersembunyi atau berada di dalam komponen akordeon atau tab. Berikut ini adalah pratinjau:', - ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', + ERROR_MISSING_ROOT_TARGET: 'Halaman penuh diperiksa aksesibilitasnya karena area target %(root) tidak ada.', HEADING_NOT_VISIBLE_ALERT: 'Judul tidak terlihat; judul mungkin tersembunyi atau berada di dalam komponen akordeon atau tab.', SKIP_TO_PAGE_ISSUES: 'Loncat ke Halaman Masalah', CONSOLE_ERROR_MESSAGE: 'Maaf, ada masalah dengan pemeriksa aksesibilitas di halaman ini. Bisakah Anda melaporkannya melalui formulir ini atau di GitHub?', @@ -154,11 +160,11 @@ LANG_DIFFICULT: 'Sulit', LANG_FAIRLY_DIFFICULT: 'Cukup sulit', LANG_GOOD: 'Bagus.', - READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', + READABILITY_NO_P_OR_LI_MESSAGE: 'Tidak dapat menghitung skor keterbacaan. Tidak ditemukan paragraf <p> atau konten daftar <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Konten tidak cukup untuk menghitung skor keterbacaan.', HEADING_NON_CONSECUTIVE_LEVEL: 'Level heading yang digunakan tidak berurutan. Judul tidak boleh melompati level, atau berpindah dari Judul %(prevLevel) ke Judul %(level).', HEADING_EMPTY: 'Judul kosong ditemukan! Untuk memperbaikinya, hapus baris ini atau ubah formatnya dari Header %(level) ke Normal atau Paragraph.', - HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
                    Jumlah karakter: %(headingLength)', + HEADING_LONG: 'Judulnya panjang! Judul harus digunakan untuk mengatur konten dan menyampaikan struktur. Judul harus singkat, informatif, dan unik. Harap jaga agar judul kurang dari 160 karakter (tidak lebih dari satu kalimat).
                    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Judul pertama pada halaman biasanya adalah Heading 1 atau Heading 2. Heading 1 harus menjadi awal dari bagian konten utama, dan merupakan judul utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Heading.', HEADING_MISSING_ONE: 'Heading 1. Heading 1 seharusnya menjadi awal dari area konten utama, dan merupakan heading utama yang menjelaskan tujuan keseluruhan halaman. Pelajari lebih lanjut tentang Struktur Judul.', HEADING_EMPTY_WITH_IMAGE: 'Judul tidak memiliki teks, namun berisi gambar. Jika ini bukan judul, ubah formatnya dari Judul %(level) ke Normal atau Paragraf. Jika tidak, tambahkan teks alt ke gambar jika tidak bersifat dekoratif.', @@ -167,65 +173,65 @@ LINK_EMPTY: 'Hapus tautan kosong tanpa teks apa pun.', LINK_EMPTY_LABELLEDBY: 'Tautan memiliki nilai untuk aria-labelledby yang kosong atau tidak cocok dengan nilai atribut id dari elemen lain di halaman.', LINK_EMPTY_LINK_NO_LABEL: 'Tautan tidak memiliki teks yang dapat dilihat oleh pembaca layar dan teknologi bantuan lainnya. Untuk memperbaiki:
                    • Tambahkan beberapa teks ringkas yang menjelaskan ke mana tautan tersebut membawa Anda.
                    • Jika tautan tersebut adalah tautan ikon atau SVG, kemungkinan besar tautan tersebut tidak memiliki label deskriptif.
                    • Jika Anda merasa tautan tersebut merupakan kesalahan akibat bug salin/tempel, pertimbangkan untuk menghapusnya.
                    ', - LINK_LABEL: 'Label tautan: %(sanitizedText)', - LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(error)
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', - LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(error)
                    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
                    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
                    ', - LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', + LINK_LABEL: 'Label tautan %(TEXT)', + LINK_STOPWORD: 'Teks tautan mungkin tidak cukup deskriptif di luar konteks: %(ERROR)
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna. Hindari kata-kata umum seperti "klik di sini" atau "pelajari lebih lanjut"', + LINK_BEST_PRACTICES: 'Pertimbangkan untuk mengganti teks tautan: %(ERROR)
                    • "Klik di sini" yang berfokus pada mekanisme mouse, ketika banyak orang tidak menggunakan mouse atau mungkin melihat situs web ini di perangkat seluler. Pertimbangkan untuk menggunakan kata kerja lain yang berhubungan dengan tugas tersebut.
                    • Hindari penggunaan simbol HTML sebagai ajakan bertindak kecuali jika disembunyikan oleh teknologi bantu.
                    ', + LINK_URL: 'URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit untuk disimak dengan teknologi bantuan. Dalam kebanyakan kasus, lebih baik menggunakan teks yang dapat dibaca manusia daripada URL. URL pendek (seperti beranda situs) tidak masalah.
                    Tip! Teks tautan harus selalu jelas, unik, dan bermakna sehingga dapat dipahami di luar konteks.', LINK_DOI: 'Untuk halaman web atau sumber daya yang hanya tersedia secara online, Panduan Gaya APA merekomendasikan penggunaan pranala deskriptif dengan membungkus URL atau DOI karya di sekeliling judulnya. URL yang lebih panjang dan kurang dapat dipahami yang digunakan sebagai teks tautan mungkin sulit dipahami saat diakses dengan teknologi bantu.', - NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan
                    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', - FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
                    Contoh: Laporan Eksekutif (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(sanitizedText)', + NEW_TAB_WARNING: 'Tautan terbuka di tab atau jendela baru tanpa peringatan. Hal ini dapat membingungkan, terutama bagi orang yang mengalami kesulitan dalam memahami konten visual. Kedua, tidak selalu merupakan praktik yang baik untuk mengontrol pengalaman seseorang atau membuat keputusan untuk mereka. Tunjukkan bahwa tautan akan terbuka di jendela baru di dalam teks tautan.
                    Tip! Pelajari praktik terbaik: membuka tautan di jendela dan tab peramban baru.', + FILE_TYPE_WARNING: 'Tautan mengarah ke PDF atau file yang dapat diunduh (mis. MP3, Zip, Word Doc) tanpa peringatan. Tunjukkan jenis file di dalam teks tautan. Jika file berukuran besar, pertimbangkan untuk menyertakan ukuran file tersebut.
                    Contoh: Laporan Eksekutif (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Tautan memiliki teks yang sama dengan tautan lain, meskipun mengarah ke halaman yang berbeda. Beberapa tautan dengan teks yang sama dapat menyebabkan kebingungan bagi orang yang menggunakan pembaca layar. Pertimbangkan untuk membuat tautan berikut ini lebih deskriptif untuk membantu membedakannya dari tautan lain: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Gambar digunakan sebagai tautan dengan teks di sekitarnya, meskipun atribut alt harus ditandai sebagai dekoratif atau nol.', MISSING_ALT_LINK_MESSAGE: 'Gambar digunakan sebagai tautan tetapi tidak memiliki teks alt! Pastikan teks alt menjelaskan ke mana tautan tersebut membawa Anda.', MISSING_ALT_MESSAGE: 'Teks alt yang hilang! Jika gambar menyampaikan suatu cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar tersebut.', - LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(error).
                    Alt text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
                    Alt text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(error).
                    Alt text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(altText)', - ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(error)" mungkin berlebihan.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar. Hapus: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Teks alt non-deskripsi atau placeholder dalam gambar yang ditautkan ditemukan. Pastikan teks alt mendeskripsikan tujuan tautan, bukan deskripsi harfiah gambar. Ganti teks alt berikut ini: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan. Pastikan teks alt menjelaskan tujuan tautan, bukan deskripsi harfiah dari gambar.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Ekstensi file dalam teks alt ditemukan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk mendeskripsikan gambar. Hapus: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Teks alt non-deskripsi atau placeholder ditemukan. Ganti teks alt berikut dengan sesuatu yang lebih bermakna: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Teknologi bantuan sudah menunjukkan bahwa ini adalah gambar, jadi "%(ERROR)" mungkin berlebihan.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Tautan memiliki aria-hidden="true" tetapi masih dapat difokuskan menggunakan keyboard. Jika Anda bermaksud menyembunyikan tautan yang redundan atau duplikat, tambahkan juga tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Gambar di dalam tautan ditandai sebagai dekoratif dan tidak ada teks tautan. Tambahkan teks alt ke gambar yang menjelaskan tujuan tautan.', LINK_IMAGE_HAS_TEXT: 'Gambar ditandai sebagai dekoratif, meskipun tautannya menggunakan teks di sekelilingnya sebagai label deskriptif.', - LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    Teks alt (%(panjang alt) karakter):%(altText)', - LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
                    Alt text: %(altText)
                    Label tautan: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
                    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.
                    Alt text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Deskripsi teks alt pada gambar yang ditautkan terlalu panjang. Teks alt pada gambar yang ditautkan harus menjelaskan ke mana tautan tersebut membawa Anda, bukan deskripsi harfiah dari gambar tersebut. Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Tautan gambar berisi teks alt. Apakah teks alt menjelaskan ke mana tautan tersebut membawa Anda? Pertimbangkan untuk menggunakan judul halaman yang ditautkan sebagai teks alt.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Tautan gambar berisi teks alt dan teks tautan di sekitarnya. Jika gambar ini bersifat dekoratif dan digunakan sebagai tautan fungsional ke halaman lain, pertimbangkan untuk menandai gambar tersebut sebagai dekoratif atau nol - teks tautan di sekitarnya sudah cukup.
                    ALT %(ALT_TEXT)
                    Label tautan %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan.
                    Meskipun caption disediakan, gambar juga harus memiliki teks alt dalam banyak kasus.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada di dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Jangan gunakan kata-kata yang sama persis untuk teks alt dan teks keterangan. Pembaca layar akan mengumumkan informasi tersebut dua kali.
                    • Teks alt harus memberikan deskripsi ringkas tentang apa yang ada dalam gambar.
                    • Teks keterangan biasanya harus memberikan konteks untuk menghubungkan gambar kembali ke konten di sekitarnya, atau memberikan perhatian pada bagian informasi tertentu.
                    Pelajari lebih lanjut: alt versus keterangan gambar.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Gambar ditandai sebagai dekoratif dan akan diabaikan oleh teknologi bantuan. Jika gambar menyampaikan cerita, suasana hati, atau informasi penting - pastikan untuk menambahkan teks alternatif.', - IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
                    Teks alt (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Deskripsi teks alt terlalu panjang. Teks alt harus ringkas, namun bermakna seperti tweet (sekitar 100 karakter). Jika ini adalah gambar yang rumit atau grafik, pertimbangkan untuk meletakkan deskripsi gambar yang panjang dalam teks di bawah ini atau komponen akordeon.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Tombol gambar tidak memiliki teks alt. Tambahkan teks alt untuk memberikan nama yang dapat diakses. Sebagai contoh: Cari atau Kirim.', LABELS_INPUT_RESET_MESSAGE: 'Tombol Reset sebaiknya tidak digunakan kecuali jika secara khusus diperlukan karena mudah diaktifkan secara tidak sengaja.
                    Tip! Pelajari mengapa tombol Reset dan Batal menimbulkan masalah dalam hal kegunaan.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
                    Label masukan: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
                    ID untuk input ini adalah: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Input memiliki nama yang dapat diakses, meskipun pastikan ada label yang terlihat juga.
                    Label masukan %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan atribut untuk ke label yang sesuai dengan id input ini.
                    ID untuk input ini adalah: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'Tidak ada label yang terkait dengan input ini. Tambahkan id ke input ini, dan tambahkan atribut untuk yang sesuai ke label.', EMBED_VIDEO: 'Pastikan semua video memiliki teks tertutup. Menyediakan teks untuk semua konten audio dan video adalah persyaratan Level A wajib. Teks mendukung orang-orang yang tuli atau sulit mendengar.', EMBED_AUDIO: 'Pastikan untuk menyediakan transkrip untuk semua podcast. Menyediakan transkrip untuk konten audio adalah persyaratan Level A wajib. Transkrip membantu orang-orang yang tuli atau sulit mendengar, tetapi dapat bermanfaat bagi semua orang. Pertimbangkan untuk menempatkan transkrip di bawah atau di dalam panel akordeon.', - EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
                    Pelajari lebih lanjut tentang gambar kompleks.', - EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', - EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang memadai, dan komponen interaktif dapat diakses dengan keyboard.', + EMBED_DATA_VIZ: 'Widget visualisasi data seperti ini sering menjadi masalah bagi orang yang menggunakan keyboard atau pembaca layar untuk menavigasi, dan dapat menimbulkan kesulitan yang signifikan bagi orang yang memiliki penglihatan rendah atau buta warna. Disarankan untuk memberikan informasi yang sama dalam format alternatif (teks atau tabel) di bawah widget.
                    Pelajari lebih lanjut tentang gambar kompleks.', + EMBED_MISSING_TITLE: 'Konten yang disematkan memerlukan nama yang dapat diakses yang menjelaskan isinya. Berikan atribut judul atau label-aria yang unik pada elemen iframe. Pelajari lebih lanjut tentang iFrames.', + EMBED_GENERAL_WARNING: 'Tidak dapat memeriksa konten yang disematkan. Pastikan gambar memiliki teks alt, video memiliki keterangan, teks memiliki kontras yang cukup, dan komponen interaktif dapat diakses menggunakan keyboard. Pelajari lebih lanjut tentang aksesibilitas keyboard.', EMBED_UNFOCUSABLE: '<iframe> dengan elemen yang tidak dapat difokuskan seharusnya tidak memiliki tabindex="-1". Konten yang disematkan tidak akan dapat diakses menggunakan keyboard.', - QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
                    Tautan ini mengarah ke:
                    %(el)', + QA_BAD_LINK: 'Tautan buruk ditemukan. Tautan yang muncul mengarah ke lingkungan pengembangan.
                    Tautan ini mengarah ke:
                    %(LINK)', QA_IN_PAGE_LINK: 'Tautan dalam halaman rusak. Tujuan tautan tidak cocok dengan elemen apa pun di halaman ini.', QA_BAD_ITALICS: 'Tag cetak tebal dan miring memiliki makna semantik, dan tidak boleh digunakan untuk menyorot seluruh paragraf. Teks yang dicetak tebal harus digunakan untuk memberikan penekanan yang kuat pada sebuah kata atau frasa. Huruf miring harus digunakan untuk menyoroti nama diri (misalnya judul buku dan artikel), kata-kata asing, kutipan. Kutipan panjang harus diformat sebagai kutipan blok.', - QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
                    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
                    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
                    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', + QA_PDF: 'Tidak dapat memeriksa aksesibilitas PDF. PDF dianggap sebagai konten web dan harus dapat diakses juga. PDF sering kali mengandung masalah bagi orang yang menggunakan pembaca layar (tag struktural yang hilang atau label bidang formulir yang hilang) dan orang yang memiliki penglihatan rendah (teks tidak dapat dilihat ketika diperbesar).
                    • Jika ini adalah formulir, pertimbangkan untuk menggunakan formulir HTML yang dapat diakses sebagai alternatif.
                    • Jika ini adalah dokumen, pertimbangkan untuk mengonversinya menjadi halaman web.
                    Jika tidak, periksa PDF untuk aksesibilitas di Acrobat DC.', QA_DOCUMENT: 'Tidak dapat memeriksa aksesibilitas dokumen. Dokumen yang ditautkan dianggap sebagai konten web dan harus dapat diakses juga. Silakan tinjau dokumen ini secara manual. ', QA_PAGE_LANGUAGE: 'Bahasa halaman tidak dideklarasikan! Silakan deklarasikan bahasa pada tag HTML.', QA_PAGE_TITLE: 'Judul halaman tidak ada! Harap berikan judul halaman.', - QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(sanitizedText)
                    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', - QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(boldtext)
                    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', - QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
                    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', + QA_BLOCKQUOTE_MESSAGE: 'Apakah ini sebuah judul? %(TEXT)
                    Kutipan blok harus digunakan hanya untuk kutipan. Jika ini dimaksudkan sebagai judul, ubahlah tanda kutip blok ini menjadi judul semantik (misalnya Judul 2 atau Judul 3).', + QA_FAKE_HEADING: 'Apakah ini sebuah judul? %(TEXT)
                    Sebaris teks yang dicetak tebal atau besar mungkin terlihat seperti judul, namun seseorang yang menggunakan pembaca layar tidak dapat mengetahui bahwa teks tersebut penting atau langsung menuju ke isinya. Teks yang dicetak tebal atau besar tidak boleh menggantikan judul semantik (Judul 2 hingga Judul 6).', + QA_SHOULD_BE_LIST: 'Apakah Anda mencoba membuat daftar? Item daftar yang mungkin ditemukan: %(firstPrefix)
                    Pastikan untuk menggunakan daftar semantik dengan menggunakan tombol pemformatan poin atau angka. Saat menggunakan daftar semantik, teknologi bantuan dapat menyampaikan informasi seperti jumlah total item dan posisi relatif setiap item dalam daftar. Pelajari lebih lanjut tentang daftar semantik.', QA_UPPERCASE_WARNING: 'Ditemukan semua huruf besar. Beberapa pembaca layar mungkin menafsirkan teks huruf besar semua sebagai akronim dan akan membaca setiap huruf satu per satu. Selain itu, beberapa orang menganggap huruf besar lebih sulit dibaca dan mungkin memberikan kesan berteriak.', QA_DUPLICATE_ID: 'Ditemukan duplikat ID. Kesalahan ID duplikat diketahui dapat menyebabkan masalah pada teknologi bantuan saat mencoba berinteraksi dengan konten.
                    Harap hapus atau ubah ID berikut ini: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Teks yang digarisbawahi dapat membingungkan dengan tautan. Pertimbangkan untuk menggunakan gaya yang berbeda seperti <strong>kepentingan yang kuat</strong> atau <em>penekanan</em>.', QA_SUBSCRIPT_WARNING: 'Opsi pemformatan subskrip dan superskrip hanya boleh digunakan untuk mengubah posisi teks untuk konvensi atau standar tipografi. Opsi ini tidak boleh tidak digunakan hanya untuk tujuan presentasi atau penampilan. Memformat seluruh kalimat dapat menimbulkan masalah keterbacaan. Kasus penggunaan yang tepat akan mencakup menampilkan eksponen, angka ordinal seperti 4th, bukan keempat, dan rumus kimia (misalnya H2O).', TABLES_MISSING_HEADINGS: 'Header tabel yang hilang! Tabel yang dapat diakses membutuhkan markup HTML yang menunjukkan sel header dan sel data yang mendefinisikan hubungannya. Informasi ini memberikan konteks kepada orang yang menggunakan teknologi bantu. Tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', - CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio kontras adalah %(cratio) untuk teks berikut ini: %(sanitizedText)', - CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Tolong tinjau: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio kontras: %(cratio)', + TABLES_SEMANTIC_HEADING: 'Judul semantik seperti Heading 2 atau Heading 3 hanya boleh digunakan untuk bagian konten; tidak dalam tabel HTML. Tunjukkan judul tabel dengan menggunakan elemen <th>.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + TABLES_EMPTY_HEADING: 'Header tabel kosong ditemukan! Header tabel tidak boleh kosong. Penting untuk menentukan header baris dan/atau kolom untuk menyampaikan hubungan mereka. Informasi ini memberikan konteks kepada orang-orang yang menggunakan teknologi bantu. Harap diingat bahwa tabel harus digunakan hanya untuk data tabular.
                    Pelajari lebih lanjut tentang tabel yang dapat diakses.', + CONTRAST_ERROR: 'Teks ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio Kontras %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontras teks ini tidak diketahui dan perlu ditinjau secara manual. Pastikan teks dan latar belakang memiliki warna kontras yang kuat. Rasio kontras setidaknya 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Tolong tinjau: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teks dalam input ini tidak memiliki kontras yang cukup dengan latar belakang. Rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar.
                    Rasio Kontras %(RATIO)', }, }; diff --git a/docs/assets/js/lang/it.js b/docs/assets/js/lang/it.js index 1b813c89..b50a26b0 100644 --- a/docs/assets/js/lang/it.js +++ b/docs/assets/js/lang/it.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var it = { OFF: 'Spento', ALERT_TEXT: 'Allarme', ALERT_CLOSE: 'Chiudere', - OUTLINE: 'Schema della pagina', + OUTLINE: 'Schema', + ALT: 'ALT', + IMAGES: 'Immagini', + EDIT: 'Modifica', + IMAGES_NOT_FOUND: 'Nessuna immagine trovata.', + DECORATIVE: 'Decorativo', + MISSING: 'Mancante', PAGE_ISSUES: 'Problemi di pagina', SETTINGS: 'Impostazioni', CONTRAST: 'Contrasto', @@ -151,64 +157,64 @@ var it = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Non ci sono abbastanza contenuti per calcolare il punteggio di leggibilità.', HEADING_NON_CONSECUTIVE_LEVEL: 'È stato utilizzato un livello di intestazione non consecutivo. I titoli non devono mai saltare livelli o passare da Heading %(prevLevel) a Heading %(level).', HEADING_EMPTY: 'Titolo vuoto trovato! Per risolvere il problema, eliminare questa riga o cambiare il suo formato da Intonazione %(level) a Normale o Paragrafo.', - HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
                    Conteggio dei caratteri: %(headingLength)", + HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
                    %(HEADING_LENGTH) Caratteri", HEADING_FIRST: "La prima intestazione di una pagina dovrebbe essere di solito un'intestazione 1 o un'intestazione 2. L'intestazione 1 dovrebbe essere l'inizio della sezione principale del contenuto ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_MISSING_ONE: "Manca l'intestazione 1. L'intestazione 1 dovrebbe essere l'inizio dell'area di contenuto principale ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_EMPTY_WITH_IMAGE: "L'intestazione non ha testo, ma contiene un'immagine. Se non si tratta di un titolo, cambiarne il formato da Testamento %(level) a Normale o Paragrafo. Altrimenti, aggiungere un testo alt all'immagine, se non è decorativo.", PANEL_HEADING_MISSING_ONE: "Manca l'intestazione 1!", PANEL_NO_HEADINGS: 'Nessun titolo trovato.', LINK_EMPTY: 'Rimuovere i link vuoti senza testo.', - LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributoid di un altro elemento nella pagina.', + LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributo id di un altro elemento nella pagina.', LINK_EMPTY_LINK_NO_LABEL: "Il link non ha un testo distinguibile che sia visibile agli screen reader e ad altre tecnologie assistive. Per risolvere il problema:
                    • Aggiungi un testo conciso che descriva dove porta il link.
                    • Se si tratta di un collegamento a un'icona o a un SVG, è probabile che manchi un'etichetta descrittiva.
                    • Se pensi che questo link sia un errore dovuto a un bug di copia/incolla, prendi in considerazione l'idea di cancellarlo.
                    ", - LINK_LABEL: 'Etichetta del link: %(sanitizedText)', - LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(error)
                    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', - LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(error)
                    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
                    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
                    ", - LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
                    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", + LINK_LABEL: 'Etichetta del link %(TEXT)', + LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(ERROR)
                    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', + LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(ERROR)
                    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
                    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
                    ", + LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
                    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", LINK_DOI: 'Per le pagine web o le risorse solo online, la guida di stile dell\'APA raccomanda di utilizzare link descrittivi avvolgendo l\'URL o il DOI dell\'opera intorno al suo titolo. URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive.', - NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link
                    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", - FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
                    Esempio: Relazione esecutiva (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
                    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(sanitizedText)', + NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link.
                    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", + FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
                    Esempio: Relazione esecutiva (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
                    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: "L'immagine viene utilizzata come link con testo circostante, anche se l'attributo alt dovrebbe essere contrassegnato come decorativo o nullo.", MISSING_ALT_LINK_MESSAGE: "L'immagine viene utilizzata come link ma manca il testo alt! Assicurarsi che il testo alt descriva dove porta il link.", MISSING_ALT_MESSAGE: "Manca il testo alt! Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine.", - LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(error).
                    Testo alt: %(altText)", - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(altText)", - LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
                    Testo alt: %(altText)", - ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(error).
                    Testo alt: %(altText)", - ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(altText)', - ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante.
                    Testo alternativo: %(altText)", + LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(ERROR).
                    ALT %(ALT_TEXT)", + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(ALT_TEXT)", + LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
                    ALT %(ALT_TEXT)", + ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(ERROR).
                    ALT %(ALT_TEXT)", + ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante.
                    ALT %(ALT_TEXT)", LINK_HIDDEN_FOCUSABLE: 'Il link ha aria-hidden="true" ma è comunque selezionabile dalla tastiera. Se hai l\'intenzione di nascondere un link ridondante o duplicato, aggiungi anche tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: "L'immagine all'interno del link è contrassegnata come decorativa e non c'è testo di collegamento. Aggiungere all'immagine un testo alt che descriva la destinazione del link.", LINK_IMAGE_HAS_TEXT: "L'immagine è contrassegnata come decorativa, anche se il link utilizza il testo circostante come etichetta descrittiva.", - LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
                    Testo alt (%(altLength) caratteri): %(altText)", - LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
                    Testo alt: %(altText)", - LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
                    Testo alt: %(altText)
                    Etichetta del link: %(sanitizedText)", - IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
                    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.", - IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.
                    Testo alt: %(altText)", + LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
                    ALT %(altLength) Caratteri %(ALT_TEXT)", + LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
                    ALT %(ALT_TEXT)", + LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
                    ALT %(ALT_TEXT)
                    Etichetta del link %(TEXT)", + IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
                    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.", + IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.
                    ALT %(ALT_TEXT)", IMAGE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di aggiungere il testo alt.", - IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
                    Testo alt (%(altLength) caratteri): %(altText)", - IMAGE_PASS: 'Testo alt: %(altText)', + IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
                    ALT %(altLength) Caratteri %(ALT_TEXT)", + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: "Il pulsante dell'immagine manca del testo alt. Aggiungere il testo alt per fornire un nome accessibile. Ad esempio: Cerca o Invio.", LABELS_INPUT_RESET_MESSAGE: 'I pulsanti di reset non dovrebbero essere utilizzati se non specificamente necessari, perché è facile che si attivino per errore.
                    Tip! Scoprite perché i pulsanti Reset e Cancel pongono problemi di usabilità.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
                    Etichetta input: %(sanitizedText)", + LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
                    Etichetta input %(TEXT)", LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un attributo for all'etichetta che corrisponda all'id di questo input.
                    L'ID di questo input è: id="%(id)".", LABELS_MISSING_LABEL_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un id a questo input e aggiungere un attributo for corrispondente all'etichetta.", EMBED_VIDEO: 'Assicuratevi che tutti i video abbiano le didascalie chiuse. Fornire didascalie per tutti i contenuti audio e video è un requisito obbligatorio di livello A. Le didascalie aiutano le persone non udenti o con problemi di udito.', EMBED_AUDIO: 'Assicuratevi di fornire una trascrizione per tutti i podcast. Fornire trascrizioni per i contenuti audio è un requisito obbligatorio di Livello A. Le trascrizioni sono di supporto alle persone sorde o con problemi di udito, ma possono essere utili a tutti. Considerate la possibilità di inserire la trascrizione in basso o in un pannello a fisarmonica.', EMBED_DATA_VIZ: 'I widget di visualizzazione dei dati come questo sono spesso problematici per le persone che utilizzano una tastiera o uno screen reader per navigare e possono presentare notevoli difficoltà per le persone ipovedenti o daltoniche. Si consiglia di fornire le stesse informazioni in un formato alternativo (testo o tabella) sotto il widget.
                    Per saperne di più su immagini complesse.', - EMBED_MISSING_TITLE: "Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull'elemento iframe. Per saperne di più su iFrames.", + EMBED_MISSING_TITLE: 'Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull\'elemento iframe. Per saperne di più su iFrames.', EMBED_GENERAL_WARNING: 'Impossibile controllare il contenuto incorporato. Assicuratevi che le immagini abbiano un testo alt, che i video abbiano didascalie, che il testo abbia un contrasto sufficiente e che i componenti interattivi siano accessibili alla tastiera.', EMBED_UNFOCUSABLE: 'Gli <iframe> con elementi non focalizzabili non devono avere tabindex="-1". Il contenuto incorporato non sarà accessibile tramite tastiera.', - QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
                    Questo link punta a:
                    %(el)', + QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
                    Questo link punta a:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link interno rotto. Il target del link non corrisponde a nessun elemento di questa pagina.', QA_BAD_ITALICS: 'I tag grassetto e corsivo hanno un significato semantico e non devono essere usati per evidenziare interi paragrafi. Il testo in grassetto deve essere usato per dare un forte enfasi su una parola o una frase. Il corsivo deve essere usato per evidenziare nomi propri (ad esempio, titoli di libri e articoli), parole straniere e citazioni. Le citazioni lunghe devono essere formattate come blockquote.', - QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
                    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
                    • Se si tratta di un documento, considerare la conversione in una pagina web.
                    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", + QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
                    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
                    • Se si tratta di un documento, considerare la conversione in una pagina web.
                    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", QA_DOCUMENT: "Impossibile verificare l'accessibilità del documento. I documenti collegati sono considerati contenuti web e devono essere resi accessibili. Esaminare manualmente il documento. ", QA_PAGE_LANGUAGE: 'Lingua della pagina non dichiarata! Si prega di dichiarare la lingua nel tag HTML.', QA_PAGE_TITLE: 'Titolo della pagina mancante! Si prega di fornire un titolo della pagina.', - QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(sanitizedText)
                    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", - QA_FAKE_HEADING: 'È un titolo? %(boldtext)
                    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', - QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
                    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", + QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(TEXT)
                    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", + QA_FAKE_HEADING: 'È un titolo? %(TEXT)
                    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', + QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
                    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", QA_UPPERCASE_WARNING: "Trovato tutto maiuscolo. Alcuni screen reader possono interpretare il testo tutto maiuscolo come un acronimo e leggono ogni lettera singolarmente. Inoltre, per alcune persone il testo tutto maiuscolo è più difficile da leggere e può dare l'impressione di urlare.", QA_DUPLICATE_ID: 'Trovato ID duplicato. Gli errori di ID duplicato sono noti per causare problemi alle tecnologie assistive quando cercano di interagire con i contenuti.
                    Si prega di rimuovere o modificare il seguente ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Il testo sottolineato può essere confuso con i link. Considerate di usare uno stile diverso, come <strong>forte importanza</strong> o <em>emphasis</em>.', @@ -216,9 +222,9 @@ var it = { TABLES_MISSING_HEADINGS: 'Intestazioni di tabella mancanti! Le tabelle accessibili necessitano di un markup HTML che indichi le celle di intestazione e le celle di dati e che definisca la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Le tabelle devono essere utilizzate solo per i dati tabellari.
                    Per saperne di più su tabelle accessibili.', TABLES_SEMANTIC_HEADING: "Le intestazioni semantiche come Heading 2 o Heading 3 devono essere utilizzate solo per le sezioni di contenuto; non nelle tabelle HTML. Indicare le intestazioni delle tabelle utilizzando invece l'elemento <th>.
                    Per saperne di più su tabelle accessibili.", TABLES_EMPTY_HEADING: "Trovato un'intestazione di tabella vuota! Le intestazioni delle tabelle non devono mai essere vuote. È importante designare le intestazioni di riga e/o di colonna per indicare la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Tenete presente che le tabelle devono essere utilizzate solo per i dati tabellari.
                    Per saperne di più su tabelle accessibili.", - CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Il rapporto di contrasto è %(cratio) per il seguente testo: %(sanitizedText)', - CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Per favore, controllare: %(sanitizedText)', - CONTRAST_INPUT_ERROR: "Il testo all'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
                    Rapporto di contrasto: %(cratio)", + CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Rapporto di contrasto %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Per favore, controllare: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Il testo all\'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
                    Rapporto di contrasto %(RATIO)', }, }; diff --git a/docs/assets/js/lang/it.umd.js b/docs/assets/js/lang/it.umd.js index a977061e..a267cfc6 100644 --- a/docs/assets/js/lang/it.umd.js +++ b/docs/assets/js/lang/it.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Spento', ALERT_TEXT: 'Allarme', ALERT_CLOSE: 'Chiudere', - OUTLINE: 'Schema della pagina', + OUTLINE: 'Schema', + ALT: 'ALT', + IMAGES: 'Immagini', + EDIT: 'Modifica', + IMAGES_NOT_FOUND: 'Nessuna immagine trovata.', + DECORATIVE: 'Decorativo', + MISSING: 'Mancante', PAGE_ISSUES: 'Problemi di pagina', SETTINGS: 'Impostazioni', CONTRAST: 'Contrasto', @@ -157,64 +163,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Non ci sono abbastanza contenuti per calcolare il punteggio di leggibilità.', HEADING_NON_CONSECUTIVE_LEVEL: 'È stato utilizzato un livello di intestazione non consecutivo. I titoli non devono mai saltare livelli o passare da Heading %(prevLevel) a Heading %(level).', HEADING_EMPTY: 'Titolo vuoto trovato! Per risolvere il problema, eliminare questa riga o cambiare il suo formato da Intonazione %(level) a Normale o Paragrafo.', - HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
                    Conteggio dei caratteri: %(headingLength)", + HEADING_LONG: "L'intestazione è lunga! I titoli devono essere utilizzati per organizzare il contenuto e trasmettere la struttura. Devono essere brevi, informativi e unici. I titoli devono essere inferiori a 160 caratteri (non più di una frase).
                    %(HEADING_LENGTH) Caratteri", HEADING_FIRST: "La prima intestazione di una pagina dovrebbe essere di solito un'intestazione 1 o un'intestazione 2. L'intestazione 1 dovrebbe essere l'inizio della sezione principale del contenuto ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_MISSING_ONE: "Manca l'intestazione 1. L'intestazione 1 dovrebbe essere l'inizio dell'area di contenuto principale ed è l'intestazione principale che descrive lo scopo generale della pagina. Per saperne di più Struttura delle intestazioni.", HEADING_EMPTY_WITH_IMAGE: "L'intestazione non ha testo, ma contiene un'immagine. Se non si tratta di un titolo, cambiarne il formato da Testamento %(level) a Normale o Paragrafo. Altrimenti, aggiungere un testo alt all'immagine, se non è decorativo.", PANEL_HEADING_MISSING_ONE: "Manca l'intestazione 1!", PANEL_NO_HEADINGS: 'Nessun titolo trovato.', LINK_EMPTY: 'Rimuovere i link vuoti senza testo.', - LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributoid di un altro elemento nella pagina.', + LINK_EMPTY_LABELLEDBY: 'Il link ha un valore per aria-labelledby che è vuoto o non corrisponde al valore dell\'attributo id di un altro elemento nella pagina.', LINK_EMPTY_LINK_NO_LABEL: "Il link non ha un testo distinguibile che sia visibile agli screen reader e ad altre tecnologie assistive. Per risolvere il problema:
                    • Aggiungi un testo conciso che descriva dove porta il link.
                    • Se si tratta di un collegamento a un'icona o a un SVG, è probabile che manchi un'etichetta descrittiva.
                    • Se pensi che questo link sia un errore dovuto a un bug di copia/incolla, prendi in considerazione l'idea di cancellarlo.
                    ", - LINK_LABEL: 'Etichetta del link: %(sanitizedText)', - LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(error)
                    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', - LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(error)
                    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
                    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
                    ", - LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
                    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", + LINK_LABEL: 'Etichetta del link %(TEXT)', + LINK_STOPWORD: 'Il testo del link potrebbe non essere abbastanza descrittivo fuori dal contesto: %(ERROR)
                    Tip! Il testo del link deve essere sempre chiaro, unico e significativo. Evitate parole comuni come "clicca qui" o "per saperne di più"', + LINK_BEST_PRACTICES: "Si consideri la possibilità di sostituire il testo del link: %(ERROR)
                    • "Clicca qui" pone l'attenzione sulla meccanica del mouse, quando molte persone non usano il mouse o potrebbero visualizzare il sito web su un dispositivo mobile. Considerate l'uso di un verbo diverso che si riferisca al compito.
                    • Evitate di usare i simboli HTML come richiami alle azioni, a meno che non siano nascosti alle tecnologie assistive.
                    ", + LINK_URL: "URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive. Nella maggior parte dei casi, è meglio utilizzare un testo leggibile dall'uomo al posto dell'URL. Gli URL brevi (come la homepage di un sito) vanno bene.
                    Tip! Il testo del link deve sempre essere chiaro, unico e significativo, in modo da poter essere compreso anche fuori dal contesto.", LINK_DOI: 'Per le pagine web o le risorse solo online, la guida di stile dell\'APA raccomanda di utilizzare link descrittivi avvolgendo l\'URL o il DOI dell\'opera intorno al suo titolo. URL più lunghi e meno comprensibili utilizzati come testo di collegamento potrebbero essere difficili da comprendere quando si accede con tecnologie assistive.', - NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link
                    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", - FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
                    Esempio: Relazione esecutiva (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
                    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(sanitizedText)', + NEW_TAB_WARNING: "Il link si apre in una nuova scheda o finestra senza preavviso. Ciò può disorientare, soprattutto le persone che hanno difficoltà a percepire i contenuti visivi. In secondo luogo, non è sempre una buona pratica controllare l'esperienza di una persona o prendere decisioni al posto suo. Indicate che il link si apre in una nuova finestra all'interno del testo del link.
                    Tip! Imparate le migliori pratiche: aprire i link in nuove finestre e schede del browser.", + FILE_TYPE_WARNING: 'Il link punta a un PDF o a un file scaricabile (ad es. MP3, Zip, Word Doc) senza alcun avviso. Indicate il tipo di file nel testo del link. Se si tratta di un file di grandi dimensioni, considerate la possibilità di includere la dimensione del file.
                    Esempio: Relazione esecutiva (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Il link ha lo stesso testo di un altro link, anche se punta a una pagina diversa. Più link con lo stesso testo possono creare confusione per le persone che utilizzano gli screen reader.
                    Considerate di rendere il seguente link più descrittivo per aiutarlo a distinguersi dagli altri link: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: "L'immagine viene utilizzata come link con testo circostante, anche se l'attributo alt dovrebbe essere contrassegnato come decorativo o nullo.", MISSING_ALT_LINK_MESSAGE: "L'immagine viene utilizzata come link ma manca il testo alt! Assicurarsi che il testo alt descriva dove porta il link.", MISSING_ALT_MESSAGE: "Manca il testo alt! Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine.", - LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(error).
                    Testo alt: %(altText)", - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(altText)", - LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
                    Testo alt: %(altText)", - ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(error).
                    Testo alt: %(altText)", - ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(altText)', - ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(error)" potrebbe essere ridondante.
                    Testo alternativo: %(altText)", + LINK_ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Rimuovere: %(ERROR).
                    ALT %(ALT_TEXT)", + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: "Trovato testo alt non descrittivo o segnaposto in un'immagine collegata. Assicurarsi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine. Sostituire il seguente testo alt: %(ALT_TEXT)", + LINK_IMAGE_SUS_ALT_MESSAGE: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante. Assicuratevi che il testo alt descriva la destinazione del link e non una descrizione letterale dell'immagine.
                    ALT %(ALT_TEXT)", + ALT_HAS_FILE_EXTENSION: "Estensione del file nel testo alt trovato. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di descrivere l'immagine. Rimuovere: %(ERROR).
                    ALT %(ALT_TEXT)", + ALT_PLACEHOLDER_MESSAGE: 'Trovato testo alt non descrittivo o segnaposto. Sostituire il seguente testo alt con qualcosa di più significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: "Le tecnologie assistive indicano già che si tratta di un'immagine, quindi "%(ERROR)" potrebbe essere ridondante.
                    ALT %(ALT_TEXT)", LINK_HIDDEN_FOCUSABLE: 'Il link ha aria-hidden="true" ma è comunque selezionabile dalla tastiera. Se hai l\'intenzione di nascondere un link ridondante o duplicato, aggiungi anche tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: "L'immagine all'interno del link è contrassegnata come decorativa e non c'è testo di collegamento. Aggiungere all'immagine un testo alt che descriva la destinazione del link.", LINK_IMAGE_HAS_TEXT: "L'immagine è contrassegnata come decorativa, anche se il link utilizza il testo circostante come etichetta descrittiva.", - LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
                    Testo alt (%(altLength) caratteri): %(altText)", - LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
                    Testo alt: %(altText)", - LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
                    Testo alt: %(altText)
                    Etichetta del link: %(sanitizedText)", - IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
                    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.", - IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.
                    Testo alt: %(altText)", + LINK_IMAGE_LONG_ALT: "La descrizione del testo alt su un'immagine collegata è troppo lunga. Il testo alt sulle immagini collegate dovrebbe descrivere dove porta il link, non una descrizione letterale dell'immagine. Considerate di usare il titolo della pagina a cui rimanda come testo alt.
                    ALT %(altLength) Caratteri %(ALT_TEXT)", + LINK_IMAGE_ALT_WARNING: "Il link all'immagine contiene un testo alt. Il testo alt descrive dove porta il link? Considerate la possibilità di utilizzare come testo alt il titolo della pagina a cui rimanda.
                    ALT %(ALT_TEXT)", + LINK_IMAGE_ALT_AND_TEXT_WARNING: "Il link all'immagine contiene sia il testo alt che il testo del link circostante. Se l'immagine è decorativa e viene utilizzata come link funzionale a un'altra pagina, si consideri di contrassegnare l'immagine come decorativa o nulla - il testo del link circostante dovrebbe essere sufficiente.
                    ALT %(ALT_TEXT)
                    Etichetta del link %(TEXT)", + IMAGE_FIGURE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive.
                    Sebbene sia stata fornita una caption, nella maggior parte dei casi l'immagine dovrebbe avere anche un testo alt.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è contenuto nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per mettere in relazione l'immagine con il contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.", + IMAGE_FIGURE_DUPLICATE_ALT: "Non utilizzare le stesse parole sia per il testo alt che per la didascalia. Gli screen reader annunceranno le informazioni due volte.
                    • Il testo alt dovrebbe fornire una descrizione concisa di ciò che è presente nell'immagine.
                    • La didascalia dovrebbe solitamente fornire un contesto per ricollegare l'immagine al contenuto circostante, o dare attenzione a un particolare pezzo di informazione.
                    Per saperne di più: alt contro figcaption.
                    ALT %(ALT_TEXT)", IMAGE_DECORATIVE: "L'immagine è contrassegnata come decorativa e sarà ignorata dalle tecnologie assistive. Se l'immagine trasmette una storia, uno stato d'animo o un'informazione importante, assicuratevi di aggiungere il testo alt.", - IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
                    Testo alt (%(altLength) caratteri): %(altText)", - IMAGE_PASS: 'Testo alt: %(altText)', + IMAGE_ALT_TOO_LONG: "La descrizione del testo Alt è troppo lunga. Il testo Alt dovrebbe essere conciso, ma significativo come un tweet (circa 100 caratteri). Se si tratta di un'immagine complessa o di un grafico, considerate la possibilità di inserire la lunga descrizione dell'immagine nel testo sottostante o in un componente a fisarmonica.
                    ALT %(altLength) Caratteri %(ALT_TEXT)", + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: "Il pulsante dell'immagine manca del testo alt. Aggiungere il testo alt per fornire un nome accessibile. Ad esempio: Cerca o Invio.", LABELS_INPUT_RESET_MESSAGE: 'I pulsanti di reset non dovrebbero essere utilizzati se non specificamente necessari, perché è facile che si attivino per errore.
                    Tip! Scoprite perché i pulsanti Reset e Cancel pongono problemi di usabilità.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
                    Etichetta input: %(sanitizedText)", + LABELS_ARIA_LABEL_INPUT_MESSAGE: "L'input ha un nome accessibile, anche se bisogna assicurarsi che ci sia anche un'etichetta visibile.
                    Etichetta input %(TEXT)", LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un attributo for all'etichetta che corrisponda all'id di questo input.
                    L'ID di questo input è: id="%(id)".", LABELS_MISSING_LABEL_MESSAGE: "Non c'è un'etichetta associata a questo input. Aggiungere un id a questo input e aggiungere un attributo for corrispondente all'etichetta.", EMBED_VIDEO: 'Assicuratevi che tutti i video abbiano le didascalie chiuse. Fornire didascalie per tutti i contenuti audio e video è un requisito obbligatorio di livello A. Le didascalie aiutano le persone non udenti o con problemi di udito.', EMBED_AUDIO: 'Assicuratevi di fornire una trascrizione per tutti i podcast. Fornire trascrizioni per i contenuti audio è un requisito obbligatorio di Livello A. Le trascrizioni sono di supporto alle persone sorde o con problemi di udito, ma possono essere utili a tutti. Considerate la possibilità di inserire la trascrizione in basso o in un pannello a fisarmonica.', EMBED_DATA_VIZ: 'I widget di visualizzazione dei dati come questo sono spesso problematici per le persone che utilizzano una tastiera o uno screen reader per navigare e possono presentare notevoli difficoltà per le persone ipovedenti o daltoniche. Si consiglia di fornire le stesse informazioni in un formato alternativo (testo o tabella) sotto il widget.
                    Per saperne di più su immagini complesse.', - EMBED_MISSING_TITLE: "Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull'elemento iframe. Per saperne di più su iFrames.", + EMBED_MISSING_TITLE: 'Il contenuto incorporato richiede un nome accessibile che ne descriva il contenuto. Si prega di fornire un attributo unico title o aria-label sull\'elemento iframe. Per saperne di più su iFrames.', EMBED_GENERAL_WARNING: 'Impossibile controllare il contenuto incorporato. Assicuratevi che le immagini abbiano un testo alt, che i video abbiano didascalie, che il testo abbia un contrasto sufficiente e che i componenti interattivi siano accessibili alla tastiera.', EMBED_UNFOCUSABLE: 'Gli <iframe> con elementi non focalizzabili non devono avere tabindex="-1". Il contenuto incorporato non sarà accessibile tramite tastiera.', - QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
                    Questo link punta a:
                    %(el)', + QA_BAD_LINK: 'Trovato un link errato. Il link sembra puntare a un ambiente di sviluppo.
                    Questo link punta a:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link interno rotto. Il target del link non corrisponde a nessun elemento di questa pagina.', QA_BAD_ITALICS: 'I tag grassetto e corsivo hanno un significato semantico e non devono essere usati per evidenziare interi paragrafi. Il testo in grassetto deve essere usato per dare un forte enfasi su una parola o una frase. Il corsivo deve essere usato per evidenziare nomi propri (ad esempio, titoli di libri e articoli), parole straniere e citazioni. Le citazioni lunghe devono essere formattate come blockquote.', - QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
                    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
                    • Se si tratta di un documento, considerare la conversione in una pagina web.
                    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", + QA_PDF: "Impossibile verificare l'accessibilità dei PDF. I PDF sono considerati contenuti web e devono essere resi accessibili. I PDF spesso presentano problemi per le persone che utilizzano gli screen reader (tag strutturali mancanti o etichette dei campi del modulo mancanti) e per le persone ipovedenti (il testo non scorre quando viene ingrandito).
                    • Se si tratta di un modulo, considerare l'utilizzo di un modulo HTML accessibile come alternativa.
                    • Se si tratta di un documento, considerare la conversione in una pagina web.
                    Altrimenti, controllare PDF per l'accessibilità in Acrobat DC.", QA_DOCUMENT: "Impossibile verificare l'accessibilità del documento. I documenti collegati sono considerati contenuti web e devono essere resi accessibili. Esaminare manualmente il documento. ", QA_PAGE_LANGUAGE: 'Lingua della pagina non dichiarata! Si prega di dichiarare la lingua nel tag HTML.', QA_PAGE_TITLE: 'Titolo della pagina mancante! Si prega di fornire un titolo della pagina.', - QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(sanitizedText)
                    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", - QA_FAKE_HEADING: 'È un titolo? %(boldtext)
                    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', - QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
                    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", + QA_BLOCKQUOTE_MESSAGE: "È un titolo? %(TEXT)
                    Le virgolette dovrebbero essere usate solo per le citazioni. Se si tratta di un'intestazione, cambiare questo blockquote in un'intestazione semantica (per esempio, Intestazione 2 o Intestazione 3).", + QA_FAKE_HEADING: 'È un titolo? %(TEXT)
                    Una riga di testo in grassetto o grande può sembrare un titolo, ma chi usa uno screen reader non può capire che è importante o saltare al suo contenuto. Il testo in grassetto o grande non dovrebbe mai sostituire le intestazioni semantiche (da Titolo 2 a Titolo 6).', + QA_SHOULD_BE_LIST: "Stai cercando di creare un elenco? Possibile elemento di elenco trovato: %(firstPrefix)
                    Assicurarsi di utilizzare gli elenchi semantici utilizzando invece i pulsanti di formattazione dei punti o dei numeri. Quando si utilizza un elenco semantico, le tecnologie assistive sono in grado di trasmettere informazioni come il numero totale di elementi e la posizione relativa di ciascun elemento nell'elenco. Per saperne di più su elenchi semantici.", QA_UPPERCASE_WARNING: "Trovato tutto maiuscolo. Alcuni screen reader possono interpretare il testo tutto maiuscolo come un acronimo e leggono ogni lettera singolarmente. Inoltre, per alcune persone il testo tutto maiuscolo è più difficile da leggere e può dare l'impressione di urlare.", QA_DUPLICATE_ID: 'Trovato ID duplicato. Gli errori di ID duplicato sono noti per causare problemi alle tecnologie assistive quando cercano di interagire con i contenuti.
                    Si prega di rimuovere o modificare il seguente ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Il testo sottolineato può essere confuso con i link. Considerate di usare uno stile diverso, come <strong>forte importanza</strong> o <em>emphasis</em>.', @@ -222,9 +228,9 @@ TABLES_MISSING_HEADINGS: 'Intestazioni di tabella mancanti! Le tabelle accessibili necessitano di un markup HTML che indichi le celle di intestazione e le celle di dati e che definisca la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Le tabelle devono essere utilizzate solo per i dati tabellari.
                    Per saperne di più su tabelle accessibili.', TABLES_SEMANTIC_HEADING: "Le intestazioni semantiche come Heading 2 o Heading 3 devono essere utilizzate solo per le sezioni di contenuto; non nelle tabelle HTML. Indicare le intestazioni delle tabelle utilizzando invece l'elemento <th>.
                    Per saperne di più su tabelle accessibili.", TABLES_EMPTY_HEADING: "Trovato un'intestazione di tabella vuota! Le intestazioni delle tabelle non devono mai essere vuote. È importante designare le intestazioni di riga e/o di colonna per indicare la loro relazione. Queste informazioni forniscono un contesto alle persone che utilizzano tecnologie assistive. Tenete presente che le tabelle devono essere utilizzate solo per i dati tabellari.
                    Per saperne di più su tabelle accessibili.", - CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Il rapporto di contrasto è %(cratio) per il seguente testo: %(sanitizedText)', - CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Per favore, controllare: %(sanitizedText)', - CONTRAST_INPUT_ERROR: "Il testo all'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
                    Rapporto di contrasto: %(cratio)", + CONTRAST_ERROR: 'Il testo non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Rapporto di contrasto %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Il contrasto di questo testo è sconosciuto e deve essere rivisto manualmente. Assicurarsi che il testo e lo sfondo abbiano colori fortemente contrastanti. Il rapporto di contrasto dovrebbe essere almeno 4,5:1 per il testo normale e 3:1 per il testo grande.
                    Per favore, controllare: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Il testo all\'interno di questo input non ha un contrasto sufficiente con lo sfondo. Il rapporto di contrasto dovrebbe essere di almeno 4,5:1 per il testo normale e di 3:1 per il testo grande.
                    Rapporto di contrasto %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ja.js b/docs/assets/js/lang/ja.js index 6395feb7..808e7454 100644 --- a/docs/assets/js/lang/ja.js +++ b/docs/assets/js/lang/ja.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var ja = { ALERT_TEXT: 'アラート', ALERT_CLOSE: '閉じる', OUTLINE: 'ページ概要', + ALT: 'ALT', + IMAGES: '画像', + EDIT: '編集', + IMAGES_NOT_FOUND: '画像が見つかりません。', + DECORATIVE: '装飾用', + MISSING: '不足', PAGE_ISSUES: 'ページの問題', SETTINGS: '設定方法', CONTRAST: 'コントラスト', @@ -156,76 +162,94 @@ var ja = { LANG_GOOD: '良い', READABILITY_NO_P_OR_LI_MESSAGE: '読みやすさのスコアを計算することができません。段落 <p> またはリストコンテンツ <li> が見つかりませんでした。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '読みやすさのスコアを計算するためのコンテンツが十分でない。', - HEADING_NON_CONSECUTIVE_LEVEL: '連続しない見出しレベルが使用されています。見出しはレベルを飛ばしたり、見出し %(prevLevel) から 見出し %(level) になってはなりません。', - HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、見出し %(level) から Normal または 段落 にフォーマットを変更してください。', - HEADING_LONG: '見出しが長い!見出しは、内容を整理し、構造を伝えるために使用されるべきです。また、簡潔で情報量が多く、ユニークであるべきです。見出しは160文字以内(1文以内)に収めてください。
                    文字数です:%(headingLength)。', - HEADING_FIRST: 'ページの最初の見出しは、通常、見出し1または見出し2にします。見出し1はメインコンテンツセクションの始まりであるべきで、ページの全体的な目的を説明する主要な見出しです。見出しの構造についてもっと詳しく知ることができます。', - HEADING_MISSING_ONE: '見出し1がない。 見出し1はメインコンテンツエリアの始まりであるべきで、ページの全体的な目的を説明する主要な見出しである。見出しの構造について詳しくはこちら。', - HEADING_EMPTY_WITH_IMAGE: '見出しにはテキストがなく、画像が含まれています。これが見出しでない場合は、そのフォーマットを見出し %(level)から通常またはパラグラフに変更してください。それ以外の場合、画像に装飾がない場合は、altテキストを追加してください。', - PANEL_HEADING_MISSING_ONE: '見出しの欠落 1!', - PANEL_NO_HEADINGS: '見出しはありません。', - LINK_EMPTY: 'テキストのない空のリンクを削除する。', - LINK_EMPTY_LABELLEDBY: 'リンクには、ページ内の別の要素のid属性の値と一致しないか、空のaria-labelledby値があります。', - LINK_EMPTY_LINK_NO_LABEL: 'リンクに、スクリーンリーダーやその他の支援技術で表示可能な識別可能なテキストがない。修正するには
                    • リンクの行き先を説明する簡潔なテキストを追加する。
                    • アイコン リンクまたは SVGである場合、説明用のラベルがない可能性があります。
                    • このリンクがコピー/ペーストのバグによるエラーと考えられる場合は、削除を検討してください。
                    ', - LINK_LABEL: 'リンクラベル: %(sanitizedText)', - LINK_STOPWORD: 'リンクテキストは、文脈から見て十分に説明的でない場合があります:%(error)
                    ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものでなければなりません。quot;ここをクリック"やquot;もっと知りたい"のような一般的な単語は避けてください;', - LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(error)
                    • "ここをクリック"では、多くの人がマウスを使用しないか、モバイル機器でこのウェブサイトを見ている可能性があるのに、マウス操作に焦点が当たっています。タスクに関連する別の動詞を使用することを検討してください。
                    • 支援技術に隠されていない限り、コールトゥアクションとしてHTML記号を使用しないようにしてください。', - LINK_URL: 'リンクテキストとして使用される長くて分かりにくいURLは、支援技術で聞き取るのが難しいかもしれません。ほとんどの場合、URL の代わりに人間が読めるテキストを使用する方がよいでしょう。
                      ヒント! リンクテキストは、常に明確で、ユニークで、意味があり、文脈から理解できるものでなければなりません。', - LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドでは、作品のURLやDOIをタイトルに巻きつけて、説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長くて分かりにくいURLは、支援技術でアクセスしたときに理解するのが難しいかもしれません。', - NEW_TAB_WARNING: 'リンクは警告なしに新しいタブまたはウィンドウで開きます。そうすることで、特に視覚的なコンテンツを知覚することが困難な人々にとって、混乱させることができます。第二に、誰かの経験をコントロールしたり、彼らのために決定を下すことは、必ずしも良い習慣とは言えません。リンクテキスト内でリンクが新しいウィンドウで開くことを示す
                      ヒント!ベストプラクティスを学びましょう:リンクを新しいブラウザのウィンドウやタブで開く。', - FILE_TYPE_WARNING: 'リンク先がPDFやダウンロード可能なファイル(例:MP3、Zip、Word Doc)であることを警告せずに示す。リンクテキスト内にファイルの種類を表示する。
                      例: エグゼクティブレポート (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'リンクは別のリンクと同じテキストを持っていますが、別のページを指しています。
                      他のリンクと区別するために、次のリンクをより説明的にすることを検討してください:%(sanitizedText)。', - MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像は装飾としてマークされる必要がありますが、画像は周囲のテキストへのリンクとして使用されています。', - MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストが不足しています!altテキストにリンク先が記載されていることを確認してください。', - MISSING_ALT_MESSAGE: 'altテキストがない!画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ず画像を説明すること。', - LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内のファイル拡張子が見つかりました。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するものであることを確認してください。削除してください:%(error).
                      alt属性: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内のaltテキストが非記述またはプレースホルダーであることが判明しました。altテキストが、画像の文字通りの説明ではなく、リンク先を記述していることを確認してください。以下のaltテキストを置き換えてください:%(altText)とします。', - LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するようにします。
                      altテキスト: %(altText)', - ALT_HAS_FILE_EXTENSION: '見つかったaltテキスト内のファイル拡張子。画像がストーリーや雰囲気、重要な情報を伝えている場合は、必ず画像を説明してください。削除してください:%(error).
                      alt属性: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '非デスクリプトまたはプレースホルダーのaltテキストが見つかりました。以下のaltテキストを、より意味のあるものに置き換えてください:%(altText)となります。', - ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。
                      オルトテキスト: %(altText)', - LINK_HIDDEN_FOCUSABLE: 'リンクにはaria-hidden="true"がありますが、キーボードでまだフォーカス可能です。冗長なまたは重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', - LINK_IMAGE_NO_ALT_TEXT: 'リンク内の画像は装飾と表示され、リンクテキストがありません。リンク先を示すaltテキストを画像に追加してください。', - LINK_IMAGE_HAS_TEXT: 'リンク先では周囲のテキストを説明用のラベルとして使用していますが、画像は装飾としてマークされています。', - LINK_IMAGE_LONG_ALT: 'リンク先画像のaltテキスト記述が長すぎるです。リンク先の画像のaltテキストは、画像の文字通りの説明ではなく、リンク先がどこなのかを説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                      altテキスト (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: '画像リンクにaltテキストが含まれています。altテキストは、リンク先について説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                      altテキスト: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクには、altテキストと周囲のリンクテキストの両方が含まれています。この画像が装飾的で、別のページへの機能的なリンクとして使用されている場合、画像を装飾または無効としてマークすることを検討してください -周囲のリンクテキストで十分なはずです。
                      altテキスト: %(altText)
                      リンクラベル: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: '画像はdecorativeとマークされており、支援技術によって無視されます。
                      キャプションが提供されましたが、ほとんどの場合、画像にはaltテキストもあるべきです。
                      • altテキストは、画像に何が写っているかを簡潔に説明する必要があります。
                      • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させる必要があります。
                      もっと学ぶ:alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'altテキストとcaptionテキストの両方に全く同じ単語を使用しないでください。スクリーン リーダは情報を 2 回通知します。
                      • alt テキストは、画像に何が写っているかを簡潔に説明する必要があります。
                      • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させます。
                      詳細はこちら:alt versus figcaption.
                      オルトテキスト: %(altText)', - IMAGE_DECORATIVE: '画像はdecorativeとマークされ、支援技術によって無視されることになります。画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ずaltテキストを追加してください。', - IMAGE_ALT_TOO_LONG: 'Altテキストの説明が長すぎる。Altテキストは、ツイートのように簡潔で、かつ意味のあるものにしましょう(100文字前後)。これが複雑な画像やグラフであれば、画像の長い説明を下のテキストに入れたり、アコーディオン・コンポーネントにすることを検討してください。
                      オルトテキスト(%(altLength) 文字): %(altText)', - IMAGE_PASS: 'オルトテキスト: %(altText)', - LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセシブルな名称を提供するために、altテキストを追加してください。例えば、以下のようなものです:検索または送信。', - LABELS_INPUT_RESET_MESSAGE: 'リセット ボタンは、間違って起動しやすいので、特に必要な場合を除き、使用すべきではありません
                      ヒント! リセットボタンとキャンセルボタンがユーザビリティの問題を引き起こす理由を学びましょう。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力にはアクセシブルな名前がついていますが、目に見えるラベルもつけてください。
                      入力ラベル: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力に関連するラベルはありません。この入力のidに一致するラベルにfor属性を追加してください。
                      この入力のIDは次のとおりです:id="%(id)" です。', - LABELS_MISSING_LABEL_MESSAGE: 'この入力に関連するラベルはありません。この入力に id を追加し、ラベルに一致する for 属性を追加してください。', - EMBED_VIDEO: 'すべてのビデオにクローズドキャプションがあることを確認してください。すべてのオーディオおよびビデオコンテンツにキャプションを提供することは、レベルAの必須要件です。キャプションは、聴覚障害者をサポートします。', - EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供するようにしてください。オーディオコンテンツにトランスクリプトを提供することは、レベルAの必須要件です。トランスクリプトは、ろう者や難聴者をサポートするものですが、誰にとっても有益なものです。トランスクリプトを下またはアコーディオンパネルに配置することを検討してください。', - EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使って操作する人にとって問題があることが多く、弱視や色覚異常の人にとっては大きな障害となることがあります。ウィジェットの下に、同じ情報を別の形式(テキストまたは表)で提供することが推奨されます。複雑な画像についてもっと詳しく知る。', - EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセシブルネームが必要です。iframe 要素にユニークな title または aria-label 属性を指定してください。iFrame.について詳しくはこちら。', - EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認することができません。画像にはaltテキスト、動画にはキャプション、テキストには十分なコントラスト、インタラクティブなコンポーネントにはキーボードアクセス可能であることを確認してください。', - EMBED_UNFOCUSABLE: 'フォーカスできない要素を含む<iframe>にはtabindex="-1"を指定しないでください。埋め込まれたコンテンツはキーボードではアクセスできません。', - QA_BAD_LINK: '不正なリンクが見つかりました。リンクは開発環境を指しているようです。
                      このリンクは、次の場所を指しています:
                      %(el)。', - QA_IN_PAGE_LINK: '同じページ内リンクが壊れています。リンクの対象は、このページ上のいかなる要素とも一致しません。', - QA_BAD_ITALICS: '太字と斜体のタグは意味上の意味があり、段落全体を強調するために使用すべきではありません。太字は、単語やフレーズを強く強調するために使用されるべきです。イタリックは、固有名詞(例:書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用文は、ブロッククオートとしてフォーマットされるべきである。', - QA_PDF: 'PDFのアクセシビリティをチェックできない。PDFはウェブコンテンツとみなされ、同様にアクセシビリティを確保する必要があります。PDFには、スクリーンリーダーを使用する人(構造タグがない、フォームフィールドラベルがない)や弱視の人(拡大してもテキストがリフローしない)にとって問題があることがよくあります。
                      • これがフォームの場合は、アクセシブルな HTML フォームを代替として使用することを検討してください。
                      • これが文書の場合は、Web ページへの変換を検討してください。
                      その他、PDF を Acrobat DC. でアクセス可能か確認してください。', - QA_DOCUMENT: 'ドキュメントのアクセシビリティを確認できません。リンクされたドキュメントはウェブコンテンツとみなされ、同様にアクセシブルにする必要があります。このドキュメントを手動で確認してください。。', - QA_PAGE_LANGUAGE: 'ページの言語が宣言されていません!HTMLタグで言語を宣言してください。', - QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを記入してください。', - QA_BLOCKQUOTE_MESSAGE: 'これは見出しなのでしょうか?%(sanitizedText)
                      ブロッククォートは引用にのみ使用する必要があります。もしこれが見出しとして意図されているのであれば、このブロッククオートを意味的な見出し(例:見出し2または見出し3)に変更してください。', - QA_FAKE_HEADING: 'これは見出しなのでしょうか?%(boldtext)
                      太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使っている人は、それが重要であることを見分けることも、そのコンテンツに飛ぶこともできません。太字や大きなテキストは、セマンティックな見出し(見出し2~見出し6)を決して置き換えるべきではありません。', - QA_SHOULD_BE_LIST: 'リストを作成しようとしているのでしょうか?可能なリスト項目が見つかりました:%(firstPrefix)
                      セマンティックリストを使用するには、代わりに箇条書きまたは数字の書式設定ボタンを使用することを確認してください。セマンティックリストを使用すると、支援技術は、項目の総数やリスト内の各項目の相対位置などの情報を伝達することができます。セマンティックリストについてもっと詳しく知ることができます。', - QA_UPPERCASE_WARNING: '全角文字が見つかりました。スクリーンリーダーによっては、全角のテキストを頭字語と解釈し、各文字を個別に読み上げる場合があります。また、全角文字が読みにくく、叫んでいるように見える方もいらっしゃいます。', - QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDのエラーは、支援技術がコンテンツと相互作用しようとするときに問題を引き起こすことが知られています。
                      以下のIDを削除または変更してください:%(id)です。', - QA_TEXT_UNDERLINE_WARNING: '下線付きのテキストは、リンクと混同されることがあります。<strong>strong importance</strong> または <em></em> など別のスタイルにすることを考えてください。', - QA_SUBSCRIPT_WARNING: '下付き文字と上付き文字の書式オプションは、組版規則や標準のためにテキストの位置を変更するためにのみ使用されるべきです。プレゼンテーションや見栄えのためにのみ使用するのはNGです。文章全体をフォーマットすることは、読みやすさの問題を提起します。適切な使用例としては、指数の表示、4番目の代わりに4thのような序数、化学式(例:H2O)などが挙げられます。', - TABLES_MISSING_HEADINGS: 'テーブルのヘッダーがない!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要であり、それらの関係を定義しています。この情報は、支援技術を使用する人にコンテキストを提供します。テーブルは、表形式のデータのみに使用する必要があります。アクセシブルテーブルについてもっと詳しく知ることができます。', - TABLES_SEMANTIC_HEADING: '見出し2や見出し3のような意味上の見出しは、コンテンツのセクションにのみ使用されるべきで、HTMLテーブルでは使用できません。テーブルの見出しは、<th>要素で表すようにしましょう。アクセシブルテーブルについて詳しくはこちら。', - TABLES_EMPTY_HEADING: '空のテーブルヘッダが見つかりました!テーブルヘッダは決して空であってはなりません。行や列のヘッダーを指定して、それらの関係を伝えることが重要です。この情報は、支援技術を使用する人々にコンテキストを提供します。テーブルは表形式のデータにのみ使用されるべきであるということを心に留めておいてください。アクセシブルテーブルについてもっと詳しく知る。', - CONTRAST_ERROR: 'このテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                      以下のテキストでは、コントラスト比は %(cratio) です:%(sanitizedText)となります。', - CONTRAST_WARNING: 'このテキストのコントラストは不明なので、手動で確認する必要があります。テキストと背景が強いコントラストを持つ色であることを確認する。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                      レビューしてください: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'この入力内のテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                      コントラスト比:%(cratio)となります。', + + // Headings + HEADING_NON_CONSECUTIVE_LEVEL: '非連続の見出しレベルが使用されました。見出しはレベルをスキップしたり、見出し%(prevLevel)から見出し%(level)に移行することはありません。', + HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、その形式を見出し%(level)から通常または段落に変更してください。', + HEADING_LONG: '見出しが長すぎます!見出しはコンテンツを整理し、構造を伝えるために使用されます。簡潔で情報量があり、他と区別される必要があります。見出しは160文字未満に保つようにしてください(1文を超えないでください)。
                      %(HEADING_LENGTH) 文字', + HEADING_FIRST: 'ページの最初の見出しは通常、見出し1または見出し2にする必要があります。見出し1はメインコンテンツセクションの開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_MISSING_ONE: '見出し1がありません。見出し1はメインコンテンツ領域の開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_EMPTY_WITH_IMAGE: '見出しにテキストがありませんが、画像が含まれています。これが見出しでない場合は、その形式を見出し%(level)から通常または段落に変更してください。それ以外の場合は、画像に装飾的でない alt テキストを追加してください。', + PANEL_HEADING_MISSING_ONE: '見出し1がありません!', + PANEL_NO_HEADINGS: '見出しが見つかりません。', + + // Links + LINK_EMPTY: 'テキストのない空のリンクを削除してください。', + LINK_EMPTY_LABELLEDBY: 'リンクには、空のaria-labelledby値またはページの他の要素のid値と一致しないaria-labelledby値があります。', + LINK_EMPTY_LINK_NO_LABEL: 'スクリーンリーダーやその他の支援技術で見える識別可能なテキストを持たないリンクです。修正するには:
                      • リンク先を説明する簡潔なテキストを追加してください。
                      • アイコンリンクやSVGの場合、おそらく説明的なラベルが不足しています。
                      • このリンクがコピー/貼り付けのバグによるエラーであると考える場合は、削除を検討してください。
                      ', + LINK_LABEL: 'ラベル %(TEXT)', + LINK_STOPWORD: 'コンテキストがない状況では、リンクテキストが十分に説明的ではないかもしれません:%(ERROR)
                      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。"ここをクリック"や"詳細を見る"などの一般的な言葉は避けてください。', + LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(ERROR)
                      • "ここをクリック"は多くの人がマウスを使用しないか、このウェブサイトをモバイルデバイスで表示している可能性があるため、マウスの操作に焦点を当てています。タスクに関連する別の動詞を使用することを検討してください。
                      • 補助技術には非表示にされていない限り、HTMLシンボルをコールツーアクションとして使用しないでください。
                      ', + LINK_URL: 'リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。ほとんどの場合、URLの代わりに読みやすいテキストを使用する方が良いでしょう。短いURL(サイトのホームページなど)は問題ありません。
                      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。コンテキストがない状況でも理解できるようにしてください。', + LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドは、作品のURLまたはDOIをタイトルにラップすることで説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。', + + // Links advanced + NEW_TAB_WARNING: 'リンクが警告なしに新しいタブまたはウィンドウで開きます。これは、視覚的コンテンツを認識するのが難しい人々にとって特に混乱を招く可能性があります。さらに、誰かの体験を制御したり、代わりに決定したりするのは常に良い慣行ではありません。リンクテキスト内でリンクが新しいウィンドウで開くことを示してください。
                      ヒント! ベストプラクティスを学ぶ:新しいブラウザウィンドウとタブでのリンクの開き方。', + FILE_TYPE_WARNING: 'リンクが警告なしにPDFやダウンロード可能なファイル(MP3、Zip、Word Docなど)を指しています。リンクテキスト内にファイルの種類を示してください。ファイルが大きい場合は、ファイルサイズを含めることを検討してください。
                      例: 実行レポート(PDF、3MB)', + LINK_IDENTICAL_NAME: 'リンクが他のリンクと同じテキストを持っていますが、異なるページを指しています。同じテキストを持つ複数のリンクは、スクリーンリーダーを使用する人々に混乱を招く可能性があります。
                      他のリンクと区別するために、次のリンクをより具体的にすることを検討してください:%(TEXT)', + + // Images + MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像が周囲のテキストと一緒にリンクとして使用されていますが、alt属性は装飾用としてマークされる必要があります。', + MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストがありません!リンクがどこに向かうかを説明するaltテキストを確認してください。', + MISSING_ALT_MESSAGE: 'altテキストがありません!画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。', + LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。altテキストが画像のリンク先を説明しているかどうか、画像の文字通りの説明ではないことを確認してください。ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内の記述のないまたはプレースホルダーのaltテキストが見つかりました。altテキストが画像のリンク先を説明していることを確認してください。%(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。altテキストが画像のリンク先を説明していることを確認してください。
                      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '記述のないまたはプレースホルダーのaltテキストが見つかりました。次のaltテキストをより意味のあるものに置き換えてください:%(ALT_TEXT)', + ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。
                      ALT %(ALT_TEXT)', + LINK_HIDDEN_FOCUSABLE: 'aria-hidden="true"を持つリンクですが、キーボードでフォーカスが可能です。冗長または重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', + LINK_IMAGE_NO_ALT_TEXT: '画像内のリンクが装飾用としてマークされており、リンクテキストがありません。リンクの目的を説明するaltテキストを画像に追加してください。', + LINK_IMAGE_HAS_TEXT: '画像が装飾用としてマークされていますが、リンクが周囲のテキストを説明するラベルとして使用されています。', + LINK_IMAGE_LONG_ALT: 'リンクされた画像のaltテキストの説明が長すぎます。リンクされた画像のaltテキストは、画像の文字通りの説明ではなく、リンクの目的を説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                      ALT %(altLength) 文字 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '画像リンクにはaltテキストが含まれています。altテキストがリンク先を説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクにはaltテキストと周囲のリンクテキストの両方が含まれています。 この画像が装飾用であり、他のページへの機能的なリンクとして使用されている場合は、画像を装飾用としてマークすることを検討してください。周囲のリンクテキストで十分です。
                      ALT %(ALT_TEXT)
                      ラベル %(TEXT)', + IMAGE_FIGURE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。
                      キャプションが提供されていますが、ほとんどの場合、画像にはaltテキストも必要です。
                      • altテキストは画像の内容を簡潔に説明する必要があります。
                      • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
                      詳細はこちら:altとfigcaptionの比較。', + IMAGE_FIGURE_DUPLICATE_ALT: 'altとキャプションテキストにはまったく同じ単語を使用しないでください。スクリーンリーダーは情報を二重に発表します。
                      • altテキストは画像の内容を簡潔に説明する必要があります。
                      • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
                      詳細はこちら:altとfigcaptionの比較
                      ALT %(ALT_TEXT)', + IMAGE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。画像が物語やムード、重要な情報を伝えている場合は、altテキストを追加してください。', + IMAGE_ALT_TOO_LONG: 'altテキストの説明が長すぎます。altテキストは簡潔でありながら意味のあるものである必要があります(ツイートのように、約100文字)。これが複雑な画像やグラフの場合は、画像の長い説明を以下のテキストまたは折りたたみコンポーネントに入れることを検討してください。
                      ALT %(altLength) 文字 %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', + + // Labels + LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセス可能な名前を提供するためにaltテキストを追加してください。例:検索または送信。', + LABELS_INPUT_RESET_MESSAGE: 'リセットボタンは、特に必要な場合を除いて使用しないでください。間違って簡単にアクティブ化される可能性があります。
                      ヒント! リセットおよびキャンセルボタンが使用性の問題を引き起こす理由を学んでください。', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力フィールドにはアクセス可能な名前がありますが、見えるラベルもあることを確認してください。
                      入力ラベル %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドのラベルに一致するfor属性を追加してください。
                      この入力フィールドのIDは:id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドにidを追加し、ラベルに一致するfor属性を追加してください。', + + // Embedded content + EMBED_VIDEO: 'すべての動画に字幕を表示してください。 音声および動画コンテンツのすべてに字幕を提供することは、必須のレベルAの要件です。字幕は、聴覚障害者や難聴者をサポートします。', + EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供してください。 音声コンテンツのすべてにトランスクリプトを提供することは、必須のレベルAの要件です。トランスクリプトは、聴覚障害者や難聴者をサポートしますが、誰にでも利益をもたらすことがあります。トランスクリプトを下部に配置するか、アコーディオンパネル内に配置することを検討してください。', + EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使用してナビゲートする人々や、視力が低い人々や色覚異常の人々にとって問題が発生することがよくあります。ウィジェットの下に代替(テキストまたは表)形式で同じ情報を提供することが推奨されています。
                      複雑な画像について詳しく学びます。', + EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセス可能な名前が必要です。 iframe要素にユニークなtitleまたはaria-label属性を提供してください。iFramesについて詳しく学びます。', + EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認できません。画像にはaltテキスト、動画には字幕、テキストには十分なコントラスト、対話型コンポーネントにはキーボードアクセス可能性があることを確認してください。', + EMBED_UNFOCUSABLE: '<iframe>にフォーカス可能な要素が含まれている場合、tabindex="-1"を持つべきではありません。埋め込みコンテンツはキーボードでアクセスできません。', + + // QA + QA_BAD_LINK: '悪いリンクが見つかりました。リンクは開発環境を指しているようです。
                      このリンクの先は:
                      %(LINK)', + QA_BAD_ITALICS: '太字および斜体タグには意味があり、段落全体を強調表示するために使用してはいけません。強調するためには、太字が使用されるべきです。斜体は固有名詞(つまり、書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用は引用ブロックとしてフォーマットする必要があります。', + QA_PDF: 'PDFのアクセシビリティをチェックできません。PDFはWebコンテンツと見なされ、アクセシブルにする必要があります。PDFには、スクリーンリーダーを使用する人や視力が低い人向けの問題がよく含まれます(構造タグの欠落やフォームフィールドのラベルの欠落など)。
                      • これがフォームである場合は、代替としてアクセシブルなHTMLフォームを使用してください。
                      • これが文書である場合は、Webページに変換してください。
                      それ以外の場合は、Acrobat DCでのPDFのアクセシビリティを確認してください。', + QA_DOCUMENT: '文書のアクセシビリティをチェックできません。リンクされた文書はWebコンテンツと見なされ、アクセシブルにする必要があります。この文書を手動で確認してください。', + QA_PAGE_LANGUAGE: 'ページ言語が宣言されていません!HTMLタグで言語を宣言してください。', + QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを入力してください。', + QA_BLOCKQUOTE_MESSAGE: 'これは見出しですか?%(TEXT)
                      ブロック引用は引用のためにのみ使用する必要があります。これが見出しである場合は、このブロック引用をセマンティックな見出し(例:見出し2または見出し3)に変更してください。', + QA_FAKE_HEADING: 'これは見出しですか?%(TEXT)
                      太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使用している人はそれが重要であるかどうかを判断したり、その内容にジャンプしたりすることができません。太字や大きなテキストはセマンティックな見出し(見出し2から見出し6)を置き換えるべきではありません。', + QA_SHOULD_BE_LIST: 'リストを作成しようとしていますか?可能なリスト項目が見つかりました:%(firstPrefix)
                      ブルレットまたは番号の書式設定ボタンを使用してセマンティックなリストを使用してください。セマンティックなリストを使用すると、支援技術が合計アイテム数やリスト内の各アイテムの相対位置などの情報を伝えることができます。セマンティックリストについて詳しく学びます。', + QA_UPPERCASE_WARNING: 'すべて大文字が見つかりました。一部のスクリーンリーダーはすべて大文字のテキストを略語と解釈し、各文字を個別に読み上げます。また、一部の人々はすべて大文字のテキストを読むのが難しく、それが叫んでいるように見えるかもしれません。', + QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDは、支援技術がコンテンツとの相互作用を試みる際に問題を引き起こすことが知られています。
                      次のIDを削除または変更してください:%(id)', + QA_TEXT_UNDERLINE_WARNING: '下線付きテキストはリンクと混同される可能性があります。<strong>strong importance</strong><em>emphasis</em>など、異なるスタイルを使用してください。', + QA_SUBSCRIPT_WARNING: '下付き文字および上付き文字の書式設定オプションは、テキストの位置を変更するためのものであるべきです。それは単にプレゼンテーションや外観の目的でのみ使用されるべきではありません。文章全体のフォーマットは読みにくさの問題を引き起こします。適切な使用例には、指数の表示、序数(たとえば4th)、化学式(例:H2O)などが含まれます。', + QA_IN_PAGE_LINK: 'リンクが壊れた同じページのリンクです。リンクのターゲットはページ上のいずれの要素とも一致しません。', + + // Tables + TABLES_MISSING_HEADINGS: 'テーブルヘッダーがありません!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
                      アクセシブルなテーブルについて詳しく学びます。', + TABLES_SEMANTIC_HEADING: '見出し2や見出し3などのセマンティックな見出しは、コンテンツのセクションにのみ使用すべきです。HTMLテーブルでは使用しないでください。代わりに<th>要素を使用してテーブルの見出しを示します。
                      アクセシブルなテーブルについて詳しく学びます。', + TABLES_EMPTY_HEADING: '空のテーブルヘッダーが見つかりました!テーブルヘッダーは空にしてはいけません。行や列のヘッダーを指定して関係性を伝えることが重要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
                      アクセシブルなテーブルについて詳しく学びます。', + + // Contrast + CONTRAST_ERROR: 'このテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                      コントラスト比 %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'このテキストの対比は不明であり、手動で確認する必要があります。テキストと背景が強い対比色を持つことを確認してください。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                      確認してください:%(TEXT)', + CONTRAST_INPUT_ERROR: 'この入力内のテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                      コントラスト比 %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ja.umd.js b/docs/assets/js/lang/ja.umd.js index 820fcc88..fef7e380 100644 --- a/docs/assets/js/lang/ja.umd.js +++ b/docs/assets/js/lang/ja.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'アラート', ALERT_CLOSE: '閉じる', OUTLINE: 'ページ概要', + ALT: 'ALT', + IMAGES: '画像', + EDIT: '編集', + IMAGES_NOT_FOUND: '画像が見つかりません。', + DECORATIVE: '装飾用', + MISSING: '不足', PAGE_ISSUES: 'ページの問題', SETTINGS: '設定方法', CONTRAST: 'コントラスト', @@ -162,76 +168,94 @@ LANG_GOOD: '良い', READABILITY_NO_P_OR_LI_MESSAGE: '読みやすさのスコアを計算することができません。段落 <p> またはリストコンテンツ <li> が見つかりませんでした。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '読みやすさのスコアを計算するためのコンテンツが十分でない。', - HEADING_NON_CONSECUTIVE_LEVEL: '連続しない見出しレベルが使用されています。見出しはレベルを飛ばしたり、見出し %(prevLevel) から 見出し %(level) になってはなりません。', - HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、見出し %(level) から Normal または 段落 にフォーマットを変更してください。', - HEADING_LONG: '見出しが長い!見出しは、内容を整理し、構造を伝えるために使用されるべきです。また、簡潔で情報量が多く、ユニークであるべきです。見出しは160文字以内(1文以内)に収めてください。
                      文字数です:%(headingLength)。', - HEADING_FIRST: 'ページの最初の見出しは、通常、見出し1または見出し2にします。見出し1はメインコンテンツセクションの始まりであるべきで、ページの全体的な目的を説明する主要な見出しです。見出しの構造についてもっと詳しく知ることができます。', - HEADING_MISSING_ONE: '見出し1がない。 見出し1はメインコンテンツエリアの始まりであるべきで、ページの全体的な目的を説明する主要な見出しである。見出しの構造について詳しくはこちら。', - HEADING_EMPTY_WITH_IMAGE: '見出しにはテキストがなく、画像が含まれています。これが見出しでない場合は、そのフォーマットを見出し %(level)から通常またはパラグラフに変更してください。それ以外の場合、画像に装飾がない場合は、altテキストを追加してください。', - PANEL_HEADING_MISSING_ONE: '見出しの欠落 1!', - PANEL_NO_HEADINGS: '見出しはありません。', - LINK_EMPTY: 'テキストのない空のリンクを削除する。', - LINK_EMPTY_LABELLEDBY: 'リンクには、ページ内の別の要素のid属性の値と一致しないか、空のaria-labelledby値があります。', - LINK_EMPTY_LINK_NO_LABEL: 'リンクに、スクリーンリーダーやその他の支援技術で表示可能な識別可能なテキストがない。修正するには
                      • リンクの行き先を説明する簡潔なテキストを追加する。
                      • アイコン リンクまたは SVGである場合、説明用のラベルがない可能性があります。
                      • このリンクがコピー/ペーストのバグによるエラーと考えられる場合は、削除を検討してください。
                      ', - LINK_LABEL: 'リンクラベル: %(sanitizedText)', - LINK_STOPWORD: 'リンクテキストは、文脈から見て十分に説明的でない場合があります:%(error)
                      ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものでなければなりません。quot;ここをクリック"やquot;もっと知りたい"のような一般的な単語は避けてください;', - LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(error)
                      • "ここをクリック"では、多くの人がマウスを使用しないか、モバイル機器でこのウェブサイトを見ている可能性があるのに、マウス操作に焦点が当たっています。タスクに関連する別の動詞を使用することを検討してください。
                      • 支援技術に隠されていない限り、コールトゥアクションとしてHTML記号を使用しないようにしてください。', - LINK_URL: 'リンクテキストとして使用される長くて分かりにくいURLは、支援技術で聞き取るのが難しいかもしれません。ほとんどの場合、URL の代わりに人間が読めるテキストを使用する方がよいでしょう。
                        ヒント! リンクテキストは、常に明確で、ユニークで、意味があり、文脈から理解できるものでなければなりません。', - LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドでは、作品のURLやDOIをタイトルに巻きつけて、説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長くて分かりにくいURLは、支援技術でアクセスしたときに理解するのが難しいかもしれません。', - NEW_TAB_WARNING: 'リンクは警告なしに新しいタブまたはウィンドウで開きます。そうすることで、特に視覚的なコンテンツを知覚することが困難な人々にとって、混乱させることができます。第二に、誰かの経験をコントロールしたり、彼らのために決定を下すことは、必ずしも良い習慣とは言えません。リンクテキスト内でリンクが新しいウィンドウで開くことを示す
                        ヒント!ベストプラクティスを学びましょう:リンクを新しいブラウザのウィンドウやタブで開く。', - FILE_TYPE_WARNING: 'リンク先がPDFやダウンロード可能なファイル(例:MP3、Zip、Word Doc)であることを警告せずに示す。リンクテキスト内にファイルの種類を表示する。
                        例: エグゼクティブレポート (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'リンクは別のリンクと同じテキストを持っていますが、別のページを指しています。
                        他のリンクと区別するために、次のリンクをより説明的にすることを検討してください:%(sanitizedText)。', - MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像は装飾としてマークされる必要がありますが、画像は周囲のテキストへのリンクとして使用されています。', - MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストが不足しています!altテキストにリンク先が記載されていることを確認してください。', - MISSING_ALT_MESSAGE: 'altテキストがない!画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ず画像を説明すること。', - LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内のファイル拡張子が見つかりました。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するものであることを確認してください。削除してください:%(error).
                        alt属性: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内のaltテキストが非記述またはプレースホルダーであることが判明しました。altテキストが、画像の文字通りの説明ではなく、リンク先を記述していることを確認してください。以下のaltテキストを置き換えてください:%(altText)とします。', - LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。altテキストは、画像の文字通りの説明ではなく、リンク先を説明するようにします。
                        altテキスト: %(altText)', - ALT_HAS_FILE_EXTENSION: '見つかったaltテキスト内のファイル拡張子。画像がストーリーや雰囲気、重要な情報を伝えている場合は、必ず画像を説明してください。削除してください:%(error).
                        alt属性: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '非デスクリプトまたはプレースホルダーのaltテキストが見つかりました。以下のaltテキストを、より意味のあるものに置き換えてください:%(altText)となります。', - ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示すので、"%(error)" は冗長であるかもしれません。
                        オルトテキスト: %(altText)', - LINK_HIDDEN_FOCUSABLE: 'リンクにはaria-hidden="true"がありますが、キーボードでまだフォーカス可能です。冗長なまたは重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', - LINK_IMAGE_NO_ALT_TEXT: 'リンク内の画像は装飾と表示され、リンクテキストがありません。リンク先を示すaltテキストを画像に追加してください。', - LINK_IMAGE_HAS_TEXT: 'リンク先では周囲のテキストを説明用のラベルとして使用していますが、画像は装飾としてマークされています。', - LINK_IMAGE_LONG_ALT: 'リンク先画像のaltテキスト記述が長すぎるです。リンク先の画像のaltテキストは、画像の文字通りの説明ではなく、リンク先がどこなのかを説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                        altテキスト (%(altLength) characters): %(altText)', - LINK_IMAGE_ALT_WARNING: '画像リンクにaltテキストが含まれています。altテキストは、リンク先について説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                        altテキスト: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクには、altテキストと周囲のリンクテキストの両方が含まれています。この画像が装飾的で、別のページへの機能的なリンクとして使用されている場合、画像を装飾または無効としてマークすることを検討してください -周囲のリンクテキストで十分なはずです。
                        altテキスト: %(altText)
                        リンクラベル: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: '画像はdecorativeとマークされており、支援技術によって無視されます。
                        キャプションが提供されましたが、ほとんどの場合、画像にはaltテキストもあるべきです。
                        • altテキストは、画像に何が写っているかを簡潔に説明する必要があります。
                        • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させる必要があります。
                        もっと学ぶ:alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'altテキストとcaptionテキストの両方に全く同じ単語を使用しないでください。スクリーン リーダは情報を 2 回通知します。
                        • alt テキストは、画像に何が写っているかを簡潔に説明する必要があります。
                        • キャプションは通常、画像を周囲のコンテンツと関連付けるためのコンテキストを提供するか、特定の情報の一部に注目させます。
                        詳細はこちら:alt versus figcaption.
                        オルトテキスト: %(altText)', - IMAGE_DECORATIVE: '画像はdecorativeとマークされ、支援技術によって無視されることになります。画像がストーリーや雰囲気、重要な情報を伝えるものであれば、必ずaltテキストを追加してください。', - IMAGE_ALT_TOO_LONG: 'Altテキストの説明が長すぎる。Altテキストは、ツイートのように簡潔で、かつ意味のあるものにしましょう(100文字前後)。これが複雑な画像やグラフであれば、画像の長い説明を下のテキストに入れたり、アコーディオン・コンポーネントにすることを検討してください。
                        オルトテキスト(%(altLength) 文字): %(altText)', - IMAGE_PASS: 'オルトテキスト: %(altText)', - LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセシブルな名称を提供するために、altテキストを追加してください。例えば、以下のようなものです:検索または送信。', - LABELS_INPUT_RESET_MESSAGE: 'リセット ボタンは、間違って起動しやすいので、特に必要な場合を除き、使用すべきではありません
                        ヒント! リセットボタンとキャンセルボタンがユーザビリティの問題を引き起こす理由を学びましょう。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力にはアクセシブルな名前がついていますが、目に見えるラベルもつけてください。
                        入力ラベル: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力に関連するラベルはありません。この入力のidに一致するラベルにfor属性を追加してください。
                        この入力のIDは次のとおりです:id="%(id)" です。', - LABELS_MISSING_LABEL_MESSAGE: 'この入力に関連するラベルはありません。この入力に id を追加し、ラベルに一致する for 属性を追加してください。', - EMBED_VIDEO: 'すべてのビデオにクローズドキャプションがあることを確認してください。すべてのオーディオおよびビデオコンテンツにキャプションを提供することは、レベルAの必須要件です。キャプションは、聴覚障害者をサポートします。', - EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供するようにしてください。オーディオコンテンツにトランスクリプトを提供することは、レベルAの必須要件です。トランスクリプトは、ろう者や難聴者をサポートするものですが、誰にとっても有益なものです。トランスクリプトを下またはアコーディオンパネルに配置することを検討してください。', - EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使って操作する人にとって問題があることが多く、弱視や色覚異常の人にとっては大きな障害となることがあります。ウィジェットの下に、同じ情報を別の形式(テキストまたは表)で提供することが推奨されます。複雑な画像についてもっと詳しく知る。', - EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセシブルネームが必要です。iframe 要素にユニークな title または aria-label 属性を指定してください。iFrame.について詳しくはこちら。', - EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認することができません。画像にはaltテキスト、動画にはキャプション、テキストには十分なコントラスト、インタラクティブなコンポーネントにはキーボードアクセス可能であることを確認してください。', - EMBED_UNFOCUSABLE: 'フォーカスできない要素を含む<iframe>にはtabindex="-1"を指定しないでください。埋め込まれたコンテンツはキーボードではアクセスできません。', - QA_BAD_LINK: '不正なリンクが見つかりました。リンクは開発環境を指しているようです。
                        このリンクは、次の場所を指しています:
                        %(el)。', - QA_IN_PAGE_LINK: '同じページ内リンクが壊れています。リンクの対象は、このページ上のいかなる要素とも一致しません。', - QA_BAD_ITALICS: '太字と斜体のタグは意味上の意味があり、段落全体を強調するために使用すべきではありません。太字は、単語やフレーズを強く強調するために使用されるべきです。イタリックは、固有名詞(例:書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用文は、ブロッククオートとしてフォーマットされるべきである。', - QA_PDF: 'PDFのアクセシビリティをチェックできない。PDFはウェブコンテンツとみなされ、同様にアクセシビリティを確保する必要があります。PDFには、スクリーンリーダーを使用する人(構造タグがない、フォームフィールドラベルがない)や弱視の人(拡大してもテキストがリフローしない)にとって問題があることがよくあります。
                        • これがフォームの場合は、アクセシブルな HTML フォームを代替として使用することを検討してください。
                        • これが文書の場合は、Web ページへの変換を検討してください。
                        その他、PDF を Acrobat DC. でアクセス可能か確認してください。', - QA_DOCUMENT: 'ドキュメントのアクセシビリティを確認できません。リンクされたドキュメントはウェブコンテンツとみなされ、同様にアクセシブルにする必要があります。このドキュメントを手動で確認してください。。', - QA_PAGE_LANGUAGE: 'ページの言語が宣言されていません!HTMLタグで言語を宣言してください。', - QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを記入してください。', - QA_BLOCKQUOTE_MESSAGE: 'これは見出しなのでしょうか?%(sanitizedText)
                        ブロッククォートは引用にのみ使用する必要があります。もしこれが見出しとして意図されているのであれば、このブロッククオートを意味的な見出し(例:見出し2または見出し3)に変更してください。', - QA_FAKE_HEADING: 'これは見出しなのでしょうか?%(boldtext)
                        太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使っている人は、それが重要であることを見分けることも、そのコンテンツに飛ぶこともできません。太字や大きなテキストは、セマンティックな見出し(見出し2~見出し6)を決して置き換えるべきではありません。', - QA_SHOULD_BE_LIST: 'リストを作成しようとしているのでしょうか?可能なリスト項目が見つかりました:%(firstPrefix)
                        セマンティックリストを使用するには、代わりに箇条書きまたは数字の書式設定ボタンを使用することを確認してください。セマンティックリストを使用すると、支援技術は、項目の総数やリスト内の各項目の相対位置などの情報を伝達することができます。セマンティックリストについてもっと詳しく知ることができます。', - QA_UPPERCASE_WARNING: '全角文字が見つかりました。スクリーンリーダーによっては、全角のテキストを頭字語と解釈し、各文字を個別に読み上げる場合があります。また、全角文字が読みにくく、叫んでいるように見える方もいらっしゃいます。', - QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDのエラーは、支援技術がコンテンツと相互作用しようとするときに問題を引き起こすことが知られています。
                        以下のIDを削除または変更してください:%(id)です。', - QA_TEXT_UNDERLINE_WARNING: '下線付きのテキストは、リンクと混同されることがあります。<strong>strong importance</strong> または <em></em> など別のスタイルにすることを考えてください。', - QA_SUBSCRIPT_WARNING: '下付き文字と上付き文字の書式オプションは、組版規則や標準のためにテキストの位置を変更するためにのみ使用されるべきです。プレゼンテーションや見栄えのためにのみ使用するのはNGです。文章全体をフォーマットすることは、読みやすさの問題を提起します。適切な使用例としては、指数の表示、4番目の代わりに4thのような序数、化学式(例:H2O)などが挙げられます。', - TABLES_MISSING_HEADINGS: 'テーブルのヘッダーがない!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要であり、それらの関係を定義しています。この情報は、支援技術を使用する人にコンテキストを提供します。テーブルは、表形式のデータのみに使用する必要があります。アクセシブルテーブルについてもっと詳しく知ることができます。', - TABLES_SEMANTIC_HEADING: '見出し2や見出し3のような意味上の見出しは、コンテンツのセクションにのみ使用されるべきで、HTMLテーブルでは使用できません。テーブルの見出しは、<th>要素で表すようにしましょう。アクセシブルテーブルについて詳しくはこちら。', - TABLES_EMPTY_HEADING: '空のテーブルヘッダが見つかりました!テーブルヘッダは決して空であってはなりません。行や列のヘッダーを指定して、それらの関係を伝えることが重要です。この情報は、支援技術を使用する人々にコンテキストを提供します。テーブルは表形式のデータにのみ使用されるべきであるということを心に留めておいてください。アクセシブルテーブルについてもっと詳しく知る。', - CONTRAST_ERROR: 'このテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                        以下のテキストでは、コントラスト比は %(cratio) です:%(sanitizedText)となります。', - CONTRAST_WARNING: 'このテキストのコントラストは不明なので、手動で確認する必要があります。テキストと背景が強いコントラストを持つ色であることを確認する。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                        レビューしてください: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'この入力内のテキストは、背景とのコントラストが十分ではありません。コントラスト比は、通常のテキストでは少なくとも4.5:1、大きなテキストでは3:1であるべきです。
                        コントラスト比:%(cratio)となります。', + + // Headings + HEADING_NON_CONSECUTIVE_LEVEL: '非連続の見出しレベルが使用されました。見出しはレベルをスキップしたり、見出し%(prevLevel)から見出し%(level)に移行することはありません。', + HEADING_EMPTY: '空の見出しが見つかりました!修正するには、この行を削除するか、その形式を見出し%(level)から通常または段落に変更してください。', + HEADING_LONG: '見出しが長すぎます!見出しはコンテンツを整理し、構造を伝えるために使用されます。簡潔で情報量があり、他と区別される必要があります。見出しは160文字未満に保つようにしてください(1文を超えないでください)。
                        %(HEADING_LENGTH) 文字', + HEADING_FIRST: 'ページの最初の見出しは通常、見出し1または見出し2にする必要があります。見出し1はメインコンテンツセクションの開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_MISSING_ONE: '見出し1がありません。見出し1はメインコンテンツ領域の開始であり、ページ全体の目的を説明する主要な見出しです。見出しの構造について詳しくはこちら。', + HEADING_EMPTY_WITH_IMAGE: '見出しにテキストがありませんが、画像が含まれています。これが見出しでない場合は、その形式を見出し%(level)から通常または段落に変更してください。それ以外の場合は、画像に装飾的でない alt テキストを追加してください。', + PANEL_HEADING_MISSING_ONE: '見出し1がありません!', + PANEL_NO_HEADINGS: '見出しが見つかりません。', + + // Links + LINK_EMPTY: 'テキストのない空のリンクを削除してください。', + LINK_EMPTY_LABELLEDBY: 'リンクには、空のaria-labelledby値またはページの他の要素のid値と一致しないaria-labelledby値があります。', + LINK_EMPTY_LINK_NO_LABEL: 'スクリーンリーダーやその他の支援技術で見える識別可能なテキストを持たないリンクです。修正するには:
                        • リンク先を説明する簡潔なテキストを追加してください。
                        • アイコンリンクやSVGの場合、おそらく説明的なラベルが不足しています。
                        • このリンクがコピー/貼り付けのバグによるエラーであると考える場合は、削除を検討してください。
                        ', + LINK_LABEL: 'ラベル %(TEXT)', + LINK_STOPWORD: 'コンテキストがない状況では、リンクテキストが十分に説明的ではないかもしれません:%(ERROR)
                        ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。"ここをクリック"や"詳細を見る"などの一般的な言葉は避けてください。', + LINK_BEST_PRACTICES: 'リンクテキストを置き換えることを検討してください:%(ERROR)
                        • "ここをクリック"は多くの人がマウスを使用しないか、このウェブサイトをモバイルデバイスで表示している可能性があるため、マウスの操作に焦点を当てています。タスクに関連する別の動詞を使用することを検討してください。
                        • 補助技術には非表示にされていない限り、HTMLシンボルをコールツーアクションとして使用しないでください。
                        ', + LINK_URL: 'リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。ほとんどの場合、URLの代わりに読みやすいテキストを使用する方が良いでしょう。短いURL(サイトのホームページなど)は問題ありません。
                        ヒント! リンクテキストは常に明確で、ユニークで、意味のあるものである必要があります。コンテキストがない状況でも理解できるようにしてください。', + LINK_DOI: 'ウェブページやオンラインのみのリソースの場合、APAスタイルガイドは、作品のURLまたはDOIをタイトルにラップすることで説明的なリンクを使用することを推奨しています。リンクテキストとして使用される長く理解しにくいURLは、支援技術で理解するのが難しい場合があります。', + + // Links advanced + NEW_TAB_WARNING: 'リンクが警告なしに新しいタブまたはウィンドウで開きます。これは、視覚的コンテンツを認識するのが難しい人々にとって特に混乱を招く可能性があります。さらに、誰かの体験を制御したり、代わりに決定したりするのは常に良い慣行ではありません。リンクテキスト内でリンクが新しいウィンドウで開くことを示してください。
                        ヒント! ベストプラクティスを学ぶ:新しいブラウザウィンドウとタブでのリンクの開き方。', + FILE_TYPE_WARNING: 'リンクが警告なしにPDFやダウンロード可能なファイル(MP3、Zip、Word Docなど)を指しています。リンクテキスト内にファイルの種類を示してください。ファイルが大きい場合は、ファイルサイズを含めることを検討してください。
                        例: 実行レポート(PDF、3MB)', + LINK_IDENTICAL_NAME: 'リンクが他のリンクと同じテキストを持っていますが、異なるページを指しています。同じテキストを持つ複数のリンクは、スクリーンリーダーを使用する人々に混乱を招く可能性があります。
                        他のリンクと区別するために、次のリンクをより具体的にすることを検討してください:%(TEXT)', + + // Images + MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '画像が周囲のテキストと一緒にリンクとして使用されていますが、alt属性は装飾用としてマークされる必要があります。', + MISSING_ALT_LINK_MESSAGE: '画像がリンクとして使用されていますが、altテキストがありません!リンクがどこに向かうかを説明するaltテキストを確認してください。', + MISSING_ALT_MESSAGE: 'altテキストがありません!画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。', + LINK_ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。altテキストが画像のリンク先を説明しているかどうか、画像の文字通りの説明ではないことを確認してください。ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'リンクされた画像内の記述のないまたはプレースホルダーのaltテキストが見つかりました。altテキストが画像のリンク先を説明していることを確認してください。%(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。altテキストが画像のリンク先を説明していることを確認してください。
                        ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'altテキスト内にファイルの拡張子が見つかりました。画像が物語やムード、重要な情報を伝えている場合は、画像を説明してください。ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '記述のないまたはプレースホルダーのaltテキストが見つかりました。次のaltテキストをより意味のあるものに置き換えてください:%(ALT_TEXT)', + ALT_HAS_SUS_WORD: '支援技術はすでにこれが画像であることを示しているため、「%(ERROR)」は冗長かもしれません。
                        ALT %(ALT_TEXT)', + LINK_HIDDEN_FOCUSABLE: 'aria-hidden="true"を持つリンクですが、キーボードでフォーカスが可能です。冗長または重複したリンクを非表示にする場合は、tabindex="-1"も追加してください。', + LINK_IMAGE_NO_ALT_TEXT: '画像内のリンクが装飾用としてマークされており、リンクテキストがありません。リンクの目的を説明するaltテキストを画像に追加してください。', + LINK_IMAGE_HAS_TEXT: '画像が装飾用としてマークされていますが、リンクが周囲のテキストを説明するラベルとして使用されています。', + LINK_IMAGE_LONG_ALT: 'リンクされた画像のaltテキストの説明が長すぎます。リンクされた画像のaltテキストは、画像の文字通りの説明ではなく、リンクの目的を説明する必要があります。リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                        ALT %(altLength) 文字 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '画像リンクにはaltテキストが含まれています。altテキストがリンク先を説明していますか?リンク先のページのタイトルをaltテキストとして使用することを検討してください。
                        ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '画像リンクにはaltテキストと周囲のリンクテキストの両方が含まれています。 この画像が装飾用であり、他のページへの機能的なリンクとして使用されている場合は、画像を装飾用としてマークすることを検討してください。周囲のリンクテキストで十分です。
                        ALT %(ALT_TEXT)
                        ラベル %(TEXT)', + IMAGE_FIGURE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。
                        キャプションが提供されていますが、ほとんどの場合、画像にはaltテキストも必要です。
                        • altテキストは画像の内容を簡潔に説明する必要があります。
                        • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
                        詳細はこちら:altとfigcaptionの比較。', + IMAGE_FIGURE_DUPLICATE_ALT: 'altとキャプションテキストにはまったく同じ単語を使用しないでください。スクリーンリーダーは情報を二重に発表します。
                        • altテキストは画像の内容を簡潔に説明する必要があります。
                        • キャプションは通常、画像を周囲のコンテンツに関連付けるための文脈を提供したり、特定の情報に注意を払ったりするために使用されます。
                        詳細はこちら:altとfigcaptionの比較
                        ALT %(ALT_TEXT)', + IMAGE_DECORATIVE: '画像が装飾用としてマークされ、支援技術によって無視されます。画像が物語やムード、重要な情報を伝えている場合は、altテキストを追加してください。', + IMAGE_ALT_TOO_LONG: 'altテキストの説明が長すぎます。altテキストは簡潔でありながら意味のあるものである必要があります(ツイートのように、約100文字)。これが複雑な画像やグラフの場合は、画像の長い説明を以下のテキストまたは折りたたみコンポーネントに入れることを検討してください。
                        ALT %(altLength) 文字 %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', + + // Labels + LABELS_MISSING_IMAGE_INPUT_MESSAGE: '画像ボタンにaltテキストがありません。アクセス可能な名前を提供するためにaltテキストを追加してください。例:検索または送信。', + LABELS_INPUT_RESET_MESSAGE: 'リセットボタンは、特に必要な場合を除いて使用しないでください。間違って簡単にアクティブ化される可能性があります。
                        ヒント! リセットおよびキャンセルボタンが使用性の問題を引き起こす理由を学んでください。', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '入力フィールドにはアクセス可能な名前がありますが、見えるラベルもあることを確認してください。
                        入力ラベル %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドのラベルに一致するfor属性を追加してください。
                        この入力フィールドのIDは:id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: 'この入力フィールドに関連付けられたラベルがありません。この入力フィールドにidを追加し、ラベルに一致するfor属性を追加してください。', + + // Embedded content + EMBED_VIDEO: 'すべての動画に字幕を表示してください。 音声および動画コンテンツのすべてに字幕を提供することは、必須のレベルAの要件です。字幕は、聴覚障害者や難聴者をサポートします。', + EMBED_AUDIO: 'すべてのポッドキャストにトランスクリプトを提供してください。 音声コンテンツのすべてにトランスクリプトを提供することは、必須のレベルAの要件です。トランスクリプトは、聴覚障害者や難聴者をサポートしますが、誰にでも利益をもたらすことがあります。トランスクリプトを下部に配置するか、アコーディオンパネル内に配置することを検討してください。', + EMBED_DATA_VIZ: 'このようなデータ可視化ウィジェットは、キーボードやスクリーンリーダーを使用してナビゲートする人々や、視力が低い人々や色覚異常の人々にとって問題が発生することがよくあります。ウィジェットの下に代替(テキストまたは表)形式で同じ情報を提供することが推奨されています。
                        複雑な画像について詳しく学びます。', + EMBED_MISSING_TITLE: '埋め込みコンテンツには、その内容を説明するアクセス可能な名前が必要です。 iframe要素にユニークなtitleまたはaria-label属性を提供してください。iFramesについて詳しく学びます。', + EMBED_GENERAL_WARNING: '埋め込みコンテンツを確認できません。画像にはaltテキスト、動画には字幕、テキストには十分なコントラスト、対話型コンポーネントにはキーボードアクセス可能性があることを確認してください。', + EMBED_UNFOCUSABLE: '<iframe>にフォーカス可能な要素が含まれている場合、tabindex="-1"を持つべきではありません。埋め込みコンテンツはキーボードでアクセスできません。', + + // QA + QA_BAD_LINK: '悪いリンクが見つかりました。リンクは開発環境を指しているようです。
                        このリンクの先は:
                        %(LINK)', + QA_BAD_ITALICS: '太字および斜体タグには意味があり、段落全体を強調表示するために使用してはいけません。強調するためには、太字が使用されるべきです。斜体は固有名詞(つまり、書籍や記事のタイトル)、外国語、引用を強調するために使用されるべきです。長い引用は引用ブロックとしてフォーマットする必要があります。', + QA_PDF: 'PDFのアクセシビリティをチェックできません。PDFはWebコンテンツと見なされ、アクセシブルにする必要があります。PDFには、スクリーンリーダーを使用する人や視力が低い人向けの問題がよく含まれます(構造タグの欠落やフォームフィールドのラベルの欠落など)。
                        • これがフォームである場合は、代替としてアクセシブルなHTMLフォームを使用してください。
                        • これが文書である場合は、Webページに変換してください。
                        それ以外の場合は、Acrobat DCでのPDFのアクセシビリティを確認してください。', + QA_DOCUMENT: '文書のアクセシビリティをチェックできません。リンクされた文書はWebコンテンツと見なされ、アクセシブルにする必要があります。この文書を手動で確認してください。', + QA_PAGE_LANGUAGE: 'ページ言語が宣言されていません!HTMLタグで言語を宣言してください。', + QA_PAGE_TITLE: 'ページタイトルがありません!ページタイトルを入力してください。', + QA_BLOCKQUOTE_MESSAGE: 'これは見出しですか?%(TEXT)
                        ブロック引用は引用のためにのみ使用する必要があります。これが見出しである場合は、このブロック引用をセマンティックな見出し(例:見出し2または見出し3)に変更してください。', + QA_FAKE_HEADING: 'これは見出しですか?%(TEXT)
                        太字や大きなテキストの行は見出しのように見えるかもしれませんが、スクリーンリーダーを使用している人はそれが重要であるかどうかを判断したり、その内容にジャンプしたりすることができません。太字や大きなテキストはセマンティックな見出し(見出し2から見出し6)を置き換えるべきではありません。', + QA_SHOULD_BE_LIST: 'リストを作成しようとしていますか?可能なリスト項目が見つかりました:%(firstPrefix)
                        ブルレットまたは番号の書式設定ボタンを使用してセマンティックなリストを使用してください。セマンティックなリストを使用すると、支援技術が合計アイテム数やリスト内の各アイテムの相対位置などの情報を伝えることができます。セマンティックリストについて詳しく学びます。', + QA_UPPERCASE_WARNING: 'すべて大文字が見つかりました。一部のスクリーンリーダーはすべて大文字のテキストを略語と解釈し、各文字を個別に読み上げます。また、一部の人々はすべて大文字のテキストを読むのが難しく、それが叫んでいるように見えるかもしれません。', + QA_DUPLICATE_ID: '重複したIDが見つかりました。重複したIDは、支援技術がコンテンツとの相互作用を試みる際に問題を引き起こすことが知られています。
                        次のIDを削除または変更してください:%(id)', + QA_TEXT_UNDERLINE_WARNING: '下線付きテキストはリンクと混同される可能性があります。<strong>strong importance</strong><em>emphasis</em>など、異なるスタイルを使用してください。', + QA_SUBSCRIPT_WARNING: '下付き文字および上付き文字の書式設定オプションは、テキストの位置を変更するためのものであるべきです。それは単にプレゼンテーションや外観の目的でのみ使用されるべきではありません。文章全体のフォーマットは読みにくさの問題を引き起こします。適切な使用例には、指数の表示、序数(たとえば4th)、化学式(例:H2O)などが含まれます。', + QA_IN_PAGE_LINK: 'リンクが壊れた同じページのリンクです。リンクのターゲットはページ上のいずれの要素とも一致しません。', + + // Tables + TABLES_MISSING_HEADINGS: 'テーブルヘッダーがありません!アクセシブルなテーブルには、ヘッダーセルとデータセルを示すHTMLマークアップが必要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
                        アクセシブルなテーブルについて詳しく学びます。', + TABLES_SEMANTIC_HEADING: '見出し2や見出し3などのセマンティックな見出しは、コンテンツのセクションにのみ使用すべきです。HTMLテーブルでは使用しないでください。代わりに<th>要素を使用してテーブルの見出しを示します。
                        アクセシブルなテーブルについて詳しく学びます。', + TABLES_EMPTY_HEADING: '空のテーブルヘッダーが見つかりました!テーブルヘッダーは空にしてはいけません。行や列のヘッダーを指定して関係性を伝えることが重要です。これにより、支援技術を使用する人々にコンテキストが提供されます。テーブルは表形式のデータのみに使用する必要があります。
                        アクセシブルなテーブルについて詳しく学びます。', + + // Contrast + CONTRAST_ERROR: 'このテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                        コントラスト比 %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'このテキストの対比は不明であり、手動で確認する必要があります。テキストと背景が強い対比色を持つことを確認してください。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                        確認してください:%(TEXT)', + CONTRAST_INPUT_ERROR: 'この入力内のテキストは背景との対比が不足しています。通常のテキストには対比比率が少なくとも4.5:1、大きなテキストには3:1以上である必要があります。
                        コントラスト比 %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ko.js b/docs/assets/js/lang/ko.js index 66ffa536..74c392d9 100644 --- a/docs/assets/js/lang/ko.js +++ b/docs/assets/js/lang/ko.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -21,47 +21,53 @@ var ko = { ERRORS: '오류', WARNING: '경고', WARNINGS: '경고', - GOOD: '양호', - ON: '켜기', + GOOD: '양호함', + ON: '켜짐', OFF: '꺼짐', - ALERT_TEXT: '알림', + ALERT_TEXT: '경고', ALERT_CLOSE: '닫기', - OUTLINE: '페이지 개요', + OUTLINE: '윤곽', + ALT: '대체 텍스트', + IMAGES: '이미지', + EDIT: '편집', + IMAGES_NOT_FOUND: '이미지를 찾을 수 없음', + DECORATIVE: '장식용', + MISSING: '누락됨', PAGE_ISSUES: '페이지 문제', SETTINGS: '설정', CONTRAST: '대비', FORM_LABELS: '양식 레이블', - LINKS_ADVANCED: '링크(고급)', + LINKS_ADVANCED: '링크 (고급)', DARK_MODE: '다크 모드', - SHORTCUT_SCREEN_READER: '이슈로 건너뛰기. 키보드 단축키: Alt S', - SHORTCUT_TOOLTIP: '이슈로 건너뛰기', + SHORTCUT_SCREEN_READER: '문제로 건너뛰기. 키보드 단축키: Alt S', + SHORTCUT_TOOLTIP: '문제로 건너뛰기', NEW_TAB: '새 탭에서 열기', PANEL_HEADING: '접근성 확인', - PANEL_STATUS_NONE: '오류를 찾을 수 없습니다.', - PANEL_ICON_WARNINGS: '경고가 발견되었습니다.', - PANEL_ICON_TOTAL: '발견된 총 문제 수입니다.', - NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다. 다음은 미리 보기입니다:', - ERROR_MISSING_ROOT_TARGET: '대상 영역 <코드>%(root)가 존재하지 않으므로 전체 페이지의 접근성을 확인하지 못했습니다.', - HEADING_NOT_VISIBLE_ALERT: '제목은 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다.', - SKIP_TO_PAGE_ISSUES: '페이지로 건너뛰기 이슈', - CONSOLE_ERROR_MESSAGE: '죄송하지만 이 페이지의 접근성 검사기에 문제가 있습니다. 이 양식 또는 GitHub에서 신고해 주시겠어요?', - - // Dismiss - PANEL_DISMISS_BUTTON: '%(dismissCount) 해제된 경고 표시', - DISMISS: '해지', - DISMISSED: '기각된 경고', - DISMISS_REMINDER: '경고는 일시적으로만 해제됩니다. 브라우저 기록과 쿠키를 지우면 모든 페이지에서 이전에 해제된 경고가 모두 복원됩니다.', + PANEL_STATUS_NONE: '오류 없음.', + PANEL_ICON_WARNINGS: '경고 발견.', + PANEL_ICON_TOTAL: '총 문제 발견.', + NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않습니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다. 미리 보기:', + ERROR_MISSING_ROOT_TARGET: '타겟 영역 %(root)이(가) 없기 때문에 전체 페이지에 대한 접근성을 확인했습니다.', + HEADING_NOT_VISIBLE_ALERT: '표시되지 않는 제목입니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다.', + SKIP_TO_PAGE_ISSUES: '페이지 문제로 건너뛰기', + CONSOLE_ERROR_MESSAGE: '죄송합니다. 이 페이지에서 접근성 점검기에 문제가 있습니다. 이 양식이나 GitHub을 통해 신고해 주십시오.', // Export DATE: '날짜', PAGE_TITLE: '페이지 제목', RESULTS: '결과', EXPORT_RESULTS: '결과 내보내기', - GENERATED: '%(tool)로 생성된 결과.', - PREVIEW: '미리보기', + GENERATED: '%(TOOL)로 생성된 결과입니다.', + PREVIEW: '미리 보기', ELEMENT: '요소', PATH: '경로', + // Dismiss + PANEL_DISMISS_BUTTON: '%(dismissCount)개의 숨겨진 경고 보기', + DISMISS: '닫기', + DISMISSED: '숨겨진 경고', + DISMISS_REMINDER: '경고는 일시적으로만 숨겨집니다. 브라우저 기록 및 쿠키를 지우면 이전에 숨겨진 모든 경고가 모든 페이지에서 복원됩니다.', + // Colour filters COLOUR_FILTER: '컬러 필터', PROTANOPIA: '프로타노피아', @@ -156,11 +162,11 @@ var ko = { LANG_DIFFICULT: '어려움', LANG_FAIRLY_DIFFICULT: '상당히 어려움', LANG_GOOD: '양호', - READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <코드><p> 또는 목록 콘텐츠 <코드><li>를 찾을 수 없습니다.', + READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <p> 또는 목록 콘텐츠 < code><li>를 찾을 수 없습니다.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '가독성 점수를 계산할 콘텐츠가 충분하지 않습니다.', HEADING_NON_CONSECUTIVE_LEVEL: '비연속적인 머리글 레벨이 사용되었습니다. 제목은 레벨을 건너뛰거나 헤딩 %(level)에서 헤딩 %(level)로 이동하지 않아야 합니다.', HEADING_EMPTY: '빈 제목이 발견되었습니다! 수정하려면 이 줄을 삭제하거나 형식을 헤딩 %(level)에서 일반 또는 단락으로 변경하세요.', - HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
                        글자 수입니다: %(headingLength)', + HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
                        %(HEADING_LENGTH) 문자', HEADING_FIRST: '페이지의 첫 번째 제목은 일반적으로 제목 1 또는 제목 2여야 합니다. 제목 1은 주요 콘텐츠 섹션의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 주요 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_MISSING_ONE: '제목 1이 누락되었습니다. 제목 1은 주요 콘텐츠 영역의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 기본 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_EMPTY_WITH_IMAGE: '제목에 텍스트가 없지만 이미지가 포함되어 있습니다. 제목이 아닌 경우 형식을 제목 %(level)에서 일반 또는 단락으로 변경합니다. 그렇지 않으면 장식용 이미지가 아닌 경우 이미지에 대체 텍스트를 추가하세요.', @@ -168,66 +174,66 @@ var ko = { PANEL_NO_HEADINGS: '제목을 찾을 수 없습니다.', LINK_EMPTY: '텍스트가 없는 빈 링크를 제거합니다.', LINK_EMPTY_LABELLEDBY: '링크에는 다른 페이지 요소의 id 속성 값과 일치하지 않거나 비어 있는 aria-labelledby 값이 있습니다.', - LINK_EMPTY_LINK_NO_LABEL: '링크에 화면 리더 및 기타 보조 기술에서 볼 수 있는 식별 가능한 텍스트가 없습니다. 수정하려면: ', - LINK_LABEL: '링크 레이블: %(sanitizedText)', - LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(error)
                        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요;", - LINK_BEST_PRACTICES: '링크 텍스트를 바꾸는 것이 좋습니다: %(error)
                        • "여기를 클릭하세요"는 마우스를 사용하지 않거나 모바일 장치에서 이 웹사이트를 볼 수 있는 많은 사람들을 위해 마우스 메커니즘에 중점을 둔 위치입니다. 작업과 관련된 다른 동사를 사용하는 것이 좋습니다.
                        • 보조 기술에 숨겨져 있지 않는 한 HTML 기호를 콜투액션으로 사용하지 마세요.
                        ', - LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
                        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', + LINK_EMPTY_LINK_NO_LABEL: '링크에는 스크린 리더 및 기타 보조 기술에서 볼 수 있는 구별 가능한 텍스트가 없습니다. 해결 방법:
                        ', + LINK_LABEL: '링크 레이블 %(TEXT)', + LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(ERROR)
                        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요", + LINK_BEST_PRACTICES: '맥락 없이 링크 텍스트가 충분히 설명적이지 않을 수 있습니다: %(ERROR)
                        팁! 링크 텍스트는 항상 명확하고 유일하며 의미 있어야 합니다. "여기를 클릭하세요"나 "자세히 알아보기"와 같은 흔한 단어를 피하세요"', + LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
                        Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', LINK_DOI: '웹 페이지 또는 온라인 전용 리소스의 경우 APA 스타일 가이드에서는 제목 주위에 저작물의 URL 또는 DOI를 감싸는 설명 링크를 사용할 것을 권장합니다. 링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술을 사용하여 이해하기 어려울 수 있습니다.', - NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
                        팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', - FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
                        예시: 임원 보고서(PDF, 3MB)', - LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
                        다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(sanitizedText)', + NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
                        팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', + FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
                        예시: 임원 보고서(PDF, 3MB)', + LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
                        다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '이미지가 주변 텍스트와 함께 링크로 사용되고 있지만 alt 속성은 장식용 또는 null로 표시되어야 합니다.', MISSING_ALT_LINK_MESSAGE: '이미지가 링크로 사용 중이지만 대체 텍스트가 누락되었습니다! 링크가 어디로 연결되는지 설명하는 대체 텍스트를 입력하세요.', MISSING_ALT_MESSAGE: '대체 텍스트가 누락되었습니다! 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지에 대한 설명을 반드시 기재하세요.', - LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(error).
                        대체 텍스트: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
                        대체 텍스트: %(altText)', - ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(error).
                        대체 텍스트: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(altText)', - ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다.
                        대체 텍스트: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(ERROR).
                        대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
                        대체 텍스트 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(ERROR).
                        대체 텍스트 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다.
                        대체 텍스트 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '링크에는 aria-hidden="true" 속성이 있지만 키보드로 여전히 초점을 맞출 수 있습니다. 중복되거나 불필요한 링크를 숨기려면 tabindex="-1"도 추가하세요.', LINK_IMAGE_NO_ALT_TEXT: '링크 내 이미지는 장식용으로 표시되어 있으며 링크 텍스트가 없습니다. 링크의 목적지를 설명하는 대체 텍스트를 이미지에 추가하세요.', LINK_IMAGE_HAS_TEXT: '링크가 주변 텍스트를 설명 레이블로 사용하고 있지만 이미지는 장식용으로 표시됩니다.', - LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                        대체 텍스트(%(altLength) 문자): %(altText)', - LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                        대체 텍스트: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
                        대체 텍스트: %(altText)
                        링크 레이블: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                        대체 %(altLength) 문자 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                        대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
                        대체 텍스트 %(ALT_TEXT)
                        링크 레이블 %(TEXT)', IMAGE_FIGURE_DECORATIVE: '이미지가 장식으로 표시되어 보조 기술에서 무시됩니다.
                        캡션이 제공되었더라도 이미지에는 대부분의 경우 대체 텍스트가 있어야 합니다.
                        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주의를 기울일 수 있도록 맥락을 제공해야 합니다.
                        자세히 알아보기: 알트 대 그림 캡션.', - IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
                        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
                        자세히 알아보기: 알트 대 그림 캡션.
                        대체 텍스트: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
                        • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                        • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
                        자세히 알아보기: 알트 대 그림 캡션.
                        대체 텍스트 %(ALT_TEXT)', IMAGE_DECORATIVE: "이미지는 '장식용'으로 표시되어 보조 기술에서 무시됩니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 대체 텍스트를 추가해야 합니다.", - IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
                        대체 텍스트(%(altLength) 문자): %(altText)', - IMAGE_PASS: '대체 텍스트: %(altText)', + IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
                        대체 %(altLength) 문자 %(ALT_TEXT)', + IMAGE_PASS: '대체 텍스트 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '이미지 버튼에 대체 텍스트가 없습니다. 접근 가능한 이름을 제공하기 위해 대체 텍스트를 추가하세요. 예: 검색 또는 제출.', LABELS_INPUT_RESET_MESSAGE: '재설정 버튼은 실수로 활성화하기 쉬우므로 특별히 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다.
                        Tip! 재설정 및 취소 버튼이 사용성 문제를 일으키는 이유에 대해 알아보세요.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
                        입력 레이블: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 <코드>ID와 일치하는 레이블에 <코드>용 속성을 추가합니다.
                        이 입력의 ID는 다음과 같습니다: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 <코드>아이디를 추가하고 레이블에 일치하는 <코드>용 속성을 추가하세요.', - EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요.
                        모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', - EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
                        입력 레이블 %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 ID와 일치하는 레이블에 속성을 추가합니다.
                        이 입력의 ID는 다음과 같습니다: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 아이디를 추가하고 레이블에 일치하는 속성을 추가하세요.', + EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요. 모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', + EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', EMBED_DATA_VIZ: '이와 같은 데이터 시각화 위젯은 키보드나 화면 리더를 사용하여 탐색하는 사람들에게 종종 문제가 되며, 저시력자나 색맹인 사람들에게는 상당한 어려움을 초래할 수 있습니다. 위젯 아래에 동일한 정보를 다른 형식(텍스트 또는 표)으로 제공하는 것이 좋습니다.
                        복잡한 이미지에 대해 자세히 알아보기 컴플렉스 이미지.', EMBED_MISSING_TITLE: '임베드된 콘텐츠에는 콘텐츠를 설명하는 접근 가능한 이름이 필요합니다. iframe 요소에 고유한 title 또는 aria-label 속성을 제공하세요. iFrames.에 대해 자세히 알아보기', EMBED_GENERAL_WARNING: '삽입된 콘텐츠를 확인할 수 없습니다. 이미지에 대체 텍스트가 있는지, 동영상에 캡션이 있는지, 텍스트의 대비가 충분한지, 인터랙티브 구성 요소가 키보드에 액세스할 수 있는지 확인하세요.', EMBED_UNFOCUSABLE: '포커스할 수 없는 요소를 포함한 <iframe>tabindex="-1"을 가져서는 안 됩니다. 포함된 콘텐츠는 키보드로 접근할 수 없습니다.', - QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
                        이 링크는 다음을 가리킵니다:
                        %(el)', + QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
                        이 링크는 다음을 가리킵니다:
                        %(LINK)', QA_IN_PAGE_LINK: '부서진 동일 페이지 링크입니다. 링크 대상이 이 페이지에 있는 어떤 요소와도 일치하지 않습니다.', QA_BAD_ITALICS: '굵게 및 이탤릭체 태그는 의미론적 의미가 있으며, 전체 단락을 강조할 때는 <강함>이 아닌 <강함>을 사용해야 합니다. 굵은 텍스트는 단어나 문구에 강한 <강한> 강조를 제공할 때 사용해야 합니다. 고유명사(예: 책 및 기사 제목), 외래어, 따옴표는 이탤릭체로 강조 표시해야 합니다. 긴 따옴표는 블록 따옴표로 서식을 지정해야 합니다.', - QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. PDF에는 화면 리더를 사용하는 사용자(구조 태그 누락 또는 양식 필드 레이블 누락)와 저시력 사용자(확대 시 텍스트가 리플로우되지 않음)를 위한 문제가 포함되어 있는 경우가 많습니다.
                        • 양식인 경우 접근 가능한 HTML 양식을 대안으로 사용해 보십시오.
                        • 문서인 경우 웹 페이지로 변환해 보십시오.
                        그렇지 않은 경우
                        PDF의 접근성을 확인하십시오.를 확인하십시오.', - QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
                      • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
                      ', + QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되며 접근성을 확보해야 합니다. PDF에는 종종 스크린 리더를 사용하는 사람들을 위한 문제가 있습니다(구조 태그가 누락되거나 양식 필드 레이블이 누락됨) 및 시각이 낮은 사람들(텍스트가 확대되면 재배치되지 않음).
                      • 이것이 양식이면 접근 가능한 HTML 양식을 대안으로 사용하는 것을 고려하십시오.
                      • 이것이 문서인 경우 웹 페이지로 변환하는 것을 고려하십시오.
                      그렇지 않으면, Acrobat DC에서 PDF의 접근성을 확인하세요.', + QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
                    • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
                    ', QA_PAGE_LANGUAGE: '페이지 언어가 선언되지 않았습니다! HTML 태그에 언어를 선언하세요.', QA_PAGE_TITLE: '페이지 제목이 누락되었습니다! 페이지 제목을 입력하세요.', - QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(sanitizedText)
                    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', - QA_FAKE_HEADING: '이것이 제목인가요? %(boldtext)
                    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', - QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
                    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', + QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(TEXT)
                    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', + QA_FAKE_HEADING: '이것이 제목인가요? %(TEXT)
                    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', + QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
                    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', QA_UPPERCASE_WARNING: '모든 대문자를 찾았습니다. 일부 화면 리더는 대문자 텍스트를 약어로 해석하여 각 문자를 개별적으로 읽을 수 있습니다. 또한 일부 사람들은 대문자를 더 읽기 어려워하며 소리치는 것처럼 보일 수 있습니다.', - QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
                    다음 ID를 제거하거나 변경하세요: %(id)', + QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
                    다음 ID를 제거하거나 변경하세요: %(id)', QA_TEXT_UNDERLINE_WARNING: '밑줄 친 텍스트는 링크와 혼동될 수 있습니다. <strong>강조</strong> 또는 <em>강조</em>와 같은 다른 스타일을 사용하는 것을 고려하세요.', - QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', + QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', TABLES_MISSING_HEADINGS: '표 헤더가 누락되었습니다! 접근 가능한 표에는 머리글 셀과 데이터 셀의 관계를 정의하는 HTML 마크업이 필요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 컨텍스트를 제공합니다. 표는 표 형식의 데이터에만 사용해야 합니다.
                    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_SEMANTIC_HEADING: '제목 2 또는 제목 3과 같은 시맨틱 제목은 콘텐츠 섹션에만 사용해야 하며, HTML 표에는 이 아닌을 사용해야 합니다. 대신 <th> 요소를 사용하여 표 제목을 표시하세요.
                    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_EMPTY_HEADING: '빈 테이블 헤더가 발견되었습니다! 테이블 헤더는 비어 있으면 안 됩니다. 행 및/또는 열 머리글을 지정하여 관계를 전달하는 것이 중요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 맥락을 제공합니다. 표는 표 형식의 데이터에만 사용해야 한다는 점에 유의하세요.
                    액세스 가능한 테이블에 대해 자세히 알아보기.', - CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    다음 텍스트의 대비 비율은 %(cratio)입니다: %(sanitizedText)', - CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    검토해 주세요: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대비 비율: %(cratio)', + CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대조 비율 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    검토해 주세요: %(TEXT)', + CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대조 비율 %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ko.umd.js b/docs/assets/js/lang/ko.umd.js index e7412dc8..8c2578b2 100644 --- a/docs/assets/js/lang/ko.umd.js +++ b/docs/assets/js/lang/ko.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,47 +27,53 @@ ERRORS: '오류', WARNING: '경고', WARNINGS: '경고', - GOOD: '양호', - ON: '켜기', + GOOD: '양호함', + ON: '켜짐', OFF: '꺼짐', - ALERT_TEXT: '알림', + ALERT_TEXT: '경고', ALERT_CLOSE: '닫기', - OUTLINE: '페이지 개요', + OUTLINE: '윤곽', + ALT: '대체 텍스트', + IMAGES: '이미지', + EDIT: '편집', + IMAGES_NOT_FOUND: '이미지를 찾을 수 없음', + DECORATIVE: '장식용', + MISSING: '누락됨', PAGE_ISSUES: '페이지 문제', SETTINGS: '설정', CONTRAST: '대비', FORM_LABELS: '양식 레이블', - LINKS_ADVANCED: '링크(고급)', + LINKS_ADVANCED: '링크 (고급)', DARK_MODE: '다크 모드', - SHORTCUT_SCREEN_READER: '이슈로 건너뛰기. 키보드 단축키: Alt S', - SHORTCUT_TOOLTIP: '이슈로 건너뛰기', + SHORTCUT_SCREEN_READER: '문제로 건너뛰기. 키보드 단축키: Alt S', + SHORTCUT_TOOLTIP: '문제로 건너뛰기', NEW_TAB: '새 탭에서 열기', PANEL_HEADING: '접근성 확인', - PANEL_STATUS_NONE: '오류를 찾을 수 없습니다.', - PANEL_ICON_WARNINGS: '경고가 발견되었습니다.', - PANEL_ICON_TOTAL: '발견된 총 문제 수입니다.', - NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다. 다음은 미리 보기입니다:', - ERROR_MISSING_ROOT_TARGET: '대상 영역 <코드>%(root)가 존재하지 않으므로 전체 페이지의 접근성을 확인하지 못했습니다.', - HEADING_NOT_VISIBLE_ALERT: '제목은 보이지 않거나 숨겨져 있거나 아코디언 또는 탭 구성 요소 안에 있을 수 있습니다.', - SKIP_TO_PAGE_ISSUES: '페이지로 건너뛰기 이슈', - CONSOLE_ERROR_MESSAGE: '죄송하지만 이 페이지의 접근성 검사기에 문제가 있습니다. 이 양식 또는 GitHub에서 신고해 주시겠어요?', - - // Dismiss - PANEL_DISMISS_BUTTON: '%(dismissCount) 해제된 경고 표시', - DISMISS: '해지', - DISMISSED: '기각된 경고', - DISMISS_REMINDER: '경고는 일시적으로만 해제됩니다. 브라우저 기록과 쿠키를 지우면 모든 페이지에서 이전에 해제된 경고가 모두 복원됩니다.', + PANEL_STATUS_NONE: '오류 없음.', + PANEL_ICON_WARNINGS: '경고 발견.', + PANEL_ICON_TOTAL: '총 문제 발견.', + NOT_VISIBLE_ALERT: '보려는 항목이 보이지 않습니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다. 미리 보기:', + ERROR_MISSING_ROOT_TARGET: '타겟 영역 %(root)이(가) 없기 때문에 전체 페이지에 대한 접근성을 확인했습니다.', + HEADING_NOT_VISIBLE_ALERT: '표시되지 않는 제목입니다. 숨겨져 있거나 아코디언 또는 탭 컴포넌트 안에 있을 수 있습니다.', + SKIP_TO_PAGE_ISSUES: '페이지 문제로 건너뛰기', + CONSOLE_ERROR_MESSAGE: '죄송합니다. 이 페이지에서 접근성 점검기에 문제가 있습니다. 이 양식이나 GitHub을 통해 신고해 주십시오.', // Export DATE: '날짜', PAGE_TITLE: '페이지 제목', RESULTS: '결과', EXPORT_RESULTS: '결과 내보내기', - GENERATED: '%(tool)로 생성된 결과.', - PREVIEW: '미리보기', + GENERATED: '%(TOOL)로 생성된 결과입니다.', + PREVIEW: '미리 보기', ELEMENT: '요소', PATH: '경로', + // Dismiss + PANEL_DISMISS_BUTTON: '%(dismissCount)개의 숨겨진 경고 보기', + DISMISS: '닫기', + DISMISSED: '숨겨진 경고', + DISMISS_REMINDER: '경고는 일시적으로만 숨겨집니다. 브라우저 기록 및 쿠키를 지우면 이전에 숨겨진 모든 경고가 모든 페이지에서 복원됩니다.', + // Colour filters COLOUR_FILTER: '컬러 필터', PROTANOPIA: '프로타노피아', @@ -162,11 +168,11 @@ LANG_DIFFICULT: '어려움', LANG_FAIRLY_DIFFICULT: '상당히 어려움', LANG_GOOD: '양호', - READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <코드><p> 또는 목록 콘텐츠 <코드><li>를 찾을 수 없습니다.', + READABILITY_NO_P_OR_LI_MESSAGE: '가독성 점수를 계산할 수 없습니다. 단락 <p> 또는 목록 콘텐츠 < code><li>를 찾을 수 없습니다.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '가독성 점수를 계산할 콘텐츠가 충분하지 않습니다.', HEADING_NON_CONSECUTIVE_LEVEL: '비연속적인 머리글 레벨이 사용되었습니다. 제목은 레벨을 건너뛰거나 헤딩 %(level)에서 헤딩 %(level)로 이동하지 않아야 합니다.', HEADING_EMPTY: '빈 제목이 발견되었습니다! 수정하려면 이 줄을 삭제하거나 형식을 헤딩 %(level)에서 일반 또는 단락으로 변경하세요.', - HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
                    글자 수입니다: %(headingLength)', + HEADING_LONG: '제목이 길어요! 제목은 콘텐츠를 구성하고 구조를 전달하는 데 사용해야 합니다. 제목은 간결하고 유익하며 독창적이어야 합니다. 제목은 160자 이내(한 문장 이하)로 유지하세요.
                    %(HEADING_LENGTH) 문자', HEADING_FIRST: '페이지의 첫 번째 제목은 일반적으로 제목 1 또는 제목 2여야 합니다. 제목 1은 주요 콘텐츠 섹션의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 주요 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_MISSING_ONE: '제목 1이 누락되었습니다. 제목 1은 주요 콘텐츠 영역의 시작 부분이어야 하며 페이지의 전반적인 목적을 설명하는 기본 제목입니다. 헤딩 구조에 대해 자세히 알아보기.', HEADING_EMPTY_WITH_IMAGE: '제목에 텍스트가 없지만 이미지가 포함되어 있습니다. 제목이 아닌 경우 형식을 제목 %(level)에서 일반 또는 단락으로 변경합니다. 그렇지 않으면 장식용 이미지가 아닌 경우 이미지에 대체 텍스트를 추가하세요.', @@ -174,66 +180,66 @@ PANEL_NO_HEADINGS: '제목을 찾을 수 없습니다.', LINK_EMPTY: '텍스트가 없는 빈 링크를 제거합니다.', LINK_EMPTY_LABELLEDBY: '링크에는 다른 페이지 요소의 id 속성 값과 일치하지 않거나 비어 있는 aria-labelledby 값이 있습니다.', - LINK_EMPTY_LINK_NO_LABEL: '링크에 화면 리더 및 기타 보조 기술에서 볼 수 있는 식별 가능한 텍스트가 없습니다. 수정하려면: ', - LINK_LABEL: '링크 레이블: %(sanitizedText)', - LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(error)
                    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요;", - LINK_BEST_PRACTICES: '링크 텍스트를 바꾸는 것이 좋습니다: %(error)
                    • "여기를 클릭하세요"는 마우스를 사용하지 않거나 모바일 장치에서 이 웹사이트를 볼 수 있는 많은 사람들을 위해 마우스 메커니즘에 중점을 둔 위치입니다. 작업과 관련된 다른 동사를 사용하는 것이 좋습니다.
                    • 보조 기술에 숨겨져 있지 않는 한 HTML 기호를 콜투액션으로 사용하지 마세요.
                    ', - LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
                    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', + LINK_EMPTY_LINK_NO_LABEL: '링크에는 스크린 리더 및 기타 보조 기술에서 볼 수 있는 구별 가능한 텍스트가 없습니다. 해결 방법:
                    ', + LINK_LABEL: '링크 레이블 %(TEXT)', + LINK_STOPWORD: "링크 텍스트가 문맥에 맞지 않게 충분히 설명적이지 않을 수 있습니다: %(ERROR)
                    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 것이어야 합니다. '여기를 클릭하세요' 또는 '자세히 알아보기'와 같은 일반적인 단어는 피하세요", + LINK_BEST_PRACTICES: '맥락 없이 링크 텍스트가 충분히 설명적이지 않을 수 있습니다: %(ERROR)
                    팁! 링크 텍스트는 항상 명확하고 유일하며 의미 있어야 합니다. "여기를 클릭하세요"나 "자세히 알아보기"와 같은 흔한 단어를 피하세요"', + LINK_URL: '링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술로 이해하기 어려울 수 있습니다. 대부분의 경우 URL 대신 사람이 읽을 수 있는 텍스트를 사용하는 것이 좋습니다. 짧은 URL(예: 사이트 홈페이지)은 괜찮습니다.
                    Tip! 링크 텍스트는 항상 명확하고 고유하며 의미 있는 문맥을 통해 이해할 수 있어야 합니다.', LINK_DOI: '웹 페이지 또는 온라인 전용 리소스의 경우 APA 스타일 가이드에서는 제목 주위에 저작물의 URL 또는 DOI를 감싸는 설명 링크를 사용할 것을 권장합니다. 링크 텍스트로 사용되는 길고 이해하기 어려운 URL은 보조 기술을 사용하여 이해하기 어려울 수 있습니다.', - NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
                    팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', - FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
                    예시: 임원 보고서(PDF, 3MB)', - LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
                    다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(sanitizedText)', + NEW_TAB_WARNING: '경고 없이 새 탭 또는 새 창에서 링크가 열립니다. 특히 시각적 콘텐츠를 인식하는 데 어려움을 겪는 사람들에게는 혼란을 줄 수 있습니다. 둘째, 다른 사람의 경험을 통제하거나 대신 결정을 내리는 것은 항상 좋은 관행이 아닙니다. 링크 텍스트 내에 링크가 새 창에서 열림
                    팁! 모범 사례 알아보기임을 표시하세요: 새 브라우저 창 및 탭에서 링크 열기', + FILE_TYPE_WARNING: '링크는 경고 없이 PDF 또는 다운로드 가능한 파일(예: MP3, Zip, Word Doc)을 가리킵니다. 링크 텍스트에 파일 유형을 표시합니다. 대용량 파일인 경우 파일 크기를 포함하는 것이 좋습니다.
                    예시: 임원 보고서(PDF, 3MB)', + LINK_IDENTICAL_NAME: '다른 페이지를 가리키지만 링크의 텍스트가 다른 링크와 동일합니다. 동일한 텍스트의 링크가 여러 개 있으면 화면 리더를 사용하는 사용자에게 혼란을 줄 수 있습니다.
                    다음 링크를 다른 링크와 구분할 수 있도록 더 설명적으로 만드는 것을 고려하세요: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '이미지가 주변 텍스트와 함께 링크로 사용되고 있지만 alt 속성은 장식용 또는 null로 표시되어야 합니다.', MISSING_ALT_LINK_MESSAGE: '이미지가 링크로 사용 중이지만 대체 텍스트가 누락되었습니다! 링크가 어디로 연결되는지 설명하는 대체 텍스트를 입력하세요.', MISSING_ALT_MESSAGE: '대체 텍스트가 누락되었습니다! 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지에 대한 설명을 반드시 기재하세요.', - LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(error).
                    대체 텍스트: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
                    대체 텍스트: %(altText)', - ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(error).
                    대체 텍스트: %(altText)', - ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(altText)', - ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(error)가 중복될 수 있습니다.
                    대체 텍스트: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요. 제거합니다: %(ERROR).
                    대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '링크된 이미지에 설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 대상을 설명하는지 확인합니다. 다음 대체 텍스트를 교체합니다: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다. 대체 텍스트가 이미지에 대한 문자 그대로의 설명이 아니라 링크의 목적지를 설명하는지 확인하세요.
                    대체 텍스트 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '대체 텍스트 내의 파일 확장자를 찾았습니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 이미지를 설명해야 합니다. 제거합니다: %(ERROR).
                    대체 텍스트 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '설명이 없거나 자리 표시자 대체 텍스트가 발견되었습니다. 다음 대체 텍스트를 더 의미 있는 것으로 바꾸세요: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: '보조 기술은 이미 이미지임을 표시하므로 %(ERROR)가 중복될 수 있습니다.
                    대체 텍스트 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '링크에는 aria-hidden="true" 속성이 있지만 키보드로 여전히 초점을 맞출 수 있습니다. 중복되거나 불필요한 링크를 숨기려면 tabindex="-1"도 추가하세요.', LINK_IMAGE_NO_ALT_TEXT: '링크 내 이미지는 장식용으로 표시되어 있으며 링크 텍스트가 없습니다. 링크의 목적지를 설명하는 대체 텍스트를 이미지에 추가하세요.', LINK_IMAGE_HAS_TEXT: '링크가 주변 텍스트를 설명 레이블로 사용하고 있지만 이미지는 장식용으로 표시됩니다.', - LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                    대체 텍스트(%(altLength) 문자): %(altText)', - LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                    대체 텍스트: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
                    대체 텍스트: %(altText)
                    링크 레이블: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '링크된 이미지의 대체 텍스트 설명이 너무 깁니다. 링크된 이미지의 대체 텍스트는 이미지에 대한 문자 그대로의 설명이 아니라 링크를 통해 이동하는 위치를 설명해야 합니다. 링크되는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                    대체 %(altLength) 문자 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '이미지 링크에 대체 텍스트가 포함되어 있습니다. 대체 텍스트에 링크가 어디로 연결되는지 설명되어 있나요? 링크하는 페이지의 제목을 대체 텍스트로 사용하는 것이 좋습니다.
                    대체 텍스트 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '이미지 링크에 대체 텍스트와 주변 링크 텍스트가 모두 포함됨 이 이미지가 장식용이고 다른 페이지에 대한 기능적 링크로 사용되는 경우 이미지를 장식용으로 표시하거나 주변 링크 텍스트로 충분할 수 있도록 null로 표시하는 것을 고려하세요.
                    대체 텍스트 %(ALT_TEXT)
                    링크 레이블 %(TEXT)', IMAGE_FIGURE_DECORATIVE: '이미지가 장식으로 표시되어 보조 기술에서 무시됩니다.
                    캡션이 제공되었더라도 이미지에는 대부분의 경우 대체 텍스트가 있어야 합니다.
                    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주의를 기울일 수 있도록 맥락을 제공해야 합니다.
                    자세히 알아보기: 알트 대 그림 캡션.', - IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
                    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
                    자세히 알아보기: 알트 대 그림 캡션.
                    대체 텍스트: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '대체 텍스트와 캡션 텍스트에 정확히 같은 단어를 사용하지 마세요. 화면 리더는 정보를 두 번 알립니다.
                    • 대체 텍스트는 이미지에 포함된 내용에 대한 간결한 설명을 제공해야 합니다.
                    • 캡션은 일반적으로 이미지를 주변 콘텐츠와 다시 연관시키거나 특정 정보에 주목할 수 있도록 맥락을 제공해야 합니다.
                    자세히 알아보기: 알트 대 그림 캡션.
                    대체 텍스트 %(ALT_TEXT)', IMAGE_DECORATIVE: "이미지는 '장식용'으로 표시되어 보조 기술에서 무시됩니다. 이미지가 스토리, 분위기 또는 중요한 정보를 전달하는 경우 대체 텍스트를 추가해야 합니다.", - IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
                    대체 텍스트(%(altLength) 문자): %(altText)', - IMAGE_PASS: '대체 텍스트: %(altText)', + IMAGE_ALT_TOO_LONG: '대체 텍스트 설명이 너무 깁니다. 대체 텍스트는 간결하면서도 트윗처럼 의미 있는 내용이어야 합니다(100자 내외). 복잡한 이미지나 그래프인 경우 이미지에 대한 긴 설명을 아래 텍스트나 아코디언 구성 요소에 넣는 것이 좋습니다.
                    대체 %(altLength) 문자 %(ALT_TEXT)', + IMAGE_PASS: '대체 텍스트 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '이미지 버튼에 대체 텍스트가 없습니다. 접근 가능한 이름을 제공하기 위해 대체 텍스트를 추가하세요. 예: 검색 또는 제출.', LABELS_INPUT_RESET_MESSAGE: '재설정 버튼은 실수로 활성화하기 쉬우므로 특별히 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다.
                    Tip! 재설정 및 취소 버튼이 사용성 문제를 일으키는 이유에 대해 알아보세요.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
                    입력 레이블: %(sanitizedText)', - LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 <코드>ID와 일치하는 레이블에 <코드>용 속성을 추가합니다.
                    이 입력의 ID는 다음과 같습니다: id="%(id)"', - LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 <코드>아이디를 추가하고 레이블에 일치하는 <코드>용 속성을 추가하세요.', - EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요.
                    모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', - EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '입력에 접근 가능한 이름이 있지만 레이블도 표시되어 있는지 확인하세요.
                    입력 레이블 %(TEXT)', + LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력의 ID와 일치하는 레이블에 속성을 추가합니다.
                    이 입력의 ID는 다음과 같습니다: id="%(id)"', + LABELS_MISSING_LABEL_MESSAGE: '이 입력과 연결된 레이블이 없습니다. 이 입력에 아이디를 추가하고 레이블에 일치하는 속성을 추가하세요.', + EMBED_VIDEO: '모든 동영상에 자막이 있는지 확인하세요. 모든 오디오 및 동영상 콘텐츠에 자막을 제공하는 것은 필수 레벨 A 요건입니다. 자막은 청각 장애가 있거나 난청인 사용자를 지원합니다.', + EMBED_AUDIO: '모든 팟캐스트에 대본을 제공해야 합니다. 오디오 콘텐츠에 대한 대본 제공은 필수 레벨 A 요건입니다. 대본은 청각 장애가 있거나 청각이 불편한 사람들을 지원하지만 모든 사람에게 도움이 될 수 있습니다. 대본을 아래 또는 아코디언 패널 안에 배치하는 것을 고려하세요.', EMBED_DATA_VIZ: '이와 같은 데이터 시각화 위젯은 키보드나 화면 리더를 사용하여 탐색하는 사람들에게 종종 문제가 되며, 저시력자나 색맹인 사람들에게는 상당한 어려움을 초래할 수 있습니다. 위젯 아래에 동일한 정보를 다른 형식(텍스트 또는 표)으로 제공하는 것이 좋습니다.
                    복잡한 이미지에 대해 자세히 알아보기 컴플렉스 이미지.', EMBED_MISSING_TITLE: '임베드된 콘텐츠에는 콘텐츠를 설명하는 접근 가능한 이름이 필요합니다. iframe 요소에 고유한 title 또는 aria-label 속성을 제공하세요. iFrames.에 대해 자세히 알아보기', EMBED_GENERAL_WARNING: '삽입된 콘텐츠를 확인할 수 없습니다. 이미지에 대체 텍스트가 있는지, 동영상에 캡션이 있는지, 텍스트의 대비가 충분한지, 인터랙티브 구성 요소가 키보드에 액세스할 수 있는지 확인하세요.', EMBED_UNFOCUSABLE: '포커스할 수 없는 요소를 포함한 <iframe>tabindex="-1"을 가져서는 안 됩니다. 포함된 콘텐츠는 키보드로 접근할 수 없습니다.', - QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
                    이 링크는 다음을 가리킵니다:
                    %(el)', + QA_BAD_LINK: '잘못된 링크를 찾았습니다. 링크가 개발 환경을 가리키는 것으로 보입니다.
                    이 링크는 다음을 가리킵니다:
                    %(LINK)', QA_IN_PAGE_LINK: '부서진 동일 페이지 링크입니다. 링크 대상이 이 페이지에 있는 어떤 요소와도 일치하지 않습니다.', QA_BAD_ITALICS: '굵게 및 이탤릭체 태그는 의미론적 의미가 있으며, 전체 단락을 강조할 때는 <강함>이 아닌 <강함>을 사용해야 합니다. 굵은 텍스트는 단어나 문구에 강한 <강한> 강조를 제공할 때 사용해야 합니다. 고유명사(예: 책 및 기사 제목), 외래어, 따옴표는 이탤릭체로 강조 표시해야 합니다. 긴 따옴표는 블록 따옴표로 서식을 지정해야 합니다.', - QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. PDF에는 화면 리더를 사용하는 사용자(구조 태그 누락 또는 양식 필드 레이블 누락)와 저시력 사용자(확대 시 텍스트가 리플로우되지 않음)를 위한 문제가 포함되어 있는 경우가 많습니다.
                    • 양식인 경우 접근 가능한 HTML 양식을 대안으로 사용해 보십시오.
                    • 문서인 경우 웹 페이지로 변환해 보십시오.
                    그렇지 않은 경우
                    PDF의 접근성을 확인하십시오.를 확인하십시오.', - QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
                  • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
                  • ', + QA_PDF: 'PDF의 접근성을 확인할 수 없습니다. PDF는 웹 콘텐츠로 간주되며 접근성을 확보해야 합니다. PDF에는 종종 스크린 리더를 사용하는 사람들을 위한 문제가 있습니다(구조 태그가 누락되거나 양식 필드 레이블이 누락됨) 및 시각이 낮은 사람들(텍스트가 확대되면 재배치되지 않음).
                    • 이것이 양식이면 접근 가능한 HTML 양식을 대안으로 사용하는 것을 고려하십시오.
                    • 이것이 문서인 경우 웹 페이지로 변환하는 것을 고려하십시오.
                    그렇지 않으면, Acrobat DC에서 PDF의 접근성을 확인하세요.', + QA_DOCUMENT: '문서의 접근성을 확인할 수 없습니다. 링크된 문서는 웹 콘텐츠로 간주되므로 접근성을 제공해야 합니다. 이 문서를 수동으로 검토해 주세요. Google 스페이스 문서 또는 프레젠테이션에 더 쉽게 액세스할 수 있도록 설정하세요.
                  • Office 문서에 더 쉽게 액세스할 수 있도록 설정하세요.
                  • ', QA_PAGE_LANGUAGE: '페이지 언어가 선언되지 않았습니다! HTML 태그에 언어를 선언하세요.', QA_PAGE_TITLE: '페이지 제목이 누락되었습니다! 페이지 제목을 입력하세요.', - QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(sanitizedText)
                    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', - QA_FAKE_HEADING: '이것이 제목인가요? %(boldtext)
                    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', - QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
                    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', + QA_BLOCKQUOTE_MESSAGE: '제목인가요? %(TEXT)
                    블록 따옴표는 따옴표로만 사용해야 합니다. 제목으로 사용하려는 경우 이 블록 따옴표를 의미론적 제목(예: 제목 2 또는 제목 3)으로 변경하세요.', + QA_FAKE_HEADING: '이것이 제목인가요? %(TEXT)
                    굵거나 큰 텍스트 한 줄은 제목처럼 보일 수 있지만 화면 리더를 사용하는 사람은 이 텍스트가 중요하다는 것을 알거나 해당 콘텐츠로 넘어갈 수 없습니다. 굵거나 큰 텍스트는 의미론적 제목(제목 2~제목 6)을 절대 대체해서는 안 됩니다.', + QA_SHOULD_BE_LIST: '목록을 만들려고 하나요? 가능한 목록 항목을 찾았습니다: %(firstPrefix)
                    대신 글머리 기호 또는 숫자 서식 지정 버튼을 사용하여 시맨틱 목록을 사용해야 합니다. 시맨틱 목록을 사용하는 경우 보조 기술은 총 항목 수 및 목록에서 각 항목의 상대적 위치와 같은 정보를 전달할 수 있습니다. 시맨틱 목록에 대해 자세히 알아보기 시맨틱 목록.', QA_UPPERCASE_WARNING: '모든 대문자를 찾았습니다. 일부 화면 리더는 대문자 텍스트를 약어로 해석하여 각 문자를 개별적으로 읽을 수 있습니다. 또한 일부 사람들은 대문자를 더 읽기 어려워하며 소리치는 것처럼 보일 수 있습니다.', - QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
                    다음 ID를 제거하거나 변경하세요: %(id)', + QA_DUPLICATE_ID: '중복 ID를 찾았습니다. 중복 ID 오류는 보조 기술이 콘텐츠와 상호 작용할 때 문제를 일으키는 것으로 알려져 있습니다.
                    다음 ID를 제거하거나 변경하세요: %(id)', QA_TEXT_UNDERLINE_WARNING: '밑줄 친 텍스트는 링크와 혼동될 수 있습니다. <strong>강조</strong> 또는 <em>강조</em>와 같은 다른 스타일을 사용하는 것을 고려하세요.', - QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', + QA_SUBSCRIPT_WARNING: '아래 첨자 및 위 첨자 서식 옵션은 인쇄 규칙이나 표준에 따라 텍스트의 위치를 변경할 때만 사용해야 합니다. 프레젠테이션이나 외관을 위한 용도로만 사용해서는 안 됩니다. 문장 전체에 서식을 지정하면 가독성 문제가 발생할 수 있습니다. 적절한 사용 사례로는 지수 표시, 4번째 대신 4th와 같은 서수 표시, 화학식(예: H2O) 등이 있습니다.', TABLES_MISSING_HEADINGS: '표 헤더가 누락되었습니다! 접근 가능한 표에는 머리글 셀과 데이터 셀의 관계를 정의하는 HTML 마크업이 필요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 컨텍스트를 제공합니다. 표는 표 형식의 데이터에만 사용해야 합니다.
                    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_SEMANTIC_HEADING: '제목 2 또는 제목 3과 같은 시맨틱 제목은 콘텐츠 섹션에만 사용해야 하며, HTML 표에는 이 아닌을 사용해야 합니다. 대신 <th> 요소를 사용하여 표 제목을 표시하세요.
                    액세스 가능한 표에 대해 자세히 알아보기.', TABLES_EMPTY_HEADING: '빈 테이블 헤더가 발견되었습니다! 테이블 헤더는 비어 있으면 안 됩니다. 행 및/또는 열 머리글을 지정하여 관계를 전달하는 것이 중요합니다. 이 정보는 보조 기술을 사용하는 사람들에게 맥락을 제공합니다. 표는 표 형식의 데이터에만 사용해야 한다는 점에 유의하세요.
                    액세스 가능한 테이블에 대해 자세히 알아보기.', - CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    다음 텍스트의 대비 비율은 %(cratio)입니다: %(sanitizedText)', - CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    검토해 주세요: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대비 비율: %(cratio)', + CONTRAST_ERROR: '이 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대조 비율 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '이 텍스트의 대비를 알 수 없으므로 수동으로 검토해야 합니다. 텍스트와 배경의 색상이 강하게 대비되는지 확인합니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    검토해 주세요: %(TEXT)', + CONTRAST_INPUT_ERROR: '이 입력 내의 텍스트는 배경과 대비가 충분하지 않습니다. 대비 비율은 일반 텍스트의 경우 4.5:1 이상, 큰 텍스트의 경우 3:1 이상이어야 합니다.
                    대조 비율 %(RATIO)', }, }; diff --git a/docs/assets/js/lang/lt.js b/docs/assets/js/lang/lt.js index b43157ae..579e4024 100644 --- a/docs/assets/js/lang/lt.js +++ b/docs/assets/js/lang/lt.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var lt = { OFF: 'Išjungta', ALERT_TEXT: 'Įspėjimas', ALERT_CLOSE: 'Uždaryti', - OUTLINE: 'Puslapio metmenys', + OUTLINE: 'Apžvalga', + ALT: 'ALT', + IMAGES: 'Vaizdai', + EDIT: 'Redaguoti', + IMAGES_NOT_FOUND: 'Vaizdų nerasta.', + DECORATIVE: 'Dekoratyvinis', + MISSING: 'Trūksta', PAGE_ISSUES: 'Puslapio problemos', SETTINGS: 'Nustatymai', CONTRAST: 'Kontrastas', @@ -154,7 +160,7 @@ var lt = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepakankamai turinio, kad būtų galima apskaičiuoti skaitomumo balą.', HEADING_NON_CONSECUTIVE_LEVEL: 'Naudojamas ne nuoseklus antraštės lygis. Antraštės niekada neturėtų praleisti lygių arba pereiti iš Pavadinimo %(prevLevel) į Pavadinimą %(level).', HEADING_EMPTY: 'Rasta tuščia antraštė! Norėdami ištaisyti, ištrinkite šią eilutę arba pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph.', - HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
                    Ženklų skaičius: %(headingLength)', + HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
                    %(HEADING_LENGTH) Ženklai', HEADING_FIRST: 'Pirmoji puslapio antraštė paprastai turėtų būti 1 arba 2 antraštė. 1 antraštė turėtų būti pagrindinio turinio skyriaus pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Galvutės struktūrą.', HEADING_MISSING_ONE: 'Trūksta 1 antraštės. 1 antraštė turėtų būti pagrindinės turinio srities pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Pavadinimų struktūrą.', HEADING_EMPTY_WITH_IMAGE: 'Antraštėje nėra teksto, bet yra paveikslėlis. Jei tai nėra antraštė, pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph. Kitu atveju pridėkite paveikslėlio alt tekstą, jei jis nėra dekoratyvinis.', @@ -162,38 +168,38 @@ var lt = { PANEL_NO_HEADINGS: 'Antraščių nerasta.', LINK_EMPTY: 'Pašalinkite tuščias nuorodas be jokio teksto.', LINK_EMPTY_LABELLEDBY: 'Nuoroda turi aria-labelledby reikšmę, kuri yra tuščia arba neatitinka kito puslapio elemento atributo id reikšmės.', - LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
                  • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
                  • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
                  • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
                  • .', - LINK_LABEL: 'Etiketė su nuoroda: %(sanitizedText)', - LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(error)

                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau";', - LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(error)
                    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
                    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
                    ', - LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', + LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
                    • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
                    • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
                    • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
                    .', + LINK_LABEL: 'Etiketė su nuoroda %(TEXT)', + LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(ERROR)
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau"', + LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(ERROR)
                    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
                    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
                    ', + LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', LINK_DOI: 'Interneto puslapiuose arba tik internete esančiuose ištekliuose APA stiliaus vadove rekomenduojama naudoti aprašomąsias nuorodas, aplink kūrinio pavadinimą nurodant jo URL arba DOI. Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis.', - NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange
                    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', - FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
                    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
                    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(sanitizedText)', + NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange.
                    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', + FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
                    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
                    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Paveikslas naudojamas kaip nuoroda su aplinkiniu tekstu, nors atributas alt turėtų būti pažymėtas kaip dekoratyvinis arba nulinis.', MISSING_ALT_LINK_MESSAGE: 'Paveiksliukas naudojamas kaip nuoroda, bet nėra teksto alt! Užtikrinkite, kad alt tekste būtų aprašyta, kur nukreipia nuoroda.', MISSING_ALT_MESSAGE: 'Trūksta alt teksto! Jei paveikslėlis perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai jį aprašykite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(error).
                    Alt tekstas: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
                    Alt tekstas: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(error).
                    Alt tekstas: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(altText)', - ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas.
                    Alt tekstas: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Nuoroda turi aria-hidden="true", bet vis dar gali būti fokusuojama naudojant klaviatūrą. Jei ketinate paslėpti nereikalingą arba pasikartojantį nuorodą, taip pat pridėkite tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Nuorodoje esantis paveikslėlis pažymėtas kaip dekoratyvinis, o nuorodos teksto nėra. Prie paveikslėlio pridėkite alt tekstą, kuriame būtų aprašyta nuorodos paskirtis.', LINK_IMAGE_HAS_TEXT: 'Paveikslas pažymėtas kaip dekoratyvinis, nors nuorodoje aplinkinis tekstas naudojamas kaip aprašomoji etiketė.', - LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    Alt tekstas (%(altLength) ženklai): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    Alt tekstas: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
                    Alt tekstas: %(altText)
                    Etiketė su nuoroda: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    ALT %(altLength) Ženklai %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
                    ALT %(ALT_TEXT)
                    Etiketė su nuoroda %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos.
                    Nors buvo pateikta antrašė, daugeliu atvejų paveikslėlis taip pat turėtų turėti alt tekstą.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Paprastai antraštėje turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu, arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.
                    Alt tekstas: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją - būtinai pridėkite alt tekstą.', - IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
                    Alt tekstas (%(altLength) ženklų): %(altText)', - IMAGE_PASS: 'Alt tekstas: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
                    ALT %(altLength) Ženklai %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Nėra paveikslėlio mygtuko alt teksto. Pridėkite alt tekstą ir pateikite prieinamą pavadinimą. Pavyzdžiui: Ieškoti arba Pateikti.', LABELS_INPUT_RESET_MESSAGE: 'Atstatymo mygtukai turėtų būti nenaudojami, nebent jų specialiai reikia, nes juos lengva įjungti per klaidą.
                    Tipas! Sužinokite, kodėl Mygtukai "Reset" ir "Cancel" kelia patogumo problemų.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
                    Įvesties žymė: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
                    Įvesties žymė %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite for atributą prie etiketės, atitinkančios šios įvesties id.
                    Šios įvesties ID yra: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite id prie šios įvesties ir pridėkite atitinkamą for atributą prie etiketės.', EMBED_VIDEO: 'Užtikrinkite, kad visuose vaizdo įrašuose būtų uždaros antraštės. Visų garso ir vaizdo įrašų titrų pateikimas yra privalomas A lygio reikalavimas. Titrai padeda kurtiesiems ir neprigirdintiesiems.', @@ -202,16 +208,16 @@ var lt = { EMBED_MISSING_TITLE: 'Įterptajam turiniui reikalingas prieinamas pavadinimas, apibūdinantis jo turinį. Elemente iframe nurodykite unikalų title arba aria-label atributą. Sužinokite daugiau apie iRėmus..', EMBED_GENERAL_WARNING: 'Nepavyksta patikrinti įterpto turinio. Įsitikinkite, kad paveikslėliuose yra "alt" tekstas, vaizdo įrašuose - antraštės, tekstas pakankamai kontrastingas, o interaktyvūs komponentai yra prieinami klaviatūra.', EMBED_UNFOCUSABLE: '<iframe> su elementais, į kuriuos negalima sutelkti dėmesio, neturėtų turėti tabindex="-1". Įterptasis turinys nebus pasiekiamas naudojant klaviatūrą.', - QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
                    Ši nuoroda nukreipia į:
                    %(el)', + QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
                    Ši nuoroda nukreipia į:
                    %(LINK)', QA_IN_PAGE_LINK: 'Nugriautas tos pačios puslapio nuorodas. Nuorodos tikslas nesutampa su jokiu šios puslapio elementu.', QA_BAD_ITALICS: 'Paryškinimo ir kursyvo žymės turi semantinę reikšmę ir neturėtų būti naudojamos ne ištisoms pastraipoms paryškinti. Paryškintas tekstas turėtų būti naudojamas stipriai pabrėžti žodį ar frazę. Kursyvu reikėtų paryškinti tikruosius vardus (t. y. knygų ir straipsnių pavadinimus), svetimžodžius, kabutes. Ilgos citatos turėtų būti formatuojamos kaip blokinė citata.', - QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
                    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
                    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
                    Kitu atveju patikrinkite PDF prieinamumą programoje "Acrobat DC".', - QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', + QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
                    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
                    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
                    Kitu atveju patikrinkite PDF prieinamumą programoje Acrobat DC.', + QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', QA_PAGE_LANGUAGE: 'Puslapio kalba nedeklaruota! Prašome deklaruoti kalbą HTML žymėje.', QA_PAGE_TITLE: 'Trūksta puslapio pavadinimo! Pateikite puslapio pavadinimą.', - QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(sanitizedText)
                    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', - QA_FAKE_HEADING: 'Ar tai antraštė? %(boldtext)
                    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', - QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
                    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', + QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(TEXT)
                    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', + QA_FAKE_HEADING: 'Ar tai antraštė? %(TEXT)
                    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', + QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
                    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', QA_UPPERCASE_WARNING: 'Rastos visos didžiosios raidės. Kai kurie ekrano skaitytuvai tekstą visomis didžiosiomis raidėmis gali interpretuoti kaip akronimą ir skaityti kiekvieną raidę atskirai. Be to, kai kurie žmonės mano, kad visos didžiosios raidės yra sunkiau įskaitomos, ir tai gali sudaryti šauksmo įspūdį.', QA_DUPLICATE_ID: 'Rastas dvigubas ID. Yra žinoma, kad pasikartojančio ID klaidos sukelia problemų pagalbinėms technologijoms, kai jos bando sąveikauti su turiniu.
                    Prašome pašalinti arba pakeisti šį ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pabrauktą tekstą galima supainioti su nuorodomis. Apsvarstykite galimybę naudoti kitą stilių, pavyzdžiui, <strong>strong svarba</strong> arba <em>pabrėžimas</em>.', @@ -219,9 +225,9 @@ var lt = { TABLES_MISSING_HEADINGS: 'Trūksta lentelių antraščių! Prieinamoms lentelėms reikia HTML žymėjimo, kuris nurodo antraštės langelius ir duomenų langelius, apibrėžiančius jų ryšį. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Lentelės turėtų būti naudojamos tik lentelėms su duomenimis.
                    Sužinokite daugiau apie prieinamas lenteles.', TABLES_SEMANTIC_HEADING: 'Semantinės antraštės, pavyzdžiui, Heading 2 arba Heading 3, turėtų būti naudojamos tik turinio skyriams; ne HTML lentelėse. Vietoj to lentelių antraštes nurodykite naudodami elementą <th>.
                    Sužinokite daugiau apie prieinamas lenteles.', TABLES_EMPTY_HEADING: 'Rasta tuščia lentelės antraštė! Lentelės antraštės niekada neturėtų būti tuščios. Svarbu nurodyti eilučių ir (arba) stulpelių antraštes, kad būtų išreikštas jų ryšys. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Atminkite, kad lentelės turėtų būti naudojamos tik lentelėms su lentelių duomenimis.
                    Sužinokite daugiau apie prieinamas lenteles.', - CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(cratio) šiam tekstui yra %(sanitizedText)
                    ', - CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Prašome peržiūrėti: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis: %(cratio)', + CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Prašome peržiūrėti: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(RATIO)', }, }; diff --git a/docs/assets/js/lang/lt.umd.js b/docs/assets/js/lang/lt.umd.js index c98e03c2..33e233ce 100644 --- a/docs/assets/js/lang/lt.umd.js +++ b/docs/assets/js/lang/lt.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Išjungta', ALERT_TEXT: 'Įspėjimas', ALERT_CLOSE: 'Uždaryti', - OUTLINE: 'Puslapio metmenys', + OUTLINE: 'Apžvalga', + ALT: 'ALT', + IMAGES: 'Vaizdai', + EDIT: 'Redaguoti', + IMAGES_NOT_FOUND: 'Vaizdų nerasta.', + DECORATIVE: 'Dekoratyvinis', + MISSING: 'Trūksta', PAGE_ISSUES: 'Puslapio problemos', SETTINGS: 'Nustatymai', CONTRAST: 'Kontrastas', @@ -160,7 +166,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepakankamai turinio, kad būtų galima apskaičiuoti skaitomumo balą.', HEADING_NON_CONSECUTIVE_LEVEL: 'Naudojamas ne nuoseklus antraštės lygis. Antraštės niekada neturėtų praleisti lygių arba pereiti iš Pavadinimo %(prevLevel) į Pavadinimą %(level).', HEADING_EMPTY: 'Rasta tuščia antraštė! Norėdami ištaisyti, ištrinkite šią eilutę arba pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph.', - HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
                    Ženklų skaičius: %(headingLength)', + HEADING_LONG: 'Antraštė ilga! Antraštės turėtų būti naudojamos turiniui tvarkyti ir struktūrai perteikti. Jos turėtų būti trumpos, informatyvios ir unikalios. Prašome, kad antraštės būtų trumpesnės nei 160 ženklų (ne ilgesnės nei sakinys).
                    %(HEADING_LENGTH) Ženklai', HEADING_FIRST: 'Pirmoji puslapio antraštė paprastai turėtų būti 1 arba 2 antraštė. 1 antraštė turėtų būti pagrindinio turinio skyriaus pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Galvutės struktūrą.', HEADING_MISSING_ONE: 'Trūksta 1 antraštės. 1 antraštė turėtų būti pagrindinės turinio srities pradžia ir yra pagrindinė antraštė, apibūdinanti bendrą puslapio tikslą. Sužinokite daugiau apie Pavadinimų struktūrą.', HEADING_EMPTY_WITH_IMAGE: 'Antraštėje nėra teksto, bet yra paveikslėlis. Jei tai nėra antraštė, pakeiskite jos formatą iš Heading %(level) į Normal arba Paragraph. Kitu atveju pridėkite paveikslėlio alt tekstą, jei jis nėra dekoratyvinis.', @@ -168,38 +174,38 @@ PANEL_NO_HEADINGS: 'Antraščių nerasta.', LINK_EMPTY: 'Pašalinkite tuščias nuorodas be jokio teksto.', LINK_EMPTY_LABELLEDBY: 'Nuoroda turi aria-labelledby reikšmę, kuri yra tuščia arba neatitinka kito puslapio elemento atributo id reikšmės.', - LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
                  • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
                  • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
                  • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
                  • .', - LINK_LABEL: 'Etiketė su nuoroda: %(sanitizedText)', - LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(error)

                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau";', - LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(error)
                    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
                    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
                    ', - LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', + LINK_EMPTY_LINK_NO_LABEL: 'Nuorodoje nėra įskaitomo teksto, kuris būtų matomas ekrano skaitytuvams ir kitoms pagalbinėms technologijoms. Ištaisyti:
                    • Pridėkite glaustą tekstą, kuriame būtų aprašyta, kur nuoroda veda.
                    • Jeigu tai yra paveiksliuko arba SVG nuoroda, greičiausiai trūksta aprašomosios etiketės.
                    • Jeigu manote, kad ši nuoroda yra klaida dėl kopijavimo ir įkėlimo klaidos, apsvarstykite galimybę ją ištrinti.
                    .', + LINK_LABEL: 'Etiketė su nuoroda %(TEXT)', + LINK_STOPWORD: 'Nuorodos tekstas gali būti nepakankamai aprašomas be konteksto: %(ERROR)
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas. Venkite įprastų žodžių, tokių kaip "spustelėkite čia" arba "sužinokite daugiau"', + LINK_BEST_PRACTICES: 'Apsvarstykite galimybę pakeisti nuorodos tekstą: %(ERROR)
                    • "Spauskite čia" dėmesys sutelkiamas į pelės mechaniką, nors daugelis žmonių nenaudoja pelės arba galbūt šią svetainę peržiūri mobiliuoju įrenginiu. Apsvarstykite galimybę naudoti kitą veiksmažodį, susijusį su užduotimi.
                    • Venkite naudoti HTML simbolius kaip raginimą atlikti veiksmus, nebent jie būtų paslėpti pagalbinėms technologijoms.
                    ', + LINK_URL: 'Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis. Daugeliu atvejų vietoj URL adreso geriau naudoti žmogui suprantamą tekstą. Trumpi URL adresai (pavyzdžiui, svetainės pagrindinis puslapis) yra tinkami.
                    Tipas! Nuorodos tekstas visada turi būti aiškus, unikalus ir prasmingas, kad jį būtų galima suprasti iš konteksto.', LINK_DOI: 'Interneto puslapiuose arba tik internete esančiuose ištekliuose APA stiliaus vadove rekomenduojama naudoti aprašomąsias nuorodas, aplink kūrinio pavadinimą nurodant jo URL arba DOI. Ilgesni, mažiau suprantami URL adresai, naudojami kaip nuorodos tekstas, gali būti sunkiai suprantami naudojantis pagalbinėmis technologijomis.', - NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange
                    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', - FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
                    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
                    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(sanitizedText)', + NEW_TAB_WARNING: 'Nuoroda atsidaro naujame skirtuke arba lange be įspėjimo. Tai gali trikdyti, ypač žmones, kuriems sunku suvokti vaizdinį turinį. Antra, ne visada yra gera praktika kontroliuoti kieno nors patirtį ar priimti sprendimus už jį. Nuorodos tekste nurodykite, kad nuoroda atidaroma naujame lange.
                    Tipas! Išmokite geriausios praktikos: atidaryti nuorodas naujuose naršyklės languose ir skirtukuose.', + FILE_TYPE_WARNING: 'Nuoroda nukreipia į PDF arba atsisiunčiamą failą (pvz., MP3, Zip, "Word" dokumentą) be įspėjimo. Nuorodos tekste nurodykite failo tipą. Jei tai didelis failas, apsvarstykite galimybę nurodyti failo dydį.
                    Pavyzdys: Vykdomoji ataskaita (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Nuoroda turi tokį patį tekstą kaip ir kita nuoroda, nors nukreipia į kitą puslapį. Kelios nuorodos su tuo pačiu tekstu gali klaidinti ekrano skaitytuvus naudojančius žmones.
                    Pagalvokite, ar nevertėtų šios nuorodos aprašyti labiau, kad ją būtų lengviau atskirti nuo kitų nuorodų: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Paveikslas naudojamas kaip nuoroda su aplinkiniu tekstu, nors atributas alt turėtų būti pažymėtas kaip dekoratyvinis arba nulinis.', MISSING_ALT_LINK_MESSAGE: 'Paveiksliukas naudojamas kaip nuoroda, bet nėra teksto alt! Užtikrinkite, kad alt tekste būtų aprašyta, kur nukreipia nuoroda.', MISSING_ALT_MESSAGE: 'Trūksta alt teksto! Jei paveikslėlis perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai jį aprašykite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(error).
                    Alt tekstas: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
                    Alt tekstas: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(error).
                    Alt tekstas: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(altText)', - ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(error)" gali būti nereikalingas.
                    Alt tekstas: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pašalinti: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Rastas ne aprašomasis arba pakaitinis alt tekstas susietame paveikslėlyje. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą. Pakeiskite šį alt tekstą: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas. Užtikrinkite, kad alt tekstas apibūdintų nuorodos paskirties vietą, o ne pažodinį paveikslėlio aprašymą.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Rastas failo plėtinys alt tekste. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją, būtinai aprašykite vaizdą. Pašalinti: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Rastas neaprašytas arba pakaitinis alt tekstas. Pakeiskite šį alt tekstą į prasmingesnį: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pagalbinėse technologijose jau nurodoma, kad tai yra paveikslėlis, todėl "%(ERROR)" gali būti nereikalingas.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Nuoroda turi aria-hidden="true", bet vis dar gali būti fokusuojama naudojant klaviatūrą. Jei ketinate paslėpti nereikalingą arba pasikartojantį nuorodą, taip pat pridėkite tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Nuorodoje esantis paveikslėlis pažymėtas kaip dekoratyvinis, o nuorodos teksto nėra. Prie paveikslėlio pridėkite alt tekstą, kuriame būtų aprašyta nuorodos paskirtis.', LINK_IMAGE_HAS_TEXT: 'Paveikslas pažymėtas kaip dekoratyvinis, nors nuorodoje aplinkinis tekstas naudojamas kaip aprašomoji etiketė.', - LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    Alt tekstas (%(altLength) ženklai): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    Alt tekstas: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
                    Alt tekstas: %(altText)
                    Etiketė su nuoroda: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: 'Susieto paveikslėlio Alt teksto aprašymas yra per ilgas. Susietų paveikslėlių alt tekstas turėtų apibūdinti, kur nukreipia nuoroda, o ne pažodinis paveikslėlio aprašymas. Svarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    ALT %(altLength) Ženklai %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Paveikslėlio nuorodoje yra teksto alt. Ar alt tekste aprašoma, kur nukreipia nuoroda? Apsvarstykite galimybę kaip alt tekstą naudoti puslapio, į kurį nukreipia nuoroda, pavadinimą.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Paveikslėlio nuorodoje yra ir alt tekstas, ir aplink esantis nuorodos tekstas. Jei šis paveikslėlis yra dekoratyvinis ir naudojamas kaip funkcinė nuoroda į kitą puslapį, apsvarstykite galimybę pažymėti paveikslėlį kaip dekoratyvinį arba nulinį - aplink esančio nuorodos teksto turėtų pakakti.
                    ALT %(ALT_TEXT)
                    Etiketė su nuoroda %(TEXT)', IMAGE_FIGURE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos.
                    Nors buvo pateikta antrašė, daugeliu atvejų paveikslėlis taip pat turėtų turėti alt tekstą.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Paprastai antraštėje turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu, arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.
                    Alt tekstas: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nenaudokite tų pačių žodžių ir alt, ir antraštės tekstui. Ekrano skaitytuvai informaciją skelbs du kartus.
                    • Alt tekste turėtų būti glaustai aprašyta, kas yra paveikslėlyje.
                    • Tapatybėje paprastai turėtų būti pateiktas kontekstas, kad paveikslėlis būtų susietas su aplinkiniu turiniu arba atkreiptas dėmesys į tam tikrą informaciją.
                    Sužinokite daugiau: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Vaizdas pažymėtas kaip dekoratyvinis, todėl pagalbinės technologijos jį ignoruos. Jei vaizdas perteikia istoriją, nuotaiką ar svarbią informaciją - būtinai pridėkite alt tekstą.', - IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
                    Alt tekstas (%(altLength) ženklų): %(altText)', - IMAGE_PASS: 'Alt tekstas: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksto aprašymas yra per ilgas. Alt tekstas turėtų būti glaustas, bet prasmingas, kaip tweet (apie 100 simbolių). Jei tai sudėtingas paveikslėlis arba grafikas, apsvarstykite galimybę ilgą paveikslėlio aprašymą pateikti žemiau esančiame tekste arba akordeono komponente.
                    ALT %(altLength) Ženklai %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Nėra paveikslėlio mygtuko alt teksto. Pridėkite alt tekstą ir pateikite prieinamą pavadinimą. Pavyzdžiui: Ieškoti arba Pateikti.', LABELS_INPUT_RESET_MESSAGE: 'Atstatymo mygtukai turėtų būti nenaudojami, nebent jų specialiai reikia, nes juos lengva įjungti per klaidą.
                    Tipas! Sužinokite, kodėl Mygtukai "Reset" ir "Cancel" kelia patogumo problemų.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
                    Įvesties žymė: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Įvestis turi prieinamą pavadinimą, tačiau užtikrinkite, kad būtų matoma ir etiketė.
                    Įvesties žymė %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite for atributą prie etiketės, atitinkančios šios įvesties id.
                    Šios įvesties ID yra: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Su šia įvestimi nėra susieta jokia etiketė. Pridėkite id prie šios įvesties ir pridėkite atitinkamą for atributą prie etiketės.', EMBED_VIDEO: 'Užtikrinkite, kad visuose vaizdo įrašuose būtų uždaros antraštės. Visų garso ir vaizdo įrašų titrų pateikimas yra privalomas A lygio reikalavimas. Titrai padeda kurtiesiems ir neprigirdintiesiems.', @@ -208,16 +214,16 @@ EMBED_MISSING_TITLE: 'Įterptajam turiniui reikalingas prieinamas pavadinimas, apibūdinantis jo turinį. Elemente iframe nurodykite unikalų title arba aria-label atributą. Sužinokite daugiau apie iRėmus..', EMBED_GENERAL_WARNING: 'Nepavyksta patikrinti įterpto turinio. Įsitikinkite, kad paveikslėliuose yra "alt" tekstas, vaizdo įrašuose - antraštės, tekstas pakankamai kontrastingas, o interaktyvūs komponentai yra prieinami klaviatūra.', EMBED_UNFOCUSABLE: '<iframe> su elementais, į kuriuos negalima sutelkti dėmesio, neturėtų turėti tabindex="-1". Įterptasis turinys nebus pasiekiamas naudojant klaviatūrą.', - QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
                    Ši nuoroda nukreipia į:
                    %(el)', + QA_BAD_LINK: 'Rasta bloga nuoroda. Atrodo, kad nuoroda nukreipia į kūrimo aplinką.
                    Ši nuoroda nukreipia į:
                    %(LINK)', QA_IN_PAGE_LINK: 'Nugriautas tos pačios puslapio nuorodas. Nuorodos tikslas nesutampa su jokiu šios puslapio elementu.', QA_BAD_ITALICS: 'Paryškinimo ir kursyvo žymės turi semantinę reikšmę ir neturėtų būti naudojamos ne ištisoms pastraipoms paryškinti. Paryškintas tekstas turėtų būti naudojamas stipriai pabrėžti žodį ar frazę. Kursyvu reikėtų paryškinti tikruosius vardus (t. y. knygų ir straipsnių pavadinimus), svetimžodžius, kabutes. Ilgos citatos turėtų būti formatuojamos kaip blokinė citata.', - QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
                    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
                    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
                    Kitu atveju patikrinkite PDF prieinamumą programoje "Acrobat DC".', - QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', + QA_PDF: 'Nepavyksta patikrinti PDF failų prieinamumo. PDF yra laikomi žiniatinklio turiniu, todėl jie taip pat turi būti prieinami. PDF dažnai kyla problemų žmonėms, kurie naudojasi ekrano skaitytuvais (trūksta struktūrinių žymų arba formos laukų etikečių), ir silpnaregiams (padidinus tekstą, jis neatsinaujina).
                    • Jei tai yra forma, apsvarstykite galimybę kaip alternatyvą naudoti prieinamą HTML formą.
                    • Jei tai yra dokumentas, apsvarstykite galimybę jį konvertuoti į tinklalapį.
                    Kitu atveju patikrinkite PDF prieinamumą programoje Acrobat DC.', + QA_DOCUMENT: 'Nepavyksta patikrinti dokumento prieinamumo. Susieti dokumentai laikomi žiniatinklio turiniu ir taip pat turi būti prieinami. Prašome peržiūrėti šį dokumentą rankiniu būdu. ', QA_PAGE_LANGUAGE: 'Puslapio kalba nedeklaruota! Prašome deklaruoti kalbą HTML žymėje.', QA_PAGE_TITLE: 'Trūksta puslapio pavadinimo! Pateikite puslapio pavadinimą.', - QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(sanitizedText)
                    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', - QA_FAKE_HEADING: 'Ar tai antraštė? %(boldtext)
                    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', - QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
                    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', + QA_BLOCKQUOTE_MESSAGE: 'Ar tai antraštė? %(TEXT)
                    Blokinės kabutės turėtų būti naudojamos tik citatoms. Jei tai turi būti antraštė, pakeiskite šią blokinę kabutę į semantinę antraštę (pvz., 2 arba 3 antraštę).', + QA_FAKE_HEADING: 'Ar tai antraštė? %(TEXT)
                    Paryškinto ar didelio teksto eilutė gali atrodyti kaip antraštė, tačiau ekrano skaitytuvu besinaudojantis žmogus negali pasakyti, kad ji yra svarbi, arba pereiti prie jos turinio. Paryškintas ar didelis tekstas niekada neturėtų pakeisti semantinių antraščių (nuo 2 iki 6 antraštės).', + QA_SHOULD_BE_LIST: 'Ar bandote sudaryti sąrašą? Rastas galimas sąrašo elementas: %(firstPrefix)
                    Įsitikinkite, kad naudojate semantinius sąrašus, vietoj jų naudodami kulkų arba skaičių formatavimo mygtukus. Naudojant semantinį sąrašą pagalbinės technologijos gali perteikti tokią informaciją, kaip bendras elementų skaičius ir kiekvieno elemento santykinė padėtis sąraše. Sužinokite daugiau apie semantinius sąrašus..', QA_UPPERCASE_WARNING: 'Rastos visos didžiosios raidės. Kai kurie ekrano skaitytuvai tekstą visomis didžiosiomis raidėmis gali interpretuoti kaip akronimą ir skaityti kiekvieną raidę atskirai. Be to, kai kurie žmonės mano, kad visos didžiosios raidės yra sunkiau įskaitomos, ir tai gali sudaryti šauksmo įspūdį.', QA_DUPLICATE_ID: 'Rastas dvigubas ID. Yra žinoma, kad pasikartojančio ID klaidos sukelia problemų pagalbinėms technologijoms, kai jos bando sąveikauti su turiniu.
                    Prašome pašalinti arba pakeisti šį ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pabrauktą tekstą galima supainioti su nuorodomis. Apsvarstykite galimybę naudoti kitą stilių, pavyzdžiui, <strong>strong svarba</strong> arba <em>pabrėžimas</em>.', @@ -225,9 +231,9 @@ TABLES_MISSING_HEADINGS: 'Trūksta lentelių antraščių! Prieinamoms lentelėms reikia HTML žymėjimo, kuris nurodo antraštės langelius ir duomenų langelius, apibrėžiančius jų ryšį. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Lentelės turėtų būti naudojamos tik lentelėms su duomenimis.
                    Sužinokite daugiau apie prieinamas lenteles.', TABLES_SEMANTIC_HEADING: 'Semantinės antraštės, pavyzdžiui, Heading 2 arba Heading 3, turėtų būti naudojamos tik turinio skyriams; ne HTML lentelėse. Vietoj to lentelių antraštes nurodykite naudodami elementą <th>.
                    Sužinokite daugiau apie prieinamas lenteles.', TABLES_EMPTY_HEADING: 'Rasta tuščia lentelės antraštė! Lentelės antraštės niekada neturėtų būti tuščios. Svarbu nurodyti eilučių ir (arba) stulpelių antraštes, kad būtų išreikštas jų ryšys. Ši informacija suteikia kontekstą žmonėms, kurie naudojasi pagalbinėmis technologijomis. Atminkite, kad lentelės turėtų būti naudojamos tik lentelėms su lentelių duomenimis.
                    Sužinokite daugiau apie prieinamas lenteles.', - CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(cratio) šiam tekstui yra %(sanitizedText)
                    ', - CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Prašome peržiūrėti: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis: %(cratio)', + CONTRAST_ERROR: 'Šis tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šio teksto kontrastas nežinomas ir turi būti peržiūrėtas rankiniu būdu. Užtikrinkite, kad tekstas ir fonas būtų ryškios kontrastingos spalvos. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Prašome peržiūrėti: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Šios įvesties tekstas nepakankamai kontrastuoja su fonu. Įprasto teksto kontrasto santykis turėtų būti bent 4,5:1, o didelio teksto - 3:1.
                    Kontrasto santykis %(RATIO)', }, }; diff --git a/docs/assets/js/lang/lv.js b/docs/assets/js/lang/lv.js index f1490728..22928970 100644 --- a/docs/assets/js/lang/lv.js +++ b/docs/assets/js/lang/lv.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var lv = { OFF: 'Izslēgts', ALERT_TEXT: 'Brīdinājums', ALERT_CLOSE: 'Aizvērt', - OUTLINE: 'Lapas izklāsts', + OUTLINE: 'Kopsavilkums', + ALT: 'ALT', + IMAGES: 'Attēli', + EDIT: 'Rediģēt', + IMAGES_NOT_FOUND: 'Nav atrasts neviens attēls.', + DECORATIVE: 'Dekoratīvs', + MISSING: 'Trūkst', PAGE_ISSUES: 'Lapas problēmas', SETTINGS: 'Iestatījumi', CONTRAST: 'Kontrasts', @@ -150,64 +156,64 @@ var lv = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepietiek satura, lai aprēķinātu lasāmības rādītāju.', HEADING_NON_CONSECUTIVE_LEVEL: 'Izmantots virsrakstu līmenis, kas nav secīgs. Virsraksti nekad nedrīkst izlaist līmeņus vai pāriet no virsraksta %(prevLevel) uz virsraksta %(level).', HEADING_EMPTY: 'Tukša pozīcija atrasta! Lai to novērstu, dzēsiet šo rindu vai mainiet tās formātu no Galviņa %(level) uz Normāls vai Apakšsadaļa.', - HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
                    Rakstzīmju skaits: %(headingLength)', + HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
                    %(HEADING_LENGTH) Rakstzīmes', HEADING_FIRST: 'Pirmais virsraksts lapā parasti ir 1. vai 2. virsraksts. Ar 1. virsrakstu jāsāk galvenā satura sadaļa, un tas ir galvenais virsraksts, kas raksturo lapas vispārējo mērķi. Uzziniet vairāk par Galveno virsrakstu struktūru.', HEADING_MISSING_ONE: 'Trūkst 1. virsraksta. 1. virsrakstam jābūt galvenā satura laukuma sākumam, un tas ir galvenais virsraksts, kas apraksta lapas vispārējo mērķi. Uzziniet vairāk par Galveno struktūru.', HEADING_EMPTY_WITH_IMAGE: 'Virsrakstā nav teksta, bet ir attēls. Ja tas nav virsraksts, mainiet tā formātu no Virsraksts %(level) uz Normāls vai Apakšsadaļa. Pretējā gadījumā pievienojiet attēlam alt tekstu, ja tas nav dekoratīvs.', PANEL_HEADING_MISSING_ONE: 'Trūkst 1. pozīcijas!', PANEL_NO_HEADINGS: 'Virsraksti nav atrasti.', LINK_EMPTY: 'Dzēst tukšas saites bez teksta.', - LINK_EMPTY_LABELLEDBY: 'Saitei iraria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūtsid.', - LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
                  • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
                  • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
                  • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
                  • .', - LINK_LABEL: 'Saites etiķete: %(sanitizedText)', - LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(kļūda)
                    Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk";', - LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(kļūda)
                      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
                      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
                      .', - LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', + LINK_EMPTY_LABELLEDBY: 'Saitei ir aria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūts id.', + LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
                      • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
                      • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
                      • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
                      .', + LINK_LABEL: 'Saites etiķete %(TEXT)', + LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(ERROR)
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk"', + LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(ERROR)
                      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
                      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
                      .', + LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', LINK_DOI: 'Tīmekļa lapām vai tikai tiešsaistes resursiem APA stila rokasgrāmatā ir ieteikts izmantot aprakstošas saites, ap darba virsrakstu aptinot tā URL vai DOI. Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību.', - NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā
                      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', - FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
                      Piemērs: Vadības ziņojums (PDF, 3 MB).', - LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
                      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(sanitizedText)', + NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā.
                      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', + FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
                      Piemērs: Vadības ziņojums (PDF, 3 MB).', + LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
                      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Attēls tiek izmantots kā saite ar apkārtējo tekstu, lai gan atribūtam alt jābūt atzīmētam kā dekoratīvam vai nulles atribūtam.', MISSING_ALT_LINK_MESSAGE: 'Attēls tiek izmantots kā saite, bet tam trūkst teksta! Lūdzu, pārliecinieties, ka alt tekstā ir aprakstīts, uz kurieni jūs aizved saite.', MISSING_ALT_MESSAGE: 'Trūkst alt teksta! Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu.', - LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(error).
                      Alt teksts: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
                      Alt teksts: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(error).
                      Alt teksts: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(altText)', - ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks.
                      Altteksts: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(ERROR).
                      ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
                      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(ERROR).
                      ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks.
                      ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Saitē ir aria-hidden="true", bet tā joprojām ir pieejama ar tastatūru. Ja vēlaties paslēpt atkārtotu vai dublētu saiti, pievienojiet arī tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Attēls saitē ir atzīmēts kā dekoratīvs, un saites teksta nav. Lūdzu, pievienojiet attēlam alt tekstu, kas apraksta saites galamērķi.', LINK_IMAGE_HAS_TEXT: 'Attēls ir atzīmēts kā dekoratīvs, lai gan saite izmanto apkārtējo tekstu kā aprakstošu etiķeti.', - LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
                      Altteksts (%(altLength) rakstzīmes): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
                      Altteksts: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
                      Alt teksts: %(altText)
                      Saites etiķete: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
                      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
                      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
                      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
                      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
                      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption.
                      Altteksts: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
                      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
                      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
                      ALT %(ALT_TEXT)
                      Saites etiķete %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
                      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
                      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
                      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption..', + IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
                      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
                      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption.
                      ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs. Ja attēls atspoguļo stāstu, noskaņu vai svarīgu informāciju, noteikti pievienojiet alt tekstu.', - IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
                      Altteksts (%(altLength) rakstzīmes): %(altText)', - IMAGE_PASS: 'Altteksts: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
                      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Attēla pogai trūkst alt teksta. Lūdzu, pievienojiet alt tekstu, lai nodrošinātu pieejamu nosaukumu. Piemēram: Piemēram, Meklēšana vai Nosūtīt.', LABELS_INPUT_RESET_MESSAGE: 'Atiestatīšanas pogas nevajadzētu izmantot, ja vien tas nav īpaši nepieciešams, jo tās var viegli aktivizēt kļūdas pēc.
                      Tip! Uzziniet, kāpēc Pārtraukšanas un atcelšanas pogas rada lietojamības problēmas.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
                      Ievades etiķete: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
                      Ievades etiķete %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Pievienojiet for atribūtu etiķetei, kas atbilst šīs ievades id.
                      Šīs ievades ID ir: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Lūdzu, pievienojiet šim ievadam id un pievienojiet etiķetei atbilstošu atribūtu for.', EMBED_VIDEO: 'Lūdzu, pārliecinieties, ka visiem videoklipiem ir slēptie titri. Visu audio un video materiālu titru nodrošināšana ir obligāta A līmeņa prasība. Titri palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi.', EMBED_AUDIO: 'Lūdzu, nodrošiniet transkriptu visiem podkāstiem. Transkriptu nodrošināšana audio saturam ir obligāta A līmeņa prasība. Transkripcijas palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi, taču tās var būt noderīgas ikvienam. Apsveriet iespēju transkriptu izvietot zem vai akordeona panelī.', EMBED_DATA_VIZ: 'Šādi datu vizualizācijas logrīki bieži rada problēmas cilvēkiem, kuri navigācijai izmanto tastatūru vai ekrāna lasītāju, un var radīt ievērojamas grūtības cilvēkiem ar vāju redzi vai krāsu aklumu. Ieteicams to pašu informāciju sniegt alternatīvā (teksta vai tabulas) formātā zem logrīka.
                      Uzziniet vairāk par sarežģītiem attēliem.', - EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame..', + EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame.', EMBED_GENERAL_WARNING: 'Nevar pārbaudīt iegulto saturu. Lūdzu, pārliecinieties, ka attēliem ir alt teksts, videoklipiem ir uzraksti, tekstam ir pietiekams kontrasts un interaktīvie komponenti ir pieejami no tastatūras..', EMBED_UNFOCUSABLE: '<iframe> ar neuzmanāmiem elementiem nevajadzētu būt tabindex="-1". Iegultais saturs nebūs pieejams ar tastatūru.', - QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
                      Šī saite norāda uz:
                      %(el)', + QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
                      Šī saite norāda uz:
                      %(LINK)', QA_IN_PAGE_LINK: 'Sapušušā saites uz vienu un to pašu lapu. Saistītās lapas mērķis neatbilst nevienam elementam šajā lapā.', QA_BAD_ITALICS: 'Trešraksta un slīpraksta tagiem ir semantiska nozīme, un tos nevajadzētu izmantot, lai izceltu veselas rindkopas. Teksts treknrakstā jāizmanto, lai uzsvērtu kādu vārdu vai frāzi. Kursīvs jāizmanto, lai izceltu īpašvārdus (piemēram, grāmatu un rakstu nosaukumus), svešvārdus, citātus. Garie citāti jānoformē kā bloka citāts.', - QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
                      • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
                      • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
                      Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
                    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC..', - QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', + QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
                    • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
                    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
                    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
                    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC.', + QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', QA_PAGE_LANGUAGE: 'Lapas valoda nav deklarēta! Lūdzu, deklarējiet valodu HTML tagā.', QA_PAGE_TITLE: 'Trūkst lapas virsraksta! Lūdzu, norādiet lapas virsrakstu.', - QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(sanitizedText)
                    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', - QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(boldtext)
                    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', - QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
                    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', + QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(TEXT)
                    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', + QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(TEXT)
                    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', + QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
                    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', QA_UPPERCASE_WARNING: 'Atrasti visi vāciņi. Daži ekrāna lasītāji var interpretēt tekstu ar lielajiem burtiem kā akronīmu un lasīt katru burtu atsevišķi. Turklāt dažiem cilvēkiem ir grūtāk lasīt tekstu ar lielajiem burtiem, un tas var radīt iespaidu, ka teksts ir RAKSTS.', QA_DUPLICATE_ID: 'Atrasts duplicate ID. Ir zināms, ka dubultā ID kļūdas rada problēmas palīgtehnoloģijām, kad tās mēģina mijiedarboties ar saturu.
                    Lūdzu, noņemiet vai mainiet šādu ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pasvītroto tekstu var sajaukt ar saitēm. Apsveriet iespēju izmantot citu stilu, piemēram, <strong>strong importance</strong> vai <em>emphasis</em>.', @@ -215,9 +221,9 @@ var lv = { TABLES_MISSING_HEADINGS: 'Trūkst tabulu virsrakstu! Pieejamām tabulām ir nepieciešama HTML iezīmēšana, kas norāda virsrakstu šūnas un datu šūnas, kas nosaka to savstarpējo saistību. Šī informācija nodrošina kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Tabulas jāizmanto tikai tabulas datiem.
                    Uzziniet vairāk par pieejamām tabulām.', TABLES_SEMANTIC_HEADING: 'Semantiskos virsrakstus, piemēram, Heading 2 vai Heading 3, drīkst izmantot tikai satura sadaļās; ne HTML tabulās. Tabulu virsrakstus norādiet, izmantojot elementu <th>.
                    Uzziniet vairāk par pieejamām tabulām.', TABLES_EMPTY_HEADING: 'Atrasta tukša tabulas galvene! Tabulu galvenēm nevajadzētu būt tukšām. Ir svarīgi norādīt rindu un/vai kolonnu galvenes, lai atspoguļotu to saistību. Šī informācija sniedz kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Paturiet prātā, ka tabulas jāizmanto tikai tabulārajiem datiem.
                    Uzziniet vairāk par pieejamām tabulām.', - CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība ir %(cratio) šādam tekstam: %(sanitizedText).', - CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Lūdzu pārskatīt: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība: %(cratio)', + CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Lūdzu pārskatīt: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība %(RATIO)', }, }; diff --git a/docs/assets/js/lang/lv.umd.js b/docs/assets/js/lang/lv.umd.js index 6d9a56f6..62875df5 100644 --- a/docs/assets/js/lang/lv.umd.js +++ b/docs/assets/js/lang/lv.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Izslēgts', ALERT_TEXT: 'Brīdinājums', ALERT_CLOSE: 'Aizvērt', - OUTLINE: 'Lapas izklāsts', + OUTLINE: 'Kopsavilkums', + ALT: 'ALT', + IMAGES: 'Attēli', + EDIT: 'Rediģēt', + IMAGES_NOT_FOUND: 'Nav atrasts neviens attēls.', + DECORATIVE: 'Dekoratīvs', + MISSING: 'Trūkst', PAGE_ISSUES: 'Lapas problēmas', SETTINGS: 'Iestatījumi', CONTRAST: 'Kontrasts', @@ -156,64 +162,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nepietiek satura, lai aprēķinātu lasāmības rādītāju.', HEADING_NON_CONSECUTIVE_LEVEL: 'Izmantots virsrakstu līmenis, kas nav secīgs. Virsraksti nekad nedrīkst izlaist līmeņus vai pāriet no virsraksta %(prevLevel) uz virsraksta %(level).', HEADING_EMPTY: 'Tukša pozīcija atrasta! Lai to novērstu, dzēsiet šo rindu vai mainiet tās formātu no Galviņa %(level) uz Normāls vai Apakšsadaļa.', - HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
                    Rakstzīmju skaits: %(headingLength)', + HEADING_LONG: 'Virsraksts ir garš! Virsraksti jāizmanto, lai sakārtotu saturu un izteiktu struktūru. Tām jābūt īsām, informatīvām un unikālām. Lūdzu, lai virsraksti būtu īsāki par 160 rakstzīmēm (ne garāki par vienu teikumu).
                    %(HEADING_LENGTH) Rakstzīmes', HEADING_FIRST: 'Pirmais virsraksts lapā parasti ir 1. vai 2. virsraksts. Ar 1. virsrakstu jāsāk galvenā satura sadaļa, un tas ir galvenais virsraksts, kas raksturo lapas vispārējo mērķi. Uzziniet vairāk par Galveno virsrakstu struktūru.', HEADING_MISSING_ONE: 'Trūkst 1. virsraksta. 1. virsrakstam jābūt galvenā satura laukuma sākumam, un tas ir galvenais virsraksts, kas apraksta lapas vispārējo mērķi. Uzziniet vairāk par Galveno struktūru.', HEADING_EMPTY_WITH_IMAGE: 'Virsrakstā nav teksta, bet ir attēls. Ja tas nav virsraksts, mainiet tā formātu no Virsraksts %(level) uz Normāls vai Apakšsadaļa. Pretējā gadījumā pievienojiet attēlam alt tekstu, ja tas nav dekoratīvs.', PANEL_HEADING_MISSING_ONE: 'Trūkst 1. pozīcijas!', PANEL_NO_HEADINGS: 'Virsraksti nav atrasti.', LINK_EMPTY: 'Dzēst tukšas saites bez teksta.', - LINK_EMPTY_LABELLEDBY: 'Saitei iraria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūtsid.', - LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
                  • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
                  • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
                  • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
                  • .', - LINK_LABEL: 'Saites etiķete: %(sanitizedText)', - LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(kļūda)
                    Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk";', - LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(kļūda)
                      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
                      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
                      .', - LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', + LINK_EMPTY_LABELLEDBY: 'Saitei ir aria-labelledby ir tās vērtībai jābūt tukšai, vai nu tā nesakrīt ar citu elementu lapā, kam ir atribūts id.', + LINK_EMPTY_LINK_NO_LABEL: 'Saitei nav atpazīstama teksta, kas būtu redzams ekrānlasītājiem un citām palīgtehnoloģijām. Lai labotu:
                      • Pievienojiet īsu tekstu, kas apraksta, kur saite ved.
                      • Ja tā ir ikonas saite vai SVG,, tai, visticamāk, trūkst aprakstoša marķējuma.
                      • Ja domājat, ka šī saite ir kļūda, kas radusies kopēšanas/ielīmēšanas kļūdas dēļ, apsveriet tās dzēšanu.
                      .', + LINK_LABEL: 'Saites etiķete %(TEXT)', + LINK_STOPWORD: 'Saites teksts var nebūt pietiekami aprakstošs ārpus konteksta: %(ERROR)
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un nozīmīgam. Izvairieties no tādiem bieži lietotiem vārdiem kā "klikšķiniet šeit" vai "uzzināt vairāk"', + LINK_BEST_PRACTICES: 'Apsveriet iespēju aizstāt saites tekstu: %(ERROR)
                      • "Noklikšķiniet šeit" liek uzsvaru uz peles mehāniku, lai gan daudzi cilvēki neizmanto peli vai, iespējams, skatās šo vietni mobilajā ierīcē. Apsveriet iespēju izmantot citu darbības vārdu, kas attiecas uz uzdevumu.
                      • Izvairieties no HTML simbolu izmantošanas kā aicinājumu veikt darbības, ja vien tie nav paslēpti palīgtehnoloģijām.
                      .', + LINK_URL: 'Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību. Vairumā gadījumu URL vietā ir labāk izmantot cilvēkam saprotamu tekstu. Īsi URL (piemēram, vietnes sākumlapa) ir piemēroti.
                      Padoms! Saites tekstam vienmēr jābūt skaidram, unikālam un jēgpilnam, lai to varētu saprast arī ārpus konteksta.', LINK_DOI: 'Tīmekļa lapām vai tikai tiešsaistes resursiem APA stila rokasgrāmatā ir ieteikts izmantot aprakstošas saites, ap darba virsrakstu aptinot tā URL vai DOI. Garākus, mazāk saprotamus URL, kas tiek izmantoti kā saites teksts, var būt grūti saprast, kad tiem piekļūst ar palīgtehnoloģiju palīdzību.', - NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā
                      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', - FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
                      Piemērs: Vadības ziņojums (PDF, 3 MB).', - LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
                      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(sanitizedText)', + NEW_TAB_WARNING: 'Saite atveras jaunā cilnē vai logā bez brīdinājuma. Tas var radīt apjukumu, jo īpaši cilvēkiem, kuriem ir grūtības uztvert vizuālo saturu. Otrkārt, ne vienmēr ir laba prakse kontrolēt kāda cilvēka pieredzi vai pieņemt lēmumus viņa vietā. Norādiet, ka saite atveras jaunā logā, saites tekstā.
                      Padoms! Apgūstiet labāko praksi: atvērt saites jaunos pārlūkprogrammas logos un cilnēs.', + FILE_TYPE_WARNING: 'Saite norāda uz PDF vai lejupielādējamu failu (piemēram, MP3, Zip, Word Doc) bez brīdinājuma. Saites tekstā norādiet faila veidu. Ja tas ir liels fails, apsveriet iespēju norādīt faila lielumu.
                      Piemērs: Vadības ziņojums (PDF, 3 MB).', + LINK_IDENTICAL_NAME: 'Saitei ir identisks teksts kā citai saitei, lai gan tā norāda uz citu lapu. Vairākas saites ar vienādu tekstu var radīt neskaidrības cilvēkiem, kuri izmanto ekrānlasītājus.
                      Padomājiet, vai šādu saiti nevajadzētu padarīt aprakstošāku, lai palīdzētu to atšķirt no citām saitēm: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Attēls tiek izmantots kā saite ar apkārtējo tekstu, lai gan atribūtam alt jābūt atzīmētam kā dekoratīvam vai nulles atribūtam.', MISSING_ALT_LINK_MESSAGE: 'Attēls tiek izmantots kā saite, bet tam trūkst teksta! Lūdzu, pārliecinieties, ka alt tekstā ir aprakstīts, uz kurieni jūs aizved saite.', MISSING_ALT_MESSAGE: 'Trūkst alt teksta! Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu.', - LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(error).
                      Alt teksts: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
                      Alt teksts: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(error).
                      Alt teksts: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(altText)', - ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(error)" var būt lieks.
                      Altteksts: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Noņemt: %(ERROR).
                      ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts saistītajā attēlā. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu. Aizstājiet šādu alt tekstu: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks. Pārliecinieties, ka alt teksts apraksta saites galamērķi, nevis burtisku attēla aprakstu.
                      ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Atrasts faila paplašinājums alt tekstā. Ja attēls ir stāsts, noskaņa vai svarīga informācija, noteikti aprakstiet attēlu. Noņemt: %(ERROR).
                      ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Atrasts nenoteikts vai aizvietotājs alt teksts. Aizstājiet šādu alt tekstu ar jēgpilnāku: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Palīgtehnoloģijas jau norāda, ka tas ir attēls, tāpēc "%(ERROR)" var būt lieks.
                      ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Saitē ir aria-hidden="true", bet tā joprojām ir pieejama ar tastatūru. Ja vēlaties paslēpt atkārtotu vai dublētu saiti, pievienojiet arī tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Attēls saitē ir atzīmēts kā dekoratīvs, un saites teksta nav. Lūdzu, pievienojiet attēlam alt tekstu, kas apraksta saites galamērķi.', LINK_IMAGE_HAS_TEXT: 'Attēls ir atzīmēts kā dekoratīvs, lai gan saite izmanto apkārtējo tekstu kā aprakstošu etiķeti.', - LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
                      Altteksts (%(altLength) rakstzīmes): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
                      Altteksts: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
                      Alt teksts: %(altText)
                      Saites etiķete: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
                      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
                      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
                      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
                      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
                      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption.
                      Altteksts: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt teksta apraksts saistītajam attēlam ir pārāk garš. Saistīto attēlu alt tekstam ir jāapraksta, uz kurieni ved saite, nevis burtisks attēla apraksts. Vēlams kā alttekstu izmantot tās lapas virsrakstu, uz kuru ir saite.
                      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Attēla saitē ir ietverts alt teksts. Vai alt tekstā ir aprakstīts, uz kurieni jūs aizved saite? Apsveriet iespēju kā alt tekstu izmantot tās lapas nosaukumu, uz kuru ir saite.
                      ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Attēla saitē ir gan alt teksts, gan apkārt esošais saites teksts. Ja šis attēls ir dekoratīvs un tiek izmantots kā funkcionāla saite uz citu lapu, apsveriet iespēju atzīmēt attēlu kā dekoratīvu vai nulles tekstu - pietiek ar apkārtējo saites tekstu.
                      ALT %(ALT_TEXT)
                      Saites etiķete %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs.
                      Lai gan ir sniegts uzraksts, vairumā gadījumu attēlam ir jābūt arī alt tekstam.
                      • Alttekstam būtu jāsniedz īss attēlā redzamā apraksts.
                      • Parakstā parasti būtu jāsniedz konteksts, lai sasaistītu attēlu ar apkārtējo saturu vai pievērstu uzmanību kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption..', + IMAGE_FIGURE_DUPLICATE_ALT: 'Neizmantojiet tieši tos pašus vārdus gan alt, gan virsraksta tekstā. Ekrānlasītāji informāciju paziņos divreiz.
                      • Alt tekstā būtu īsi jāapraksta, kas ir attēlā.
                      • Papildinājumā parasti būtu jāsniedz konteksts, lai attēls būtu saistīts ar apkārtējo saturu, vai jāpievērš uzmanība kādai konkrētai informācijai.
                      Uzziniet vairāk: alt versus figcaption.
                      ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Attēls ir atzīmēts kā dekoratīvs, un palīgtehnoloģijas to ignorēs. Ja attēls atspoguļo stāstu, noskaņu vai svarīgu informāciju, noteikti pievienojiet alt tekstu.', - IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
                      Altteksts (%(altLength) rakstzīmes): %(altText)', - IMAGE_PASS: 'Altteksts: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt teksta apraksts ir pārāk garš. Alt tekstam ir jābūt īsam, bet jēgpilnam kā tweet (apmēram 100 rakstzīmes). Ja tas ir sarežģīts attēls vai grafiks, apsveriet iespēju ievietot garu attēla aprakstu tekstā zemāk vai akordeona komponentē.
                      ALT %(altLength) Rakstzīmes %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Attēla pogai trūkst alt teksta. Lūdzu, pievienojiet alt tekstu, lai nodrošinātu pieejamu nosaukumu. Piemēram: Piemēram, Meklēšana vai Nosūtīt.', LABELS_INPUT_RESET_MESSAGE: 'Atiestatīšanas pogas nevajadzētu izmantot, ja vien tas nav īpaši nepieciešams, jo tās var viegli aktivizēt kļūdas pēc.
                      Tip! Uzziniet, kāpēc Pārtraukšanas un atcelšanas pogas rada lietojamības problēmas.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
                      Ievades etiķete: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Ievadei ir pieejams nosaukums, tomēr pārliecinieties, ka ir redzams arī marķējums.
                      Ievades etiķete %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Pievienojiet for atribūtu etiķetei, kas atbilst šīs ievades id.
                      Šīs ievades ID ir: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Šim ievadam nav piesaistīta etiķete. Lūdzu, pievienojiet šim ievadam id un pievienojiet etiķetei atbilstošu atribūtu for.', EMBED_VIDEO: 'Lūdzu, pārliecinieties, ka visiem videoklipiem ir slēptie titri. Visu audio un video materiālu titru nodrošināšana ir obligāta A līmeņa prasība. Titri palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi.', EMBED_AUDIO: 'Lūdzu, nodrošiniet transkriptu visiem podkāstiem. Transkriptu nodrošināšana audio saturam ir obligāta A līmeņa prasība. Transkripcijas palīdz cilvēkiem, kuri ir nedzirdīgi vai vājdzirdīgi, taču tās var būt noderīgas ikvienam. Apsveriet iespēju transkriptu izvietot zem vai akordeona panelī.', EMBED_DATA_VIZ: 'Šādi datu vizualizācijas logrīki bieži rada problēmas cilvēkiem, kuri navigācijai izmanto tastatūru vai ekrāna lasītāju, un var radīt ievērojamas grūtības cilvēkiem ar vāju redzi vai krāsu aklumu. Ieteicams to pašu informāciju sniegt alternatīvā (teksta vai tabulas) formātā zem logrīka.
                      Uzziniet vairāk par sarežģītiem attēliem.', - EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame..', + EMBED_MISSING_TITLE: 'Iegultajam saturam ir nepieciešams pieejams nosaukums, kas raksturo tā saturu. Lūdzu, norādiet unikālu title vai aria-label atribūtu elementā iframe. Uzziniet vairāk par iFrame.', EMBED_GENERAL_WARNING: 'Nevar pārbaudīt iegulto saturu. Lūdzu, pārliecinieties, ka attēliem ir alt teksts, videoklipiem ir uzraksti, tekstam ir pietiekams kontrasts un interaktīvie komponenti ir pieejami no tastatūras..', EMBED_UNFOCUSABLE: '<iframe> ar neuzmanāmiem elementiem nevajadzētu būt tabindex="-1". Iegultais saturs nebūs pieejams ar tastatūru.', - QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
                      Šī saite norāda uz:
                      %(el)', + QA_BAD_LINK: 'Atrasta slikta saite. Šķiet, ka saite norāda uz izstrādes vidi.
                      Šī saite norāda uz:
                      %(LINK)', QA_IN_PAGE_LINK: 'Sapušušā saites uz vienu un to pašu lapu. Saistītās lapas mērķis neatbilst nevienam elementam šajā lapā.', QA_BAD_ITALICS: 'Trešraksta un slīpraksta tagiem ir semantiska nozīme, un tos nevajadzētu izmantot, lai izceltu veselas rindkopas. Teksts treknrakstā jāizmanto, lai uzsvērtu kādu vārdu vai frāzi. Kursīvs jāizmanto, lai izceltu īpašvārdus (piemēram, grāmatu un rakstu nosaukumus), svešvārdus, citātus. Garie citāti jānoformē kā bloka citāts.', - QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
                      • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
                      • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
                      Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
                    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC..', - QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', + QA_PDF: 'Nevar pārbaudīt PDF failu pieejamību. PDF tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. PDF formātos bieži ir problēmas cilvēkiem, kas izmanto ekrānlasītājus (trūkst strukturālo tagu vai veidlapu lauku marķējumu), un cilvēkiem ar vāju redzi (teksts nepalielinās, kad tiek palielināts).
                    • Ja tā ir veidlapa, apsveriet iespēju kā alternatīvu izmantot pieejamu HTML veidlapu.
                    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa lapu.
                    • Ja tas ir dokuments, apsveriet iespēju to pārveidot par tīmekļa vietni.
                    Tādā gadījumā pārbaudiet PDF pieejamību programmā Acrobat DC.', + QA_DOCUMENT: 'Nevar pārbaudīt dokumenta pieejamību. Saistītie dokumenti tiek uzskatīti par tīmekļa saturu, un arī tiem jābūt pieejamiem. Lūdzu, pārbaudiet šo dokumentu manuāli. .', QA_PAGE_LANGUAGE: 'Lapas valoda nav deklarēta! Lūdzu, deklarējiet valodu HTML tagā.', QA_PAGE_TITLE: 'Trūkst lapas virsraksta! Lūdzu, norādiet lapas virsrakstu.', - QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(sanitizedText)
                    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', - QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(boldtext)
                    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', - QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
                    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', + QA_BLOCKQUOTE_MESSAGE: 'Vai šis ir virsraksts? %(TEXT)
                    Kvadrātiņi jāizmanto tikai pēdiņām. Ja tas ir paredzēts kā virsraksts, nomainiet šo blokcitāti uz semantisku virsrakstu (piemēram, 2. vai 3. virsraksts).', + QA_FAKE_HEADING: 'Vai šis ir virsraksts? %(TEXT)
                    Rindiņa ar treknu vai lielu tekstu var izskatīties kā virsraksts, bet cilvēks, kas izmanto ekrāna lasītāju, nevar noteikt, ka tas ir svarīgs, vai pāriet uz tā saturu. Trešais vai lielais teksts nekad nedrīkst aizstāt semantiskos virsrakstus (no 2. līdz 6. virsrakstam).', + QA_SHOULD_BE_LIST: 'Vai mēģināt izveidot sarakstu? Atrasts iespējamais saraksta vienums: %(firstPrefix)
                    Pārliecinieties, ka izmantojat semantiskos sarakstus, to vietā izmantojot lodītes vai skaitļu formatēšanas pogas. Izmantojot semantisko sarakstu, palīgtehnoloģijas spēj nodot tādu informāciju kā kopējais elementu skaits un katra elementa relatīvā pozīcija sarakstā. Uzziniet vairāk par semantiskajiem sarakstiem.', QA_UPPERCASE_WARNING: 'Atrasti visi vāciņi. Daži ekrāna lasītāji var interpretēt tekstu ar lielajiem burtiem kā akronīmu un lasīt katru burtu atsevišķi. Turklāt dažiem cilvēkiem ir grūtāk lasīt tekstu ar lielajiem burtiem, un tas var radīt iespaidu, ka teksts ir RAKSTS.', QA_DUPLICATE_ID: 'Atrasts duplicate ID. Ir zināms, ka dubultā ID kļūdas rada problēmas palīgtehnoloģijām, kad tās mēģina mijiedarboties ar saturu.
                    Lūdzu, noņemiet vai mainiet šādu ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Pasvītroto tekstu var sajaukt ar saitēm. Apsveriet iespēju izmantot citu stilu, piemēram, <strong>strong importance</strong> vai <em>emphasis</em>.', @@ -221,9 +227,9 @@ TABLES_MISSING_HEADINGS: 'Trūkst tabulu virsrakstu! Pieejamām tabulām ir nepieciešama HTML iezīmēšana, kas norāda virsrakstu šūnas un datu šūnas, kas nosaka to savstarpējo saistību. Šī informācija nodrošina kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Tabulas jāizmanto tikai tabulas datiem.
                    Uzziniet vairāk par pieejamām tabulām.', TABLES_SEMANTIC_HEADING: 'Semantiskos virsrakstus, piemēram, Heading 2 vai Heading 3, drīkst izmantot tikai satura sadaļās; ne HTML tabulās. Tabulu virsrakstus norādiet, izmantojot elementu <th>.
                    Uzziniet vairāk par pieejamām tabulām.', TABLES_EMPTY_HEADING: 'Atrasta tukša tabulas galvene! Tabulu galvenēm nevajadzētu būt tukšām. Ir svarīgi norādīt rindu un/vai kolonnu galvenes, lai atspoguļotu to saistību. Šī informācija sniedz kontekstu cilvēkiem, kuri izmanto palīgtehnoloģijas. Paturiet prātā, ka tabulas jāizmanto tikai tabulārajiem datiem.
                    Uzziniet vairāk par pieejamām tabulām.', - CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība ir %(cratio) šādam tekstam: %(sanitizedText).', - CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Lūdzu pārskatīt: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība: %(cratio)', + CONTRAST_ERROR: 'Šis teksts nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Šī teksta kontrasts nav zināms, un tas ir jāpārbauda manuāli. Pārliecinieties, ka tekstam un fonam ir spēcīgi kontrastējošas krāsas. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Lūdzu pārskatīt: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksts šajā ievades laukā nav pietiekami kontrastējošs ar fonu. Kontrasta attiecībai jābūt vismaz 4,5:1 parastam tekstam un 3:1 lielam tekstam.
                    Kontrasta attiecība %(RATIO)', }, }; diff --git a/docs/assets/js/lang/nb.js b/docs/assets/js/lang/nb.js index 87a4e2e4..355f1d7b 100644 --- a/docs/assets/js/lang/nb.js +++ b/docs/assets/js/lang/nb.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var nb = { ALERT_TEXT: 'Varsling', ALERT_CLOSE: 'Lukk', OUTLINE: 'Sideoversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen bilder funnet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Mangler', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Innstillinger', CONTRAST: 'Kontrast', @@ -153,64 +159,64 @@ var nb = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok innhold til å beregne lesbarhetspoeng.', HEADING_NON_CONSECUTIVE_LEVEL: 'Det brukes ikke fortløpende overskriftsnivåer. Overskrifter skal aldri hoppe over nivåer, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift funnet! Løsningen er å slette denne linjen eller endre formatet fra Overskrift %(level) til Normal eller Avsnitt.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
                    Antall tegn: %(headingLength)', - HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', - HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur..', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
                    %(HEADING_LENGTH) Tegn', + HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', + HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Overskrift har ingen tekst, men inneholder et bilde. Hvis dette ikke er en overskrift, endrer du formatet fra Overskrift %(level) til Normal eller Avsnitt. Ellers kan du legge til alt-tekst til bildet hvis det ikke er dekorativt.', PANEL_HEADING_MISSING_ONE: 'Manglende overskrift 1!', PANEL_NO_HEADINGS: 'Ingen overskrifter funnet.', LINK_EMPTY: 'Fjern tomme lenker uten tekst.', LINK_EMPTY_LABELLEDBY: 'Lenken har en verdi for aria-labelledby, som enten er tom eller ikke samsvarer med verdien av attributtet id til et annet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Lenken har ikke tydelig tekst som er synlig for skjermlesere og andre hjelpemidler. Slik løser du problemet:
                    • Legg til en kortfattet tekst som beskriver hvor lenken fører deg.
                    • Hvis det er en ikonlenke eller SVG, mangler den sannsynligvis en beskrivende etikett.
                    • Hvis du tror at denne lenken er en feil på grunn av en copy/paste-feil, bør du vurdere å slette den.
                    .', - LINK_LABEL: 'Lenketikett: %(sanitizedText)', - LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(error)
                    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', - LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(error)
                    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
                    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
                    .', - LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
                    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', + LINK_LABEL: 'Lenketikett %(TEXT)', + LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(ERROR)
                    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', + LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(ERROR)
                    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
                    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
                    .', + LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
                    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', LINK_DOI: 'APA Style-guiden anbefaler at du bruker beskrivende lenker til nettsider eller rene nettressurser ved å legge URL-adressen eller DOI-en til verket rundt tittelen. Lengre, mindre forståelige URL-er som brukes som lenketekst, kan være vanskelige å forstå når de brukes med hjelpemidler.', - NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten
                    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', - FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
                    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(sanitizedText)', + NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten.
                    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', + FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
                    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bildet brukes som lenke med omkringliggende tekst, selv om alt-attributtet skal være merket som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bildet brukes som lenke, men mangler alt-tekst! Sørg for at alt-teksten beskriver hvor lenken fører deg.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis bildet formidler en historie, en stemning eller viktig informasjon - sørg for å beskrive bildet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(error).
                    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
                    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(error).
                    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig.
                    Alt-tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lenken har aria-hidden="true", men er fortsatt tastaturfokuserbar. Hvis du har til hensikt å skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Bildet i lenken er merket som dekorativt, og det er ingen lenketekst. Legg til alt-tekst i bildet som beskriver lenkens destinasjon.', LINK_IMAGE_HAS_TEXT: 'Bildet er merket som dekorativt, selv om lenken bruker den omkringliggende teksten som en beskrivende etikett.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
                    Alt-tekst: %(altText)
                    Lenketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
                    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
                    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Lær mer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
                    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Les mer: alt versus figcaption.
                    Alt-tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
                    ALT %(ALT_TEXT)
                    Lenketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
                    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
                    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Lær mer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
                    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Les mer: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å legge til alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
                    Alttekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildeknappen mangler alt-tekst. Legg til alt-tekst for å gi et tilgjengelig navn. For eksempel: Søk eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Tilbakestillingsknapper bør ikke brukes med mindre det er spesifikt behov for dem, fordi de lett kan aktiveres ved en feiltakelse.
                    Tips! Les mer om hvorfor Reset- og Cancel-knapper er problematiske for brukervennligheten.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
                    Inndatalabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
                    Inndatalabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et for-attributt i etiketten som samsvarer med id for denne inndataen.
                    ID-en for denne inndataen er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et id til denne inndataen, og legg til et matchende for-attributt til etiketten.', EMBED_VIDEO: 'Sørg for at alle videoer er tekstet. Det er et obligatorisk nivå A-krav at alt lyd- og videoinnhold er tekstet. Teksting er til hjelp for personer som er døve eller har nedsatt hørsel.', EMBED_AUDIO: 'Sørg for å levere en utskrift for alle podcaster. Det er et obligatorisk nivå A-krav å levere utskrifter for lydinnhold. Transkripsjoner er til hjelp for døve og hørselshemmede, men kan være til nytte for alle. Vurder å plassere transkripsjonen nedenfor eller i et trekkspillpanel.', EMBED_DATA_VIZ: 'Datavisualiseringswidgets som dette er ofte problematiske for personer som bruker tastatur eller skjermleser for å navigere, og kan by på betydelige problemer for personer med nedsatt syn eller fargeblindhet. Det anbefales å gi den samme informasjonen i et alternativt format (tekst eller tabell) under widgeten.
                    Les mer om
                    komplekse bilder.', EMBED_MISSING_TITLE: 'Innebygd innhold krever et tilgjengelig navn som beskriver innholdet. Oppgi et unikt title eller aria-label-attributt på iframe-elementet. Finn ut mer om iFrames..', - EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet..', + EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke ha tabindex="-1". Den innebygde innholdet vil ikke være tilgjengelig med tastaturet.', - QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
                    Denne lenken peker til:
                    %(el)', + QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
                    Denne lenken peker til:
                    %(LINK)', QA_IN_PAGE_LINK: 'Ødelagt samme-sides lenke. Lenkemålet samsvarer ikke med noen element på denne siden.', QA_BAD_ITALICS: 'Fet og kursiv har en semantisk betydning, og bør ikke brukes til å fremheve hele avsnitt. Fet skrift skal brukes til å fremheve et ord eller en frase. Kursiv skal brukes til å fremheve egennavn (f.eks. bok- og artikkeltitler), fremmedord og sitater. Lange sitater bør formateres som blokksitater.', QA_PDF: 'Kan ikke sjekke om PDF-filer er tilgjengelige. PDF-filer regnes som nettinnhold og må også gjøres tilgjengelige. PDF-filer inneholder ofte problemer for personer som bruker skjermlesere (manglende strukturelle tagger eller manglende etiketter for skjemafelt) og personer med nedsatt syn (teksten flyter ikke ut igjen når den forstørres).
                    • Hvis dette er et skjema, bør du vurdere å bruke et tilgjengelig HTML-skjema som et alternativ.
                    • Hvis dette er et dokument, bør du vurdere å konvertere det til en nettside.
                    Ellers kan du sjekke om PDF-en er tilgjengelig i Acrobat DC..', QA_DOCUMENT: 'Kan ikke sjekke dokumentets tilgjengelighet. Lenkede dokumenter regnes som nettinnhold og må også gjøres tilgjengelige. Vennligst gå gjennom dette dokumentet manuelt. ', QA_PAGE_LANGUAGE: 'Sidens språk er ikke oppgitt! Vennligst deklarer språk i HTML-taggen..', QA_PAGE_TITLE: 'Manglende sidetittel! Vennligst oppgi en sidetittel..', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
                    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
                    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', - QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
                    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister..', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
                    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
                    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', + QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
                    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister.', QA_UPPERCASE_WARNING: 'Fant store bokstaver. Noen skjermlesere kan tolke tekst med store bokstaver som et akronym og vil lese hver bokstav for seg. I tillegg synes noen at store bokstaver er vanskeligere å lese, og det kan gi inntrykk av at man roper.', QA_DUPLICATE_ID: 'Fant duplisert ID. Feil med dupliserte ID-er er kjent for å forårsake problemer for hjelpeteknologier når de prøver å samhandle med innhold.
                    Vennligst fjern eller endre følgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Understreket tekst kan forveksles med lenker. Vurder å bruke en annen stil, for eksempel <strong>strong importance</strong> eller <em>emphasis</em>.', @@ -218,9 +224,9 @@ var nb = { TABLES_MISSING_HEADINGS: 'Manglende tabelloverskrifter! Universelt utformede tabeller trenger HTML-merking som angir overskriftsceller og dataceller, og som definerer forholdet mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Tabeller bør kun brukes til tabelldata.
                    Les mer om tilgjengelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som overskrift 2 eller overskrift 3 skal bare brukes til innholdsseksjoner, ikke i HTML-tabeller. Angi tabelloverskrifter ved hjelp av <th>-elementet i stedet.
                    Les mer om tilgjengelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabelloverskrift funnet! Tabelloverskrifter skal aldri være tomme. Det er viktig å utpeke rad- og/eller kolonneoverskrifter for å vise sammenhengen mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Husk at tabeller kun skal brukes til tabelldata.
                    Finn ut mer om tilgjengelige tabeller.', - CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforholdet er %(cratio) for følgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vennligst se gjennom: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vennligst se gjennom: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO)', }, }; diff --git a/docs/assets/js/lang/nb.umd.js b/docs/assets/js/lang/nb.umd.js index 0a02563e..29d0e33b 100644 --- a/docs/assets/js/lang/nb.umd.js +++ b/docs/assets/js/lang/nb.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Varsling', ALERT_CLOSE: 'Lukk', OUTLINE: 'Sideoversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Rediger', + IMAGES_NOT_FOUND: 'Ingen bilder funnet.', + DECORATIVE: 'Dekorativ', + MISSING: 'Mangler', PAGE_ISSUES: 'Side Problemer', SETTINGS: 'Innstillinger', CONTRAST: 'Kontrast', @@ -159,64 +165,64 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Ikke nok innhold til å beregne lesbarhetspoeng.', HEADING_NON_CONSECUTIVE_LEVEL: 'Det brukes ikke fortløpende overskriftsnivåer. Overskrifter skal aldri hoppe over nivåer, eller gå fra Overskrift %(prevLevel) til Overskrift %(level).', HEADING_EMPTY: 'Tom overskrift funnet! Løsningen er å slette denne linjen eller endre formatet fra Overskrift %(level) til Normal eller Avsnitt.', - HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
                    Antall tegn: %(headingLength)', - HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', - HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur..', + HEADING_LONG: 'Overskriften er lang! Overskrifter skal brukes til å organisere innholdet og formidle struktur. De bør være korte, informative og unike. Hold overskriftene på mindre enn 160 tegn (ikke mer enn en setning).
                    %(HEADING_LENGTH) Tegn', + HEADING_FIRST: 'Den første overskriften på en side bør vanligvis være en Overskrift 1 eller Overskrift 2. Overskrift 1 bør være starten på hoveddelen av innholdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', + HEADING_MISSING_ONE: 'Manglende overskrift 1. Overskrift 1 skal være starten på hovedinnholdsområdet, og er hovedoverskriften som beskriver det overordnede formålet med siden. Les mer om Overskriftsstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Overskrift har ingen tekst, men inneholder et bilde. Hvis dette ikke er en overskrift, endrer du formatet fra Overskrift %(level) til Normal eller Avsnitt. Ellers kan du legge til alt-tekst til bildet hvis det ikke er dekorativt.', PANEL_HEADING_MISSING_ONE: 'Manglende overskrift 1!', PANEL_NO_HEADINGS: 'Ingen overskrifter funnet.', LINK_EMPTY: 'Fjern tomme lenker uten tekst.', LINK_EMPTY_LABELLEDBY: 'Lenken har en verdi for aria-labelledby, som enten er tom eller ikke samsvarer med verdien av attributtet id til et annet element på siden.', LINK_EMPTY_LINK_NO_LABEL: 'Lenken har ikke tydelig tekst som er synlig for skjermlesere og andre hjelpemidler. Slik løser du problemet:
                    • Legg til en kortfattet tekst som beskriver hvor lenken fører deg.
                    • Hvis det er en ikonlenke eller SVG, mangler den sannsynligvis en beskrivende etikett.
                    • Hvis du tror at denne lenken er en feil på grunn av en copy/paste-feil, bør du vurdere å slette den.
                    .', - LINK_LABEL: 'Lenketikett: %(sanitizedText)', - LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(error)
                    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', - LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(error)
                    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
                    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
                    .', - LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
                    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', + LINK_LABEL: 'Lenketikett %(TEXT)', + LINK_STOPWORD: 'Lenketeksten er kanskje ikke beskrivende nok uten sammenheng: %(ERROR)
                    Tips! Lenketekst bør alltid være tydelig, unik og meningsfull. Unngå vanlige ord som "klikk her" eller "les mer"', + LINK_BEST_PRACTICES: 'Vurder å erstatte lenketeksten: %(ERROR)
                    • "Klikk her" setter fokus på musemekanikk, når mange ikke bruker mus eller kanskje ser dette nettstedet på en mobil enhet. Vurder å bruke et annet verb som er relatert til oppgaven.
                    • Ungå å bruke HTML-symboler som call to actions med mindre de er skjult for hjelpemidler.
                    .', + LINK_URL: 'Lengre, mindre forståelige nettadresser som brukes som lenketekst, kan være vanskelige å lytte til med hjelpemidler. I de fleste tilfeller er det bedre å bruke tekst som kan leses av mennesker i stedet for URL-adressen. Korte nettadresser (for eksempel et nettsteds hjemmeside) er ok.
                    Tips! Lenketeksten bør alltid være tydelig, unik og meningsfull, slik at den kan forstås utenfor kontekst.', LINK_DOI: 'APA Style-guiden anbefaler at du bruker beskrivende lenker til nettsider eller rene nettressurser ved å legge URL-adressen eller DOI-en til verket rundt tittelen. Lengre, mindre forståelige URL-er som brukes som lenketekst, kan være vanskelige å forstå når de brukes med hjelpemidler.', - NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten
                    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', - FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
                    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(sanitizedText)', + NEW_TAB_WARNING: 'Lenken åpnes i en ny fane eller et nytt vindu uten forvarsel. Det kan virke forvirrende, særlig for personer som har problemer med å oppfatte visuelt innhold. For det andre er det ikke alltid en god praksis å kontrollere andres opplevelse eller ta avgjørelser for dem. Angi at lenken åpnes i et nytt vindu i lenketeksten.
                    Tips! Lær beste praksis: åpning av lenker i nye nettleservinduer og faner.', + FILE_TYPE_WARNING: 'Lenken peker til en PDF-fil eller en nedlastbar fil (f.eks. MP3, Zip, Word-dokument) uten advarsel. Oppgi filtypen i lenketeksten. Hvis det er en stor fil, bør du vurdere å inkludere filstørrelsen.
                    Eksempel: Executive Report (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Lenken har samme tekst som en annen lenke, selv om den peker til en annen side. Flere lenker med samme tekst kan skape forvirring for personer som bruker skjermlesere.
                    Vurder å gjøre følgende lenke mer beskrivende for å skille den fra andre lenker: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bildet brukes som lenke med omkringliggende tekst, selv om alt-attributtet skal være merket som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bildet brukes som lenke, men mangler alt-tekst! Sørg for at alt-teksten beskriver hvor lenken fører deg.', MISSING_ALT_MESSAGE: 'Manglende alt-tekst! Hvis bildet formidler en historie, en stemning eller viktig informasjon - sørg for å beskrive bildet.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(error).
                    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
                    Alt-tekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(error).
                    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(error)" kan være overflødig.
                    Alt-tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filendelsen i alt-teksten ble funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Fjern dette: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Alt-tekst uten beskrivelse eller plassholder i et lenket bilde funnet. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet. Erstatt følgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig. Sørg for at alt-teksten beskriver målet for lenken, ikke en bokstavelig beskrivelse av bildet.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filtypen i alt-teksten som er funnet. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å beskrive bildet. Fjern dette: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Ikke-beskrivende alt-tekst eller plassholder-alt-tekst funnet. Erstatt følgende alt-tekst med noe mer meningsfylt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjelpemidler indikerer allerede at dette er et bilde, så "%(ERROR)" kan være overflødig.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Lenken har aria-hidden="true", men er fortsatt tastaturfokuserbar. Hvis du har til hensikt å skjule en overflødig eller duplisert lenke, legg til tabindex="-1" også.', LINK_IMAGE_NO_ALT_TEXT: 'Bildet i lenken er merket som dekorativt, og det er ingen lenketekst. Legg til alt-tekst i bildet som beskriver lenkens destinasjon.', LINK_IMAGE_HAS_TEXT: 'Bildet er merket som dekorativt, selv om lenken bruker den omkringliggende teksten som en beskrivende etikett.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    Alt-tekst (%(altLength) tegn): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    Alt-tekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
                    Alt-tekst: %(altText)
                    Lenketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
                    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
                    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Lær mer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
                    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Les mer: alt versus figcaption.
                    Alt-tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeskrivelsen på et lenket bilde er for lang. Alt-teksten på lenkede bilder bør beskrive hvor lenken tar deg, ikke en bokstavelig beskrivelse av bildet. Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildelenken inneholder alt-tekst. Beskriver alt-teksten hvor lenken fører deg? Vurder å bruke tittelen på siden det lenkes til som alt-tekst.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildelenken inneholder både alt-tekst og omkringliggende lenketekst. Hvis dette bildet er dekorativt og brukes som en funksjonell lenke til en annen side, bør du vurdere å merke bildet som dekorativt eller null - den omkringliggende lenketeksten bør være tilstrekkelig.
                    ALT %(ALT_TEXT)
                    Lenketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler.
                    Selv om det er oppgitt en caption, bør bildet også ha en alt-tekst i de fleste tilfeller.
                    • Alternativteksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Lær mer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ikke bruk nøyaktig de samme ordene i alt- og bildeteksten. Skjermlesere vil annonsere informasjonen to ganger.
                    • Alt-teksten bør gi en kortfattet beskrivelse av hva som er i bildet.
                    • Bildeteksten bør vanligvis gi kontekst for å relatere bildet til det omkringliggende innholdet, eller gi oppmerksomhet til en bestemt del av informasjonen.
                    Les mer: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bildet er merket som dekorativt og vil bli ignorert av hjelpemidler. Hvis bildet formidler en historie, en stemning eller viktig informasjon - husk å legge til alt-tekst.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
                    Alttekst (%(altLength) tegn): %(altText)', - IMAGE_PASS: 'Alt-tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeskrivelsen er for lang. Alt-teksten bør være kortfattet, men likevel meningsfull, som en tweet (rundt 100 tegn). Hvis dette er et komplekst bilde eller en graf, bør du vurdere å legge den lange beskrivelsen av bildet i teksten nedenfor eller i en trekkspillkomponent.
                    ALT %(altLength) Tegn %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildeknappen mangler alt-tekst. Legg til alt-tekst for å gi et tilgjengelig navn. For eksempel: Søk eller Send.', LABELS_INPUT_RESET_MESSAGE: 'Tilbakestillingsknapper bør ikke brukes med mindre det er spesifikt behov for dem, fordi de lett kan aktiveres ved en feiltakelse.
                    Tips! Les mer om hvorfor Reset- og Cancel-knapper er problematiske for brukervennligheten.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
                    Inndatalabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inndataene har et tilgjengelig navn, men sørg for at de også har en synlig etikett.
                    Inndatalabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et for-attributt i etiketten som samsvarer med id for denne inndataen.
                    ID-en for denne inndataen er: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det er ingen etikett knyttet til denne inndataen. Legg til et id til denne inndataen, og legg til et matchende for-attributt til etiketten.', EMBED_VIDEO: 'Sørg for at alle videoer er tekstet. Det er et obligatorisk nivå A-krav at alt lyd- og videoinnhold er tekstet. Teksting er til hjelp for personer som er døve eller har nedsatt hørsel.', EMBED_AUDIO: 'Sørg for å levere en utskrift for alle podcaster. Det er et obligatorisk nivå A-krav å levere utskrifter for lydinnhold. Transkripsjoner er til hjelp for døve og hørselshemmede, men kan være til nytte for alle. Vurder å plassere transkripsjonen nedenfor eller i et trekkspillpanel.', EMBED_DATA_VIZ: 'Datavisualiseringswidgets som dette er ofte problematiske for personer som bruker tastatur eller skjermleser for å navigere, og kan by på betydelige problemer for personer med nedsatt syn eller fargeblindhet. Det anbefales å gi den samme informasjonen i et alternativt format (tekst eller tabell) under widgeten.
                    Les mer om
                    komplekse bilder.', EMBED_MISSING_TITLE: 'Innebygd innhold krever et tilgjengelig navn som beskriver innholdet. Oppgi et unikt title eller aria-label-attributt på iframe-elementet. Finn ut mer om iFrames..', - EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet..', + EMBED_GENERAL_WARNING: 'Kunne ikke sjekke innebygd innhold. Kontroller at bilder har alt-tekst, videoer har bildetekster, tekst har tilstrekkelig kontrast og interaktive komponenter er tilgjengelige via tastaturet.', EMBED_UNFOCUSABLE: '<iframe> med ikke-fokuserbare elementer bør ikke ha tabindex="-1". Den innebygde innholdet vil ikke være tilgjengelig med tastaturet.', - QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
                    Denne lenken peker til:
                    %(el)', + QA_BAD_LINK: 'Feil lenke funnet. Lenken ser ut til å peke til et utviklingsmiljø.
                    Denne lenken peker til:
                    %(LINK)', QA_IN_PAGE_LINK: 'Ødelagt samme-sides lenke. Lenkemålet samsvarer ikke med noen element på denne siden.', QA_BAD_ITALICS: 'Fet og kursiv har en semantisk betydning, og bør ikke brukes til å fremheve hele avsnitt. Fet skrift skal brukes til å fremheve et ord eller en frase. Kursiv skal brukes til å fremheve egennavn (f.eks. bok- og artikkeltitler), fremmedord og sitater. Lange sitater bør formateres som blokksitater.', QA_PDF: 'Kan ikke sjekke om PDF-filer er tilgjengelige. PDF-filer regnes som nettinnhold og må også gjøres tilgjengelige. PDF-filer inneholder ofte problemer for personer som bruker skjermlesere (manglende strukturelle tagger eller manglende etiketter for skjemafelt) og personer med nedsatt syn (teksten flyter ikke ut igjen når den forstørres).
                    • Hvis dette er et skjema, bør du vurdere å bruke et tilgjengelig HTML-skjema som et alternativ.
                    • Hvis dette er et dokument, bør du vurdere å konvertere det til en nettside.
                    Ellers kan du sjekke om PDF-en er tilgjengelig i Acrobat DC..', QA_DOCUMENT: 'Kan ikke sjekke dokumentets tilgjengelighet. Lenkede dokumenter regnes som nettinnhold og må også gjøres tilgjengelige. Vennligst gå gjennom dette dokumentet manuelt. ', QA_PAGE_LANGUAGE: 'Sidens språk er ikke oppgitt! Vennligst deklarer språk i HTML-taggen..', QA_PAGE_TITLE: 'Manglende sidetittel! Vennligst oppgi en sidetittel..', - QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(sanitizedText)
                    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', - QA_FAKE_HEADING: 'Er dette en overskrift? %(boldtext)
                    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', - QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
                    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister..', + QA_BLOCKQUOTE_MESSAGE: 'Er dette en overskrift? %(TEXT)
                    Blokksitater skal kun brukes til sitater. Hvis dette er ment å være en overskrift, endrer du blokksitatet til en semantisk overskrift (f.eks. Overskrift 2 eller Overskrift 3).', + QA_FAKE_HEADING: 'Er dette en overskrift? %(TEXT)
                    En linje med fet eller stor tekst kan se ut som en overskrift, men en person som bruker skjermleser, kan ikke se at den er viktig eller hoppe til innholdet. Fet eller stor tekst bør aldri erstatte semantiske overskrifter (overskrift 2 til overskrift 6).', + QA_SHOULD_BE_LIST: 'Prøver du å opprette en liste? Mulig listeelement funnet: %(firstPrefix)
                    Sørg for å bruke semantiske lister ved å bruke knappene for punkt- eller tallformatering i stedet. Når du bruker en semantisk liste, kan hjelpemidler formidle informasjon som det totale antallet elementer og den relative posisjonen til hvert element i listen. Finn ut mer om semantiske lister.', QA_UPPERCASE_WARNING: 'Fant store bokstaver. Noen skjermlesere kan tolke tekst med store bokstaver som et akronym og vil lese hver bokstav for seg. I tillegg synes noen at store bokstaver er vanskeligere å lese, og det kan gi inntrykk av at man roper.', QA_DUPLICATE_ID: 'Fant duplisert ID. Feil med dupliserte ID-er er kjent for å forårsake problemer for hjelpeteknologier når de prøver å samhandle med innhold.
                    Vennligst fjern eller endre følgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Understreket tekst kan forveksles med lenker. Vurder å bruke en annen stil, for eksempel <strong>strong importance</strong> eller <em>emphasis</em>.', @@ -224,9 +230,9 @@ TABLES_MISSING_HEADINGS: 'Manglende tabelloverskrifter! Universelt utformede tabeller trenger HTML-merking som angir overskriftsceller og dataceller, og som definerer forholdet mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Tabeller bør kun brukes til tabelldata.
                    Les mer om tilgjengelige tabeller.', TABLES_SEMANTIC_HEADING: 'Semantiske overskrifter som overskrift 2 eller overskrift 3 skal bare brukes til innholdsseksjoner, ikke i HTML-tabeller. Angi tabelloverskrifter ved hjelp av <th>-elementet i stedet.
                    Les mer om tilgjengelige tabeller.', TABLES_EMPTY_HEADING: 'Tom tabelloverskrift funnet! Tabelloverskrifter skal aldri være tomme. Det er viktig å utpeke rad- og/eller kolonneoverskrifter for å vise sammenhengen mellom dem. Denne informasjonen gir kontekst til personer som bruker hjelpemidler. Husk at tabeller kun skal brukes til tabelldata.
                    Finn ut mer om tilgjengelige tabeller.', - CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforholdet er %(cratio) for følgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vennligst se gjennom: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold: %(cratio)', + CONTRAST_ERROR: 'Denne teksten har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrasten i denne teksten er ukjent og må kontrolleres manuelt. Sørg for at teksten og bakgrunnen har sterke kontrastfarger. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Vennligst se gjennom: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Teksten i denne inngangen har ikke nok kontrast til bakgrunnen. Kontrastforholdet bør være minst 4,5:1 for normal tekst og 3:1 for stor tekst.
                    Kontrastforhold %(RATIO)', }, }; diff --git a/docs/assets/js/lang/nl.js b/docs/assets/js/lang/nl.js index 78c29f30..f63630ca 100644 --- a/docs/assets/js/lang/nl.js +++ b/docs/assets/js/lang/nl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var nl = { OFF: 'Uit', ALERT_TEXT: 'Waarschuwing', ALERT_CLOSE: 'Sluit', - OUTLINE: 'Pagina overzicht', + OUTLINE: 'Overzicht', + ALT: 'ALT', + IMAGES: 'Afbeeldingen', + EDIT: 'Bewerken', + IMAGES_NOT_FOUND: 'Geen afbeeldingen gevonden.', + DECORATIVE: 'Decoratief', + MISSING: 'Ontbrekend', PAGE_ISSUES: 'Pagina problemen', SETTINGS: 'Instellingen', CONTRAST: 'Contrast', @@ -158,7 +164,7 @@ var nl = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Niet genoeg inhoud om een leesbaarheidsscore te berekenen.', HEADING_NON_CONSECUTIVE_LEVEL: 'Niet-opeenvolgend rubriekniveau gebruikt. Koppen mogen nooit niveaus overslaan of van Kop %(prevLevel) naar Kop %(level) gaan.', HEADING_EMPTY: 'Lege koptekst gevonden! Om dit op te lossen, verwijdert u deze regel of wijzigt u de opmaak van Heading %(level) in Normal of Paragraph.', - HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
                    Aantal tekens: %(headingLength)', + HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
                    %(HEADING_LENGTH) Tekens', HEADING_FIRST: 'De eerste kop op een pagina moet meestal een Kop 1 of Kop 2 zijn. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_MISSING_ONE: 'Ontbrekende kop 1. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_EMPTY_WITH_IMAGE: 'Een kop heeft geen tekst, maar bevat een afbeelding. Als dit geen koptekst is, verander de opmaak dan van Koptekst %(level) in Normaal of Paragraaf. Voeg anders alt-tekst toe aan de afbeelding als deze niet decoratief is.', @@ -167,65 +173,65 @@ var nl = { LINK_EMPTY: 'Verwijder lege links zonder tekst.', LINK_EMPTY_LABELLEDBY: 'De link heeft een waarde voor aria-labelledby die leeg is of niet overeenkomt met de waarde van het attribuut id van een ander element op de pagina.', LINK_EMPTY_LINK_NO_LABEL: 'Link heeft geen leesbare tekst die zichtbaar is voor schermlezers en andere ondersteunende technologie. Op te lossen:
                    • Voeg beknopte tekst toe die beschrijft waar de koppeling naartoe leidt.
                    • Als het een icon link of SVG, is, ontbreekt waarschijnlijk een beschrijvend label.
                    • Als u denkt dat deze koppeling een fout is als gevolg van een copy/paste-bug, kunt u overwegen deze te verwijderen.
                    ', - LINK_LABEL: 'Linklabel: %(sanitizedText)', - LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(error)
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', - LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(error)
                    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
                    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
                    ', - LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", + LINK_LABEL: 'Linklabel %(TEXT)', + LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(ERROR)
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', + LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(ERROR)
                    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
                    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
                    ', + LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", LINK_DOI: 'Voor webpagina\'s of online bronnen raadt de APA stijlgids aan om beschrijvende links te gebruiken door de URL of DOI van het werk rond de titel te plaatsen. Langere, minder begrijpelijke URL\'s die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie.', - NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend
                    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', - FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
                    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
                    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend.
                    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', + FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
                    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
                    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Afbeelding wordt gebruikt als een link met omringende tekst, hoewel het alt-attribuut als decoratief of null moet worden gemarkeerd.', MISSING_ALT_LINK_MESSAGE: 'Afbeelding wordt gebruikt als link maar alt-tekst ontbreekt! Zorg ervoor dat de alt-tekst beschrijft waar de link naartoe leidt.', MISSING_ALT_MESSAGE: 'Ontbrekende alt-tekst! Als de afbeelding een verhaal, sfeer of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft.', - LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(error).
                    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(error)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
                    Alttekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(error).
                    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(altText)', - ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(error)" kan overbodig zijn.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(ERROR)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(ERROR)" kan overbodig zijn.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'De link heeft aria-hidden="true", maar is nog steeds toegankelijk met het toetsenbord. Als je van plan bent om een overbodige of dubbele link te verbergen, voeg dan ook tabindex="-1" toe.', LINK_IMAGE_NO_ALT_TEXT: 'De afbeelding in de link is gemarkeerd als decoratief en er is geen linktekst. Voeg alt-tekst toe aan de afbeelding die de bestemming van de link beschrijft.', LINK_IMAGE_HAS_TEXT: 'Afbeelding is gemarkeerd als decoratief, hoewel de link de omringende tekst gebruikt als beschrijvend label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    Alt-tekst (%(altLength) tekens): %(altText)', - LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    Alttekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
                    Alttekst: %(altText)
                    Linklabel: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
                    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Lees meer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Meer informatie: alt versus figcaption.
                    Alt tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    ALT %(altLength) Tekens %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
                    ALT %(ALT_TEXT)
                    Linklabel %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
                    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Lees meer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Meer informatie: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'De afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, voeg dan alt-tekst toe.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
                    Altekst (%(altLength) tekens): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
                    ALT %(altLength) Tekens %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bij de afbeeldingsknop ontbreekt alt-tekst. Voeg alt-tekst toe om een toegankelijke naam te geven. Bijvoorbeeld: Zoeken of Inzenden.', LABELS_INPUT_RESET_MESSAGE: 'Resetknoppen moeten niet worden gebruikt tenzij ze specifiek nodig zijn, omdat ze gemakkelijk per ongeluk kunnen worden geactiveerd.
                    Tip!Lees waarom Reset- en annuleerknoppen bruikbaarheidsproblemen opleveren.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
                    Invoerlabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
                    Invoerlabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een for-attribuut toe aan het label dat overeenkomt met de id van deze ingang.
                    De ID voor deze ingang is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een id toe aan deze ingang en voeg een overeenkomend for attribuut toe aan het label.', EMBED_VIDEO: "Zorg ervoor dat alle video's zijn voorzien van ondertiteling. Het leveren van ondertiteling voor alle audio- en video-inhoud is een verplichte Level A-vereiste. Ondertiteling ondersteunt mensen die doof of slechthorend zijn.", EMBED_AUDIO: 'Zorg voor een transcript voor alle podcasts. Het leveren van transcripts voor audio-inhoud is een verplichte Level A-vereiste. Transcripties ondersteunen mensen die doof of slechthorend zijn, maar iedereen kan er baat bij hebben. Overweeg om het transcript onder of in een accordeonpaneel te plaatsen.', - EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
                    Meer informatie over complexe afbeeldingen.', + EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
                    Meer informatie over complexe afbeeldingen.', EMBED_MISSING_TITLE: 'Voor ingesloten inhoud is een toegankelijke naam nodig die de inhoud beschrijft. Geef een uniek title of aria-label attribuut op het iframe element. Meer informatie over iFrames.', - EMBED_GENERAL_WARNING: "Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video's bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.", + EMBED_GENERAL_WARNING: 'Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video\'s bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.', EMBED_UNFOCUSABLE: '<iframe> met niet-focusbare elementen mag geen tabindex="-1" hebben. De ingesloten inhoud zal niet toegankelijk zijn met het toetsenbord.', - QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
                    Deze link verwijst naar:
                    %(el)', + QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
                    Deze link verwijst naar:
                    %(LINK)', QA_IN_PAGE_LINK: 'Gebroken koppeling naar dezelfde pagina. Het koppelingsdoel komt niet overeen met enig element op deze pagina.', QA_BAD_ITALICS: "Vetgedrukte en cursieve tags hebben een semantische betekenis en moeten niet worden gebruikt om hele alinea's te benadrukken. Vetgedrukte tekst moet worden gebruikt om een woord of zin sterk te accentueren. Cursief moet worden gebruikt om eigennamen (bijv. titels van boeken en artikelen), vreemde woorden en aanhalingstekens te benadrukken. Lange citaten moeten worden opgemaakt als een blokcitaat.", - QA_PDF: "Kan PDF's niet controleren op toegankelijkheid. PDF's worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF's bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
                    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
                    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
                    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.", + QA_PDF: 'Kan PDF\'s niet controleren op toegankelijkheid. PDF\'s worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF\'s bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
                    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
                    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
                    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.', QA_DOCUMENT: 'Kan document niet controleren op toegankelijkheid. Gekoppelde documenten worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. Controleer dit document handmatig. ', QA_PAGE_LANGUAGE: 'Pagina taal niet aangegeven! Gelieve declareer taal in HTML-tag.', QA_PAGE_TITLE: 'Er ontbreekt een paginatitel! Geef een paginatitel.', - QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(sanitizedText)
                    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', - QA_FAKE_HEADING: 'Is dit een koptekst? %(boldtext)
                    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', - QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
                    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', + QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(TEXT)
                    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', + QA_FAKE_HEADING: 'Is dit een koptekst? %(TEXT)
                    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', + QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
                    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', QA_UPPERCASE_WARNING: 'Hoofdletters gevonden. Sommige schermlezers interpreteren tekst met allemaal hoofdletters als een acroniem en lezen elke letter apart. Bovendien vinden sommige mensen hoofdletters moeilijker te lezen en kan het lijken alsof ze schreeuwen.', QA_DUPLICATE_ID: 'Duplicate ID gevonden. Het is bekend dat dubbele ID-fouten problemen veroorzaken voor hulptechnologieën wanneer deze proberen te communiceren met inhoud.
                    Verwijder of wijzig de volgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Onderstreepte tekst kan worden verward met links. Overweeg een andere stijl te gebruiken, zoals <strong>strong importance</strong> of <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'De opmaakopties subscript en superscript mogen alleen worden gebruikt om de positie van tekst te wijzigen voor typografische conventies of standaarden. Het moet niet alleen worden gebruikt voor presentatie of uiterlijk. Het formatteren van hele zinnen geeft problemen met de leesbaarheid. Voorbeelden van geschikte toepassingen zijn het weergeven van exponenten, rangtelwoorden zoals 4th in plaats van fourth, en chemische formules (bijv. H2O).', - TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
                    Lees meer over toegankelijke tabellen.', - TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
                    Meer informatie over toegankelijke tabellen.', - TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
                    Meer informatie over toegankelijke tabellen.', - CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    De contrastverhouding is %(cratio) voor de volgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Bekijk: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding: %(cratio)', + TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
                    Lees meer over toegankelijke tabellen.', + TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
                    Meer informatie over toegankelijke tabellen.', + TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
                    Meer informatie over toegankelijke tabellen.', + CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Bekijk: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding %(RATIO)', }, }; diff --git a/docs/assets/js/lang/nl.umd.js b/docs/assets/js/lang/nl.umd.js index ce7c1abc..76f7b245 100644 --- a/docs/assets/js/lang/nl.umd.js +++ b/docs/assets/js/lang/nl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Uit', ALERT_TEXT: 'Waarschuwing', ALERT_CLOSE: 'Sluit', - OUTLINE: 'Pagina overzicht', + OUTLINE: 'Overzicht', + ALT: 'ALT', + IMAGES: 'Afbeeldingen', + EDIT: 'Bewerken', + IMAGES_NOT_FOUND: 'Geen afbeeldingen gevonden.', + DECORATIVE: 'Decoratief', + MISSING: 'Ontbrekend', PAGE_ISSUES: 'Pagina problemen', SETTINGS: 'Instellingen', CONTRAST: 'Contrast', @@ -164,7 +170,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Niet genoeg inhoud om een leesbaarheidsscore te berekenen.', HEADING_NON_CONSECUTIVE_LEVEL: 'Niet-opeenvolgend rubriekniveau gebruikt. Koppen mogen nooit niveaus overslaan of van Kop %(prevLevel) naar Kop %(level) gaan.', HEADING_EMPTY: 'Lege koptekst gevonden! Om dit op te lossen, verwijdert u deze regel of wijzigt u de opmaak van Heading %(level) in Normal of Paragraph.', - HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
                    Aantal tekens: %(headingLength)', + HEADING_LONG: 'Koppen zijn lang! Koppen moeten worden gebruikt om inhoud te organiseren en structuur over te brengen. Ze moeten kort, informatief en uniek zijn. Houd koppen onder de 160 tekens (niet meer dan een zin).
                    %(HEADING_LENGTH) Tekens', HEADING_FIRST: 'De eerste kop op een pagina moet meestal een Kop 1 of Kop 2 zijn. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_MISSING_ONE: 'Ontbrekende kop 1. Kop 1 moet het begin zijn van het hoofdgedeelte van de inhoud en is de belangrijkste kop die het algemene doel van de pagina beschrijft. Meer informatie over Kopjesstructuur.', HEADING_EMPTY_WITH_IMAGE: 'Een kop heeft geen tekst, maar bevat een afbeelding. Als dit geen koptekst is, verander de opmaak dan van Koptekst %(level) in Normaal of Paragraaf. Voeg anders alt-tekst toe aan de afbeelding als deze niet decoratief is.', @@ -173,65 +179,65 @@ LINK_EMPTY: 'Verwijder lege links zonder tekst.', LINK_EMPTY_LABELLEDBY: 'De link heeft een waarde voor aria-labelledby die leeg is of niet overeenkomt met de waarde van het attribuut id van een ander element op de pagina.', LINK_EMPTY_LINK_NO_LABEL: 'Link heeft geen leesbare tekst die zichtbaar is voor schermlezers en andere ondersteunende technologie. Op te lossen:
                    • Voeg beknopte tekst toe die beschrijft waar de koppeling naartoe leidt.
                    • Als het een icon link of SVG, is, ontbreekt waarschijnlijk een beschrijvend label.
                    • Als u denkt dat deze koppeling een fout is als gevolg van een copy/paste-bug, kunt u overwegen deze te verwijderen.
                    ', - LINK_LABEL: 'Linklabel: %(sanitizedText)', - LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(error)
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', - LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(error)
                    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
                    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
                    ', - LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", + LINK_LABEL: 'Linklabel %(TEXT)', + LINK_STOPWORD: 'Linktekst is mogelijk niet beschrijvend genoeg buiten de context: %(ERROR)
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn. Vermijd veelgebruikte woorden zoals "klik hier" of "leer meer"', + LINK_BEST_PRACTICES: 'Overweeg om de tekst van de koppeling te vervangen: %(ERROR)
                    • "Klik hier" legt de nadruk op muismechanica, terwijl veel mensen geen muis gebruiken of deze website mogelijk bekijken op een mobiel apparaat. Overweeg het gebruik van een ander werkwoord dat betrekking heeft op de taak.
                    • Vermijd het gebruik van HTML-symbolen als oproep tot actie, tenzij deze verborgen zijn voor ondersteunende technologieën.
                    ', + LINK_URL: "Langere, minder begrijpelijke URL's die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie. In de meeste gevallen is het beter om menselijk leesbare tekst te gebruiken in plaats van de URL. Korte URL's (zoals de startpagina van een site) zijn prima.
                    Tip! Linktekst moet altijd duidelijk, uniek en betekenisvol zijn, zodat deze ook buiten de context kan worden begrepen.", LINK_DOI: 'Voor webpagina\'s of online bronnen raadt de APA stijlgids aan om beschrijvende links te gebruiken door de URL of DOI van het werk rond de titel te plaatsen. Langere, minder begrijpelijke URL\'s die gebruikt worden als linktekst kunnen moeilijk te begrijpen zijn met hulptechnologie.', - NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend
                    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', - FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
                    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
                    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(sanitizedText)', + NEW_TAB_WARNING: 'Link opent in een nieuw tabblad of venster zonder waarschuwing. Dit kan desoriënterend zijn, vooral voor mensen die moeite hebben met het waarnemen van visuele inhoud. Ten tweede is het niet altijd een goede gewoonte om iemands ervaring te controleren of beslissingen voor hem te nemen. Geef in de tekst van de koppeling aan dat deze in een nieuw venster wordt geopend.
                    Tip! Leer de beste werkwijzen: links openen in nieuwe browservensters en tabbladen.', + FILE_TYPE_WARNING: 'Link verwijst naar een PDF of downloadbaar bestand (bijv. MP3, Zip, Word Doc) zonder waarschuwing. Vermeld het bestandstype in de linktekst. Als het een groot bestand is, kun je overwegen de bestandsgrootte te vermelden.
                    Voorbeeld: Uitvoerend rapport (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Link heeft dezelfde tekst als een andere link, maar verwijst naar een andere pagina. Meerdere links met dezelfde tekst kunnen verwarring veroorzaken voor mensen die schermlezers gebruiken.
                    Overweeg om de volgende link beschrijvender te maken om hem te helpen onderscheiden van andere links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Afbeelding wordt gebruikt als een link met omringende tekst, hoewel het alt-attribuut als decoratief of null moet worden gemarkeerd.', MISSING_ALT_LINK_MESSAGE: 'Afbeelding wordt gebruikt als link maar alt-tekst ontbreekt! Zorg ervoor dat de alt-tekst beschrijft waar de link naartoe leidt.', MISSING_ALT_MESSAGE: 'Ontbrekende alt-tekst! Als de afbeelding een verhaal, sfeer of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft.', - LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(error).
                    Alt-tekst: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(error)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
                    Alttekst: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(error).
                    Alt-tekst: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(altText)', - ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(error)" kan overbodig zijn.
                    Alt tekst: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de alt-tekst gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Verwijderen: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Niet-beschrijvende of plaatsvervangende alt-tekst binnen een gekoppelde afbeelding gevonden. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding. Vervang de volgende alt-tekst: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hulptechnologieën geven al aan dat het om een afbeelding gaat, dus "%(ERROR)" kan overbodig zijn. Zorg ervoor dat de alt-tekst de bestemming van de link beschrijft en niet een letterlijke beschrijving van de afbeelding.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bestandsextensie in de gevonden alt-tekst. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, zorg er dan voor dat je de afbeelding beschrijft. Verwijderen: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Niet-beschrijvende of plaatshouder alt-tekst gevonden. Vervang de volgende alt-tekst door iets dat meer betekenis heeft: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hulptechnologieën geven al aan dat dit een afbeelding is, dus "%(ERROR)" kan overbodig zijn.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'De link heeft aria-hidden="true", maar is nog steeds toegankelijk met het toetsenbord. Als je van plan bent om een overbodige of dubbele link te verbergen, voeg dan ook tabindex="-1" toe.', LINK_IMAGE_NO_ALT_TEXT: 'De afbeelding in de link is gemarkeerd als decoratief en er is geen linktekst. Voeg alt-tekst toe aan de afbeelding die de bestemming van de link beschrijft.', LINK_IMAGE_HAS_TEXT: 'Afbeelding is gemarkeerd als decoratief, hoewel de link de omringende tekst gebruikt als beschrijvend label.', - LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    Alt-tekst (%(altLength) tekens): %(altText)', - LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    Alttekst: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
                    Alttekst: %(altText)
                    Linklabel: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
                    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Lees meer: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Meer informatie: alt versus figcaption.
                    Alt tekst: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alt-tekstbeschrijving op een gekoppelde afbeelding is te lang. De alt-tekst op gelinkte afbeeldingen moet beschrijven waar de link je naartoe brengt, niet een letterlijke beschrijving van de afbeelding. Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    ALT %(altLength) Tekens %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'De link naar de afbeelding bevat alt-tekst. Beschrijft de alt-tekst waar de link je naartoe brengt? Overweeg om de titel van de pagina waarnaar wordt gelinkt als alt-tekst te gebruiken.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Als deze afbeelding decoratief is en wordt gebruikt als een functionele link naar een andere pagina, overweeg dan om de afbeelding als decoratief of null te markeren - de omringende linktekst zou moeten volstaan.
                    ALT %(ALT_TEXT)
                    Linklabel %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie.
                    Hoewel er een bijschrift is opgegeven, moet de afbeelding in de meeste gevallen ook een alt-tekst hebben.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Lees meer: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Gebruik niet exact dezelfde woorden voor zowel de alt- als bijschrifttekst. Schermlezers zullen de informatie twee keer aankondigen.
                    • De alt-tekst moet een beknopte beschrijving geven van wat er in de afbeelding staat.
                    • Het bijschrift moet meestal context bieden om de afbeelding te relateren aan de omringende inhoud, of de aandacht vestigen op een bepaald stukje informatie.
                    Meer informatie: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'De afbeelding is gemarkeerd als decoratief en wordt genegeerd door ondersteunende technologie. Als de afbeelding een verhaal, stemming of belangrijke informatie overbrengt, voeg dan alt-tekst toe.', - IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
                    Altekst (%(altLength) tekens): %(altText)', - IMAGE_PASS: 'Alt tekst: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-tekstbeschrijving is te lang. Alt-tekst moet beknopt zijn, maar toch betekenisvol, zoals een tweet (ongeveer 100 tekens). Als dit een complexe afbeelding of een grafiek is, overweeg dan om de lange beschrijving van de afbeelding in de tekst eronder te zetten of in een accordeoncomponent.
                    ALT %(altLength) Tekens %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bij de afbeeldingsknop ontbreekt alt-tekst. Voeg alt-tekst toe om een toegankelijke naam te geven. Bijvoorbeeld: Zoeken of Inzenden.', LABELS_INPUT_RESET_MESSAGE: 'Resetknoppen moeten niet worden gebruikt tenzij ze specifiek nodig zijn, omdat ze gemakkelijk per ongeluk kunnen worden geactiveerd.
                    Tip!Lees waarom Reset- en annuleerknoppen bruikbaarheidsproblemen opleveren.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
                    Invoerlabel: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'De invoer heeft een toegankelijke naam, maar zorg ervoor dat er ook een zichtbaar label is.
                    Invoerlabel %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een for-attribuut toe aan het label dat overeenkomt met de id van deze ingang.
                    De ID voor deze ingang is: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Er is geen label gekoppeld aan deze ingang. Voeg een id toe aan deze ingang en voeg een overeenkomend for attribuut toe aan het label.', EMBED_VIDEO: "Zorg ervoor dat alle video's zijn voorzien van ondertiteling. Het leveren van ondertiteling voor alle audio- en video-inhoud is een verplichte Level A-vereiste. Ondertiteling ondersteunt mensen die doof of slechthorend zijn.", EMBED_AUDIO: 'Zorg voor een transcript voor alle podcasts. Het leveren van transcripts voor audio-inhoud is een verplichte Level A-vereiste. Transcripties ondersteunen mensen die doof of slechthorend zijn, maar iedereen kan er baat bij hebben. Overweeg om het transcript onder of in een accordeonpaneel te plaatsen.', - EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
                    Meer informatie over complexe afbeeldingen.', + EMBED_DATA_VIZ: 'Widgets voor gegevensvisualisatie zoals deze zijn vaak problematisch voor mensen die een toetsenbord of schermlezer gebruiken om te navigeren, en kunnen aanzienlijke problemen opleveren voor mensen met slechtziendheid of kleurenblindheid. Het is aan te raden om dezelfde informatie in een alternatieve (tekst of tabel) indeling onder de widget aan te bieden.
                    Meer informatie over complexe afbeeldingen.', EMBED_MISSING_TITLE: 'Voor ingesloten inhoud is een toegankelijke naam nodig die de inhoud beschrijft. Geef een uniek title of aria-label attribuut op het iframe element. Meer informatie over iFrames.', - EMBED_GENERAL_WARNING: "Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video's bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.", + EMBED_GENERAL_WARNING: 'Kan ingesloten inhoud niet controleren. Controleer of afbeeldingen alt-tekst hebben, video\'s bijschriften, tekst voldoende contrast en interactieve onderdelen toetsenbordtoegankelijk zijn.', EMBED_UNFOCUSABLE: '<iframe> met niet-focusbare elementen mag geen tabindex="-1" hebben. De ingesloten inhoud zal niet toegankelijk zijn met het toetsenbord.', - QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
                    Deze link verwijst naar:
                    %(el)', + QA_BAD_LINK: 'Slechte link gevonden. Link lijkt te verwijzen naar een ontwikkelomgeving.
                    Deze link verwijst naar:
                    %(LINK)', QA_IN_PAGE_LINK: 'Gebroken koppeling naar dezelfde pagina. Het koppelingsdoel komt niet overeen met enig element op deze pagina.', QA_BAD_ITALICS: "Vetgedrukte en cursieve tags hebben een semantische betekenis en moeten niet worden gebruikt om hele alinea's te benadrukken. Vetgedrukte tekst moet worden gebruikt om een woord of zin sterk te accentueren. Cursief moet worden gebruikt om eigennamen (bijv. titels van boeken en artikelen), vreemde woorden en aanhalingstekens te benadrukken. Lange citaten moeten worden opgemaakt als een blokcitaat.", - QA_PDF: "Kan PDF's niet controleren op toegankelijkheid. PDF's worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF's bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
                    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
                    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
                    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.", + QA_PDF: 'Kan PDF\'s niet controleren op toegankelijkheid. PDF\'s worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. PDF\'s bevatten vaak problemen voor mensen die screenreaders gebruiken (ontbrekende structurele tags of ontbrekende labels voor formuliervelden) en mensen die slecht zien (tekst wordt niet weergegeven als deze wordt vergroot).
                    • Als dit een formulier is, kunt u overwegen een toegankelijk HTML-formulier te gebruiken als alternatief.
                    • Als dit een document is, kunt u overwegen het te converteren naar een webpagina.
                    Ofwel controleer PDF op toegankelijkheid in Acrobat DC.', QA_DOCUMENT: 'Kan document niet controleren op toegankelijkheid. Gekoppelde documenten worden beschouwd als webinhoud en moeten ook toegankelijk worden gemaakt. Controleer dit document handmatig. ', QA_PAGE_LANGUAGE: 'Pagina taal niet aangegeven! Gelieve declareer taal in HTML-tag.', QA_PAGE_TITLE: 'Er ontbreekt een paginatitel! Geef een paginatitel.', - QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(sanitizedText)
                    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', - QA_FAKE_HEADING: 'Is dit een koptekst? %(boldtext)
                    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', - QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
                    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', + QA_BLOCKQUOTE_MESSAGE: 'Is dit een koptekst? %(TEXT)
                    Blokcitaten moeten alleen worden gebruikt voor citaten. Als dit bedoeld is als een koptekst, verander deze blokcitaat dan in een semantische koptekst (bijvoorbeeld koptekst 2 of koptekst 3).', + QA_FAKE_HEADING: 'Is dit een koptekst? %(TEXT)
                    Een regel vette of grote tekst ziet er misschien uit als een kop, maar iemand die een schermlezer gebruikt, kan niet zien dat het belangrijk is of naar de inhoud springen. Vette of grote tekst mag nooit semantische koppen vervangen (Kop 2 tot en met Kop 6).', + QA_SHOULD_BE_LIST: 'Probeer je een lijst te maken? Mogelijk lijstitem gevonden: %(firstPrefix)
                    Zorg ervoor dat je semantische lijsten gebruikt door in plaats daarvan de opsommingsteken- of nummeropmaakknoppen te gebruiken. Als je een semantische lijst gebruikt, kunnen hulptechnologieën informatie overbrengen zoals het totale aantal items en de relatieve positie van elk item in de lijst. Meer informatie over semantische lijsten.', QA_UPPERCASE_WARNING: 'Hoofdletters gevonden. Sommige schermlezers interpreteren tekst met allemaal hoofdletters als een acroniem en lezen elke letter apart. Bovendien vinden sommige mensen hoofdletters moeilijker te lezen en kan het lijken alsof ze schreeuwen.', QA_DUPLICATE_ID: 'Duplicate ID gevonden. Het is bekend dat dubbele ID-fouten problemen veroorzaken voor hulptechnologieën wanneer deze proberen te communiceren met inhoud.
                    Verwijder of wijzig de volgende ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Onderstreepte tekst kan worden verward met links. Overweeg een andere stijl te gebruiken, zoals <strong>strong importance</strong> of <em>emphasis</em>.', QA_SUBSCRIPT_WARNING: 'De opmaakopties subscript en superscript mogen alleen worden gebruikt om de positie van tekst te wijzigen voor typografische conventies of standaarden. Het moet niet alleen worden gebruikt voor presentatie of uiterlijk. Het formatteren van hele zinnen geeft problemen met de leesbaarheid. Voorbeelden van geschikte toepassingen zijn het weergeven van exponenten, rangtelwoorden zoals 4th in plaats van fourth, en chemische formules (bijv. H2O).', - TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
                    Lees meer over toegankelijke tabellen.', - TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
                    Meer informatie over toegankelijke tabellen.', - TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
                    Meer informatie over toegankelijke tabellen.', - CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    De contrastverhouding is %(cratio) voor de volgende tekst: %(sanitizedText)', - CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Bekijk: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding: %(cratio)', + TABLES_MISSING_HEADINGS: 'Tabelkoppen ontbreken! Voor toegankelijke tabellen is HTML-markup nodig die kopcellen en gegevenscellen aangeeft en hun relatie definieert. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Tabellen moeten alleen worden gebruikt voor gegevens in tabelvorm.
                    Lees meer over toegankelijke tabellen.', + TABLES_SEMANTIC_HEADING: 'Semantische koppen zoals Kop 2 of Kop 3 mogen alleen worden gebruikt voor gedeelten van de inhoud; niet in HTML-tabellen. Geef tabelkoppen aan met het <th>-element.
                    Meer informatie over toegankelijke tabellen.', + TABLES_EMPTY_HEADING: 'Lege tabelheader gevonden! Tabelkoppen moeten nooit leeg zijn. Het is belangrijk om rij- en/of kolomkoppen aan te geven om hun relatie duidelijk te maken. Deze informatie geeft context aan mensen die ondersteunende technologie gebruiken. Houd in gedachten dat tabellen alleen mogen worden gebruikt voor gegevens in tabelvorm.
                    Meer informatie over toegankelijke tabellen.', + CONTRAST_ERROR: 'Deze tekst heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Het contrast van deze tekst is onbekend en moet handmatig worden gecontroleerd. Zorg ervoor dat de tekst en de achtergrond sterk contrasterende kleuren hebben. De contrastverhouding moet minstens 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Bekijk: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst binnen deze invoer heeft niet genoeg contrast met de achtergrond. De contrastverhouding moet ten minste 4,5:1 zijn voor normale tekst en 3:1 voor grote tekst.
                    Contrastverhouding %(RATIO)', }, }; diff --git a/docs/assets/js/lang/pl.js b/docs/assets/js/lang/pl.js index 11040e3d..78e24135 100644 --- a/docs/assets/js/lang/pl.js +++ b/docs/assets/js/lang/pl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var pl = { OFF: 'Wył', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Zamknij', - OUTLINE: 'Konspekt strony', + OUTLINE: 'Szkic', + ALT: 'ALT', + IMAGES: 'Obrazy', + EDIT: 'Edytuj', + IMAGES_NOT_FOUND: 'Nie znaleziono obrazów.', + DECORATIVE: 'Dekoracyjny', + MISSING: 'Brakujący', PAGE_ISSUES: 'Problemy ze stroną', SETTINGS: 'Ustawienia', CONTRAST: 'Kontrast', @@ -147,7 +153,7 @@ var pl = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Niespójny poziom nagłówka. Zastosowane poziomy nie następują po sobie. Nagłówki nigdy nie powinny pomijać poziomów np. od Nagłówek %(prevLevel) do Nagłówek %(level).', HEADING_EMPTY: 'Znaleziono pusty nagłówek! Aby to naprawić, usuń tę linię lub zmień jej format z Nagłówek %(level) na zwykły tekst lub akapit.', - HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
                    Liczba znaków: %(headingLength).', + HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
                    %(HEADING_LENGTH) Znaków', HEADING_FIRST: 'Pierwszym nagłówkiem na stronie powinien być zwykle Nagłówek H1 lub Nagłówek H2. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_MISSING_ONE: 'Brakuje nagłówka H1. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_EMPTY_WITH_IMAGE: 'Nagłówek nie ma tekstu, ale zawiera obrazek. Jeśli to nie jest nagłówek, zmień jego format z Nagłówek H%(level) na zwykły tekst lub akapit. W przeciwnym razie, dodaj do obrazu tekst alt, jeśli nie jest on ozdobny.', @@ -157,79 +163,79 @@ var pl = { // Links LINK_EMPTY: 'Puste łącze bez żadnego tekstu. Usuń je!', LINK_EMPTY_LABELLEDBY: 'Link ma wartość aria-labelledby, która jest pusta lub nie pasuje do wartości atrybutu id innego elementu na stronie.', - LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
                    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
                    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
                    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
                    ', - LINK_LABEL: 'Etykieta łącza: %(sanitizedText)', - LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(error)
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', - LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(error)
                    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
                    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
                    ', - LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', + LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
                    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
                    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
                    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
                    ', + LINK_LABEL: 'Etykieta łącza %(TEXT)', + LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(ERROR)
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', + LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(ERROR)
                    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
                    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
                    ', + LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', LINK_DOI: 'W przypadku stron internetowych lub zasobów dostępnych tylko online, przewodnik APA Style zaleca stosowanie linków opisowych poprzez zawijanie adresu URL lub DOI pracy wokół jej tytułu. Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej.', // Links advanced - NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
                    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', - FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
                    Przykład: Raport końcowy (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
                    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(sanitizedText)', + NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
                    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', + FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
                    Przykład: Raport końcowy (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
                    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obraz jest używany razem z sąsiadującym tekstem jako łącze. Obraz powinien być oznaczony jako dekoracyjny albo atrybut alt obrazu powinien być pusty.', MISSING_ALT_LINK_MESSAGE: 'Obraz jest używany jako łącze, ale brakuje tekstu alternatywnego! Dodaj tekst alternatywny, który mówi, dokąd prowadzi łącze.', MISSING_ALT_MESSAGE: 'Brak tekstu alternatywnego! Jeśli obraz przekazuje historię, nastrój lub ważne informacje - przedstaw je w tekście alternatywnym.', - LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
                    Tekst alternatywny: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
                    Tekst alternatywny: %(altText)', - ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
                    Tekst alternatywny: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(altText).', - ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne.
                    Tekst alternatywny: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link ma ustawienie aria-hidden="true", ale nadal można go zaznaczyć za pomocą klawiatury. Jeśli zamierzasz ukryć nadmierny lub zduplikowany link, dodaj również tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obraz w łączu jest oznaczony jako dekoracyjny i nie ma tekstu łącza. Dodaj do obrazu tekst alt, który opisze miejsce docelowe łącza.', LINK_IMAGE_HAS_TEXT: 'Obraz jest oznaczony jako dekoracyjny, ale łącze używa otaczającego go tekstu jako etykiety opisowej.', - LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
                    Tekst alternatywny (%(altLength) znaków): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
                    Tekst alternatywny: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
                    Tekst alternatywny: %(altText)
                    Etykieta łącza: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
                    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.
                    Tekst alternatywny: %(altText)', + LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
                    ALT %(altLength) Znaków %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
                    ALT %(ALT_TEXT)
                    Etykieta łącza %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
                    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obraz jest oznaczony dekoracyjny i zostanie zignorowany przez technologię wspomagającą. Jeśli obraz przekazuje jakąś historię, nastrój lub ważną informację - dodaj tekst alt.', - IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
                    Tekst alternatywny (%(altLength) znaków): %(altText)', - IMAGE_PASS: 'Tekst alternatywny: %(altText)', + IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
                    ALT %(altLength) Znaków %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Przycisk graficzny nie ma tekstu alternatywneego. Dodaj tekst alt, aby zapewnić dostępną nazwę. Na przykład: Szukaj lub Wyślij.', LABELS_INPUT_RESET_MESSAGE: 'Przyciski resetowania nie powinny być używane, chyba że są specjalnie potrzebne, ponieważ łatwo je aktywować przez pomyłkę.
                    Porada! Dowiedz się, dlaczego Przyciski Resetuj i Anuluj powodują problemy z użytecznością.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
                    Etykieta wejścia: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
                    Etykieta wejścia %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj atrybut for do etykiety z wartością id pasującą do id tego pola.
                    ID tego pola to: id="%(t)"', LABELS_MISSING_LABEL_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj do tego pola danych id i dodaj pasujący atrybut for do etykiety.', // Embedded content EMBED_VIDEO: 'Upewnij się, że wszystkie filmy mają napisy rozszerzone. Zapewnianie napisów rozszerzonych dla wszystkich treści audio i wideo jest obowiązkowym wymogiem poziomu A. Napisy mają na celu wspieranie osób Głuchych i słabosłyszących.', EMBED_AUDIO: 'Upewnij się, że istnieje transkrypcja dla wszystkich nagrań dźwiękowych. Zapewnianie transkrypcji treści audio jest obowiązkowym wymogiem poziomu A. Transkrypcje mają na celu wspieranie osób Głuchych i słabosłyszących, ale każdy może z nich skorzystać. Rozważ umieszczenie transkrypcji poniżej lub w panelu akordeonowym.', - EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
                    Dowiedz się więcej o obrazach złożonych.', + EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
                    Dowiedz się więcej o obrazach złożonych.', EMBED_MISSING_TITLE: 'Osadzona zawartość wymaga dostępnej nazwy, która opisuje jej treść. Dodaj unikalny title lub atrybutu aria-label do elementu iframe. Dowiedz się więcej o iFrame.', EMBED_GENERAL_WARNING: 'Nie można sprawdzić treści osadzonej. Upewnij się, że obrazy mają tekst alt, filmy mają napisy rozszerzone, tekst ma odpowiedni kontrast, a elementy interaktywne są dostępne z klawiatury.', // Quality assurance - QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
                    Łącze wskazuje na:
                    %(el)', + QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
                    Łącze wskazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Uszkodzony link na tej samej stronie. Cel linku nie odpowiada żadnemu elementowi na tej stronie.', QA_BAD_ITALICS: 'Znaczniki pogrubienia i kursywy mają znaczenie semantyczne i nie powinny być używane do wyróżniania całych akapitów. Pogrubiony tekst powinien być używany w celu silnego podkreślenia słowa lub frazy. Kursywa powinna być używana do wyróżnienia nazw własnych (np. tytułów książek i artykułów), wyrazów obcych, cytatów. Długie cytaty powinny być sformatowane jako blockquote.', - QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
                    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
                    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
                    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', + QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
                    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
                    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
                    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', QA_DOCUMENT: 'Nie można sprawdzić dokumentu pod kątem dostępności. Powiązane dokumenty są uważane za treści internetowe i również muszą być dostępne. Sprawdź ten dokument ręcznie. ', QA_PAGE_LANGUAGE: 'Język strony nie zadeklarowany! Zadeklaruj język w znaczniku HTML.', QA_PAGE_TITLE: 'Brak tytułu strony! Podaj tytuł strony.', - QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(sanitizedText)
                    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', - QA_FAKE_HEADING: 'Czy to jest nagłówek? %(boldtext)
                    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', - QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
                    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', + QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(TEXT)
                    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', + QA_FAKE_HEADING: 'Czy to jest nagłówek? %(TEXT)
                    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', + QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
                    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', QA_UPPERCASE_WARNING: 'Wykryto WSZYSTKIE WIELKIE LITERY. Niektóre czytniki ekranu interpretują cały tekst wielkimi literami jako akronim i będą czytać każdą literę odrębnie. Ponadto, wszystkie wielkie litery są trudniejsze do odczytania i sprawiają wrażenie KRZYKU.', - QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
                    Usuń lub zmień następujący ID: %(id)', + QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
                    Usuń lub zmień następujący ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podkreślony tekst można pomylić z linkami. Rozważ użycie innego stylu, takiego jak <strong>silne znaczenie</strong> lub <em>nacisk</em>.', // Tables TABLES_MISSING_HEADINGS: 'Brak nagłówków tabeli! Dostępne tabele wymagają znaczników HTML, które wskazują komórki nagłówków i komórki danych, które definiują ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', - TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
                    Dowiedz się więcej o dostępnych tabelach.', - TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', + TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
                    Dowiedz się więcej o dostępnych tabelach.', + TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', QA_SUBSCRIPT_WARNING: 'Opcji formatowania indeksu dolnego i indeksu górnego należy używać wyłącznie do zmiany pozycji tekstu w celu dostosowania do konwencji lub standardów typograficznych. Powinna nie być używana wyłącznie do celów prezentacji lub wyglądu. Formatowanie całych zdań stwarza problemy z czytelnością. Odpowiednie przypadki użycia obejmują wyświetlanie wykładników, liczb porządkowych, takich jak 4th zamiast czwartej, oraz wzorów chemicznych (H2O).', // Contrast - CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Współczynnik kontrastu wynosi %(cratio) dla następującego tekstu:%(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Sprawdź kontrast następującego tekstu:
                    %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Stosunek kontrastu %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Sprawdź kontrast następującego tekstu: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst w tym polu nie ma wystarczającego kontrastu z tłem. Stosunek kontrastu powinien wynosić co najmniej 4,5:1 dla normalnego tekstu i 3:1 dla dużego tekstu.
                    Stosunek kontrastu %(RATIO)', }, }; diff --git a/docs/assets/js/lang/pl.umd.js b/docs/assets/js/lang/pl.umd.js index 480af673..aeb4194d 100644 --- a/docs/assets/js/lang/pl.umd.js +++ b/docs/assets/js/lang/pl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Wył', ALERT_TEXT: 'Alert', ALERT_CLOSE: 'Zamknij', - OUTLINE: 'Konspekt strony', + OUTLINE: 'Szkic', + ALT: 'ALT', + IMAGES: 'Obrazy', + EDIT: 'Edytuj', + IMAGES_NOT_FOUND: 'Nie znaleziono obrazów.', + DECORATIVE: 'Dekoracyjny', + MISSING: 'Brakujący', PAGE_ISSUES: 'Problemy ze stroną', SETTINGS: 'Ustawienia', CONTRAST: 'Kontrast', @@ -153,7 +159,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Niespójny poziom nagłówka. Zastosowane poziomy nie następują po sobie. Nagłówki nigdy nie powinny pomijać poziomów np. od Nagłówek %(prevLevel) do Nagłówek %(level).', HEADING_EMPTY: 'Znaleziono pusty nagłówek! Aby to naprawić, usuń tę linię lub zmień jej format z Nagłówek %(level) na zwykły tekst lub akapit.', - HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
                    Liczba znaków: %(headingLength).', + HEADING_LONG: 'Nagłówek jest zbyt długi! Nagłówki służą do organizowania treści i przekazywania struktury. Powinny być krótkie, jasne, opisowe i niepowtarzalne. Pisz nagłówki nie dłuższe niż 160 znaków (nie więcej niż zdanie).
                    %(HEADING_LENGTH) Znaków', HEADING_FIRST: 'Pierwszym nagłówkiem na stronie powinien być zwykle Nagłówek H1 lub Nagłówek H2. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_MISSING_ONE: 'Brakuje nagłówka H1. Nagłówek H1 jest głównym nagłówkiem opisującym ogólny cel strony i powinien być początkiem obszaru treści głównej. Dowiedz się więcej o Strukturze nagłówków.', HEADING_EMPTY_WITH_IMAGE: 'Nagłówek nie ma tekstu, ale zawiera obrazek. Jeśli to nie jest nagłówek, zmień jego format z Nagłówek H%(level) na zwykły tekst lub akapit. W przeciwnym razie, dodaj do obrazu tekst alt, jeśli nie jest on ozdobny.', @@ -163,79 +169,79 @@ // Links LINK_EMPTY: 'Puste łącze bez żadnego tekstu. Usuń je!', LINK_EMPTY_LABELLEDBY: 'Link ma wartość aria-labelledby, która jest pusta lub nie pasuje do wartości atrybutu id innego elementu na stronie.', - LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
                    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
                    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
                    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
                    ', - LINK_LABEL: 'Etykieta łącza: %(sanitizedText)', - LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(error)
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', - LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(error)
                    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
                    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
                    ', - LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', + LINK_EMPTY_LINK_NO_LABEL: 'Łącze nie ma opisowego tekstu, który jest widoczny dla czytników ekranu i innych technologii wspomagających. Aby naprawić:
                    • Dodaj zwięzły tekst, który opisuje, dokąd prowadzi łącze.
                    • Jeśli łączem jest ikona lub SVG, prawdopodobnie brakuje mu opisowej etykiety.
                    • Jeśli uważasz, że to łącze jest błędem spowodowanym błędem kopiuj/wklej, rozważ usunięcie go.
                    ', + LINK_LABEL: 'Etykieta łącza %(TEXT)', + LINK_STOPWORD: 'Tekst łącza może nie być wystarczająco opisowy w kontekście: %(ERROR)
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący. Unikaj typowych słów takich jak "kliknij tutaj" lub "czytaj więcej".', + LINK_BEST_PRACTICES: 'Rozważ zastąpienie tekstu łącza: %(ERROR)
                    • „Kliknij tutaj” skupia się na mechanice myszy, podczas gdy wiele osób nie używa myszy lub może przeglądać tę stronę na urządzeniu mobilnym. Rozważ użycie innego czasownika, który odnosi się do zadania.
                    • Unikaj używania symboli HTML jako wezwań do działania, chyba że są one ukryte dla technologii wspomagających.
                    ', + LINK_URL: 'Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej. W większości przypadków zamiast adresu URL lepiej jest używać tekstu czytelnego dla człowieka. Krótkie adresy URL (takie jak głównej strony witryny) są w porządku.
                    Porada! Tekst łącza powinien być zawsze jasny, unikalny i znaczący, aby mógł być zrozumiany bez kontekstu.', LINK_DOI: 'W przypadku stron internetowych lub zasobów dostępnych tylko online, przewodnik APA Style zaleca stosowanie linków opisowych poprzez zawijanie adresu URL lub DOI pracy wokół jej tytułu. Dłuższe, mniej zrozumiałe adresy URL używane jako tekst linku mogą być trudne do zrozumienia podczas korzystania z technologii wspomagającej.', // Links advanced - NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
                    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', - FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
                    Przykład: Raport końcowy (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
                    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(sanitizedText)', + NEW_TAB_WARNING: 'Łącze otwiera się na nowej karcie lub w oknie bez ostrzeżenia. Może to być dezorientujące, szczególnie dla osób, które mają problemy z odbiorem treści wizualnych. Ponadto, nie zawsze dobrym zwyczajem jest kontrolowanie czyichś doświadczeń lub podejmowanie decyzji za kogoś. Wskaż w tekście łącza, że łącze otwiera się w nowym oknie.
                    Porada! Poznaj najlepsze praktyki: otwieranie łączy w nowych oknach i kartach przeglądarki.', + FILE_TYPE_WARNING: 'Łącze wskazuje bez ostrzeżenia na plik PDF lub plik do pobrania (np. MP3, zip, doc). Wskaż typ pliku w tekście łącza. Jeśli jest to duży plik, rozważ podanie jego rozmiaru.
                    Przykład: Raport końcowy (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Łącze ma identyczny tekst jak inne łącze, choć wskazuje na inną stronę. Wiele łączy z takim samym tekstem może powodować zamieszanie u osób korzystających z czytników ekranu.
                    Rozważ nadanie poniższemu łączu bardziej opisowego charakteru, aby odróżnić je od innych łączy: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obraz jest używany razem z sąsiadującym tekstem jako łącze. Obraz powinien być oznaczony jako dekoracyjny albo atrybut alt obrazu powinien być pusty.', MISSING_ALT_LINK_MESSAGE: 'Obraz jest używany jako łącze, ale brakuje tekstu alternatywnego! Dodaj tekst alternatywny, który mówi, dokąd prowadzi łącze.', MISSING_ALT_MESSAGE: 'Brak tekstu alternatywnego! Jeśli obraz przekazuje historię, nastrój lub ważne informacje - przedstaw je w tekście alternatywnym.', - LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
                    Tekst alternatywny: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
                    Tekst alternatywny: %(altText)', - ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(error).
                    Tekst alternatywny: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(altText).', - ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(error)" mogą być zbędne.
                    Tekst alternatywny: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt w obrazie będącym łączem. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Zastąp następujący tekst alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'W tekście alt znaleziono rozszerzenie nazwy pliku. Upewnij się, że tekst alternatywny opisuje miejsce docelowe łącza, a nie treść lub wygląd obrazu. Usuń wyraz(y): %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Znaleziono nieopisowy lub zastępczy tekst alt. Zamień poniższy tekst alt na coś bardziej znaczącego: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Technologie wspomagające już wskazują, że jest to obraz, więc "%(ERROR)" mogą być zbędne.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link ma ustawienie aria-hidden="true", ale nadal można go zaznaczyć za pomocą klawiatury. Jeśli zamierzasz ukryć nadmierny lub zduplikowany link, dodaj również tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obraz w łączu jest oznaczony jako dekoracyjny i nie ma tekstu łącza. Dodaj do obrazu tekst alt, który opisze miejsce docelowe łącza.', LINK_IMAGE_HAS_TEXT: 'Obraz jest oznaczony jako dekoracyjny, ale łącze używa otaczającego go tekstu jako etykiety opisowej.', - LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
                    Tekst alternatywny (%(altLength) znaków): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
                    Tekst alternatywny: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
                    Tekst alternatywny: %(altText)
                    Etykieta łącza: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
                    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.
                    Tekst alternatywny: %(altText)', + LINK_IMAGE_LONG_ALT: 'Tekst alternatywny opisujący obraz będący łączem jest zbyt długi. Tekst alternatywny na obrazach bedących łączami powinien przedstawiać, dokąd prowadzi łącze, a nie dosłownie opisywać obraz. Rozważ użycie jako tekstu alternatywnego tytułu strony, do którego łączy obraz.
                    ALT %(altLength) Znaków %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Link do obrazu zawiera tekst alternatywny. Czy tekst alternatywny opisuje, dokąd prowadzi link? Rozważ użycie tytułu strony, do której prowadzi link, jako tekstu alternatywnego.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Łącze graficzne ma zarówno tekst alternatywny, jak i sąsiadujący tekst łącza. Jeśli ten obraz jest dekoracyjny i jest używany w funkcji łącza do innej strony, należy rozważyć oznaczenie obrazu jako dekoracyjnego (pusty alt) - sąsiadujący tekst łącza powinien wystarczyć.
                    ALT %(ALT_TEXT)
                    Etykieta łącza %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obraz jest oznaczony jako dekoracyjny i zostanie zignorowany przez technologię wspomagającą.
                    Mimo że podano podpis, obraz powinien w większości przypadków zawierać również tekst alternatywny.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nie używaj dokładnie tych samych słów dla tekstu alternatywnego i podpisu. Czytniki ekranu podadzą informację dwukrotnie.
                    • Tekst alternatywny powinien zawierać zwięzły opis tego, co znajduje się na obrazku.
                    • Podpis powinien zwykle zawierać kontekst, aby powiązać obraz z otaczającą zawartością lub zwracać uwagę na konkretną informację.
                    Ucz się więcej: alternatywny kontra podpis graficzny.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obraz jest oznaczony dekoracyjny i zostanie zignorowany przez technologię wspomagającą. Jeśli obraz przekazuje jakąś historię, nastrój lub ważną informację - dodaj tekst alt.', - IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
                    Tekst alternatywny (%(altLength) znaków): %(altText)', - IMAGE_PASS: 'Tekst alternatywny: %(altText)', + IMAGE_ALT_TOO_LONG: 'Tekst alternatywny obrazu jest zbyt długi. Tekst alternatywny powinien być zwięzły, ale znaczący jak tweet (około 100 znaków). Jeśli jest to złożony obraz lub wykres, należy rozważyć umieszczenie długiego opisu obrazu w tekście poniżej lub w akordeonie.
                    ALT %(altLength) Znaków %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Przycisk graficzny nie ma tekstu alternatywneego. Dodaj tekst alt, aby zapewnić dostępną nazwę. Na przykład: Szukaj lub Wyślij.', LABELS_INPUT_RESET_MESSAGE: 'Przyciski resetowania nie powinny być używane, chyba że są specjalnie potrzebne, ponieważ łatwo je aktywować przez pomyłkę.
                    Porada! Dowiedz się, dlaczego Przyciski Resetuj i Anuluj powodują problemy z użytecznością.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
                    Etykieta wejścia: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Pole danych ma dostępną nazwę (etykietę), ale upewnij się, że etykieta jest również widoczna.
                    Etykieta wejścia %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj atrybut for do etykiety z wartością id pasującą do id tego pola.
                    ID tego pola to: id="%(t)"', LABELS_MISSING_LABEL_MESSAGE: 'Z tym polem input nie jest skojarzona żadna etykieta (label). Dodaj do tego pola danych id i dodaj pasujący atrybut for do etykiety.', // Embedded content EMBED_VIDEO: 'Upewnij się, że wszystkie filmy mają napisy rozszerzone. Zapewnianie napisów rozszerzonych dla wszystkich treści audio i wideo jest obowiązkowym wymogiem poziomu A. Napisy mają na celu wspieranie osób Głuchych i słabosłyszących.', EMBED_AUDIO: 'Upewnij się, że istnieje transkrypcja dla wszystkich nagrań dźwiękowych. Zapewnianie transkrypcji treści audio jest obowiązkowym wymogiem poziomu A. Transkrypcje mają na celu wspieranie osób Głuchych i słabosłyszących, ale każdy może z nich skorzystać. Rozważ umieszczenie transkrypcji poniżej lub w panelu akordeonowym.', - EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
                    Dowiedz się więcej o obrazach złożonych.', + EMBED_DATA_VIZ: 'Widżety wizualizacji danych, takie jak ten, są często problematyczne dla osób, które używają klawiatury lub czytnika ekranu do nawigacji, a także mogą stanowić znaczące trudności dla osób słabo widzących lub nie rozróżniających kolorów. Zapewnij te same infromacje w alternatywnym formacie (tekst lub tabela) pod widżetem.
                    Dowiedz się więcej o obrazach złożonych.', EMBED_MISSING_TITLE: 'Osadzona zawartość wymaga dostępnej nazwy, która opisuje jej treść. Dodaj unikalny title lub atrybutu aria-label do elementu iframe. Dowiedz się więcej o iFrame.', EMBED_GENERAL_WARNING: 'Nie można sprawdzić treści osadzonej. Upewnij się, że obrazy mają tekst alt, filmy mają napisy rozszerzone, tekst ma odpowiedni kontrast, a elementy interaktywne są dostępne z klawiatury.', // Quality assurance - QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
                    Łącze wskazuje na:
                    %(el)', + QA_BAD_LINK: 'Podejrzane łącze. Łącze wydaje się wskazywać środowisko programistyczne.
                    Łącze wskazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Uszkodzony link na tej samej stronie. Cel linku nie odpowiada żadnemu elementowi na tej stronie.', QA_BAD_ITALICS: 'Znaczniki pogrubienia i kursywy mają znaczenie semantyczne i nie powinny być używane do wyróżniania całych akapitów. Pogrubiony tekst powinien być używany w celu silnego podkreślenia słowa lub frazy. Kursywa powinna być używana do wyróżnienia nazw własnych (np. tytułów książek i artykułów), wyrazów obcych, cytatów. Długie cytaty powinny być sformatowane jako blockquote.', - QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
                    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
                    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
                    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', + QA_PDF: 'Nie można sprawdzić dostępności pliku PDF. Pliki PDF są uważane za treści internetowe i muszą być również dostępne. Pliki PDF często powodują problemy dla osób korzystających z czytników ekranu (brakujące znaczniki strukturalne lub etykiety pól formularzy) oraz dla osób słabowidzących (tekst nie jest ponownie wyświetlany po powiększeniu).
                    • Jeśli jest to formularz, rozważ użycie dostępnego formularza HTML jako alternatywy
                    • Jeśli jest to dokument, rozważ przekonwertowanie go na stronę internetową.
                    W przeciwnym razie sprawdź plik pod kątem dostępności w programie Acrobat DC.', QA_DOCUMENT: 'Nie można sprawdzić dokumentu pod kątem dostępności. Powiązane dokumenty są uważane za treści internetowe i również muszą być dostępne. Sprawdź ten dokument ręcznie. ', QA_PAGE_LANGUAGE: 'Język strony nie zadeklarowany! Zadeklaruj język w znaczniku HTML.', QA_PAGE_TITLE: 'Brak tytułu strony! Podaj tytuł strony.', - QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(sanitizedText)
                    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', - QA_FAKE_HEADING: 'Czy to jest nagłówek? %(boldtext)
                    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', - QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
                    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', + QA_BLOCKQUOTE_MESSAGE: 'Czy to jest nagłówek? %(TEXT)
                    Element blockquote powinien być używany tylko do cytatów. Jeśli ma to być nagłówek, zmień ten blockquote na nagłówek semantyczny (np. Nagłówek H2 lub Nagłówek H3).', + QA_FAKE_HEADING: 'Czy to jest nagłówek? %(TEXT)
                    Wiersz pogrubionego lub dużego tekstu może wyglądać jak nagłówek, ale osoba korzystająca z czytnika ekranu nie może stwierdzić, że jest on istotny lub przejść do jego treści. Pogrubiony lub duży tekst nigdy nie powinien zastępować nagłówków semantycznych (od Nagłówka H2 do Nagłówka H6).', + QA_SHOULD_BE_LIST: 'Czy próbujesz utworzyć listę? Wykryto możliwe elementy listy: %(firstPrefix)
                    Upewnij się, że używasz list semantycznych, zamiast stosowania znaków punktowania (np. myślników) lub liczb. Podczas korzystania z list semantycznych technologie wspomagające są w stanie przekazać takie informacje, jak ogólna liczba elementów i względna pozycja każdego elementu na liście. Dowiedz się więcej o semantycznych listach.', QA_UPPERCASE_WARNING: 'Wykryto WSZYSTKIE WIELKIE LITERY. Niektóre czytniki ekranu interpretują cały tekst wielkimi literami jako akronim i będą czytać każdą literę odrębnie. Ponadto, wszystkie wielkie litery są trudniejsze do odczytania i sprawiają wrażenie KRZYKU.', - QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
                    Usuń lub zmień następujący ID: %(id)', + QA_DUPLICATE_ID: 'Znaleziono duplikat ID. Wiadomo, że błędy zduplikowanego ID powodują problemy dla technologii pomocniczych podczas próby interakcji z treścią.
                    Usuń lub zmień następujący ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podkreślony tekst można pomylić z linkami. Rozważ użycie innego stylu, takiego jak <strong>silne znaczenie</strong> lub <em>nacisk</em>.', // Tables TABLES_MISSING_HEADINGS: 'Brak nagłówków tabeli! Dostępne tabele wymagają znaczników HTML, które wskazują komórki nagłówków i komórki danych, które definiują ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', - TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
                    Dowiedz się więcej o dostępnych tabelach.', - TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', + TABLES_SEMANTIC_HEADING: 'Nagłówki semantyczne, takie jak nagłówek H2 lub nagłówek H3, powinny być używane tylko w odniesieniu do sekcji treści; nie w tabelach HTML. Zamiast tego należy wskazać nagłówki tabeli przy użyciu elementu th.
                    Dowiedz się więcej o dostępnych tabelach.', + TABLES_EMPTY_HEADING: 'Wykryto pusty nagłówek tabeli! Nagłówki tabel nigdy nie powinny być puste. Ważne jest, aby wyznaczyć nagłówki wierszy i/lub kolumn, aby przekazać ich relację. Informacje te zapewniają kontekst osobom korzystającym z technologii wspomagających. Należy pamiętać, że tabele powinny być używane tylko dla danych tabelarycznych.
                    Dowiedz się więcej o dostępnych tabelach.', QA_SUBSCRIPT_WARNING: 'Opcji formatowania indeksu dolnego i indeksu górnego należy używać wyłącznie do zmiany pozycji tekstu w celu dostosowania do konwencji lub standardów typograficznych. Powinna nie być używana wyłącznie do celów prezentacji lub wyglądu. Formatowanie całych zdań stwarza problemy z czytelnością. Odpowiednie przypadki użycia obejmują wyświetlanie wykładników, liczb porządkowych, takich jak 4th zamiast czwartej, oraz wzorów chemicznych (H2O).', // Contrast - CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Współczynnik kontrastu wynosi %(cratio) dla następującego tekstu:%(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Sprawdź kontrast następującego tekstu:
                    %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text.
                    Contrast ratio: %(cratio)', + CONTRAST_ERROR: 'Ten tekst nie ma wystarczającego kontrastu z tłem Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Stosunek kontrastu %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tego tekstu jest nieznany i wymaga ręcznego przeglądu. Upewnij się, że tekst i tło mają silne kontrastujące kolory. Współczynnik kontrastu powinien wynosić co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu.
                    Sprawdź kontrast następującego tekstu: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Tekst w tym polu nie ma wystarczającego kontrastu z tłem. Stosunek kontrastu powinien wynosić co najmniej 4,5:1 dla normalnego tekstu i 3:1 dla dużego tekstu.
                    Stosunek kontrastu %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ptBR.js b/docs/assets/js/lang/ptBR.js index 8fa48155..41997f0e 100644 --- a/docs/assets/js/lang/ptBR.js +++ b/docs/assets/js/lang/ptBR.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ptBR = { OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Ausente', PAGE_ISSUES: 'Problemas de página', SETTINGS: 'Configurações', CONTRAST: 'Contraste', @@ -150,7 +156,7 @@ var ptBR = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo usado. Os cabeçalhos nunca devem pular níveis ou ir de Cabeçalho %(prevLevel) para Cabeçalho %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, exclua essa linha ou altere seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
                    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título em uma página geralmente deve ser o Título 1 ou o Título 2. O Título 1 deve ser o início da seção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta de título 1. O título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se esse não for um cabeçalho, altere seu formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se ela não for decorativa.', @@ -159,37 +165,37 @@ var ptBR = { LINK_EMPTY: 'Remova links vazios sem nenhum texto.', LINK_EMPTY_LABELLEDBY: 'O link possui um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'O link não tem texto discernível que seja visível para leitores de tela e outras tecnologias assistivas. Para corrigir:
                    • Adicione um texto conciso que descreva para onde o link o leva.
                    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
                    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
                    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(error)
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(error)
                    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
                    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
                    ', - LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(ERROR)
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(ERROR)
                    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
                    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
                    ', + LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas da Web ou recursos somente on-line, o Guia de Estilo APA recomenda o uso de links descritivos, envolvendo o URL ou DOI do trabalho em seu título. URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva.', - NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link
                    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', - FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
                    Exemplo: Relatório executivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link.
                    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', + FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
                    Exemplo: Relatório executivo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está sendo usada como um link com texto ao redor, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está sendo usada como um link, mas está faltando o texto alternativo! Certifique-se de que o texto alternativo descreva para onde o link leva você.', MISSING_ALT_MESSAGE: 'Texto alternativo ausente! Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(erro).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link possui aria-hidden="true", mas ainda é focável pelo teclado. Se você pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem no link está marcada como decorativa e não há texto de link. Adicione um texto alternativo à imagem que descreva o destino do link.', LINK_IMAGE_HAS_TEXT: 'A imagem é marcada como decorativa, embora o link esteja usando o texto ao redor como um rótulo descritivo.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
                    Texto alternativo: %(altText)
                    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
                    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
                    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
                    ALT %(ALT_TEXT)
                    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
                    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
                    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem é marcada como decorativa e será ignorada pela tecnologia assistiva. Se a imagem transmitir uma história, um clima ou informações importantes, não se esqueça de adicionar um texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem está sem texto alternativo. Adicione o texto alternativo para fornecer um nome acessível. Por exemplo: Search ou Submit.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados, a menos que sejam especificamente necessários, pois são fáceis de serem ativados por engano.
                    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
                    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
                    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não há rótulo associado a esse input. Adicione um atributo for ao rótulo que corresponda ao id desse input.
                    O ID desse input é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não há rótulo associado a essa entrada. Adicione um id a essa entrada e adicione um atributo for correspondente ao rótulo.', EMBED_VIDEO: 'Certifique-se de que todos os vídeos tenham legendas ocultas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório do Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -198,16 +204,16 @@ var ptBR = { EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não foi possível verificar o conteúdo incorporado. Certifique-se de que as imagens tenham texto alternativo, os vídeos tenham legendas, o texto tenha contraste suficiente e os componentes interativos sejam acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focalizáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
                    Esse link aponta para:
                    %(el)', + QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
                    Esse link aponta para:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As tags negrito e itálico têm significado semântico e não devem ser usadas para destacar parágrafos inteiros. O texto em negrito deve ser usado para dar forte ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
                    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
                    • Se este for um documento, considere convertê-lo em uma página da Web.
                    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', + QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
                    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
                    • Se este for um documento, considere convertê-lo em uma página da Web.
                    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos vinculados são considerados conteúdo da Web e também devem ser acessíveis. Revise manualmente este documento. ', QA_PAGE_LANGUAGE: 'O idioma da página não foi declarado! Por favor, declare o idioma na tag HTML.', QA_PAGE_TITLE: 'Título da página ausente! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(sanitizedText)
                    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isso é um título? %(boldtext)
                    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(TEXT)
                    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isso é um título? %(TEXT)
                    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em letras maiúsculas. Alguns leitores de tela podem interpretar o texto em letras maiúsculas como um acrônimo e lerão cada letra individualmente. Além disso, algumas pessoas acham que o texto em letras maiúsculas é mais difícil de ler e pode dar a impressão de estar GRITANDO.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Erros de ID duplicado são conhecidos por causar problemas para tecnologias assistivas quando elas estão tentando interagir com o conteúdo.
                    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a possibilidade de usar um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -215,9 +221,9 @@ var ptBR = { TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis precisam de marcação HTML que indique as células de cabeçalho e as células de dados que definem seu relacionamento. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. As tabelas devem ser usadas somente para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os cabeçalhos semânticos, como Heading 2 ou Heading 3, devem ser usados somente para seções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
                    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir sua relação. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. Lembre-se de que as tabelas devem ser usadas somente para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    A taxa de contraste é %(cratio) para o texto a seguir: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Taxa de contraste: %(cratio)', + CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ptBR.umd.js b/docs/assets/js/lang/ptBR.umd.js index 5b745bb6..071c2300 100644 --- a/docs/assets/js/lang/ptBR.umd.js +++ b/docs/assets/js/lang/ptBR.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Ausente', PAGE_ISSUES: 'Problemas de página', SETTINGS: 'Configurações', CONTRAST: 'Contraste', @@ -156,7 +162,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo usado. Os cabeçalhos nunca devem pular níveis ou ir de Cabeçalho %(prevLevel) para Cabeçalho %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, exclua essa linha ou altere seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
                    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser usados para organizar o conteúdo e transmitir estrutura. Eles devem ser breves, informativos e exclusivos. Mantenha os títulos com menos de 160 caracteres (não mais do que uma frase).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título em uma página geralmente deve ser o Título 1 ou o Título 2. O Título 1 deve ser o início da seção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta de título 1. O título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se esse não for um cabeçalho, altere seu formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se ela não for decorativa.', @@ -165,37 +171,37 @@ LINK_EMPTY: 'Remova links vazios sem nenhum texto.', LINK_EMPTY_LABELLEDBY: 'O link possui um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'O link não tem texto discernível que seja visível para leitores de tela e outras tecnologias assistivas. Para corrigir:
                    • Adicione um texto conciso que descreva para onde o link o leva.
                    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
                    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
                    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(error)
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(error)
                    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
                    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
                    ', - LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser descritivo o suficiente fora do contexto: %(ERROR)
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a possibilidade de substituir o texto do link: %(ERROR)
                    • "Clique aqui" coloca o foco na mecânica do mouse, quando muitas pessoas não usam um mouse ou podem estar visualizando este site em um dispositivo móvel. Considere a possibilidade de usar um verbo diferente relacionado à tarefa.
                    • Evite usar símbolos HTML como chamadas para ações, a menos que eles estejam ocultos para tecnologias assistivas.
                    ', + LINK_URL: 'URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, exclusivo e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas da Web ou recursos somente on-line, o Guia de Estilo APA recomenda o uso de links descritivos, envolvendo o URL ou DOI do trabalho em seu título. URLs mais longos e menos inteligíveis usados como texto de link podem ser difíceis de compreender quando acessados com tecnologia assistiva.', - NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link
                    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', - FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
                    Exemplo: Relatório executivo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + NEW_TAB_WARNING: 'O link abre em uma nova guia ou janela sem aviso. Fazer isso pode ser desorientador, especialmente para pessoas que têm dificuldade de perceber o conteúdo visual. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que o link abre em uma nova janela no texto do link.
                    Dica! Conheça as práticas recomendadas: abrir links em novas janelas e guias do navegador.', + FILE_TYPE_WARNING: 'O link aponta para um PDF ou arquivo para download (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de arquivo no texto do link. Se for um arquivo grande, considere incluir o tamanho do arquivo.
                    Exemplo: Relatório executivo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'O link tem texto idêntico ao de outro link, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está sendo usada como um link com texto ao redor, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está sendo usada como um link, mas está faltando o texto alternativo! Certifique-se de que o texto alternativo descreva para onde o link leva você.', MISSING_ALT_MESSAGE: 'Texto alternativo ausente! Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(erro).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(error)" pode ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de arquivo encontrada no texto alternativo. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado em uma imagem vinculada. Certifique-se de que o texto alternativo descreva o destino do link e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreva o destino do link, e não uma descrição literal da imagem.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do arquivo no texto alternativo encontrado. Se a imagem transmitir uma história, um clima ou informações importantes, não deixe de descrevê-la. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Texto alternativo não descritivo ou de espaço reservado encontrado. Substitua o texto alternativo a seguir por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias assistivas já indicam que se trata de uma imagem, portanto, "%(ERROR)" pode ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link possui aria-hidden="true", mas ainda é focável pelo teclado. Se você pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem no link está marcada como decorativa e não há texto de link. Adicione um texto alternativo à imagem que descreva o destino do link.', LINK_IMAGE_HAS_TEXT: 'A imagem é marcada como decorativa, embora o link esteja usando o texto ao redor como um rótulo descritivo.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
                    Texto alternativo: %(altText)
                    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
                    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
                    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo em uma imagem vinculada é muito longa. O texto alternativo das imagens vinculadas deve descrever para onde o link leva você, e não uma descrição literal da imagem. Considere a possibilidade de usar o título da página para a qual o link está direcionado como o texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'O link da imagem contém texto alternativo. O texto alternativo descreve para onde o link leva você? Considere a possibilidade de usar o título da página para a qual o link está direcionado como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'O link da imagem contém texto alt e texto do link ao redor. Se essa imagem for decorativa e estiver sendo usada como um link funcional para outra página, considere marcar a imagem como decorativa ou nula - o texto do link ao redor deve ser suficiente.
                    ALT %(ALT_TEXT)
                    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia assistiva.
                    Embora uma caption tenha sido fornecida, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não use exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de tela anunciarão as informações duas vezes.
                    • O texto alt deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda geralmente deve fornecer contexto para relacionar a imagem ao conteúdo ao redor ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem é marcada como decorativa e será ignorada pela tecnologia assistiva. Se a imagem transmitir uma história, um clima ou informações importantes, não se esqueça de adicionar um texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se essa for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou em um componente de acordeão.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem está sem texto alternativo. Adicione o texto alternativo para fornecer um nome acessível. Por exemplo: Search ou Submit.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados, a menos que sejam especificamente necessários, pois são fáceis de serem ativados por engano.
                    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
                    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também haja um rótulo visível.
                    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não há rótulo associado a esse input. Adicione um atributo for ao rótulo que corresponda ao id desse input.
                    O ID desse input é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não há rótulo associado a essa entrada. Adicione um id a essa entrada e adicione um atributo for correspondente ao rótulo.', EMBED_VIDEO: 'Certifique-se de que todos os vídeos tenham legendas ocultas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório do Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -204,16 +210,16 @@ EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não foi possível verificar o conteúdo incorporado. Certifique-se de que as imagens tenham texto alternativo, os vídeos tenham legendas, o texto tenha contraste suficiente e os componentes interativos sejam acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focalizáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
                    Esse link aponta para:
                    %(el)', + QA_BAD_LINK: 'Encontrado link incorreto. O link parece apontar para um ambiente de desenvolvimento.
                    Esse link aponta para:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As tags negrito e itálico têm significado semântico e não devem ser usadas para destacar parágrafos inteiros. O texto em negrito deve ser usado para dar forte ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
                    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
                    • Se este for um documento, considere convertê-lo em uma página da Web.
                    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', + QA_PDF: 'Não é possível verificar a acessibilidade de PDFs. Os PDFs são considerados conteúdo da Web e também devem ser acessíveis. Os PDFs geralmente contêm problemas para pessoas que usam leitores de tela (tags estruturais ausentes ou rótulos de campo de formulário ausentes) e pessoas com baixa visão (o texto não flui novamente quando ampliado).
                    • Se este for um formulário, considere o uso de um formulário HTML acessível como alternativa.
                    • Se este for um documento, considere convertê-lo em uma página da Web.
                    Caso contrário, verifique a acessibilidade do PDF no Acrobat DC.', QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos vinculados são considerados conteúdo da Web e também devem ser acessíveis. Revise manualmente este documento. ', QA_PAGE_LANGUAGE: 'O idioma da página não foi declarado! Por favor, declare o idioma na tag HTML.', QA_PAGE_TITLE: 'Título da página ausente! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(sanitizedText)
                    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isso é um título? %(boldtext)
                    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isso é um título? %(TEXT)
                    As aspas de bloco devem ser usadas somente para citações. Se a intenção é que isso seja um título, altere essa citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isso é um título? %(TEXT)
                    Uma linha de texto em negrito ou grande pode parecer um título, mas alguém que usa um leitor de tela não pode dizer que ela é importante ou pular para o seu conteúdo. O texto em negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está tentando criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de usar listas semânticas usando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias assistivas podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em letras maiúsculas. Alguns leitores de tela podem interpretar o texto em letras maiúsculas como um acrônimo e lerão cada letra individualmente. Além disso, algumas pessoas acham que o texto em letras maiúsculas é mais difícil de ler e pode dar a impressão de estar GRITANDO.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Erros de ID duplicado são conhecidos por causar problemas para tecnologias assistivas quando elas estão tentando interagir com o conteúdo.
                    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a possibilidade de usar um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -221,9 +227,9 @@ TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis precisam de marcação HTML que indique as células de cabeçalho e as células de dados que definem seu relacionamento. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. As tabelas devem ser usadas somente para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os cabeçalhos semânticos, como Heading 2 ou Heading 3, devem ser usados somente para seções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
                    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir sua relação. Essas informações fornecem contexto para as pessoas que usam tecnologia assistiva. Lembre-se de que as tabelas devem ser usadas somente para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    A taxa de contraste é %(cratio) para o texto a seguir: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, revise: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Taxa de contraste: %(cratio)', + CONTRAST_ERROR: 'Esse texto não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste desse texto é desconhecido e precisa ser revisado manualmente. Certifique-se de que o texto e o plano de fundo tenham cores fortes e contrastantes. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, revise: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nessa entrada não tem contraste suficiente com o plano de fundo. A taxa de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ptPT.js b/docs/assets/js/lang/ptPT.js index 08518779..22f850d8 100644 --- a/docs/assets/js/lang/ptPT.js +++ b/docs/assets/js/lang/ptPT.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ptPT = { OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Em falta', PAGE_ISSUES: 'Questões de página', SETTINGS: 'Definições', CONTRAST: 'Contraste', @@ -152,7 +158,7 @@ var ptPT = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo utilizado. Os títulos nunca devem saltar níveis, ou ir de Título %(prevLevel) para Título %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, elimine esta linha ou altere o seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
                    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título de uma página deve ser normalmente o Título 1 ou o Título 2. O Título 1 deve ser o início da secção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta o Título 1. O Título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se não for um cabeçalho, altere o formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se esta não for decorativa.', @@ -161,37 +167,37 @@ var ptPT = { LINK_EMPTY: 'Remover ligações vazias sem qualquer texto.', LINK_EMPTY_LABELLEDBY: 'A ligação tem um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'A ligação não tem texto discernível que seja visível para leitores de ecrã e outras tecnologias de assistência. Para corrigir:
                    • Adicione um texto conciso que descreva para onde o link o leva.
                    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
                    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
                    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(error)
                    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(error)
                    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
                    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
                    ', - LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(ERROR)
                    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(ERROR)
                    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
                    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
                    ', + LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas Web ou recursos apenas em linha, o Guia de Estilo APA recomenda a utilização de hiperligações descritivas, envolvendo o URL ou DOI do trabalho no seu título. URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência.', NEW_TAB_WARNING: 'A ligação abre num novo separador ou janela sem aviso. Se o fizer, pode ser desorientador, especialmente para as pessoas que têm dificuldade em percecionar conteúdos visuais. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que a hiperligação abre numa nova janela no texto da hiperligação
                    Dica! Conheça as melhores práticas: abrir ligações em novas janelas e separadores do browser.', - FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
                    Exemplo: Relatório executivo (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
                    Exemplo: Relatório executivo (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está a ser utilizada como uma ligação com texto envolvente, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está a ser utilizada como uma ligação, mas falta o texto alternativo! Certifique-se de que o texto alternativo descreve para onde a hiperligação o leva.', MISSING_ALT_MESSAGE: 'Texto alternativo em falta! Se a imagem transmite uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(erro).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link tem aria-hidden="true", mas ainda é focável pelo teclado. Se pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem na hiperligação está marcada como decorativa e não tem texto de hiperligação. Adicione um texto alternativo à imagem que descreva o destino da hiperligação.', LINK_IMAGE_HAS_TEXT: 'A imagem está marcada como decorativa, embora a ligação esteja a utilizar o texto circundante como etiqueta descritiva.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
                    Texto alternativo: %(altText)
                    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
                    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
                    ALT %(ALT_TEXT)
                    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
                    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência. Se a imagem transmitir uma história, um estado de espírito ou informações importantes, não se esqueça de adicionar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem não tem texto alternativo. Adicione texto alternativo para fornecer um nome acessível. Por exemplo: Pesquisar ou Submeter.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados a menos que sejam especificamente necessários, pois são fáceis de ativar por engano.
                    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
                    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
                    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não existe um rótulo associado a esta entrada. Adicione um atributo for ao rótulo que corresponde ao id desta entrada.
                    O ID para esta entrada é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não existe uma etiqueta associada a esta entrada. Adicione um id a esta entrada e adicione um atributo for correspondente à etiqueta.', EMBED_VIDEO: 'Por favor, certifique-se de que todos os vídeos têm legendas fechadas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório de Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -200,16 +206,16 @@ var ptPT = { EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva o seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não é possível verificar o conteúdo incorporado. Certifique-se de que as imagens têm texto alternativo, os vídeos têm legendas, o texto tem contraste suficiente e os componentes interactivos são acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
                    Este link aponta para:
                    %(el)', + QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
                    Este link aponta para:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As etiquetas de negrito e itálico têm um significado semântico e não devem ser utilizadas para destacar parágrafos inteiros. O texto em negrito deve ser utilizado para dar ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
                    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
                    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
                    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', - QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', + QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
                    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
                    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
                    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', + QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', QA_PAGE_LANGUAGE: 'Idioma da página não declarado! Por favor declare o idioma na etiqueta HTML.', QA_PAGE_TITLE: 'Título da página em falta! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(sanitizedText)
                    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isto é um título? %(boldtext)
                    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(TEXT)
                    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isto é um título? %(TEXT)
                    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em maiúsculas. Alguns leitores de ecrã podem interpretar o texto em maiúsculas como um acrónimo e lerão cada letra individualmente. Além disso, algumas pessoas consideram o texto em maiúsculas mais difícil de ler e pode dar a impressão de estar a GRITAR.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Os erros de ID duplicada são conhecidos por causar problemas às tecnologias de assistência quando estas estão a tentar interagir com o conteúdo.
                    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a utilização de um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -217,9 +223,9 @@ var ptPT = { TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis necessitam de marcação HTML que indique as células de cabeçalho e as células de dados que definem a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de apoio. As tabelas devem ser utilizadas apenas para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os títulos semânticos, como o Título 2 ou o Título 3, só devem ser utilizados para secções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
                    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de assistência. Lembre-se de que as tabelas devem ser usadas apenas para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    A taxa de contraste é %(cratio) para o seguinte texto: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, reveja: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
                    Relação de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, reveja: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ptPT.umd.js b/docs/assets/js/lang/ptPT.umd.js index 8b4f0f66..5c6289c2 100644 --- a/docs/assets/js/lang/ptPT.umd.js +++ b/docs/assets/js/lang/ptPT.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Desligado', ALERT_TEXT: 'Alerta', ALERT_CLOSE: 'Fechar', - OUTLINE: 'Esboço da página', + OUTLINE: 'Esboço', + ALT: 'ALT', + IMAGES: 'Imagens', + EDIT: 'Editar', + IMAGES_NOT_FOUND: 'Nenhuma imagem encontrada.', + DECORATIVE: 'Decorativo', + MISSING: 'Em falta', PAGE_ISSUES: 'Questões de página', SETTINGS: 'Definições', CONTRAST: 'Contraste', @@ -158,7 +164,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Não há conteúdo suficiente para calcular a pontuação de legibilidade.', HEADING_NON_CONSECUTIVE_LEVEL: 'Nível de cabeçalho não consecutivo utilizado. Os títulos nunca devem saltar níveis, ou ir de Título %(prevLevel) para Título %(level).', HEADING_EMPTY: 'Encontrado um título vazio! Para corrigir, elimine esta linha ou altere o seu formato de Título %(level) para Normal ou Parágrafo.', - HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
                    Contagem de caracteres: %(headingLength)', + HEADING_LONG: 'O título é longo! Os títulos devem ser utilizados para organizar o conteúdo e transmitir estrutura. Devem ser breves, informativos e únicos. Os títulos devem ter menos de 160 caracteres (não mais do que uma frase).
                    %(HEADING_LENGTH) Caracteres', HEADING_FIRST: 'O primeiro título de uma página deve ser normalmente o Título 1 ou o Título 2. O Título 1 deve ser o início da secção de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de títulos.', HEADING_MISSING_ONE: 'Falta o Título 1. O Título 1 deve ser o início da área de conteúdo principal e é o título principal que descreve o objetivo geral da página. Saiba mais sobre Estrutura de cabeçalho.', HEADING_EMPTY_WITH_IMAGE: 'O cabeçalho não tem texto, mas contém uma imagem. Se não for um cabeçalho, altere o formato de Título %(level) para Normal ou Parágrafo. Caso contrário, adicione texto alternativo à imagem se esta não for decorativa.', @@ -167,37 +173,37 @@ LINK_EMPTY: 'Remover ligações vazias sem qualquer texto.', LINK_EMPTY_LABELLEDBY: 'A ligação tem um valor para aria-labelledby que está vazio ou não corresponde ao valor do atributo id de outro elemento na página.', LINK_EMPTY_LINK_NO_LABEL: 'A ligação não tem texto discernível que seja visível para leitores de ecrã e outras tecnologias de assistência. Para corrigir:
                    • Adicione um texto conciso que descreva para onde o link o leva.
                    • Se for um link de ícone ou SVG, é provável que esteja faltando um rótulo descritivo.
                    • Se você acha que esse link é um erro devido a um bug de copiar/colar, considere excluí-lo.
                    ', - LINK_LABEL: 'Rótulo do link: %(sanitizedText)', - LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(error)
                    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', - LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(error)
                    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
                    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
                    ', - LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', + LINK_LABEL: 'Rótulo %(TEXT)', + LINK_STOPWORD: 'O texto do link pode não ser suficientemente descritivo fora do contexto: %(ERROR)
                    Dica! O texto do link deve ser sempre claro, único e significativo. Evite palavras comuns como "clique aqui" ou "saiba mais"', + LINK_BEST_PRACTICES: 'Considere a substituição do texto do link: %(ERROR)
                    • "Clique aqui" coloca o foco na mecânica do rato, quando muitas pessoas não usam um rato ou podem estar a ver este site num dispositivo móvel. Considere a utilização de um verbo diferente relacionado com a tarefa.
                    • Evite utilizar símbolos HTML como chamadas para acções, a menos que estejam ocultos para tecnologias de assistência.
                    ', + LINK_URL: 'URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência. Na maioria dos casos, é melhor usar texto legível por humanos em vez do URL. URLs curtos (como a página inicial de um site) são aceitáveis.
                    Dica! O texto do link deve ser sempre claro, único e significativo para que possa ser entendido fora do contexto.', LINK_DOI: 'Para páginas Web ou recursos apenas em linha, o Guia de Estilo APA recomenda a utilização de hiperligações descritivas, envolvendo o URL ou DOI do trabalho no seu título. URLs mais longos e menos inteligíveis utilizados como texto de ligação podem ser difíceis de compreender quando acedidos com tecnologia de assistência.', NEW_TAB_WARNING: 'A ligação abre num novo separador ou janela sem aviso. Se o fizer, pode ser desorientador, especialmente para as pessoas que têm dificuldade em percecionar conteúdos visuais. Em segundo lugar, nem sempre é uma boa prática controlar a experiência de alguém ou tomar decisões por ele. Indique que a hiperligação abre numa nova janela no texto da hiperligação
                    Dica! Conheça as melhores práticas: abrir ligações em novas janelas e separadores do browser.', - FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
                    Exemplo: Relatório executivo (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(sanitizedText)', + FILE_TYPE_WARNING: 'A ligação aponta para um PDF ou um ficheiro descarregável (por exemplo, MP3, Zip, Word Doc) sem aviso. Indique o tipo de ficheiro no texto da ligação. Se for um ficheiro grande, considere incluir o tamanho do ficheiro.
                    Exemplo: Relatório executivo (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'A ligação tem um texto idêntico ao de outra ligação, embora aponte para uma página diferente. Vários links com o mesmo texto podem causar confusão para pessoas que usam leitores de tela.
                    Considere tornar o link a seguir mais descritivo para ajudar a distingui-lo de outros links: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'A imagem está a ser utilizada como uma ligação com texto envolvente, embora o atributo alt deva ser marcado como decorativo ou nulo.', MISSING_ALT_LINK_MESSAGE: 'A imagem está a ser utilizada como uma ligação, mas falta o texto alternativo! Certifique-se de que o texto alternativo descreve para onde a hiperligação o leva.', MISSING_ALT_MESSAGE: 'Texto alternativo em falta! Se a imagem transmite uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(error).
                    Texto alternativo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
                    Texto alternativo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(erro).
                    Texto alternativo: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(altText)', - ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(error)" pode ser redundante.
                    Texto alternativo: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensão de ficheiro no texto alternativo encontrada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado numa imagem ligada. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem. Substitua o seguinte texto alternativo: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante. Certifique-se de que o texto alternativo descreve o destino da hiperligação e não uma descrição literal da imagem.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensão do ficheiro no texto alternativo encontrado. Se a imagem transmitir uma história, um estado de espírito ou uma informação importante, não se esqueça de a descrever. Remover: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Encontrado texto alternativo não descritivo ou de espaço reservado. Substitua o seguinte texto alternativo por algo mais significativo: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'As tecnologias de assistência já indicam que se trata de uma imagem, pelo que "%(ERROR)" pode ser redundante.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'O link tem aria-hidden="true", mas ainda é focável pelo teclado. Se pretende ocultar um link redundante ou duplicado, adicione também tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'A imagem na hiperligação está marcada como decorativa e não tem texto de hiperligação. Adicione um texto alternativo à imagem que descreva o destino da hiperligação.', LINK_IMAGE_HAS_TEXT: 'A imagem está marcada como decorativa, embora a ligação esteja a utilizar o texto circundante como etiqueta descritiva.', - LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
                    Texto alternativo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
                    Texto alternativo: %(altText)
                    Rótulo do link: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
                    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    Texto alternativo: %(altText)', + LINK_IMAGE_LONG_ALT: 'A descrição do texto alternativo numa imagem ligada é muito longa. O texto alternativo em imagens vinculadas deve descrever para onde o link o leva, não uma descrição literal da imagem. Considere usar o título da página para a qual o link leva como o texto alternativo.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'A hiperligação da imagem contém texto alternativo. O texto alternativo descreve para onde o link o leva? Considere a possibilidade de utilizar o título da página para a qual a ligação remete como texto alternativo.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Se esta imagem for decorativa e estiver a ser utilizada como uma ligação funcional a outra página, considere marcar a imagem como decorativa ou nula - o texto da ligação circundante deve ser suficiente.
                    ALT %(ALT_TEXT)
                    Rótulo %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência.
                    Embora tenha sido fornecida uma capa, a imagem também deve ter um texto alternativo na maioria dos casos.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Não utilize exatamente as mesmas palavras para o texto alternativo e para a legenda. Os leitores de ecrã anunciarão a informação duas vezes.
                    • O texto alternativo deve fornecer uma descrição concisa do que está na imagem.
                    • A legenda deve normalmente fornecer contexto para relacionar a imagem com o conteúdo circundante ou dar atenção a uma informação específica.
                    Saiba mais: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'A imagem está marcada como decorativa e será ignorada pela tecnologia de assistência. Se a imagem transmitir uma história, um estado de espírito ou informações importantes, não se esqueça de adicionar texto alternativo.', - IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
                    Texto alternativo (%(altLength) caracteres): %(altText)', - IMAGE_PASS: 'Texto alternativo: %(altText)', + IMAGE_ALT_TOO_LONG: 'A descrição do texto alternativo é muito longa. O texto alternativo deve ser conciso, mas significativo, como um tweet (cerca de 100 caracteres). Se esta for uma imagem complexa ou um gráfico, considere colocar a descrição longa da imagem no texto abaixo ou num componente de acordeão.
                    ALT %(altLength) Caracteres %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'O botão de imagem não tem texto alternativo. Adicione texto alternativo para fornecer um nome acessível. Por exemplo: Pesquisar ou Submeter.', LABELS_INPUT_RESET_MESSAGE: 'Os botões de reinicialização não devem ser usados a menos que sejam especificamente necessários, pois são fáceis de ativar por engano.
                    Dica! Saiba por que os botões Redefinir e Cancelar apresentam problemas de usabilidade.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
                    Rótulo de entrada: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'A entrada tem um nome acessível, mas certifique-se de que também existe uma etiqueta visível.
                    Rótulo %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Não existe um rótulo associado a esta entrada. Adicione um atributo for ao rótulo que corresponde ao id desta entrada.
                    O ID para esta entrada é: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Não existe uma etiqueta associada a esta entrada. Adicione um id a esta entrada e adicione um atributo for correspondente à etiqueta.', EMBED_VIDEO: 'Por favor, certifique-se de que todos os vídeos têm legendas fechadas. Fornecer legendas para todo o conteúdo de áudio e vídeo é um requisito obrigatório de Nível A. As legendas ajudam as pessoas com deficiência auditiva ou surdas.', @@ -206,16 +212,16 @@ EMBED_MISSING_TITLE: 'O conteúdo incorporado requer um nome acessível que descreva o seu conteúdo. Forneça um atributo title ou aria-label exclusivo no elemento iframe. Saiba mais sobre iFrames.', EMBED_GENERAL_WARNING: 'Não é possível verificar o conteúdo incorporado. Certifique-se de que as imagens têm texto alternativo, os vídeos têm legendas, o texto tem contraste suficiente e os componentes interactivos são acessíveis ao teclado.', EMBED_UNFOCUSABLE: '<iframe> com elementos não focáveis não deve ter tabindex="-1". O conteúdo incorporado não será acessível pelo teclado.', - QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
                    Este link aponta para:
                    %(el)', + QA_BAD_LINK: 'Encontrada uma ligação incorrecta. O link parece apontar para um ambiente de desenvolvimento.
                    Este link aponta para:
                    %(LINK)', QA_IN_PAGE_LINK: 'Link quebrado na mesma página. O destino do link não corresponde a nenhum elemento nesta página.', QA_BAD_ITALICS: 'As etiquetas de negrito e itálico têm um significado semântico e não devem ser utilizadas para destacar parágrafos inteiros. O texto em negrito deve ser utilizado para dar ênfase a uma palavra ou frase. O itálico deve ser usado para destacar nomes próprios (ou seja, títulos de livros e artigos), palavras estrangeiras e citações. As citações longas devem ser formatadas como uma citação em bloco.', - QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
                    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
                    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
                    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', - QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', + QA_PDF: 'Não é possível verificar a acessibilidade dos PDFs. Os PDFs são considerados conteúdos Web e também devem ser tornados acessíveis. Os PDFs contêm frequentemente problemas para pessoas que utilizam leitores de ecrã (etiquetas estruturais em falta ou etiquetas de campos de formulário em falta) e pessoas com baixa visão (o texto não flui quando ampliado).
                    • Se se tratar de um formulário, considere a utilização de um formulário HTML acessível como alternativa.
                    • Se se tratar de um documento, considere a conversão do mesmo numa página Web.
                    De outra forma, verifique a acessibilidade do PDF no Acrobat DC.', + QA_DOCUMENT: 'Não é possível verificar a acessibilidade do documento. Os documentos ligados são considerados conteúdos Web e também têm de ser tornados acessíveis. Reveja manualmente este documento. ', QA_PAGE_LANGUAGE: 'Idioma da página não declarado! Por favor declare o idioma na etiqueta HTML.', QA_PAGE_TITLE: 'Título da página em falta! Forneça um título da página.', - QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(sanitizedText)
                    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', - QA_FAKE_HEADING: 'Isto é um título? %(boldtext)
                    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', - QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', + QA_BLOCKQUOTE_MESSAGE: 'Isto é um cabeçalho? %(TEXT)
                    As aspas de bloco devem ser usadas apenas para citações. Se se pretende que isto seja um título, altere esta citação de bloco para um título semântico (por exemplo, Título 2 ou Título 3).', + QA_FAKE_HEADING: 'Isto é um título? %(TEXT)
                    Uma linha de texto grande ou a negrito pode parecer um título, mas uma pessoa que utilize um leitor de ecrã não consegue perceber que é importante ou saltar para o seu conteúdo. O texto a negrito ou grande nunca deve substituir os títulos semânticos (Título 2 a Título 6).', + QA_SHOULD_BE_LIST: 'Está a tentar criar uma lista? Possível item de lista encontrado: %(firstPrefix)
                    Certifique-se de que utiliza listas semânticas, utilizando os botões de formatação de marcadores ou números. Ao usar uma lista semântica, as tecnologias de assistência podem transmitir informações como o número total de itens e a posição relativa de cada item na lista. Saiba mais sobre listas semânticas.', QA_UPPERCASE_WARNING: 'Encontrado em maiúsculas. Alguns leitores de ecrã podem interpretar o texto em maiúsculas como um acrónimo e lerão cada letra individualmente. Além disso, algumas pessoas consideram o texto em maiúsculas mais difícil de ler e pode dar a impressão de estar a GRITAR.', QA_DUPLICATE_ID: 'Encontrada identificação duplicada. Os erros de ID duplicada são conhecidos por causar problemas às tecnologias de assistência quando estas estão a tentar interagir com o conteúdo.
                    Remova ou altere o seguinte ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'O texto sublinhado pode ser confundido com links. Considere a utilização de um estilo diferente, como <strong>strong importance</strong> ou <em>emphasis</em>.', @@ -223,9 +229,9 @@ TABLES_MISSING_HEADINGS: 'Falta de cabeçalhos de tabela! As tabelas acessíveis necessitam de marcação HTML que indique as células de cabeçalho e as células de dados que definem a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de apoio. As tabelas devem ser utilizadas apenas para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', TABLES_SEMANTIC_HEADING: 'Os títulos semânticos, como o Título 2 ou o Título 3, só devem ser utilizados para secções de conteúdo; não em tabelas HTML. Em vez disso, indique os cabeçalhos da tabela usando o elemento <th>.
                    Saiba mais sobre tabelas acessíveis.', TABLES_EMPTY_HEADING: 'Encontrado um cabeçalho de tabela vazio! Os cabeçalhos de tabela nunca devem estar vazios. É importante designar os cabeçalhos de linha e/ou coluna para transmitir a sua relação. Esta informação fornece contexto às pessoas que utilizam tecnologia de assistência. Lembre-se de que as tabelas devem ser usadas apenas para dados tabulares.
                    Saiba mais sobre tabelas acessíveis.', - CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    A taxa de contraste é %(cratio) para o seguinte texto: %(sanitizedText)', - CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, reveja: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
                    Relação de contraste: %(cratio)', + CONTRAST_ERROR: 'Este texto não tem contraste suficiente com o fundo. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'O contraste deste texto é desconhecido e tem de ser revisto manualmente. Certifique-se de que o texto e o fundo têm cores fortes e contrastantes. A relação de contraste deve ser de pelo menos 4,5:1 para texto normal e 3:1 para texto grande.
                    Por favor, reveja: %(TEXT)', + CONTRAST_INPUT_ERROR: 'O texto nesta entrada não tem contraste suficiente com o fundo. O rácio de contraste deve ser de, pelo menos, 4,5:1 para texto normal e 3:1 para texto grande.
                    Razão de contraste %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ro.js b/docs/assets/js/lang/ro.js index 0f7ead4f..b950b3e2 100644 --- a/docs/assets/js/lang/ro.js +++ b/docs/assets/js/lang/ro.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var ro = { OFF: 'Oprit', ALERT_TEXT: 'Alertă', ALERT_CLOSE: 'Închideți', - OUTLINE: 'Schiță de pagină', + OUTLINE: 'Schiță', + ALT: 'ALT', + IMAGES: 'Imagini', + EDIT: 'Editare', + IMAGES_NOT_FOUND: 'Nu s-au găsit imagini.', + DECORATIVE: 'Decorativ', + MISSING: 'Lipsă', PAGE_ISSUES: 'Probleme de pagină', SETTINGS: 'Setări', CONTRAST: 'Contrast', @@ -148,76 +154,76 @@ var ro = { LANG_GOOD: 'Bun', READABILITY_NO_P_OR_LI_MESSAGE: 'Nu se poate calcula scorul de lizibilitate. Nu s-a găsit niciun paragraf <p> sau conținut de listă <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nu există suficient conținut pentru a calcula scorul de lizibilitate.', - HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Heading %(prevLevel) la Heading %(level).', - HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Heading %(level) în Normal sau Paragraf.', - HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
                    Numărul de caractere: %(headingLength).', + HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Antet %(prevLevel) la Antet %(level).', + HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Antet %(level) în Normal sau Paragraf.', + HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
                    %(HEADING_LENGTH) Caractere', HEADING_FIRST: 'Primul titlu de pe o pagină trebuie să fie, de obicei, un titlu 1 sau 2. Titlul 1 ar trebui să fie începutul secțiunii principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', HEADING_MISSING_ONE: 'Lipsește titlul 1. Titlul 1 ar trebui să fie începutul zonei principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', - HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Heading %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', + HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Antet %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', PANEL_HEADING_MISSING_ONE: 'Lipsește rubrica 1!', PANEL_NO_HEADINGS: 'Nu s-au găsit antete.', LINK_EMPTY: 'Eliminați legăturile goale fără text.', LINK_EMPTY_LABELLEDBY: 'Linkul are o valoare pentru aria-labelledby care este goală sau nu se potrivește cu valoarea atributului id al altui element de pe pagină.', LINK_EMPTY_LINK_NO_LABEL: 'Linkul nu are un text vizibil pentru cititorii de ecran și alte tehnologii de asistență. Pentru a remedia problema:
                    • Adaugați un text concis care să descrie unde vă duce linkul.
                    • Dacă este un link cu pictograme sau SVG, este probabil să lipsească o etichetă descriptivă.
                    • Dacă credeți că acest link este o eroare datorată unui bug de copy/paste, luați în considerare ștergerea lui.
                    .', - LINK_LABEL: 'Etichetă de legătură: %(sanitizedText)', - LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(error)
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', - LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(error)
                    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
                    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
                    ', - LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', + LINK_LABEL: 'Etichetă %(TEXT)', + LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(ERROR)
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', + LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(ERROR)
                    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
                    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
                    ', + LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', LINK_DOI: 'În cazul paginilor web sau al resurselor exclusiv online, ghidul APA Style recomandă utilizarea de linkuri descriptive prin includerea URL-ului sau DOI-ului lucrării în jurul titlului acesteia. URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență.', NEW_TAB_WARNING: 'Legătura se deschide într-o fereastră sau într-un tab nou fără avertisment. Acest lucru poate fi dezorientant, în special pentru persoanele care au dificultăți în perceperea conținutului vizual. În al doilea rând, nu este întotdeauna o practică bună să controlați experiența unei persoane sau să luați decizii în locul ei. Indicați că link-ul se deschide într-o fereastră nouă în textul linkului
                    Tip! Învățați cele mai bune practici: deschiderea linkurilor în ferestre și file noi de browser..', - FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
                    Exemplu: Raport executiv (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
                    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(sanitizedText).', + FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
                    Exemplu: Raport executiv (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
                    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Imaginea este utilizată ca link cu text în jur, deși atributul alt ar trebui să fie marcat ca fiind decorativ sau nul.', MISSING_ALT_LINK_MESSAGE: 'Imaginea este folosită ca link, dar lipsește textul alt! Vă rugăm să vă asigurați că textul alternativ descrie unde vă duce link-ul.', MISSING_ALT_MESSAGE: 'Lipsește alt text! Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(eroare).
                    Text alternativ: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
                    Text alternativ: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(error).
                    Text alternativ: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(altText).', - ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant.
                    Text alternativ: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link-ul are aria-hidden="true", dar este încă focalizabil cu tastatura. Dacă intenționați să ascundeți un link redundant sau duplicat, adăugați și tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Imaginea din cadrul linkului este marcată ca fiind decorativă și nu există text de link. Vă rugăm să adăugați la imagine un text alt care să descrie destinația linkului.', LINK_IMAGE_HAS_TEXT: 'Imaginea este marcată ca fiind decorativă, deși link-ul folosește textul din jur ca etichetă descriptivă.', - LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
                    Text alt (%(altLength) caractere): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
                    Text alternativ: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
                    Text alternativ: %(altText)
                    Etichetă de legătură: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
                    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.
                    Textulalt: %(altText)', + LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
                    ALT %(altLength) Caractere %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
                    ALT %(ALT_TEXT)
                    Etichetă %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
                    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență. Dacă imaginea transmite o poveste, o stare de spirit sau informații importante - asigurați-vă că adăugați text alternativ.', - IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
                    TextAlt (%(altLength) caractere): %(altText)', - IMAGE_PASS: 'Text alternativ: %(altText)', + IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
                    ALT %(altLength) Caractere %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Butonul de imagine nu are text alternativ. Vă rugăm să adăugați un alt text pentru a oferi un nume accesibil. De exemplu: Cercetare sau Submitere.', LABELS_INPUT_RESET_MESSAGE: 'Butoanele de resetare nu ar trebui nu utilizate decât dacă sunt necesare în mod specific, deoarece sunt ușor de activat din greșeală.
                    Tip! Aflați de ce Butoanele Reset și Cancel ridică probleme de utilizare.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
                    Etichetă de intrare: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
                    Etichetă %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Adăugați un atribut for la eticheta care se potrivește cu id al acestei intrări.
                    ID-ul pentru această intrare este: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Vă rugăm să adăugați un id la această intrare și să adăugați un atribut for corespunzător etichetei.', EMBED_VIDEO: 'Vă rugăm să vă asigurați că toate videoclipurile au subtitrare. Furnizarea de subtitrări pentru tot conținutul audio și video este o cerință obligatorie de nivel A. Subtitrările vin în sprijinul persoanelor care sunt D/surde sau cu deficiențe de auz.', EMBED_AUDIO: 'Vă rugăm să vă asigurați că furnizați o transcriere pentru toate podcasturile. Furnizarea de transcrieri pentru conținutul audio este o cerință obligatorie de nivel A. Transcrierile vin în sprijinul persoanelor cu deficiențe de auz sau cu deficiențe de auz, dar pot fi benefice pentru toată lumea. Luați în considerare plasarea transcrierii mai jos sau în cadrul unui panou acordeon.', EMBED_DATA_VIZ: 'Widgeturile de vizualizare a datelor de acest tip sunt adesea problematice pentru persoanele care utilizează o tastatură sau un cititor de ecran pentru a naviga și pot prezenta dificultăți semnificative pentru persoanele cu vedere slabă sau daltonism. Se recomandă să furnizați aceleași informații într-un format alternativ (text sau tabel) sub widget.
                    Aflați mai multe despre imagini complexe..', - EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames..', + EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames.', EMBED_GENERAL_WARNING: 'Nu se poate verifica conținutul încorporat. Vă rugăm să vă asigurați că imaginile au text alt, videoclipurile au legende, textul are un contrast suficient, iar componentele interactive sunt accesibile la tastatură..', EMBED_UNFOCUSABLE: '<iframe> cu elemente nefocalizabile nu ar trebui să aibă tabindex="-1". Conținutul încorporat nu va fi accesibil prin tastatură.', - QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
                    Acest link trimite la:
                    %(el).', + QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
                    Acest link trimite la:
                    %(LINK).', QA_IN_PAGE_LINK: 'Legătură internă ruptă. Destinația linkului nu se potrivește cu niciun element de pe această pagină.', QA_BAD_ITALICS: 'Etichetele bold și italic au o semnificație semantică și nu trebuie nu folosite pentru a evidenția paragrafe întregi. Textul cu caractere aldine trebuie folosit pentru a oferi o accentuare puternică asupra unui cuvânt sau a unei fraze. Italicul ar trebui utilizat pentru a evidenția nume proprii (de exemplu, titluri de cărți și articole), cuvinte străine, ghilimele. Citatele lungi ar trebui să fie formatate ca un blockquote.', - QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
                    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
                    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
                    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', + QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
                    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
                    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
                    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', QA_DOCUMENT: 'Imposibil să verificați dacă documentul este accesibil. Documentele legate sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. Vă rugăm să verificați manual acest document. .', QA_PAGE_LANGUAGE: 'Limba paginii nu este declarată! Vă rugăm declarați limba în tag-ul HTML.', QA_PAGE_TITLE: 'Lipsește titlul paginii! Vă rugăm să furnizați un titlu pagină.', - QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(sanitizedText)

                    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', - QA_FAKE_HEADING: 'E un titlu? %(boldtext)
                    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', - QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
                    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice..', + QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(TEXT)
                    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', + QA_FAKE_HEADING: 'E un titlu? %(TEXT)
                    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', + QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
                    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice.', QA_UPPERCASE_WARNING: 'Am găsit toate majusculele. Unele cititoare de ecran pot interpreta textul cu majuscule ca fiind un acronim și vor citi fiecare literă în parte. În plus, unele persoane consideră că toate majusculele sunt mai greu de citit și pot da impresia că strigă.', - QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
                    Vă rugăm să eliminați sau să modificați următorul ID: %(id).', + QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
                    Vă rugăm să eliminați sau să modificați următorul ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Textul subliniat poate fi confundat cu linkurile. Luați în considerare utilizarea unui stil diferit, cum ar fi <strong>importanță</strong> sau <em>accentuare</em>.', QA_SUBSCRIPT_WARNING: 'Opțiunile de formatare subscript și superscript ar trebui utilizate numai pentru a modifica poziția textului pentru convenții sau standarde tipografice. Nu ar trebui nu să fie utilizate exclusiv în scopuri de prezentare sau de aspect. Formatarea unor propoziții întregi ridică probleme de lizibilitate. Cazurile de utilizare adecvate ar include afișarea exponenților, a numerelor ordinale, cum ar fi 4th în loc de fourth, și a formulelor chimice (de exemplu, H2O).', TABLES_MISSING_HEADINGS: 'Lipsesc capetele de tabel! Tabelele accesibile au nevoie de marcaje HTML care să indice celulele de antet și celulele de date care definesc relația dintre ele. Aceste informații oferă un context pentru persoanele care utilizează tehnologia de asistență. Tabelele ar trebui să fie utilizate numai pentru date tabelare.
                    Aflați mai multe despre tablouri accesibile.', TABLES_SEMANTIC_HEADING: 'Titlurile semantice, cum ar fi Heading 2 sau Heading 3, ar trebui utilizate numai pentru secțiuni de conținut; nu în tabelele HTML. Indicați titlurile de tabel folosind în schimb elementul <th>.
                    Aflați mai multe despre tablouri accesibile.', TABLES_EMPTY_HEADING: 'S-a găsit un antet de tabel gol! Anteturile de tabel nu ar trebui să fie niciodată goale. Este important să se desemneze antetele de rând și/sau de coloană pentru a transmite relația dintre ele. Aceste informații oferă context persoanelor care utilizează tehnologia de asistență. Vă rugăm să rețineți că tabelele trebuie utilizate numai pentru date tabelare.
                    Aflați mai multe despre tablouri accesibile.', - CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raportul de contrast este %(cratio) pentru următorul text: %(sanitizedText).', - CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Vă rugăm să revizuiți: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast: %(cratio).', + CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Vă rugăm să revizuiți: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ro.umd.js b/docs/assets/js/lang/ro.umd.js index 52ec55e5..a0b22a3b 100644 --- a/docs/assets/js/lang/ro.umd.js +++ b/docs/assets/js/lang/ro.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Oprit', ALERT_TEXT: 'Alertă', ALERT_CLOSE: 'Închideți', - OUTLINE: 'Schiță de pagină', + OUTLINE: 'Schiță', + ALT: 'ALT', + IMAGES: 'Imagini', + EDIT: 'Editare', + IMAGES_NOT_FOUND: 'Nu s-au găsit imagini.', + DECORATIVE: 'Decorativ', + MISSING: 'Lipsă', PAGE_ISSUES: 'Probleme de pagină', SETTINGS: 'Setări', CONTRAST: 'Contrast', @@ -154,76 +160,76 @@ LANG_GOOD: 'Bun', READABILITY_NO_P_OR_LI_MESSAGE: 'Nu se poate calcula scorul de lizibilitate. Nu s-a găsit niciun paragraf <p> sau conținut de listă <li>.', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nu există suficient conținut pentru a calcula scorul de lizibilitate.', - HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Heading %(prevLevel) la Heading %(level).', - HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Heading %(level) în Normal sau Paragraf.', - HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
                    Numărul de caractere: %(headingLength).', + HEADING_NON_CONSECUTIVE_LEVEL: 'Nivel de rubrică neconsecutiv utilizat. Titlurile nu trebuie să sară niciodată peste niveluri sau să treacă de la Antet %(prevLevel) la Antet %(level).', + HEADING_EMPTY: 'Rubrica goală găsită! Pentru a remedia problema, ștergeți această linie sau schimbați formatul acesteia din Antet %(level) în Normal sau Paragraf.', + HEADING_LONG: 'Capul este lung! Titlurile trebuie utilizate pentru a organiza conținutul și a transmite structura. Acestea trebuie să fie scurte, informative și unice. Vă rugăm să păstrați titlurile la mai puțin de 160 de caractere (nu mai mult de o propoziție).
                    %(HEADING_LENGTH) Caractere', HEADING_FIRST: 'Primul titlu de pe o pagină trebuie să fie, de obicei, un titlu 1 sau 2. Titlul 1 ar trebui să fie începutul secțiunii principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', HEADING_MISSING_ONE: 'Lipsește titlul 1. Titlul 1 ar trebui să fie începutul zonei principale de conținut și este titlul principal care descrie scopul general al paginii. Aflați mai multe despre Structura titlurilor..', - HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Heading %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', + HEADING_EMPTY_WITH_IMAGE: 'Rubrica nu are text, dar conține o imagine. Dacă acesta nu este un titlu, schimbați-i formatul din Antet %(level) în Normal sau Paragraf. În caz contrar, vă rugăm să adăugați text alt la imagine, dacă aceasta nu este decorativă.', PANEL_HEADING_MISSING_ONE: 'Lipsește rubrica 1!', PANEL_NO_HEADINGS: 'Nu s-au găsit antete.', LINK_EMPTY: 'Eliminați legăturile goale fără text.', LINK_EMPTY_LABELLEDBY: 'Linkul are o valoare pentru aria-labelledby care este goală sau nu se potrivește cu valoarea atributului id al altui element de pe pagină.', LINK_EMPTY_LINK_NO_LABEL: 'Linkul nu are un text vizibil pentru cititorii de ecran și alte tehnologii de asistență. Pentru a remedia problema:
                    • Adaugați un text concis care să descrie unde vă duce linkul.
                    • Dacă este un link cu pictograme sau SVG, este probabil să lipsească o etichetă descriptivă.
                    • Dacă credeți că acest link este o eroare datorată unui bug de copy/paste, luați în considerare ștergerea lui.
                    .', - LINK_LABEL: 'Etichetă de legătură: %(sanitizedText)', - LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(error)
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', - LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(error)
                    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
                    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
                    ', - LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', + LINK_LABEL: 'Etichetă %(TEXT)', + LINK_STOPWORD: 'Este posibil ca textul linkului să nu fie suficient de descriptiv în afara contextului: %(ERROR)
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ. Evitați cuvintele comune precum "click aici" sau "află mai multe"', + LINK_BEST_PRACTICES: 'Luați în considerare înlocuirea textului linkului: %(ERROR)
                    • "Click aici" pune accentul pe mecanica mouse-ului, când mulți oameni nu folosesc un mouse sau pot vizualiza acest site web pe un dispozitiv mobil. Luați în considerare utilizarea unui verb diferit care să aibă legătură cu sarcina.
                    • Evitați utilizarea simbolurilor HTML ca apel la acțiuni, cu excepția cazului în care acestea sunt ascunse pentru tehnologiile de asistență.
                    ', + LINK_URL: 'URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență. În cele mai multe cazuri, este mai bine să folosiți un text lizibil pentru oameni în locul URL-ului. URL-urile scurte (cum ar fi pagina de pornire a unui site) sunt în regulă.
                    Tip! Textul linkului trebuie să fie întotdeauna clar, unic și semnificativ, astfel încât să poată fi înțeles în afara contextului.', LINK_DOI: 'În cazul paginilor web sau al resurselor exclusiv online, ghidul APA Style recomandă utilizarea de linkuri descriptive prin includerea URL-ului sau DOI-ului lucrării în jurul titlului acesteia. URL-urile mai lungi și mai puțin inteligibile folosite ca text de link ar putea fi dificil de înțeles atunci când sunt accesate cu ajutorul tehnologiei de asistență.', NEW_TAB_WARNING: 'Legătura se deschide într-o fereastră sau într-un tab nou fără avertisment. Acest lucru poate fi dezorientant, în special pentru persoanele care au dificultăți în perceperea conținutului vizual. În al doilea rând, nu este întotdeauna o practică bună să controlați experiența unei persoane sau să luați decizii în locul ei. Indicați că link-ul se deschide într-o fereastră nouă în textul linkului
                    Tip! Învățați cele mai bune practici: deschiderea linkurilor în ferestre și file noi de browser..', - FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
                    Exemplu: Raport executiv (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
                    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(sanitizedText).', + FILE_TYPE_WARNING: 'Legătura trimite la un fișier PDF sau la un fișier descărcabil (de exemplu, MP3, Zip, Word Doc) fără avertisment. Indicați tipul de fișier în textul linkului. Dacă este un fișier de mari dimensiuni, luați în considerare posibilitatea de a include dimensiunea fișierului.
                    Exemplu: Raport executiv (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Linkul are un text identic cu cel al unui alt link, deși trimite la o pagină diferită. Mai multe linkuri cu același text pot crea confuzie pentru persoanele care utilizează cititoare de ecran.
                    Considerați posibilitatea de a face următorul link mai descriptiv pentru a ajuta la distingerea acestuia de alte linkuri: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Imaginea este utilizată ca link cu text în jur, deși atributul alt ar trebui să fie marcat ca fiind decorativ sau nul.', MISSING_ALT_LINK_MESSAGE: 'Imaginea este folosită ca link, dar lipsește textul alt! Vă rugăm să vă asigurați că textul alternativ descrie unde vă duce link-ul.', MISSING_ALT_MESSAGE: 'Lipsește alt text! Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea.', - LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(eroare).
                    Text alternativ: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(altText).', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
                    Text alternativ: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(error).
                    Text alternativ: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(altText).', - ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(error)" poate fi redundant.
                    Text alternativ: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Eliminați: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Text alt necorespunzător sau cu caracter de locțiitor într-o imagine legată găsit. Asigurați-vă că textul alternativ descrie destinația linkului și nu o descriere literală a imaginii. Înlocuiți următorul text alt: %(ALT_TEXT).', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant. Asigurați-vă că textul alt descrie destinația linkului, nu o descriere literală a imaginii.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Extensia fișierului din textul alternativ găsit. Dacă imaginea transmite o poveste, o stare de spirit sau o informație importantă, nu uitați să descrieți imaginea. Eliminați: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'A fost găsit un text alt nedescriptat sau un text alt de tip placeholder. Înlocuiți următorul text alt cu ceva mai semnificativ: %(ALT_TEXT).', + ALT_HAS_SUS_WORD: 'Tehnologiile asistive indică deja că aceasta este o imagine, astfel încât "%(ERROR)" poate fi redundant.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Link-ul are aria-hidden="true", dar este încă focalizabil cu tastatura. Dacă intenționați să ascundeți un link redundant sau duplicat, adăugați și tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Imaginea din cadrul linkului este marcată ca fiind decorativă și nu există text de link. Vă rugăm să adăugați la imagine un text alt care să descrie destinația linkului.', LINK_IMAGE_HAS_TEXT: 'Imaginea este marcată ca fiind decorativă, deși link-ul folosește textul din jur ca etichetă descriptivă.', - LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
                    Text alt (%(altLength) caractere): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
                    Text alternativ: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
                    Text alternativ: %(altText)
                    Etichetă de legătură: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
                    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption..', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.
                    Textulalt: %(altText)', + LINK_IMAGE_LONG_ALT: 'Descrierea textului Alt de pe o imagine legată este prea lungă. Textul alt de pe imaginile cu link ar trebui să descrie unde duce link-ul, nu o descriere literală a imaginii. Considerați să folosiți titlul paginii către care se face legătura ca text alt.
                    ALT %(altLength) Caractere %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Legătura imaginii conține text alternativ. Textul alt descrie unde vă duce link-ul? Luați în considerare utilizarea titlului paginii către care se face legătura ca text alternativ.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Legătura de imagine conține atât textul alt cât și textul de legătură din jur. Dacă această imagine este decorativă și este folosită ca o legătură funcțională către o altă pagină, luați în considerare marcarea imaginii ca fiind decorativă sau nulă - textul de legătură din jur ar trebui să fie suficient.
                    ALT %(ALT_TEXT)
                    Etichetă %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență.
                    Deși a fost furnizat un caption, imaginea ar trebui să aibă, de asemenea, un text alt în majoritatea cazurilor.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • De obicei, legenda ar trebui să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nu folosiți exact aceleași cuvinte atât pentru textul alt, cât și pentru legendă. Cititoarele de ecran vor anunța informațiile de două ori.
                    • Textul alt ar trebui să ofere o descriere concisă a ceea ce se află în imagine.
                    • Legenda ar trebui, de obicei, să ofere un context pentru a relaționa imaginea cu conținutul din jur sau să atragă atenția asupra unei anumite informații.
                    Aflați mai multe: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Imaginea este marcată ca fiind decorativă și va fi ignorată de tehnologia de asistență. Dacă imaginea transmite o poveste, o stare de spirit sau informații importante - asigurați-vă că adăugați text alternativ.', - IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
                    TextAlt (%(altLength) caractere): %(altText)', - IMAGE_PASS: 'Text alternativ: %(altText)', + IMAGE_ALT_TOO_LONG: 'Descrierea textului Alt este prea lungă. Textul Alt ar trebui să fie concis, dar semnificativ, ca un tweet (aproximativ 100 de caractere). Dacă este vorba de o imagine complexă sau de un grafic, luați în considerare posibilitatea de a pune descrierea lungă a imaginii în textul de mai jos sau într-o componentă acordeon.
                    ALT %(altLength) Caractere %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Butonul de imagine nu are text alternativ. Vă rugăm să adăugați un alt text pentru a oferi un nume accesibil. De exemplu: Cercetare sau Submitere.', LABELS_INPUT_RESET_MESSAGE: 'Butoanele de resetare nu ar trebui nu utilizate decât dacă sunt necesare în mod specific, deoarece sunt ușor de activat din greșeală.
                    Tip! Aflați de ce Butoanele Reset și Cancel ridică probleme de utilizare.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
                    Etichetă de intrare: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Intrarea are un nume accesibil, deși vă rugăm să vă asigurați că există și o etichetă vizibilă.
                    Etichetă %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Adăugați un atribut for la eticheta care se potrivește cu id al acestei intrări.
                    ID-ul pentru această intrare este: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'Nu există nicio etichetă asociată cu această intrare. Vă rugăm să adăugați un id la această intrare și să adăugați un atribut for corespunzător etichetei.', EMBED_VIDEO: 'Vă rugăm să vă asigurați că toate videoclipurile au subtitrare. Furnizarea de subtitrări pentru tot conținutul audio și video este o cerință obligatorie de nivel A. Subtitrările vin în sprijinul persoanelor care sunt D/surde sau cu deficiențe de auz.', EMBED_AUDIO: 'Vă rugăm să vă asigurați că furnizați o transcriere pentru toate podcasturile. Furnizarea de transcrieri pentru conținutul audio este o cerință obligatorie de nivel A. Transcrierile vin în sprijinul persoanelor cu deficiențe de auz sau cu deficiențe de auz, dar pot fi benefice pentru toată lumea. Luați în considerare plasarea transcrierii mai jos sau în cadrul unui panou acordeon.', EMBED_DATA_VIZ: 'Widgeturile de vizualizare a datelor de acest tip sunt adesea problematice pentru persoanele care utilizează o tastatură sau un cititor de ecran pentru a naviga și pot prezenta dificultăți semnificative pentru persoanele cu vedere slabă sau daltonism. Se recomandă să furnizați aceleași informații într-un format alternativ (text sau tabel) sub widget.
                    Aflați mai multe despre imagini complexe..', - EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames..', + EMBED_MISSING_TITLE: 'Conținutul încorporat necesită un nume accesibil care să descrie conținutul său. Vă rugăm să furnizați un atribut unic title sau aria-label pe elementul iframe. Aflați mai multe despre iFrames.', EMBED_GENERAL_WARNING: 'Nu se poate verifica conținutul încorporat. Vă rugăm să vă asigurați că imaginile au text alt, videoclipurile au legende, textul are un contrast suficient, iar componentele interactive sunt accesibile la tastatură..', EMBED_UNFOCUSABLE: '<iframe> cu elemente nefocalizabile nu ar trebui să aibă tabindex="-1". Conținutul încorporat nu va fi accesibil prin tastatură.', - QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
                    Acest link trimite la:
                    %(el).', + QA_BAD_LINK: 'Link greșit găsit. Linkul pare să indice un mediu de dezvoltare.
                    Acest link trimite la:
                    %(LINK).', QA_IN_PAGE_LINK: 'Legătură internă ruptă. Destinația linkului nu se potrivește cu niciun element de pe această pagină.', QA_BAD_ITALICS: 'Etichetele bold și italic au o semnificație semantică și nu trebuie nu folosite pentru a evidenția paragrafe întregi. Textul cu caractere aldine trebuie folosit pentru a oferi o accentuare puternică asupra unui cuvânt sau a unei fraze. Italicul ar trebui utilizat pentru a evidenția nume proprii (de exemplu, titluri de cărți și articole), cuvinte străine, ghilimele. Citatele lungi ar trebui să fie formatate ca un blockquote.', - QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
                    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
                    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
                    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', + QA_PDF: 'Imposibilitatea de a verifica accesibilitatea PDF-urilor. PDF-urile sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. PDF-urile conțin adesea probleme pentru persoanele care utilizează cititoare de ecran (etichete structurale sau etichete de câmpuri de formular lipsă) și pentru persoanele cu vedere slabă (textul nu se reface atunci când este mărit).
                    • Dacă acesta este un formular, luați în considerare utilizarea unui formular HTML accesibil ca alternativă.
                    • Dacă acesta este un document, luați în considerare transformarea acestuia într-o pagină web.
                    În caz contrar, vă rugăm să verificați PDF pentru accesibilitate în Acrobat DC.', QA_DOCUMENT: 'Imposibil să verificați dacă documentul este accesibil. Documentele legate sunt considerate conținut web și trebuie să fie, de asemenea, accesibile. Vă rugăm să verificați manual acest document. .', QA_PAGE_LANGUAGE: 'Limba paginii nu este declarată! Vă rugăm declarați limba în tag-ul HTML.', QA_PAGE_TITLE: 'Lipsește titlul paginii! Vă rugăm să furnizați un titlu pagină.', - QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(sanitizedText)

                    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', - QA_FAKE_HEADING: 'E un titlu? %(boldtext)
                    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', - QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
                    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice..', + QA_BLOCKQUOTE_MESSAGE: 'E un titlu? %(TEXT)
                    Blocurile de ghilimele trebuie folosite numai pentru citate. Dacă se intenționează ca acesta să fie un titlu, schimbați acest blockquote într-un titlu semantic (de exemplu, titlul 2 sau titlul 3).', + QA_FAKE_HEADING: 'E un titlu? %(TEXT)
                    Un rând de text bold sau mare poate părea un titlu, dar o persoană care folosește un cititor de ecran nu poate spune că este important sau nu poate sări la conținutul său. Textul bold sau mare nu ar trebui să înlocuiască niciodată titlurile semantice (de la titlul 2 la titlul 6).', + QA_SHOULD_BE_LIST: 'Încercați să creați o listă? Posibil element de listă găsit: %(firstPrefix)
                    Asigurați-vă că folosiți liste semantice, utilizând în schimb butoanele de formatare a punctelor sau a numerelor. Atunci când se utilizează o listă semantică, tehnologiile asistive sunt capabile să transmită informații precum numărul total de elemente și poziția relativă a fiecărui element din listă. Aflați mai multe despre liste semantice.', QA_UPPERCASE_WARNING: 'Am găsit toate majusculele. Unele cititoare de ecran pot interpreta textul cu majuscule ca fiind un acronim și vor citi fiecare literă în parte. În plus, unele persoane consideră că toate majusculele sunt mai greu de citit și pot da impresia că strigă.', - QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
                    Vă rugăm să eliminați sau să modificați următorul ID: %(id).', + QA_DUPLICATE_ID: 'S-a găsit un ID duplicat. Se știe că erorile de ID duplicat cauzează probleme pentru tehnologiile asistive atunci când acestea încearcă să interacționeze cu conținutul.
                    Vă rugăm să eliminați sau să modificați următorul ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Textul subliniat poate fi confundat cu linkurile. Luați în considerare utilizarea unui stil diferit, cum ar fi <strong>importanță</strong> sau <em>accentuare</em>.', QA_SUBSCRIPT_WARNING: 'Opțiunile de formatare subscript și superscript ar trebui utilizate numai pentru a modifica poziția textului pentru convenții sau standarde tipografice. Nu ar trebui nu să fie utilizate exclusiv în scopuri de prezentare sau de aspect. Formatarea unor propoziții întregi ridică probleme de lizibilitate. Cazurile de utilizare adecvate ar include afișarea exponenților, a numerelor ordinale, cum ar fi 4th în loc de fourth, și a formulelor chimice (de exemplu, H2O).', TABLES_MISSING_HEADINGS: 'Lipsesc capetele de tabel! Tabelele accesibile au nevoie de marcaje HTML care să indice celulele de antet și celulele de date care definesc relația dintre ele. Aceste informații oferă un context pentru persoanele care utilizează tehnologia de asistență. Tabelele ar trebui să fie utilizate numai pentru date tabelare.
                    Aflați mai multe despre tablouri accesibile.', TABLES_SEMANTIC_HEADING: 'Titlurile semantice, cum ar fi Heading 2 sau Heading 3, ar trebui utilizate numai pentru secțiuni de conținut; nu în tabelele HTML. Indicați titlurile de tabel folosind în schimb elementul <th>.
                    Aflați mai multe despre tablouri accesibile.', TABLES_EMPTY_HEADING: 'S-a găsit un antet de tabel gol! Anteturile de tabel nu ar trebui să fie niciodată goale. Este important să se desemneze antetele de rând și/sau de coloană pentru a transmite relația dintre ele. Aceste informații oferă context persoanelor care utilizează tehnologia de asistență. Vă rugăm să rețineți că tabelele trebuie utilizate numai pentru date tabelare.
                    Aflați mai multe despre tablouri accesibile.', - CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raportul de contrast este %(cratio) pentru următorul text: %(sanitizedText).', - CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Vă rugăm să revizuiți: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast: %(cratio).', + CONTRAST_ERROR: 'Acest text nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Contrastul acestui text este necunoscut și trebuie să fie revizuit manual. Asigurați-vă că textul și fundalul au culori puternic contrastante. Raportul de contrast trebuie să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Vă rugăm să revizuiți: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Textul din această intrare nu are un contrast suficient cu fundalul. Raportul de contrast ar trebui să fie de cel puțin 4,5:1 pentru textul normal și de 3:1 pentru textul mare.
                    Raport de contrast %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sk.js b/docs/assets/js/lang/sk.js index 6b60804d..bf17ad3c 100644 --- a/docs/assets/js/lang/sk.js +++ b/docs/assets/js/lang/sk.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var sk = { OFF: 'Vypnuté', ALERT_TEXT: 'Upozornenie', ALERT_CLOSE: 'Zatvoriť', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Náčrt', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upraviť', + IMAGES_NOT_FOUND: 'Žiadne obrázky nenájdené.', + DECORATIVE: 'Dekoratívny', + MISSING: 'Chýbajúci', PAGE_ISSUES: 'Problémy so stránkami', SETTINGS: 'Nastavenia', CONTRAST: 'Kontrast', @@ -160,46 +166,46 @@ var sk = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatok obsahu na výpočet skóre čitateľnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá nepokračujúca úroveň záhlavia. Nadpisy by nikdy nemali preskakovať úrovne alebo prechádzať z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nájdená prázdna položka! Ak to chcete opraviť, odstráňte tento riadok alebo zmeňte jeho formát z Head %(level) na Normal alebo Paragraph.', - HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
                    Počet znakov: %(headingLength)', + HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
                    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvý nadpis na stránke by mal byť zvyčajne nadpis 1 alebo 2. Nadpis 1 by mal byť začiatkom hlavnej časti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', HEADING_MISSING_ONE: 'Chýba nadpis 1. Nadpis 1 by mal byť začiatkom hlavnej oblasti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', - HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(úroveň) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', + HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(level) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', PANEL_HEADING_MISSING_ONE: 'Chýba položka 1!', PANEL_NO_HEADINGS: 'Nenašli sa žiadne záhlavia.', LINK_EMPTY: 'Odstránenie prázdnych odkazov bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, ktorá je prázdna alebo nezodpovedá hodnote atribútu id iného prvku na stránke.', - LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
                  • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
                  • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
                  • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
                  • ', - LINK_LABEL: 'Označenie odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(error)
                    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', - LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(error)
                    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
                    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
                    ', - LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
                    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', + LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
                    • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
                    • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
                    • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
                    ', + LINK_LABEL: 'Popis %(TEXT)', + LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(ERROR)
                    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', + LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(ERROR)
                    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
                    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
                    ', + LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
                    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', LINK_DOI: 'V prípade webových stránok alebo len online zdrojov odporúča príručka štýlu APA používať popisné odkazy tak, že okolo názvu diela uvediete jeho URL alebo DOI. Dlhšie, menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pomocou asistenčných technológií.', - NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu
                    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', - FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
                    Príklad: Výkonná správa (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
                    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(sanitizedText)', + NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu.
                    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', + FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
                    Príklad: Výkonná správa (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
                    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázok sa používa ako odkaz s okolitým textom, hoci atribút alt by mal byť označený ako dekoratívny alebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázok sa používa ako odkaz, ale chýba text alt! Uistite sa, že text alt opisuje, kam vás odkaz zavedie.', MISSING_ALT_MESSAGE: 'Chýbajúci text alt! Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(error).
                    Textu alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
                    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(error).
                    Textu alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(altText)', - ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je klávesnicou zamerateľný. Ak plánujete skryť nadbytočný alebo duplicitný odkaz, pridajte aj tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázok v rámci odkazu je označený ako dekoratívny a nie je v ňom žiadny text odkazu. K obrázku pridajte text alt, ktorý opisuje cieľ odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázok je označený ako dekoratívny, hoci odkaz používa okolitý text ako popisné označenie.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    Alt text (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
                    Textuálny text: %(altText)
                    Označenie odkazu: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
                    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
                    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Zistite viac: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
                    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Ďalšie informácie: alt verzus titulok obrázku.
                    Textuálny text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
                    ALT %(ALT_TEXT)
                    Označenie odkazu %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
                    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
                    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Zistite viac: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
                    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Ďalšie informácie: alt verzus titulok obrázku.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať. Ak obrázok sprostredkúva príbeh, náladu alebo dôležité informácie - nezabudnite pridať alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
                    Textuálny text (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V tlačidle obrázka chýba text alt. Pridajte text alt a uveďte prístupný názov. Napríklad: Vyhľadať alebo Odoslať.', LABELS_INPUT_RESET_MESSAGE: 'Tlačidlá resetovania by sa nemali používať, ak to nie je výslovne potrebné, pretože sa ľahko aktivujú omylom.
                    Tip! Prečítajte si, prečo tlačidlá Reset a Cancel predstavujú problémy s použiteľnosťou.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
                    Štítok vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
                    Štítok vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Pridajte atribút for k štítku, ktorý sa zhoduje s id tohto vstupu.
                    ID tohto vstupu je: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Prosím, pridajte id k tomuto vstupu a pridajte zodpovedajúci atribút for k štítku.', EMBED_VIDEO: 'Uistite sa, že všetky videá majú skryté titulky. Poskytovanie titulkov pre všetok zvukový a obrazový obsah je povinnou požiadavkou úrovne A. Titulky podporujú osoby s poruchou sluchu alebo nepočujúce osoby.', @@ -208,16 +214,16 @@ var sk = { EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje prístupný názov, ktorý opisuje jeho obsah. Uveďte jedinečný atribút title alebo aria-label na prvku iframe. Ďalšie informácie o iFrame.', EMBED_GENERAL_WARNING: 'Nie je možné skontrolovať vložený obsah. Uistite sa, že obrázky majú alt text, videá majú titulky, text má dostatočný kontrast a interaktívne komponenty sú prístupné z klávesnice.', EMBED_UNFOCUSABLE: '<iframe> s nezamerateľnými prvkami by nemalo mať tabindex="-1". Vložený obsah nebude dostupný pomocou klávesnice.', - QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
                    Tento odkaz odkazuje na:
                    %(el)', + QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
                    Tento odkaz odkazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Rozbitý odkaz na rovnakú stránku. Cieľ odkazu nezodpovedá žiadnemu prvku na tejto stránke.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva majú sémantický význam a nemali by sa používať na zvýraznenie celých odsekov. Tučný text by sa mal používať na výrazné zdôraznenie slova alebo frázy. Kurzíva by sa mala používať na zvýraznenie vlastných mien (t. j. názvov kníh a článkov), cudzích slov, citátov. Dlhé citáty by sa mali formátovať ako blokové citáty.', - QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
                    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
                    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
                    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', + QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
                    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
                    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
                    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', QA_DOCUMENT: 'Nie je možné skontrolovať prístupnosť dokumentu. Prepojené dokumenty sa považujú za webový obsah a musia byť tiež prístupné. Skontrolujte tento dokument manuálne. ', QA_PAGE_LANGUAGE: 'Jazyk stránky nie je deklarovaný! Prosím deklarujte jazyk v značke HTML.', QA_PAGE_TITLE: 'Chýba názov stránky! Uveďte prosím názov stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
                    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
                    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', - QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
                    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
                    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
                    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', + QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
                    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', QA_UPPERCASE_WARNING: 'Nájdené všetky čiapky. Niektoré čítačky obrazovky môžu interpretovať text písaný veľkými písmenami ako skratku a budú čítať každé písmeno samostatne. Okrem toho sa niektorým ľuďom všetky veľké písmená čítajú ťažšie a môže to pôsobiť dojmom, akoby sa kričalo.', QA_DUPLICATE_ID: 'Nájdené duplicitné ID. Je známe, že chyby duplicitného ID spôsobujú problémy asistenčným technológiám pri pokusoch o interakciu s obsahom.
                    Odstráňte alebo zmeňte nasledujúce ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčiarknutý text sa môže zameniť s odkazmi. Zvážte použitie iného štýlu, napríklad <strong>strong importance</strong> alebo <em>emphasis</em>.', @@ -225,9 +231,9 @@ var sk = { TABLES_MISSING_HEADINGS: 'Chýbajúce záhlavia tabuliek! Prístupné tabuľky potrebujú značku HTML, ktorá označuje bunky záhlavia a dátové bunky, ktoré definujú ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Tabuľky by sa mali používať len na tabuľkové údaje.
                    Ďalšie informácie o prístupných tabuľkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, ako napríklad Nadpis 2 alebo Nadpis 3, by sa mali používať len pre časti obsahu; nie v tabuľkách HTML. Namiesto toho označte nadpisy tabuliek pomocou prvku <th>.
                    Ďalšie informácie o prístupných tabuľkách.', TABLES_EMPTY_HEADING: 'Nájdené prázdne záhlavie tabuľky! Hlavičky tabuliek by nikdy nemali byť prázdne. Je dôležité označiť záhlavia riadkov a/alebo stĺpcov, aby sa vyjadril ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Majte na pamäti, že tabuľky by sa mali používať len pre tabuľkové údaje.
                    Ďalšie informácie o prístupných tabuľkách.', - CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer je %(cratio) pre nasledujúci text: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Prosím skontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer: %(cratio)', + CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Prosím skontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sk.umd.js b/docs/assets/js/lang/sk.umd.js index e858a3f7..a5ca6307 100644 --- a/docs/assets/js/lang/sk.umd.js +++ b/docs/assets/js/lang/sk.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Vypnuté', ALERT_TEXT: 'Upozornenie', ALERT_CLOSE: 'Zatvoriť', - OUTLINE: 'Osnova stránky', + OUTLINE: 'Náčrt', + ALT: 'ALT', + IMAGES: 'Obrázky', + EDIT: 'Upraviť', + IMAGES_NOT_FOUND: 'Žiadne obrázky nenájdené.', + DECORATIVE: 'Dekoratívny', + MISSING: 'Chýbajúci', PAGE_ISSUES: 'Problémy so stránkami', SETTINGS: 'Nastavenia', CONTRAST: 'Kontrast', @@ -166,46 +172,46 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Nedostatok obsahu na výpočet skóre čitateľnosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Použitá nepokračujúca úroveň záhlavia. Nadpisy by nikdy nemali preskakovať úrovne alebo prechádzať z Nadpisu %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Nájdená prázdna položka! Ak to chcete opraviť, odstráňte tento riadok alebo zmeňte jeho formát z Head %(level) na Normal alebo Paragraph.', - HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
                    Počet znakov: %(headingLength)', + HEADING_LONG: 'Smerovanie je dlhé! Nadpisy by sa mali používať na usporiadanie obsahu a vyjadrenie štruktúry. Mali by byť stručné, informatívne a jedinečné. Prosím, aby nadpisy mali menej ako 160 znakov (nie viac ako jednu vetu).
                    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvý nadpis na stránke by mal byť zvyčajne nadpis 1 alebo 2. Nadpis 1 by mal byť začiatkom hlavnej časti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', HEADING_MISSING_ONE: 'Chýba nadpis 1. Nadpis 1 by mal byť začiatkom hlavnej oblasti obsahu a je to hlavný nadpis, ktorý opisuje celkový účel stránky. Viac informácií o štruktúre nadpisov.', - HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(úroveň) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', + HEADING_EMPTY_WITH_IMAGE: 'Nadpis neobsahuje žiadny text, ale obsahuje obrázok. Ak to nie je nadpis, zmeňte jeho formát z Nadpis %(level) na Normálny alebo Odsek. V opačnom prípade pridajte k obrázku alt text, ak nie je dekoratívny.', PANEL_HEADING_MISSING_ONE: 'Chýba položka 1!', PANEL_NO_HEADINGS: 'Nenašli sa žiadne záhlavia.', LINK_EMPTY: 'Odstránenie prázdnych odkazov bez textu.', LINK_EMPTY_LABELLEDBY: 'Odkaz má hodnotu aria-labelledby, ktorá je prázdna alebo nezodpovedá hodnote atribútu id iného prvku na stránke.', - LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
                  • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
                  • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
                  • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
                  • ', - LINK_LABEL: 'Označenie odkazu: %(sanitizedText)', - LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(error)
                    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', - LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(error)
                    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
                    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
                    ', - LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
                    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', + LINK_EMPTY_LINK_NO_LABEL: 'Odkaz nemá rozoznateľný text, ktorý je viditeľný pre čítačky obrazovky a iné asistenčné technológie. Oprava:
                    • Pridajte stručný text, ktorý popisuje, kam vás odkaz zavedie.
                    • Ak ide o odkaz na ikonu alebo SVG, pravdepodobne chýba popisný štítok.
                    • Ak si myslíte, že tento odkaz je chybou spôsobenou chybou kopírovania/vkladania, zvážte jeho odstránenie.
                    ', + LINK_LABEL: 'Popis %(TEXT)', + LINK_STOPWORD: 'Text prepojenia nemusí byť dostatočne popisný mimo kontextu: %(ERROR)
                    Tip! Text prepojenia by mal byť vždy jasný, jedinečný a zmysluplný. Vyhnite sa bežným slovám ako "kliknite sem" alebo "dozvedieť sa viac";', + LINK_BEST_PRACTICES: 'Zvážte nahradenie textu prepojenia: %(ERROR)
                    • "Kliknite sem" kladie dôraz na mechaniku myši, hoci mnoho ľudí myš nepoužíva alebo si túto webovú lokalitu možno prezerá na mobilnom zariadení. Zvážte použitie iného slovesa, ktoré súvisí s úlohou.
                    • Vyhnite sa používaniu symbolov HTML ako výzvy k akcii, pokiaľ nie sú skryté pre asistenčné technológie.
                    ', + LINK_URL: 'Dlhšie a menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pre asistenčné technológie. Vo väčšine prípadov je lepšie namiesto adresy URL použiť text čitateľný pre človeka. Krátke adresy URL (napríklad domovská stránka webu) sú v poriadku.
                    Tip! Text odkazu by mal byť vždy jasný, jedinečný a zmysluplný, aby ho bolo možné pochopiť aj mimo kontextu.', LINK_DOI: 'V prípade webových stránok alebo len online zdrojov odporúča príručka štýlu APA používať popisné odkazy tak, že okolo názvu diela uvediete jeho URL alebo DOI. Dlhšie, menej zrozumiteľné adresy URL použité ako text odkazu by mohli byť ťažko zrozumiteľné pomocou asistenčných technológií.', - NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu
                    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', - FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
                    Príklad: Výkonná správa (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
                    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(sanitizedText)', + NEW_TAB_WARNING: 'Odkaz sa otvorí v novej karte alebo okne bez upozornenia. Môže to byť dezorientujúce, najmä pre ľudí, ktorí majú problémy s vnímaním vizuálneho obsahu. Po druhé, nie vždy je dobrým postupom kontrolovať niečí zážitok alebo robiť rozhodnutia za neho. Uveďte, že sa odkaz otvára v novom okne, v texte odkazu.
                    Tip! Naučte sa osvedčené postupy: otváranie odkazov v nových oknách a kartách prehliadača.', + FILE_TYPE_WARNING: 'Odkaz odkazuje na súbor PDF alebo súbor na stiahnutie (napr. MP3, Zip, Word Doc) bez upozornenia. Typ súboru uveďte v texte odkazu. Ak ide o veľký súbor, zvážte uvedenie jeho veľkosti.
                    Príklad: Výkonná správa (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Odkaz má rovnaký text ako iný odkaz, hoci odkazuje na inú stránku. Viacero odkazov s rovnakým textom môže spôsobiť zmätok u ľudí, ktorí používajú čítačky obrazovky.
                    Premyslite si, či by nasledujúci odkaz nemal byť viac popisný, aby ste ho odlíšili od ostatných odkazov: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Obrázok sa používa ako odkaz s okolitým textom, hoci atribút alt by mal byť označený ako dekoratívny alebo nulový.', MISSING_ALT_LINK_MESSAGE: 'Obrázok sa používa ako odkaz, ale chýba text alt! Uistite sa, že text alt opisuje, kam vás odkaz zavedie.', MISSING_ALT_MESSAGE: 'Chýbajúci text alt! Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať.', - LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(error).
                    Textu alt: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
                    Text alt: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(error).
                    Textu alt: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(altText)', - ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(error)" môže byť zbytočné.
                    Alt text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Odstráňte: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Nájdený text alt bez popisu alebo zástupný text v rámci prepojeného obrázka. Uistite sa, že text alt opisuje cieľ odkazu, nie doslovný opis obrázka. Nahraďte nasledujúci text alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné. Uistite sa, že alt text opisuje cieľ odkazu, nie doslovný opis obrázka.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Nájdená prípona súboru v texte alt. Ak obrázok vyjadruje príbeh, náladu alebo dôležitú informáciu, nezabudnite ho opísať. Odstráňte: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Nájdený text alt bez popisu alebo zástupného textu. Nahraďte nasledujúci alt text niečím zmysluplnejším: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Asistenčné technológie už indikujú, že ide o obrázok, takže "%(ERROR)" môže byť zbytočné.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Odkaz má aria-hidden="true", ale stále je klávesnicou zamerateľný. Ak plánujete skryť nadbytočný alebo duplicitný odkaz, pridajte aj tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Obrázok v rámci odkazu je označený ako dekoratívny a nie je v ňom žiadny text odkazu. K obrázku pridajte text alt, ktorý opisuje cieľ odkazu.', LINK_IMAGE_HAS_TEXT: 'Obrázok je označený ako dekoratívny, hoci odkaz používa okolitý text ako popisné označenie.', - LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    Alt text (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    Alt text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
                    Textuálny text: %(altText)
                    Označenie odkazu: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
                    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
                    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Zistite viac: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
                    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Ďalšie informácie: alt verzus titulok obrázku.
                    Textuálny text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Popis Alt textu na prepojenom obrázku je predlžený. Text alt na prepojených obrázkoch by mal popisovať, kam vás odkaz zavedie, nie doslovný opis obrázka. Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Odkaz na obrázok obsahuje text alt. Opisuje text alt, kam vás odkaz zavedie? Zvážte použitie názvu stránky, na ktorú odkazuje, ako alt textu.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Odkaz na obrázok obsahuje obidva texty alt a okolitý text odkazu. Ak je tento obrázok dekoratívny a používa sa ako funkčný odkaz na inú stránku, zvážte označenie obrázka ako dekoratívneho alebo nulového - okolitý text odkazu by mal stačiť.
                    ALT %(ALT_TEXT)
                    Označenie odkazu %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať.
                    Hoci bol uvedený nadpis, obrázok by mal mať vo väčšine prípadov aj alt text.
                    • Titul alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby sa obrázok prepojil s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Zistite viac: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Nepoužívajte presne tie isté slová pre text alt aj nadpis. Čítačky obrazovky budú informáciu oznamovať dvakrát.
                    • Textu alt by mal poskytovať stručný opis toho, čo je na obrázku.
                    • Titul by mal zvyčajne poskytovať kontext, aby súvisel s okolitým obsahom, alebo upozorniť na konkrétnu informáciu.
                    Ďalšie informácie: alt verzus titulok obrázku.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Obrázok je označený ako dekoratívny a asistenčné technológie ho budú ignorovať. Ak obrázok sprostredkúva príbeh, náladu alebo dôležité informácie - nezabudnite pridať alt text.', - IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
                    Textuálny text (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Alt text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt text popisu je príliš dlhý. Alt text by mal byť stručný, ale výstižný ako tweet (približne 100 znakov). Ak ide o zložitý obrázok alebo graf, zvážte umiestnenie dlhého popisu obrázka do textu pod ním alebo do akordeónového komponentu.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V tlačidle obrázka chýba text alt. Pridajte text alt a uveďte prístupný názov. Napríklad: Vyhľadať alebo Odoslať.', LABELS_INPUT_RESET_MESSAGE: 'Tlačidlá resetovania by sa nemali používať, ak to nie je výslovne potrebné, pretože sa ľahko aktivujú omylom.
                    Tip! Prečítajte si, prečo tlačidlá Reset a Cancel predstavujú problémy s použiteľnosťou.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
                    Štítok vstupu: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vstup má prístupný názov, ale dbajte na to, aby bol viditeľný aj štítok.
                    Štítok vstupu %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Pridajte atribút for k štítku, ktorý sa zhoduje s id tohto vstupu.
                    ID tohto vstupu je: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'K tomuto vstupu nie je priradený žiadny štítok. Prosím, pridajte id k tomuto vstupu a pridajte zodpovedajúci atribút for k štítku.', EMBED_VIDEO: 'Uistite sa, že všetky videá majú skryté titulky. Poskytovanie titulkov pre všetok zvukový a obrazový obsah je povinnou požiadavkou úrovne A. Titulky podporujú osoby s poruchou sluchu alebo nepočujúce osoby.', @@ -214,16 +220,16 @@ EMBED_MISSING_TITLE: 'Vložený obsah vyžaduje prístupný názov, ktorý opisuje jeho obsah. Uveďte jedinečný atribút title alebo aria-label na prvku iframe. Ďalšie informácie o iFrame.', EMBED_GENERAL_WARNING: 'Nie je možné skontrolovať vložený obsah. Uistite sa, že obrázky majú alt text, videá majú titulky, text má dostatočný kontrast a interaktívne komponenty sú prístupné z klávesnice.', EMBED_UNFOCUSABLE: '<iframe> s nezamerateľnými prvkami by nemalo mať tabindex="-1". Vložený obsah nebude dostupný pomocou klávesnice.', - QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
                    Tento odkaz odkazuje na:
                    %(el)', + QA_BAD_LINK: 'Nájdené zlé prepojenie. Zdá sa, že odkaz smeruje na vývojové prostredie.
                    Tento odkaz odkazuje na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Rozbitý odkaz na rovnakú stránku. Cieľ odkazu nezodpovedá žiadnemu prvku na tejto stránke.', QA_BAD_ITALICS: 'Tučné písmo a kurzíva majú sémantický význam a nemali by sa používať na zvýraznenie celých odsekov. Tučný text by sa mal používať na výrazné zdôraznenie slova alebo frázy. Kurzíva by sa mala používať na zvýraznenie vlastných mien (t. j. názvov kníh a článkov), cudzích slov, citátov. Dlhé citáty by sa mali formátovať ako blokové citáty.', - QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
                    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
                    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
                    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', + QA_PDF: 'Nie je možné skontrolovať prístupnosť súborov PDF. Súbory PDF sa považujú za webový obsah a musia byť tiež prístupné. Súbory PDF často obsahujú problémy pre ľudí, ktorí používajú čítačky obrazovky (chýbajúce štrukturálne značky alebo chýbajúce označenia polí formulára), a ľudí so slabým zrakom (text sa po zväčšení nezobrazuje).
                    • Ak ide o formulár, zvážte použitie prístupného formulára HTML ako alternatívy.
                    • Ak ide o dokument, zvážte jeho konverziu na webovú stránku.
                    V opačnom prípade skontrolujte PDF pre prístupnosť v Acrobat DC.', QA_DOCUMENT: 'Nie je možné skontrolovať prístupnosť dokumentu. Prepojené dokumenty sa považujú za webový obsah a musia byť tiež prístupné. Skontrolujte tento dokument manuálne. ', QA_PAGE_LANGUAGE: 'Jazyk stránky nie je deklarovaný! Prosím deklarujte jazyk v značke HTML.', QA_PAGE_TITLE: 'Chýba názov stránky! Uveďte prosím názov stránky.', - QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(sanitizedText)
                    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', - QA_FAKE_HEADING: 'Je to nadpis? %(boldtext)
                    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', - QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
                    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', + QA_BLOCKQUOTE_MESSAGE: 'Je to nadpis? %(TEXT)
                    Blokové úvodzovky by sa mali používať len pre citácie. Ak to má byť nadpis, zmeňte tento blokový citát na sémantický nadpis (napr. Nadpis 2 alebo Nadpis 3).', + QA_FAKE_HEADING: 'Je to nadpis? %(TEXT)
                    Riadok tučného alebo veľkého textu môže vyzerať ako nadpis, ale osoba používajúca čítačku obrazovky nedokáže určiť, že je dôležitý, ani prejsť na jeho obsah. Tučný alebo veľký text by nikdy nemal nahrádzať sémantické nadpisy (nadpisy 2 až 6).', + QA_SHOULD_BE_LIST: 'Snažíte sa vytvoriť zoznam? Nájdená možná položka zoznamu: %(firstPrefix)
                    Uistite sa, že používate sémantické zoznamy tak, že namiesto nich použijete tlačidlá na formátovanie odrážok alebo čísel. Pri použití sémantického zoznamu dokážu asistenčné technológie sprostredkovať informácie, ako je celkový počet položiek a relatívna pozícia každej položky v zozname. Viac informácií o sémantických zoznamoch.', QA_UPPERCASE_WARNING: 'Nájdené všetky čiapky. Niektoré čítačky obrazovky môžu interpretovať text písaný veľkými písmenami ako skratku a budú čítať každé písmeno samostatne. Okrem toho sa niektorým ľuďom všetky veľké písmená čítajú ťažšie a môže to pôsobiť dojmom, akoby sa kričalo.', QA_DUPLICATE_ID: 'Nájdené duplicitné ID. Je známe, že chyby duplicitného ID spôsobujú problémy asistenčným technológiám pri pokusoch o interakciu s obsahom.
                    Odstráňte alebo zmeňte nasledujúce ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčiarknutý text sa môže zameniť s odkazmi. Zvážte použitie iného štýlu, napríklad <strong>strong importance</strong> alebo <em>emphasis</em>.', @@ -231,9 +237,9 @@ TABLES_MISSING_HEADINGS: 'Chýbajúce záhlavia tabuliek! Prístupné tabuľky potrebujú značku HTML, ktorá označuje bunky záhlavia a dátové bunky, ktoré definujú ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Tabuľky by sa mali používať len na tabuľkové údaje.
                    Ďalšie informácie o prístupných tabuľkách.', TABLES_SEMANTIC_HEADING: 'Sémantické nadpisy, ako napríklad Nadpis 2 alebo Nadpis 3, by sa mali používať len pre časti obsahu; nie v tabuľkách HTML. Namiesto toho označte nadpisy tabuliek pomocou prvku <th>.
                    Ďalšie informácie o prístupných tabuľkách.', TABLES_EMPTY_HEADING: 'Nájdené prázdne záhlavie tabuľky! Hlavičky tabuliek by nikdy nemali byť prázdne. Je dôležité označiť záhlavia riadkov a/alebo stĺpcov, aby sa vyjadril ich vzťah. Tieto informácie poskytujú kontext ľuďom, ktorí používajú asistenčné technológie. Majte na pamäti, že tabuľky by sa mali používať len pre tabuľkové údaje.
                    Ďalšie informácie o prístupných tabuľkách.', - CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer je %(cratio) pre nasledujúci text: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Prosím skontrolujte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer: %(cratio)', + CONTRAST_ERROR: 'Tento text nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tohto textu nie je známy a je potrebné ho manuálne skontrolovať. Uistite sa, že text a pozadie majú výrazne kontrastné farby. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Prosím skontrolujte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text v tomto vstupe nie je dostatočne kontrastný s pozadím. Kontrastný pomer by mal byť aspoň 4,5:1 pre normálny text a 3:1 pre veľký text.
                    Kontrastný pomer %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sl.js b/docs/assets/js/lang/sl.js index 4b219a89..d6c6210a 100644 --- a/docs/assets/js/lang/sl.js +++ b/docs/assets/js/lang/sl.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var sl = { OFF: 'Izklopljeno', ALERT_TEXT: 'Opozorilo', ALERT_CLOSE: 'Zapri', - OUTLINE: 'Osnutek strani', + OUTLINE: 'Oris', + ALT: 'ALT', + IMAGES: 'Slike', + EDIT: 'Uredi', + IMAGES_NOT_FOUND: 'Ni najdenih slik.', + DECORATIVE: 'Dekorativno', + MISSING: 'Manjka', PAGE_ISSUES: 'Vprašanja strani', SETTINGS: 'Nastavitve', CONTRAST: 'Kontrast', @@ -149,7 +155,7 @@ var sl = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Premalo vsebine za izračun ocene berljivosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Uporabljena je raven brez zaporednih naslovov. Naslovi nikoli ne smejo preskočiti ravni ali preiti iz Nadpis %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Najden je bil prazen naslov! To popravite tako, da izbrišete to vrstico ali spremenite njeno obliko iz Glavica %(level) v Normalno ali Odstavek.', - HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
                    Število znakov: %(headingLength)', + HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
                    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvi naslov na strani mora biti običajno naslov 1 ali 2. Naslov 1 mora biti začetek poglavja z glavno vsebino in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_MISSING_ONE: 'Manjka naslov 1. Naslov 1 mora biti začetek glavnega vsebinskega področja in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_EMPTY_WITH_IMAGE: 'Naslov nima besedila, vsebuje pa sliko. Če to ni naslov, spremenite njegovo obliko iz Nadpis %(level) v Normalno ali Odstavek. V nasprotnem primeru sliki dodajte besedilo alt, če ni okrasno.', @@ -157,38 +163,38 @@ var sl = { PANEL_NO_HEADINGS: 'Ni najdenih naslovov.', LINK_EMPTY: 'Odstranite prazne povezave brez besedila.', LINK_EMPTY_LABELLEDBY: 'Povezava ima vrednost za aria-labelledby, ki je prazna ali se ne ujema z vrednostjo atributa id drugega elementa na strani.', - LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
                  • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
                  • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
                  • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
                  • ', - LINK_LABEL: 'Etiketa povezave: %(sanitizedText)', - LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(error)
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', - LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(error)
                    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
                    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
                    ', - LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', + LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
                    • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
                    • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
                    • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
                    ', + LINK_LABEL: 'Etiketa %(TEXT)', + LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(ERROR)
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', + LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(ERROR)
                    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
                    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
                    ', + LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', LINK_DOI: 'Pri spletnih straneh ali spletnih virih vodnik APA Style priporoča uporabo opisnih povezav, tako da URL ali DOI dela ovijete okoli njegovega naslova. Daljši in manj razumljivi naslovi URL, ki se uporabljajo kot besedilo povezave, so lahko pri dostopu s pomožno tehnologijo težko razumljivi.', - NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave
                    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', - FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
                    Primer: Izvršno poročilo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
                    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(sanitizedText)', + NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave.
                    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', + FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
                    Primer: Izvršno poročilo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
                    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Slika se uporablja kot povezava z okoliškim besedilom, čeprav bi moral biti atribut alt označen kot okrasni ali ničen.', MISSING_ALT_LINK_MESSAGE: 'Slika se uporablja kot povezava, vendar nima besedila Alt! Prepričajte se, da besedilo alt opisuje, kam vas bo povezava pripeljala.', MISSING_ALT_MESSAGE: 'Manjka besedilo alt! Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(error).
                    Vrstično besedilo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
                    Vrstično besedilo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(error).
                    Tekst besedila: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(altText)', - ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč.
                    Tekst besedila: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Povezava ima aria-hidden="true", vendar je še vedno dostopna s tipkovnico. Če nameravate skriti redundantno ali podvojeno povezavo, dodajte tudi tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Slika v povezavi je označena kot okrasna in nima besedila povezave. Sliki dodajte besedilo alt, ki opisuje cilj povezave.', LINK_IMAGE_HAS_TEXT: 'Slika je označena kot dekorativna, čeprav povezava uporablja okoliško besedilo kot opisno oznako.', - LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
                    Alt besedilo (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
                    Temeljno besedilo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
                    Tekst besedila: %(altText)
                    Etiketa povezave: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
                    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
                    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
                    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
                    Preberi več: alt v primerjavi s figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
                    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
                    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
                    Več informacij: alt v primerjavi s figcaption.
                    Vrstično besedilo: %(altText)', + LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
                    ALT %(ALT_TEXT)
                    Etiketa %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
                    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
                    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
                    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
                    Preberi več: alt v primerjavi s figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
                    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
                    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
                    Več informacij: alt v primerjavi s figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, obvezno dodajte dodatno besedilo.', - IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
                    Tekst besedila (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Tekst besedila: %(altText)', + IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V gumbu za sliko manjka besedilo alt. Dodajte besedilo alt in zagotovite dostopno ime. Na primer: Poišči ali Oddaj.', LABELS_INPUT_RESET_MESSAGE: 'Gumbe za ponastavitev ne smete uporabljati, razen če je to posebej potrebno, saj jih je mogoče zlahka aktivirati po pomoti.
                    Tip! Preberite, zakaj Gumbova Reset in Cancel predstavljata težave z uporabnostjo.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
                    Oznaka za vnos: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
                    Oznaka %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte atribut for oznaki, ki ustreza id tega vnosa.
                    ID tega vnosa je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte id temu vnosu in dodajte ustrezen atribut for oznaki.', EMBED_VIDEO: 'Poskrbite, da bodo vsi videoposnetki opremljeni s podnapisi. Zagotavljanje podnapisov za vse zvočne in video vsebine je obvezna zahteva na ravni A. Podnapisi so v pomoč gluhim in naglušnim osebam.', @@ -197,16 +203,16 @@ var sl = { EMBED_MISSING_TITLE: 'Vgrajena vsebina potrebuje dostopno ime, ki opisuje njeno vsebino. V elementu iframe navedite edinstven atribut title ali aria-label. Preberite več o iFrames.', EMBED_GENERAL_WARNING: 'Ni mogoče preveriti vdelane vsebine. Prepričajte se, da imajo slike alternativno besedilo, videoposnetki podnapise, da je besedilo dovolj kontrastno in da so interaktivne komponente dostopne s tipkovnice.', EMBED_UNFOCUSABLE: '<iframe> z elementi, ki se jim ni mogoče osredotočiti, ne sme imeti tabindex="-1". Vgrajena vsebina ne bo dostopna prek tipkovnice.', - QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
                    Ta povezava kaže na:
                    %(el)', + QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
                    Ta povezava kaže na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Okvarjena povezava na isto stran. Cilj povezave se ne ujema z nobenim elementom na tej strani.', QA_BAD_ITALICS: 'Oznake krepko in poševno imajo semantični pomen in se ne smejo uporabljati za poudarjanje celotnih odstavkov. Krepko označeno besedilo je treba uporabiti za močno izpostavitev besede ali besedne zveze. Ležečo pisavo je treba uporabljati za poudarjanje lastnih imen (npr. naslovov knjig in člankov), tujih besed, narekovajev. Dolgi citati morajo biti oblikovani kot blokovski citati.', - QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
                    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
                    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
                    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', + QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
                    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
                    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
                    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', QA_DOCUMENT: 'Dokumenta ni mogoče preveriti glede dostopnosti. Povezani dokumenti veljajo za spletno vsebino in morajo biti prav tako dostopni. Ta dokument preglejte ročno. ', QA_PAGE_LANGUAGE: 'Jezik strani ni prijavljen! Prosimo, da deklarirate jezik na oznaki HTML.', QA_PAGE_TITLE: 'Manjka naslov strani! Navedite naslov strani.', - QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(sanitizedText)
                    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', - QA_FAKE_HEADING: 'Ali je to naslov? %(boldtext)
                    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', - QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
                    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', + QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(TEXT)
                    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', + QA_FAKE_HEADING: 'Ali je to naslov? %(TEXT)
                    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', + QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
                    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', QA_UPPERCASE_WARNING: 'Našli ste vse kapice. Nekateri bralniki zaslona lahko besedilo z veliko začetnico razumejo kot kratico in preberejo vsako črko posebej. Poleg tega se nekaterim zdi, da je vse velike črke težje brati, in lahko dajejo vtis, kot da bi kričali.', QA_DUPLICATE_ID: 'Najden podvojen ID. Znano je, da napake z dvojnim ID povzročajo težave podpornim tehnologijam, ko poskušajo sodelovati z vsebino.
                    Prosimo, odstranite ali spremenite naslednji ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčrtano besedilo je mogoče zamenjati s povezavami. Razmislite o uporabi drugega sloga, kot je <strong>pomembnost</strong> ali <em>izraz</em>.', @@ -214,9 +220,9 @@ var sl = { TABLES_MISSING_HEADINGS: 'Manjkajo glave tabel! Dostopne tabele potrebujejo oznako HTML, ki označuje celice z glavo in podatkovne celice ter določa njihovo razmerje. Te informacije zagotavljajo kontekst ljudem, ki uporabljajo podporno tehnologijo. Tabele je treba uporabljati samo za tabelarne podatke.
                    Preberite več o dostopnih tabelah.', TABLES_SEMANTIC_HEADING: 'Semantične naslove, kot sta Heading 2 ali Heading 3, lahko uporabljate samo za dele vsebine; ne v tabelah HTML. Namesto tega naslove tabel označite z elementom <th>.
                    Preberite več o dostopnih tabelah.', TABLES_EMPTY_HEADING: 'Najden je prazen naglavni del tabele! Glave tabel ne smejo biti nikoli prazne. Pomembno je, da označite glave vrstic in/ali stolpcev in tako izrazite njihovo povezanost. Te informacije zagotavljajo kontekst za osebe, ki uporabljajo podporno tehnologijo. Ne pozabite, da je treba tabele uporabljati samo za tabelarične podatke.
                    Preberite več o dostopnih tabelah.', - CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
                    Kontrastno razmerje je %(cratio) za naslednje besedilo: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Prosimo, preglejte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Kontrastno razmerje: %(cratio)', + CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
                    Razmerje kontrasta %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Prosimo, preglejte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Razmerje kontrasta %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sl.umd.js b/docs/assets/js/lang/sl.umd.js index e8c4df09..a44f359c 100644 --- a/docs/assets/js/lang/sl.umd.js +++ b/docs/assets/js/lang/sl.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Izklopljeno', ALERT_TEXT: 'Opozorilo', ALERT_CLOSE: 'Zapri', - OUTLINE: 'Osnutek strani', + OUTLINE: 'Oris', + ALT: 'ALT', + IMAGES: 'Slike', + EDIT: 'Uredi', + IMAGES_NOT_FOUND: 'Ni najdenih slik.', + DECORATIVE: 'Dekorativno', + MISSING: 'Manjka', PAGE_ISSUES: 'Vprašanja strani', SETTINGS: 'Nastavitve', CONTRAST: 'Kontrast', @@ -155,7 +161,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Premalo vsebine za izračun ocene berljivosti.', HEADING_NON_CONSECUTIVE_LEVEL: 'Uporabljena je raven brez zaporednih naslovov. Naslovi nikoli ne smejo preskočiti ravni ali preiti iz Nadpis %(prevLevel) na Nadpis %(level).', HEADING_EMPTY: 'Najden je bil prazen naslov! To popravite tako, da izbrišete to vrstico ali spremenite njeno obliko iz Glavica %(level) v Normalno ali Odstavek.', - HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
                    Število znakov: %(headingLength)', + HEADING_LONG: 'Smer je dolga! Naslovi se uporabljajo za urejanje vsebine in izražanje strukture. Biti morajo kratki, informativni in edinstveni. Naj bodo naslovi krajši od 160 znakov (največ en stavek).
                    %(HEADING_LENGTH) Znakov', HEADING_FIRST: 'Prvi naslov na strani mora biti običajno naslov 1 ali 2. Naslov 1 mora biti začetek poglavja z glavno vsebino in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_MISSING_ONE: 'Manjka naslov 1. Naslov 1 mora biti začetek glavnega vsebinskega področja in je glavni naslov, ki opisuje splošni namen strani. Preberite več o Strukturi naslovov.', HEADING_EMPTY_WITH_IMAGE: 'Naslov nima besedila, vsebuje pa sliko. Če to ni naslov, spremenite njegovo obliko iz Nadpis %(level) v Normalno ali Odstavek. V nasprotnem primeru sliki dodajte besedilo alt, če ni okrasno.', @@ -163,38 +169,38 @@ PANEL_NO_HEADINGS: 'Ni najdenih naslovov.', LINK_EMPTY: 'Odstranite prazne povezave brez besedila.', LINK_EMPTY_LABELLEDBY: 'Povezava ima vrednost za aria-labelledby, ki je prazna ali se ne ujema z vrednostjo atributa id drugega elementa na strani.', - LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
                  • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
                  • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
                  • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
                  • ', - LINK_LABEL: 'Etiketa povezave: %(sanitizedText)', - LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(error)
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', - LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(error)
                    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
                    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
                    ', - LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', + LINK_EMPTY_LINK_NO_LABEL: 'Povezava nima razločljivega besedila, ki bi bilo vidno za bralnike zaslona in drugo podporno tehnologijo. Popravek:
                    • Dodajte nekaj jedrnatega besedila, ki opisuje, kam vas bo povezava pripeljala.
                    • Če gre za povezavo ikona ali SVG,, ji verjetno manjka opisna oznaka.
                    • Če menite, da je ta povezava napaka zaradi napake pri kopiranju/prilepljanju, razmislite o njenem izbrisu.
                    ', + LINK_LABEL: 'Etiketa %(TEXT)', + LINK_STOPWORD: 'Besedilo povezave morda ni dovolj opisno, če ni v kontekstu: %(ERROR)
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno. Izogibajte se pogostim besedam, kot sta "kliknite tukaj" ali "izvedeti več"', + LINK_BEST_PRACTICES: 'Razmislite o zamenjavi besedila povezave: %(ERROR)
                    • "Kliknite tukaj" se osredotoča na mehaniko miške, čeprav veliko ljudi ne uporablja miške ali pa si to spletno mesto morda ogleduje na mobilni napravi. Razmislite o uporabi drugega glagola, ki se nanaša na nalogo.
                    • Izogibajte se uporabi simbolov HTML kot klicev k dejanjem, razen če so skriti za podporne tehnologije.
                    ', + LINK_URL: 'Daljše in manj razumljive naslove URL, ki se uporabljajo kot besedilo povezav, je morda težko poslušati s pomožno tehnologijo. V večini primerov je bolje, da namesto URL-ja uporabite človeku berljivo besedilo. Kratki naslovi URL (kot je domača stran spletnega mesta) so v redu.
                    Tip! Besedilo povezave mora biti vedno jasno, edinstveno in smiselno, da ga je mogoče razumeti brez konteksta.', LINK_DOI: 'Pri spletnih straneh ali spletnih virih vodnik APA Style priporoča uporabo opisnih povezav, tako da URL ali DOI dela ovijete okoli njegovega naslova. Daljši in manj razumljivi naslovi URL, ki se uporabljajo kot besedilo povezave, so lahko pri dostopu s pomožno tehnologijo težko razumljivi.', - NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave
                    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', - FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
                    Primer: Izvršno poročilo (PDF, 3 MB)', - LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
                    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(sanitizedText)', + NEW_TAB_WARNING: 'Povezava se brez opozorila odpre v novem zavihku ali oknu. To je lahko moteče, zlasti za ljudi, ki imajo težave z zaznavanjem vizualne vsebine. Drugič, ni vedno dobra praksa, da bi nadzorovali izkušnjo nekoga ali sprejemali odločitve namesto njega. Navedite, da se povezava odpre v novem oknu, v besedilu povezave.
                    Tip! Spoznajte najboljše prakse: odpiranje povezav v novih oknih in zavihkih brskalnika.', + FILE_TYPE_WARNING: 'Povezava kaže na datoteko PDF ali datoteko za prenos (npr. MP3, Zip, Wordov dokument) brez opozorila. V besedilu povezave navedite vrsto datoteke. Če gre za veliko datoteko, razmislite o vključitvi velikosti datoteke.
                    Primer: Izvršno poročilo (PDF, 3 MB)', + LINK_IDENTICAL_NAME: 'Povezava ima enako besedilo kot druga povezava, čeprav kaže na drugo stran. Več povezav z enakim besedilom lahko povzroči zmedo pri ljudeh, ki uporabljajo bralnike zaslona.
                    Premislite, ali naj bo naslednja povezava bolj opisna, da jo boste lažje razlikovali od drugih povezav: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Slika se uporablja kot povezava z okoliškim besedilom, čeprav bi moral biti atribut alt označen kot okrasni ali ničen.', MISSING_ALT_LINK_MESSAGE: 'Slika se uporablja kot povezava, vendar nima besedila Alt! Prepričajte se, da besedilo alt opisuje, kam vas bo povezava pripeljala.', MISSING_ALT_MESSAGE: 'Manjka besedilo alt! Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite.', - LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(error).
                    Vrstično besedilo: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
                    Vrstično besedilo: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(error).
                    Tekst besedila: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(altText)', - ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(error)" morda odveč.
                    Tekst besedila: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Odstrani: %(ERROR)
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'V povezani sliki je bilo najdeno neopisno ali nadomestno besedilo alt. Prepričajte se, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike. Zamenjajte naslednje besedilo alt: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč. Zagotovite, da besedilo alt opisuje cilj povezave in ne dobesednega opisa slike.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Najdena razširitev datoteke v besedilu alt. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, jo obvezno opišite. Odstrani: %(ERROR)
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Najdeno neopisno ali nadomestno besedilo alt. Naslednje besedilo alt zamenjajte z bolj smiselnim: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Pomožne tehnologije že označujejo, da gre za sliko, zato je "%(ERROR)" morda odveč.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Povezava ima aria-hidden="true", vendar je še vedno dostopna s tipkovnico. Če nameravate skriti redundantno ali podvojeno povezavo, dodajte tudi tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Slika v povezavi je označena kot okrasna in nima besedila povezave. Sliki dodajte besedilo alt, ki opisuje cilj povezave.', LINK_IMAGE_HAS_TEXT: 'Slika je označena kot dekorativna, čeprav povezava uporablja okoliško besedilo kot opisno oznako.', - LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
                    Alt besedilo (%(altLength) znakov): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
                    Temeljno besedilo: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
                    Tekst besedila: %(altText)
                    Etiketa povezave: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
                    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
                    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
                    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
                    Preberi več: alt v primerjavi s figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
                    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
                    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
                    Več informacij: alt v primerjavi s figcaption.
                    Vrstično besedilo: %(altText)', + LINK_IMAGE_LONG_ALT: 'Opis besedila Alt na povezani sliki je predolg. Besedilo alt na povezanih slikah mora opisovati, kam vodi povezava, in ne dobesednega opisa slike. Premislite, da bi kot altovsko besedilo uporabili naslov strani, na katero vodi povezava.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Povezava do slike vsebuje besedilo alt. Ali besedilo opisuje, kam vas bo povezava pripeljala? Razmislite o uporabi naslova strani, na katero vodi povezava, kot alt besedila.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Slikovna povezava vsebuje oboje besedilo alt in okoliško besedilo povezave. Če je ta slika okrasna in se uporablja kot funkcionalna povezava na drugo stran, razmislite o označitvi slike kot okrasne ali ničelne - okoliško besedilo povezave bi moralo zadostovati.
                    ALT %(ALT_TEXT)
                    Etiketa %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala.
                    Čeprav je bil naveden naslov, bi morala imeti slika v večini primerov tudi alt besedilo.
                    • Temeljno besedilo mora vsebovati jedrnat opis tega, kar je na sliki.
                    • Podpis mora običajno zagotavljati kontekst, ki sliko povezuje z okoliško vsebino, ali opozarjati na določeno informacijo.
                    Preberi več: alt v primerjavi s figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Ne uporabljajte istih besed za besedilo alta in napisa. Bralniki zaslona bodo informacije objavili dvakrat.
                    • Besedilo alt mora vsebovati kratek opis tega, kar je na sliki.
                    • Podpis mora običajno vsebovati kontekst, ki sliko povezuje z okoliško vsebino, ali pa opozarja na določeno informacijo.
                    Več informacij: alt v primerjavi s figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Slika je označena kot dekorativna in jo podporna tehnologija ne bo upoštevala. Če slika sporoča zgodbo, razpoloženje ali pomembne informacije, obvezno dodajte dodatno besedilo.', - IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
                    Tekst besedila (%(altLength) znakov): %(altText)', - IMAGE_PASS: 'Tekst besedila: %(altText)', + IMAGE_ALT_TOO_LONG: 'Opis besedila Alt je predolg. Besedilo Alt mora biti jedrnato, vendar smiselno kot tweet (približno 100 znakov). Če gre za zapleteno sliko ali graf, razmislite o tem, da bi dolg opis slike umestili v spodnje besedilo ali komponento harmonike.
                    ALT %(altLength) Znakov %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'V gumbu za sliko manjka besedilo alt. Dodajte besedilo alt in zagotovite dostopno ime. Na primer: Poišči ali Oddaj.', LABELS_INPUT_RESET_MESSAGE: 'Gumbe za ponastavitev ne smete uporabljati, razen če je to posebej potrebno, saj jih je mogoče zlahka aktivirati po pomoti.
                    Tip! Preberite, zakaj Gumbova Reset in Cancel predstavljata težave z uporabnostjo.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
                    Oznaka za vnos: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Vnos ima dostopno ime, vendar poskrbite, da je vidna tudi nalepka.
                    Oznaka %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte atribut for oznaki, ki ustreza id tega vnosa.
                    ID tega vnosa je: id="%(id)".', LABELS_MISSING_LABEL_MESSAGE: 'S tem vnosom ni povezana nobena oznaka. Dodajte id temu vnosu in dodajte ustrezen atribut for oznaki.', EMBED_VIDEO: 'Poskrbite, da bodo vsi videoposnetki opremljeni s podnapisi. Zagotavljanje podnapisov za vse zvočne in video vsebine je obvezna zahteva na ravni A. Podnapisi so v pomoč gluhim in naglušnim osebam.', @@ -203,16 +209,16 @@ EMBED_MISSING_TITLE: 'Vgrajena vsebina potrebuje dostopno ime, ki opisuje njeno vsebino. V elementu iframe navedite edinstven atribut title ali aria-label. Preberite več o iFrames.', EMBED_GENERAL_WARNING: 'Ni mogoče preveriti vdelane vsebine. Prepričajte se, da imajo slike alternativno besedilo, videoposnetki podnapise, da je besedilo dovolj kontrastno in da so interaktivne komponente dostopne s tipkovnice.', EMBED_UNFOCUSABLE: '<iframe> z elementi, ki se jim ni mogoče osredotočiti, ne sme imeti tabindex="-1". Vgrajena vsebina ne bo dostopna prek tipkovnice.', - QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
                    Ta povezava kaže na:
                    %(el)', + QA_BAD_LINK: 'Najdena slaba povezava. Zdi se, da povezava kaže na razvojno okolje.
                    Ta povezava kaže na:
                    %(LINK)', QA_IN_PAGE_LINK: 'Okvarjena povezava na isto stran. Cilj povezave se ne ujema z nobenim elementom na tej strani.', QA_BAD_ITALICS: 'Oznake krepko in poševno imajo semantični pomen in se ne smejo uporabljati za poudarjanje celotnih odstavkov. Krepko označeno besedilo je treba uporabiti za močno izpostavitev besede ali besedne zveze. Ležečo pisavo je treba uporabljati za poudarjanje lastnih imen (npr. naslovov knjig in člankov), tujih besed, narekovajev. Dolgi citati morajo biti oblikovani kot blokovski citati.', - QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
                    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
                    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
                    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', + QA_PDF: 'Ni mogoče preveriti dostopnosti datotek PDF. Datoteke PDF veljajo za spletno vsebino in morajo biti prav tako dostopne. Datoteke PDF pogosto vsebujejo težave za ljudi, ki uporabljajo bralnike zaslona (manjkajoče strukturne oznake ali manjkajoče oznake polj obrazca), in ljudi s slabim vidom (besedilo se ne preliva, ko je povečano).
                    • Če gre za obrazec, razmislite o uporabi dostopnega obrazca HTML kot alternative.
                    • Če gre za dokument, razmislite o pretvorbi v spletno stran.
                    V nasprotnem primeru preverite PDF za dostopnost v programu Acrobat DC.', QA_DOCUMENT: 'Dokumenta ni mogoče preveriti glede dostopnosti. Povezani dokumenti veljajo za spletno vsebino in morajo biti prav tako dostopni. Ta dokument preglejte ročno. ', QA_PAGE_LANGUAGE: 'Jezik strani ni prijavljen! Prosimo, da deklarirate jezik na oznaki HTML.', QA_PAGE_TITLE: 'Manjka naslov strani! Navedite naslov strani.', - QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(sanitizedText)
                    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', - QA_FAKE_HEADING: 'Ali je to naslov? %(boldtext)
                    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', - QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
                    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', + QA_BLOCKQUOTE_MESSAGE: 'Ali je to naslov? %(TEXT)
                    Okvirne narekovaje je treba uporabljati samo za citate. Če naj bi bil to naslov, spremenite ta blokovnik v semantični naslov (npr. naslov 2 ali naslov 3).', + QA_FAKE_HEADING: 'Ali je to naslov? %(TEXT)
                    Vrstica krepkega ali velikega besedila je lahko videti kot naslov, vendar oseba, ki uporablja bralnik zaslona, ne more ugotoviti, da je besedilo pomembno, ali preiti na njegovo vsebino. Krepko ali veliko besedilo ne sme nikoli nadomestiti semantičnih naslovov (naslovi od 2 do 6).', + QA_SHOULD_BE_LIST: 'Želite ustvariti seznam? Najden je možen element seznama: %(firstPrefix)
                    Prepričajte se, da uporabljate semantične sezname tako, da namesto tega uporabite gumbe za oblikovanje kroglic ali številk. Pri uporabi semantičnega seznama lahko podporne tehnologije posredujejo informacije, kot sta skupno število elementov in relativni položaj vsakega elementa na seznamu. Preberite več o semantičnih seznamih.', QA_UPPERCASE_WARNING: 'Našli ste vse kapice. Nekateri bralniki zaslona lahko besedilo z veliko začetnico razumejo kot kratico in preberejo vsako črko posebej. Poleg tega se nekaterim zdi, da je vse velike črke težje brati, in lahko dajejo vtis, kot da bi kričali.', QA_DUPLICATE_ID: 'Najden podvojen ID. Znano je, da napake z dvojnim ID povzročajo težave podpornim tehnologijam, ko poskušajo sodelovati z vsebino.
                    Prosimo, odstranite ali spremenite naslednji ID: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Podčrtano besedilo je mogoče zamenjati s povezavami. Razmislite o uporabi drugega sloga, kot je <strong>pomembnost</strong> ali <em>izraz</em>.', @@ -220,9 +226,9 @@ TABLES_MISSING_HEADINGS: 'Manjkajo glave tabel! Dostopne tabele potrebujejo oznako HTML, ki označuje celice z glavo in podatkovne celice ter določa njihovo razmerje. Te informacije zagotavljajo kontekst ljudem, ki uporabljajo podporno tehnologijo. Tabele je treba uporabljati samo za tabelarne podatke.
                    Preberite več o dostopnih tabelah.', TABLES_SEMANTIC_HEADING: 'Semantične naslove, kot sta Heading 2 ali Heading 3, lahko uporabljate samo za dele vsebine; ne v tabelah HTML. Namesto tega naslove tabel označite z elementom <th>.
                    Preberite več o dostopnih tabelah.', TABLES_EMPTY_HEADING: 'Najden je prazen naglavni del tabele! Glave tabel ne smejo biti nikoli prazne. Pomembno je, da označite glave vrstic in/ali stolpcev in tako izrazite njihovo povezanost. Te informacije zagotavljajo kontekst za osebe, ki uporabljajo podporno tehnologijo. Ne pozabite, da je treba tabele uporabljati samo za tabelarične podatke.
                    Preberite več o dostopnih tabelah.', - CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
                    Kontrastno razmerje je %(cratio) za naslednje besedilo: %(sanitizedText)', - CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Prosimo, preglejte: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Kontrastno razmerje: %(cratio)', + CONTRAST_ERROR: 'Besedilo ni dovolj kontrastno glede na ozadje. Kontrastno razmerje bi moralo biti vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo.
                    Razmerje kontrasta %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Kontrast tega besedila ni znan in ga je treba ročno preveriti. Prepričajte se, da imata besedilo in ozadje močno kontrastne barve. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Prosimo, preglejte: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Besedilo v tem vnosu ni dovolj kontrastno z ozadjem. Kontrastno razmerje mora biti vsaj 4,5 : 1 za običajno besedilo in 3 : 1 za veliko besedilo.
                    Razmerje kontrasta %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sv.js b/docs/assets/js/lang/sv.js index 08267493..a9d000a3 100644 --- a/docs/assets/js/lang/sv.js +++ b/docs/assets/js/lang/sv.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,6 +27,12 @@ var sv = { ALERT_TEXT: 'Varning', ALERT_CLOSE: 'Stäng', OUTLINE: 'Sidöversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Redigera', + IMAGES_NOT_FOUND: 'Inga bilder hittades.', + DECORATIVE: 'Dekorativ', + MISSING: 'Saknas', PAGE_ISSUES: 'Sidproblem', SETTINGS: 'Inställningar', CONTRAST: 'Kontrast', @@ -134,7 +140,7 @@ var sv = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Icke-konsekutiv rubriknivå används. Rubriker bör aldrig hoppa över nivåer eller gå från Rubrik %(prevLevel) till Rubrik %(level).', HEADING_EMPTY: 'Tom rubrik hittades! För att åtgärda, ta bort den här raden eller ändra dess format från Rubrik %(level) till Normal eller Stycke.', - HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
                    Antal tecken: %(headingLength)', + HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
                    %(HEADING_LENGTH) Tecken', HEADING_FIRST: 'Den första rubriken på en sida bör vanligtvis vara en Rubrik 1 eller Rubrik 2. Rubrik 1 bör vara början på huvudinnehållsavsnittet och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_MISSING_ONE: 'Saknar Rubrik 1. Rubrik 1 bör vara början på huvudinnehållsområdet, och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Rubriken har ingen text, men innehåller en bild. Om detta inte är en rubrik ändrar du dess format från Rubrik %(level) till Normal eller Stycke. Annars, lägg till alt-text till bilden om den inte är dekorativ.', @@ -145,43 +151,43 @@ var sv = { LINK_EMPTY: 'Ta bort tomma länkar utan text.', LINK_EMPTY_LABELLEDBY: 'Länken har ett värde för aria-labelledby som antingen är tomt eller inte matchar värdet för ett annat elements attribut id på sidan.', LINK_EMPTY_LINK_NO_LABEL: 'Länken har inte urskiljbar text som är synlig för skärmläsare och andra hjälpmedel. För att fixa:
                    • Lägg till lite kortfattad text som beskriver vart länken tar dig.
                    • Om det är en ikonlänk eller SVG, saknar den troligen en beskrivande etikett.
                    • Om du tror att den här länken är ett fel på grund av ett kopierings-/klistra-fel, överväg att ta bort den.
                    ', - LINK_LABEL: 'Länketikett: %(sanitizedText)', - LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(error)
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', - LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(error)
                    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
                    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
                    ', - LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', + LINK_LABEL: 'Länketikett %(TEXT)', + LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(ERROR)
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', + LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(ERROR)
                    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
                    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
                    ', + LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', LINK_DOI: 'För webbsidor eller resurser som endast finns online rekommenderar APA Style Guide att man använder beskrivande länkar genom att linda in URL:en eller DOI:en för arbetet runt dess titel. Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel.', // Links advanced - NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten
                    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', - FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
                    Exempel: Verkställande rapport (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
                    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(sanitizedText)', + NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten.
                    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', + FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
                    Exempel: Verkställande rapport (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
                    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bilden används som en länk med omgivande text, dock borde alt-attributet markeras som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bilden används som länk men saknar alt-text! Se till att alt-texten beskriver vart länken tar dig.', MISSING_ALT_MESSAGE: 'Saknar alt-text! Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(error).
                    Alt-text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
                    Alt-text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(error).
                    Alt-text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig.
                    Alt-text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Länken har aria-hidden="true" men kan fortfarande fokuseras med hjälp av tangentbordet. Om du tänker dölja en överflödig eller duplicerad länk, lägg till tabindex="-1" också.', LINK_IMAGE_NO_ALT_TEXT: 'Bilden i länken är markerad som dekorativ och det finns ingen länktext. Vänligen lägg till alternativ text till bilden som beskriver länkens destination.', LINK_IMAGE_HAS_TEXT: 'Bilden är markerad som dekorativ, även om länken använder den omgivande texten som en beskrivande etikett.', - LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
                    Alt-text (%(altLength) tecken): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
                    Alt-text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
                    Alt-text: %(altText)
                    Länketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
                    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
                    Läs mer: alt kontra figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
                    Läs mer: alt kontra figcaption.
                    Alt-text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
                    ALT %(altLength) Tecken %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
                    ALT %(ALT_TEXT)
                    Länketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
                    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
                    Läs mer: alt kontra figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
                    Läs mer: alt kontra figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel. Om bilden förmedlar en historia, stämning eller annan viktig information – se till att lägga till alt-text.', - IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
                    Alt-text (%(altLength) tecken): %(altText)', - IMAGE_PASS: 'Alt-text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
                    ALT %(altLength) Tecken %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildknappen saknar alternativ text. Lägg till alt-text för att ge knappen ett tillgängligt namn. Till exempel: Sök eller Skicka.', LABELS_INPUT_RESET_MESSAGE: 'Återställningsknappar bör inte användas om de inte specifikt behövs, eftersom de är lätta att aktivera av misstag.
                    Tips! Lär dig varför Återställ- och Avbryt-knapparna orsakar användbarhetsproblem.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
                    Inmatningsetikett: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
                    Inmatningsetikett %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Lägg till ett for-attribut till etiketten som matchar id för detta inmatningsfält.
                    ID:t för detta inmatningsfält är: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Vänligen lägg till ett id till denna inmatning och lägg till ett matchande for-attribut till etiketten.', @@ -194,15 +200,15 @@ var sv = { EMBED_UNFOCUSABLE: '<iframe> med oväxlingsbara element bör inte ha tabindex="-1". Det inbäddade innehållet kommer inte att vara tillgängligt med tangentbordet.', // Quality assurance - QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
                    Den här länken pekar på:
                    %(el)', + QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
                    Den här länken pekar på:
                    %(LINK)', QA_IN_PAGE_LINK: 'Bruten samma-sideslänk. Länkmålet matchar inte något element på denna sida.', QA_BAD_ITALICS: 'Feta och kursiva HTML-taggar har semantisk betydelse och bör inte användas för att markera hela stycken. Fetstil text bör användas för att ge ett ord eller en fras stark betoning. Kursiv stil ska användas för att markera egennamn (d.v.s. bok- och artikeltitlar), främmande ord, citat. Långa citat bör formateras som ett blockcitat.', QA_PDF: 'Det går inte att kontrollera PDF-filer för tillgänglighet. PDF-filer betraktas som webbinnehåll och måste också göras tillgängliga. PDF-filer är ofta problematiska för personer som använder skärmläsare (till exempel: saknade strukturella taggar eller saknade formulärfältetiketter) och personer som har nedsatt syn (texten anpassar sig inte när den förstoras).
                    • Om detta är ett formulär, överväg att använda ett tillgängligt HTML-formulär som ett alternativ.
                    • Om detta är ett dokument, överväg att konvertera det till en webbsida.
                    Annars kontrollerar du PDF för tillgänglighet i Acrobat DC.', QA_DOCUMENT: 'Det gick inte att kontrollera dokumentets tillgänglighet. Länkade dokument betraktas som webbinnehåll och måste också göras tillgängliga. Granska dokumentet manuellt. ', QA_PAGE_LANGUAGE: 'Sidspråk är inte inställt! Vänligen ställ in språk på HTML-taggen.', QA_PAGE_TITLE: 'Sidtitel saknas! Ange en sidtitel.', - QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(sanitizedText)
                    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', - QA_FAKE_HEADING: 'Är detta en rubrik? %(boldtext)
                    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', + QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(TEXT)
                    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', + QA_FAKE_HEADING: 'Är detta en rubrik? %(TEXT)
                    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', QA_SHOULD_BE_LIST: 'Försöker du skapa en lista? Möjligt listobjekt hittat: %(firstPrefix)
                    Se till att använda semantiska listor genom att använda punkt- eller sifferformateringsknapparna istället. När du använder en semantisk lista kan hjälpmedel förmedla information som det totala antalet objekt och den relativa positionen för varje objekt i listan. Läs mer om semantiska listor.', QA_UPPERCASE_WARNING: 'Hittade text med enbart versaler. Vissa skärmläsare kan tolka versalskrift som en akronym och läser varje bokstav individuellt. Dessutom upplever vissa personer att det är svårare att läsa versalskrift och det kan se ut som att avsändaren SKRIKER.', QA_DUPLICATE_ID: 'Hittade duplicerat ID. Dubbletterade ID:n är kända för att orsaka problem för hjälpmedelsverktyg när de försöker interagera med innehåll.
                    Ta bort eller ändra följande ID: %(id)', @@ -215,9 +221,9 @@ var sv = { TABLES_EMPTY_HEADING: 'Tom tabellrubrik hittades! Tabellrubriker får aldrig vara tomma. Det är viktigt att ange rad- och/eller kolumnrubriker för att förmedla deras relation. Informationen ger sammanhang till personer som använder hjälpmedelsverktyg. Tänk på att tabeller endast ska användas för tabelldata.
                    Läs mer om tillgängliga tabeller.', // Contrast - CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållandet är %(cratio) för följande text: %(sanitizedText)', - CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Granska: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande: %(cratio)', + CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Granska: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande %(RATIO)', }, }; diff --git a/docs/assets/js/lang/sv.umd.js b/docs/assets/js/lang/sv.umd.js index c7fd2ce7..147957b8 100644 --- a/docs/assets/js/lang/sv.umd.js +++ b/docs/assets/js/lang/sv.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,6 +33,12 @@ ALERT_TEXT: 'Varning', ALERT_CLOSE: 'Stäng', OUTLINE: 'Sidöversikt', + ALT: 'ALT', + IMAGES: 'Bilder', + EDIT: 'Redigera', + IMAGES_NOT_FOUND: 'Inga bilder hittades.', + DECORATIVE: 'Dekorativ', + MISSING: 'Saknas', PAGE_ISSUES: 'Sidproblem', SETTINGS: 'Inställningar', CONTRAST: 'Kontrast', @@ -140,7 +146,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Icke-konsekutiv rubriknivå används. Rubriker bör aldrig hoppa över nivåer eller gå från Rubrik %(prevLevel) till Rubrik %(level).', HEADING_EMPTY: 'Tom rubrik hittades! För att åtgärda, ta bort den här raden eller ändra dess format från Rubrik %(level) till Normal eller Stycke.', - HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
                    Antal tecken: %(headingLength)', + HEADING_LONG: 'Rubriken är lång! Rubriker bör användas för att organisera innehåll och förmedla struktur. De ska vara korta, informativa och unika. Vänligen håll rubriker kortare än 160 tecken (högst en mening).
                    %(HEADING_LENGTH) Tecken', HEADING_FIRST: 'Den första rubriken på en sida bör vanligtvis vara en Rubrik 1 eller Rubrik 2. Rubrik 1 bör vara början på huvudinnehållsavsnittet och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_MISSING_ONE: 'Saknar Rubrik 1. Rubrik 1 bör vara början på huvudinnehållsområdet, och är huvudrubriken som beskriver sidans övergripande syfte. Läs mer om Rubrikstruktur.', HEADING_EMPTY_WITH_IMAGE: 'Rubriken har ingen text, men innehåller en bild. Om detta inte är en rubrik ändrar du dess format från Rubrik %(level) till Normal eller Stycke. Annars, lägg till alt-text till bilden om den inte är dekorativ.', @@ -151,43 +157,43 @@ LINK_EMPTY: 'Ta bort tomma länkar utan text.', LINK_EMPTY_LABELLEDBY: 'Länken har ett värde för aria-labelledby som antingen är tomt eller inte matchar värdet för ett annat elements attribut id på sidan.', LINK_EMPTY_LINK_NO_LABEL: 'Länken har inte urskiljbar text som är synlig för skärmläsare och andra hjälpmedel. För att fixa:
                    • Lägg till lite kortfattad text som beskriver vart länken tar dig.
                    • Om det är en ikonlänk eller SVG, saknar den troligen en beskrivande etikett.
                    • Om du tror att den här länken är ett fel på grund av ett kopierings-/klistra-fel, överväg att ta bort den.
                    ', - LINK_LABEL: 'Länketikett: %(sanitizedText)', - LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(error)
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', - LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(error)
                    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
                    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
                    ', - LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', + LINK_LABEL: 'Länketikett %(TEXT)', + LINK_STOPWORD: 'Länktexten kanske inte är tillräckligt beskrivande ur sitt sammanhang: %(ERROR)
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull. Undvik vanliga ord som "klicka här" eller "läs mer"', + LINK_BEST_PRACTICES: 'Överväg att ersätta länktexten: %(ERROR)
                    • "Klicka här" platser fokuserar på musmekanik, när många människor inte använder en mus eller kanske tittar på den här webbplatsen på en mobil enhet. Överväg att använda ett annat verb som relaterar till uppgiften.
                    • Undvik att använda HTML-symboler som uppmaning om de inte är dolda för hjälpmedel.
                    ', + LINK_URL: 'Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel. I de flesta fall är det bättre att använda läsbar text istället för URL:en. Korta webbadresser (som en webbplats startsida) är okej.
                    Tips! Länktexten ska alltid vara tydlig, unik och meningsfull så att den kan förstås tagen ur sitt sammanhang.', LINK_DOI: 'För webbsidor eller resurser som endast finns online rekommenderar APA Style Guide att man använder beskrivande länkar genom att linda in URL:en eller DOI:en för arbetet runt dess titel. Längre, mindre begripliga webbadresser som används som länktext kan vara svåra att lyssna på med hjälpmedel.', // Links advanced - NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten
                    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', - FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
                    Exempel: Verkställande rapport (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
                    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(sanitizedText)', + NEW_TAB_WARNING: 'Länken öppnas i en ny flik eller ett nytt fönster utan förvarning. Att göra det kan vara desorienterande, särskilt för personer som har svårt att uppfatta visuellt innehåll. För det andra är det inte alltid en bra praxis att styra någons erfarenhet eller fatta beslut åt dem. Ange att länken öppnas i ett nytt fönster i länktexten.
                    Tips! Lär dig bästa praxis: att öppna länkar i nya webbläsarfönster och flikar.', + FILE_TYPE_WARNING: 'Länken pekar till en PDF eller nedladdningsbar fil (t.ex. MP3, Zip, Word Doc) utan förvarning. Ange filtypen i länktexten. Om det är en stor fil, överväg att ta med filstorleken.
                    Exempel: Verkställande rapport (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Länken har identisk text som en annan länk, även om den pekar på en annan sida. Flera länkar med samma text kan orsaka förvirring för personer som använder skärmläsare.
                    Överväg att göra följande länk mer beskrivande för att hjälpa till att skilja den från andra länkar: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Bilden används som en länk med omgivande text, dock borde alt-attributet markeras som dekorativt eller null.', MISSING_ALT_LINK_MESSAGE: 'Bilden används som länk men saknar alt-text! Se till att alt-texten beskriver vart länken tar dig.', MISSING_ALT_MESSAGE: 'Saknar alt-text! Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden.', - LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(error).
                    Alt-text: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
                    Alt-text: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(error).
                    Alt-text: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(altText)', - ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(error)" kan vara överflödig.
                    Alt-text: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Se till att alt-texten beskriver destinationen för länken, inte en bokstavlig beskrivning av bilden. Ta bort: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text i en länkad bild. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden. Ersätt följande alt-text: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig. Se till att alt-texten beskriver länkens destination, och inte är en bokstavlig beskrivning av bilden.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Filändelse hittades i alt-texten. Om bilden förmedlar en historia, stämning eller viktig information – se till att beskriva bilden. Ta bort: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Hittade icke-beskrivande eller platshållande alt-text. Ersätt följande alt-text med något mer meningsfullt: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Hjälpmedel visar redan att detta är en bild, så "%(ERROR)" kan vara överflödig.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Länken har aria-hidden="true" men kan fortfarande fokuseras med hjälp av tangentbordet. Om du tänker dölja en överflödig eller duplicerad länk, lägg till tabindex="-1" också.', LINK_IMAGE_NO_ALT_TEXT: 'Bilden i länken är markerad som dekorativ och det finns ingen länktext. Vänligen lägg till alternativ text till bilden som beskriver länkens destination.', LINK_IMAGE_HAS_TEXT: 'Bilden är markerad som dekorativ, även om länken använder den omgivande texten som en beskrivande etikett.', - LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
                    Alt-text (%(altLength) tecken): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
                    Alt-text: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
                    Alt-text: %(altText)
                    Länketikett: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
                    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
                    Läs mer: alt kontra figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
                    Läs mer: alt kontra figcaption.
                    Alt-text: %(altText)', + LINK_IMAGE_LONG_ALT: 'Alternativ textbeskrivning för en länkad bild är för lång. Alt-text för länkade bilder ska beskriva vart länken tar dig, inte vara en bokstavlig beskrivning av bilden. Överväg att använda titeln på sidan den länkar till som alt-text.
                    ALT %(altLength) Tecken %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Bildlänken innehåller alt-text. Beskriver alt-texten vart länken tar dig? Överväg att använda titeln på den sida som länken leder till som alt-text.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Bildlänken innehåller både alt-text och omgivande länktext. Om den här bilden är dekorativ och används som en funktionell länk till en annan sida, överväg att markera bilden som dekorativ eller null - den omgivande länktexten bör räcka.
                    ALT %(ALT_TEXT)
                    Länketikett %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel.
                    Även om en textning tillhandahölls, bör bilden också ha alternativ text i de flesta fall.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Texten ska vanligtvis ge ett sammanhang för att relatera bilden till det omgivande innehållet, eller ge uppmärksamhet åt viss information.
                    Läs mer: alt kontra figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Använd inte exakt samma ord för både alt- och bildtext. Skärmläsare kommer då att förmedla samma information två gånger.
                    • Alt-texten ska ge en kortfattad beskrivning av vad som finns i bilden.
                    • Tillskriften ska vanligtvis ge sammanhang för att relatera bilden tillbaka till omgivningen innehåll eller ge uppmärksamhet åt en viss information.
                    Läs mer: alt kontra figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Bilden är markerad som dekorativ och kommer att ignoreras av hjälpmedel. Om bilden förmedlar en historia, stämning eller annan viktig information – se till att lägga till alt-text.', - IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
                    Alt-text (%(altLength) tecken): %(altText)', - IMAGE_PASS: 'Alt-text: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt-texten är för lång. Alt-text ska vara kortfattad men meningsfull som en tweet (cirka 100 tecken). Om detta är en komplex bild eller en graf, överväg att lägga in den längre beskrivningen av bilden i under bilden, eller i en dragspelskomponent.
                    ALT %(altLength) Tecken %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Bildknappen saknar alternativ text. Lägg till alt-text för att ge knappen ett tillgängligt namn. Till exempel: Sök eller Skicka.', LABELS_INPUT_RESET_MESSAGE: 'Återställningsknappar bör inte användas om de inte specifikt behövs, eftersom de är lätta att aktivera av misstag.
                    Tips! Lär dig varför Återställ- och Avbryt-knapparna orsakar användbarhetsproblem.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
                    Inmatningsetikett: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Inmatningsfältet har ett tillgängligt namn, men se till att det även finns en synlig etikett.
                    Inmatningsetikett %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Lägg till ett for-attribut till etiketten som matchar id för detta inmatningsfält.
                    ID:t för detta inmatningsfält är: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Det finns ingen etikett associerad med detta inmatningsfält. Vänligen lägg till ett id till denna inmatning och lägg till ett matchande for-attribut till etiketten.', @@ -200,15 +206,15 @@ EMBED_UNFOCUSABLE: '<iframe> med oväxlingsbara element bör inte ha tabindex="-1". Det inbäddade innehållet kommer inte att vara tillgängligt med tangentbordet.', // Quality assurance - QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
                    Den här länken pekar på:
                    %(el)', + QA_BAD_LINK: 'Dålig länk hittades. Länk verkar peka till en utvecklingsmiljö.
                    Den här länken pekar på:
                    %(LINK)', QA_IN_PAGE_LINK: 'Bruten samma-sideslänk. Länkmålet matchar inte något element på denna sida.', QA_BAD_ITALICS: 'Feta och kursiva HTML-taggar har semantisk betydelse och bör inte användas för att markera hela stycken. Fetstil text bör användas för att ge ett ord eller en fras stark betoning. Kursiv stil ska användas för att markera egennamn (d.v.s. bok- och artikeltitlar), främmande ord, citat. Långa citat bör formateras som ett blockcitat.', QA_PDF: 'Det går inte att kontrollera PDF-filer för tillgänglighet. PDF-filer betraktas som webbinnehåll och måste också göras tillgängliga. PDF-filer är ofta problematiska för personer som använder skärmläsare (till exempel: saknade strukturella taggar eller saknade formulärfältetiketter) och personer som har nedsatt syn (texten anpassar sig inte när den förstoras).
                    • Om detta är ett formulär, överväg att använda ett tillgängligt HTML-formulär som ett alternativ.
                    • Om detta är ett dokument, överväg att konvertera det till en webbsida.
                    Annars kontrollerar du PDF för tillgänglighet i Acrobat DC.', QA_DOCUMENT: 'Det gick inte att kontrollera dokumentets tillgänglighet. Länkade dokument betraktas som webbinnehåll och måste också göras tillgängliga. Granska dokumentet manuellt. ', QA_PAGE_LANGUAGE: 'Sidspråk är inte inställt! Vänligen ställ in språk på HTML-taggen.', QA_PAGE_TITLE: 'Sidtitel saknas! Ange en sidtitel.', - QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(sanitizedText)
                    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', - QA_FAKE_HEADING: 'Är detta en rubrik? %(boldtext)
                    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', + QA_BLOCKQUOTE_MESSAGE: 'Är detta en rubrik? %(TEXT)
                    Blockcitat bör endast användas för citattecken. Om detta är tänkt att vara en rubrik, ändra detta blockcitat till en semantisk rubrik (t.ex. Rubrik 2 eller Rubrik 3).', + QA_FAKE_HEADING: 'Är detta en rubrik? %(TEXT)
                    En rad med fet eller stor text kan se ut som en rubrik, men någon som använder en skärmläsare kan inte se att den är viktig eller hoppa till innehållet. Fet eller stor text ska aldrig ersätta semantiska rubriker (Rubrik 2 till Rubrik 6).', QA_SHOULD_BE_LIST: 'Försöker du skapa en lista? Möjligt listobjekt hittat: %(firstPrefix)
                    Se till att använda semantiska listor genom att använda punkt- eller sifferformateringsknapparna istället. När du använder en semantisk lista kan hjälpmedel förmedla information som det totala antalet objekt och den relativa positionen för varje objekt i listan. Läs mer om semantiska listor.', QA_UPPERCASE_WARNING: 'Hittade text med enbart versaler. Vissa skärmläsare kan tolka versalskrift som en akronym och läser varje bokstav individuellt. Dessutom upplever vissa personer att det är svårare att läsa versalskrift och det kan se ut som att avsändaren SKRIKER.', QA_DUPLICATE_ID: 'Hittade duplicerat ID. Dubbletterade ID:n är kända för att orsaka problem för hjälpmedelsverktyg när de försöker interagera med innehåll.
                    Ta bort eller ändra följande ID: %(id)', @@ -221,9 +227,9 @@ TABLES_EMPTY_HEADING: 'Tom tabellrubrik hittades! Tabellrubriker får aldrig vara tomma. Det är viktigt att ange rad- och/eller kolumnrubriker för att förmedla deras relation. Informationen ger sammanhang till personer som använder hjälpmedelsverktyg. Tänk på att tabeller endast ska användas för tabelldata.
                    Läs mer om tillgängliga tabeller.', // Contrast - CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållandet är %(cratio) för följande text: %(sanitizedText)', - CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Granska: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande: %(cratio)', + CONTRAST_ERROR: 'Denna text har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Denna texts är okänd och måste granskas manuellt. Se till att texten och bakgrunden har starka kontrasterande färger. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Granska: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Text i detta inmatningsfält har inte tillräcklig kontrast mot bakgrunden. Kontrastförhållandet bör vara minst 4,5:1 för normal text och 3:1 för stor text.
                    Kontrastförhållande %(RATIO)', }, }; diff --git a/docs/assets/js/lang/tr.js b/docs/assets/js/lang/tr.js index 7c312a86..7d66dc51 100644 --- a/docs/assets/js/lang/tr.js +++ b/docs/assets/js/lang/tr.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var tr = { OFF: 'Kapalı', ALERT_TEXT: 'Uyarı', ALERT_CLOSE: 'Kapat', - OUTLINE: 'Sayfa Anahatları', + OUTLINE: 'Taslak', + ALT: 'ALT', + IMAGES: 'Görseller', + EDIT: 'Düzenle', + IMAGES_NOT_FOUND: 'Resim bulunamadı.', + DECORATIVE: 'Dekoratif', + MISSING: 'Eksik', PAGE_ISSUES: 'Sayfa Sorunları', SETTINGS: 'Ayarlar', CONTRAST: 'Kontrast', @@ -148,7 +154,7 @@ var tr = { READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Okunabilirlik puanını hesaplamak için yeterli içerik yok.', HEADING_NON_CONSECUTIVE_LEVEL: "Ardışık olmayan başlık seviyesi kullanıldı. Başlıklar asla seviye atlamamalı veya Başlık %(prevLevel)'den Başlık %(level)'e geçmemelidir.", HEADING_EMPTY: 'Boş başlık bulundu! Düzeltmek için bu satırı silin veya biçimini Heading %(level) yerine Normal veya Paragraph olarak değiştirin.', - HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
                    Karakter sayısı: %(headingLength)', + HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
                    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Bir sayfadaki ilk başlık genellikle Başlık 1 veya Başlık 2 olmalıdır. Başlık 1, ana içerik bölümünün başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_MISSING_ONE: 'Eksik Başlık 1. Başlık 1, ana içerik alanının başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_EMPTY_WITH_IMAGE: 'Başlığın metni yoktur, ancak bir resim içerir. Bu bir başlık değilse, biçimini Başlık %(level) yerine Normal veya Paragraf olarak değiştirin. Aksi takdirde, dekoratif değilse lütfen resme alt metin ekleyin.', @@ -157,65 +163,65 @@ var tr = { LINK_EMPTY: 'Herhangi bir metin içermeyen boş bağlantıları kaldırın.', LINK_EMPTY_LABELLEDBY: 'Bağlantının aria-labelledby değeri boş veya sayfadaki başka bir öğenin id özniteliği değeriyle eşleşmiyor.', LINK_EMPTY_LINK_NO_LABEL: 'Bağlantı, ekran okuyucular ve diğer yardımcı teknolojiler tarafından görülebilen ayırt edilebilir bir metne sahip değil. Düzeltmek için:
                    • Bağlantının sizi nereye götürdüğünü açıklayan kısa bir metin ekleyin.
                    • Bu bir ikon bağlantısı veya SVG, ise muhtemelen açıklayıcı bir etiket eksiktir.
                    • Bu bağlantının bir kopyala/yapıştır hatasından kaynaklanan bir hata olduğunu düşünüyorsanız, silmeyi düşünün.
                    ', - LINK_LABEL: 'Link etiketi: %(sanitizedText)', - LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(error)
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', - LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(error)
                    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
                    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
                    ', - LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", + LINK_LABEL: 'Link etiketi %(TEXT)', + LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(ERROR)
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', + LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(ERROR)
                    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
                    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
                    ', + LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", LINK_DOI: 'Web sayfaları veya yalnızca çevrimiçi kaynaklar için APA Stil kılavuzu, çalışmanın URL\'sini veya DOI\'sini başlığının etrafına sararak açıklayıcı bağlantılar kullanılmasını önerir. Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL\'lerin yardımcı teknoloji ile erişildiğinde anlaşılması zor olabilir.', - NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin
                    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', - FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
                    Örnek: Yönetici Raporu (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
                    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(sanitizedText)', + NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin.
                    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', + FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
                    Örnek: Yönetici Raporu (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
                    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Görüntü, çevresindeki metinle birlikte bir bağlantı olarak kullanılıyor, ancak alt özniteliği dekoratif veya boş olarak işaretlenmelidir.', MISSING_ALT_LINK_MESSAGE: 'Resim bağlantı olarak kullanılıyor ancak alt metni eksik! Lütfen alt metnin bağlantının sizi nereye götüreceğini açıkladığından emin olun.', MISSING_ALT_MESSAGE: 'Eksik alt metin! Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(error).
                    Alt metin: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(error)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
                    Alt metin: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(error).
                    Alt metin: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(altText)', - ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(error)" gereksiz olabilir.
                    Alt metin: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(ERROR)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(ERROR)" gereksiz olabilir.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Bağlantıda aria-hidden="true" özelliği var ancak hala klavye ile odaklanılabilir. Eğer gereksiz veya tekrar eden bir bağlantıyı gizlemeyi düşünüyorsanız, tabindex="-1" özelliğini de ekleyin.', LINK_IMAGE_NO_ALT_TEXT: 'Bağlantı içindeki resim dekoratif olarak işaretlenmiş ve bağlantı metni yok. Lütfen resme bağlantının hedefini açıklayan alt metin ekleyin.', LINK_IMAGE_HAS_TEXT: 'Bağlantı, çevresindeki metni açıklayıcı bir etiket olarak kullanmasına rağmen görüntü dekoratif olarak işaretlenmiştir.', - LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
                    Alt metin (%(altLength) karakter): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
                    Alt metin: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
                    Alt metin: %(altText)
                    Link etiketi: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
                    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
                    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
                    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.
                    Alt metin: %(altText)', + LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
                    ALT %(ALT_TEXT)
                    Etiketi %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
                    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
                    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
                    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Görüntü dekoratif olarak işaretlenir ve yardımcı teknoloji tarafından göz ardı edilir. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa alt metin eklediğinizden emin olun.', - IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
                    Alt metin (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt metin: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Resim düğmesinin alt metni eksik. Lütfen erişilebilir bir ad sağlamak için alt metin ekleyin. Örneğin: Arama veya Gönder.', LABELS_INPUT_RESET_MESSAGE: 'Sıfırla düğmeleri özellikle gerekmedikçe kullanılmamalıdır çünkü yanlışlıkla etkinleştirilmeleri kolaydır.
                    İpucu! Reset ve İptal düğmelerinin neden kullanılabilirlik sorunları oluşturduğunu öğrenin.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
                    Giriş etiketi: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
                    Giriş etiketi %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Bu girdiyle ilişkilendirilmiş bir etiket yok. Etikete, bu girdinin id'siyle eşleşen bir for niteliği ekleyin.
                    Bu girdinin kimliği şudur: id="%(id)"", LABELS_MISSING_LABEL_MESSAGE: 'Bu girdiyle ilişkilendirilmiş bir etiket yok. Lütfen bu girdiye bir id ekleyin ve etikete eşleşen bir for niteliği ekleyin.', EMBED_VIDEO: 'Lütfen tüm videolarda altyazı olduğundan emin olun. Tüm ses ve video içerikleri için altyazı sağlanması zorunlu bir A Düzeyi gerekliliğidir. Altyazılar, işitme engelli veya işitme güçlüğü çeken kişileri destekler.', EMBED_AUDIO: "Lütfen tüm podcast'ler için bir transkript sağladığınızdan emin olun. Ses içeriği için transkript sağlamak zorunlu bir Seviye A gerekliliğidir. Transkriptler işitme engelli veya işitme güçlüğü çeken kişileri destekler, ancak herkese fayda sağlayabilir. Transkripti aşağıya veya bir akordeon panel içine yerleştirmeyi düşünün.", - EMBED_DATA_VIZ: "Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
                    karmaşık görüntüler hakkında daha fazla bilgi edinin.", - EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames. hakkında daha fazla bilgi edinin', + EMBED_DATA_VIZ: 'Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget\'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
                    karmaşık görüntüler hakkında daha fazla bilgi edinin.', + EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames.', EMBED_GENERAL_WARNING: 'Gömülü içerik kontrol edilemiyor. Lütfen resimlerin alt metni, videoların alt yazısı, metinlerin yeterli kontrastı ve etkileşimli bileşenlerin klavye ile erişilebilir olduğundan emin olun.', EMBED_UNFOCUSABLE: 'Odaklanılamayan öğeler içeren <iframe>, tabindex="-1" olmamalıdır. Gömülü içerik klavye ile erişilebilir olmayacak.', - QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
                    Bu bağlantı şuraya işaret ediyor:
                    %(el)', + QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
                    Bu bağlantı şuraya işaret ediyor:
                    %(LINK)', QA_IN_PAGE_LINK: 'Kırık aynı sayfa bağlantısı. Bağlantı hedefi, bu sayfadaki herhangi bir öğeyle eşleşmiyor.', QA_BAD_ITALICS: 'Kalın ve italik etiketlerinin anlamsal bir anlamı vardır ve paragrafların tamamını vurgulamak için kullanılmamalıdır. Kalınlaştırılmış metin, bir kelime veya cümleye güçlü bir vurgu yapmak için kullanılmalıdır. İtalik yazılar özel isimleri (kitap ve makale başlıkları gibi), yabancı kelimeleri ve alıntıları vurgulamak için kullanılmalıdır. Uzun alıntılar blok alıntı olarak biçimlendirilmelidir.', - QA_PDF: "PDF'ler erişilebilirlik açısından kontrol edilemiyor. PDF'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
                    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
                    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
                    Aksi takdirde, lütfen Acrobat DC'de erişilebilirlik için PDF'yi kontrol edin.", + QA_PDF: 'PDF\'ler erişilebilirlik açısından kontrol edilemiyor. PDF\'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF\'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
                    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
                    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
                    Aksi takdirde, lütfen Acrobat DC\'de erişilebilirlik için PDF\'yi kontrol edin.', QA_DOCUMENT: 'Belge erişilebilirlik açısından kontrol edilemiyor. Bağlantılı belgeler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. Lütfen bu belgeyi manuel olarak inceleyin. ', QA_PAGE_LANGUAGE: 'Sayfa dili bildirilmedi! Lütfen declare language on HTML tag.', QA_PAGE_TITLE: 'Sayfa başlığı eksik! Lütfen bir sayfa başlığı sağlayın.', - QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(sanitizedText)
                    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', - QA_FAKE_HEADING: "Bu bir başlık mı? %(boldtext)
                    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", - QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
                    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', + QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(TEXT)
                    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', + QA_FAKE_HEADING: "Bu bir başlık mı? %(TEXT)
                    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", + QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
                    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', QA_UPPERCASE_WARNING: 'Büyük harfler bulundu. Bazı ekran okuyucular büyük harfle yazılan metni kısaltma olarak yorumlayabilir ve her harfi ayrı ayrı okuyabilir. Ayrıca, bazı kişiler büyük harfleri okumayı daha zor bulabilir ve bu durum BAĞIRMA görüntüsü verebilir.', - QA_DUPLICATE_ID: 'yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
                    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', + QA_DUPLICATE_ID: 'Yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
                    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Altı çizili metin bağlantılarla karıştırılabilir. <strong>strong importance</strong> veya <em>emphasis</em> gibi farklı bir stil kullanmayı düşünün.', QA_SUBSCRIPT_WARNING: 'Alt simge ve üst simge biçimlendirme seçenekleri yalnızca tipografik kurallar veya standartlar için metnin konumunu değiştirmek amacıyla kullanılmalıdır. Yalnızca sunum veya görünüm amacıyla kullanılmamalıdır. Tüm cümlelerin biçimlendirilmesi okunabilirlik sorunları yaratır. Uygun kullanım durumları arasında üslerin, dördüncü yerine 4üncü gibi sıra sayılarının ve kimyasal formüllerin (örneğin H2O) gösterilmesi yer alır.', TABLES_MISSING_HEADINGS: 'Eksik tablo başlıkları! Erişilebilir tablolar, başlık hücrelerini ve aralarındaki ilişkiyi tanımlayan veri hücrelerini gösteren HTML işaretlemesine ihtiyaç duyar. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Tablolar yalnızca tablo verileri için kullanılmalıdır.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_SEMANTIC_HEADING: 'Heading 2 veya Heading 3 gibi anlamsal başlıklar yalnızca içerik bölümleri için kullanılmalıdır; HTML tablolarında değil. Bunun yerine tablo başlıklarını <th> öğesini kullanarak belirtin.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_EMPTY_HEADING: 'Boş tablo başlığı bulundu! Tablo başlıkları asla boş olmamalıdır. İlişkilerini aktarmak için satır ve/veya sütun başlıklarını belirlemek önemlidir. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Lütfen tabloların yalnızca tablo halindeki veriler için kullanılması gerektiğini unutmayın.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', - CONTRAST_ERROR: "Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Aşağıdaki metin için kontrast oranı %(cratio)'dur: %(sanitizedText)", - CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Lütfen inceleyin: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast oranı: %(cratio)', + CONTRAST_ERROR: 'Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast Oranı %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Lütfen inceleyin: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast Oranı %(RATIO) %(TEXT)', }, }; diff --git a/docs/assets/js/lang/tr.umd.js b/docs/assets/js/lang/tr.umd.js index e5b54479..f2204ded 100644 --- a/docs/assets/js/lang/tr.umd.js +++ b/docs/assets/js/lang/tr.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: 'Kapalı', ALERT_TEXT: 'Uyarı', ALERT_CLOSE: 'Kapat', - OUTLINE: 'Sayfa Anahatları', + OUTLINE: 'Taslak', + ALT: 'ALT', + IMAGES: 'Görseller', + EDIT: 'Düzenle', + IMAGES_NOT_FOUND: 'Resim bulunamadı.', + DECORATIVE: 'Dekoratif', + MISSING: 'Eksik', PAGE_ISSUES: 'Sayfa Sorunları', SETTINGS: 'Ayarlar', CONTRAST: 'Kontrast', @@ -154,7 +160,7 @@ READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: 'Okunabilirlik puanını hesaplamak için yeterli içerik yok.', HEADING_NON_CONSECUTIVE_LEVEL: "Ardışık olmayan başlık seviyesi kullanıldı. Başlıklar asla seviye atlamamalı veya Başlık %(prevLevel)'den Başlık %(level)'e geçmemelidir.", HEADING_EMPTY: 'Boş başlık bulundu! Düzeltmek için bu satırı silin veya biçimini Heading %(level) yerine Normal veya Paragraph olarak değiştirin.', - HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
                    Karakter sayısı: %(headingLength)', + HEADING_LONG: 'Başlık uzun! Başlıklar içeriği düzenlemek ve yapıyı aktarmak için kullanılmalıdır. Kısa, bilgilendirici ve benzersiz olmalıdırlar. Lütfen başlıkları 160 karakterden az tutun (bir cümleden fazla olmamalıdır).
                    %(HEADING_LENGTH) Karakter', HEADING_FIRST: 'Bir sayfadaki ilk başlık genellikle Başlık 1 veya Başlık 2 olmalıdır. Başlık 1, ana içerik bölümünün başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_MISSING_ONE: 'Eksik Başlık 1. Başlık 1, ana içerik alanının başlangıcı olmalıdır ve sayfanın genel amacını açıklayan ana başlıktır. Başlık Yapısı hakkında daha fazla bilgi edinin.', HEADING_EMPTY_WITH_IMAGE: 'Başlığın metni yoktur, ancak bir resim içerir. Bu bir başlık değilse, biçimini Başlık %(level) yerine Normal veya Paragraf olarak değiştirin. Aksi takdirde, dekoratif değilse lütfen resme alt metin ekleyin.', @@ -163,65 +169,65 @@ LINK_EMPTY: 'Herhangi bir metin içermeyen boş bağlantıları kaldırın.', LINK_EMPTY_LABELLEDBY: 'Bağlantının aria-labelledby değeri boş veya sayfadaki başka bir öğenin id özniteliği değeriyle eşleşmiyor.', LINK_EMPTY_LINK_NO_LABEL: 'Bağlantı, ekran okuyucular ve diğer yardımcı teknolojiler tarafından görülebilen ayırt edilebilir bir metne sahip değil. Düzeltmek için:
                    • Bağlantının sizi nereye götürdüğünü açıklayan kısa bir metin ekleyin.
                    • Bu bir ikon bağlantısı veya SVG, ise muhtemelen açıklayıcı bir etiket eksiktir.
                    • Bu bağlantının bir kopyala/yapıştır hatasından kaynaklanan bir hata olduğunu düşünüyorsanız, silmeyi düşünün.
                    ', - LINK_LABEL: 'Link etiketi: %(sanitizedText)', - LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(error)
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', - LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(error)
                    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
                    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
                    ', - LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", + LINK_LABEL: 'Link etiketi %(TEXT)', + LINK_STOPWORD: 'Bağlantı metni bağlam dışında yeterince açıklayıcı olmayabilir: %(ERROR)
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır. Buraya tıklayın" veya "daha fazla bilgi edinin" gibi yaygın kelimelerden kaçının;', + LINK_BEST_PRACTICES: 'Bağlantı metnini değiştirmeyi düşünün: %(ERROR)
                    • "Buraya tıklayın" birçok kişi fare kullanmadığında veya bu web sitesini bir mobil cihazda görüntülüyor olabileceğinde fare mekaniğine odaklanır. Görevle ilgili farklı bir fiil kullanmayı düşünün.
                    • Yardımcı teknolojiler için gizli olmadıkça HTML sembollerini eylem çağrısı olarak kullanmaktan kaçının.
                    ', + LINK_URL: "Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL'lerin yardımcı teknoloji ile dinlenmesi zor olabilir. Çoğu durumda, URL yerine insan tarafından okunabilir metin kullanmak daha iyidir. Kısa URL'ler (bir sitenin ana sayfası gibi) uygundur.
                    İpucu! Bağlantı metni her zaman açık, benzersiz ve anlamlı olmalıdır, böylece bağlam dışında da anlaşılabilir.", LINK_DOI: 'Web sayfaları veya yalnızca çevrimiçi kaynaklar için APA Stil kılavuzu, çalışmanın URL\'sini veya DOI\'sini başlığının etrafına sararak açıklayıcı bağlantılar kullanılmasını önerir. Bağlantı metni olarak kullanılan daha uzun, daha az anlaşılır URL\'lerin yardımcı teknoloji ile erişildiğinde anlaşılması zor olabilir.', - NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin
                    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', - FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
                    Örnek: Yönetici Raporu (PDF, 3MB)', - LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
                    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(sanitizedText)', + NEW_TAB_WARNING: 'Bağlantı uyarı vermeden yeni bir sekmede veya pencerede açılır. Bunu yapmak, özellikle görsel içeriği algılamakta zorluk çeken kişiler için kafa karıştırıcı olabilir. İkinci olarak, bir kişinin deneyimini kontrol etmek veya onun yerine karar vermek her zaman iyi bir uygulama değildir. Bağlantı metninde bağlantının yeni bir pencerede açıldığını belirtin.
                    İpucu! En iyi uygulamaları öğrenin: bağlantıları yeni tarayıcı pencerelerinde ve sekmelerinde açma.', + FILE_TYPE_WARNING: 'Bağlantı, uyarı vermeden bir PDF veya indirilebilir dosyaya (örn. MP3, Zip, Word Doc) işaret ediyor. Bağlantı metni içinde dosya türünü belirtin. Büyük bir dosya ise, dosya boyutunu da eklemeyi düşünün.
                    Örnek: Yönetici Raporu (PDF, 3MB)', + LINK_IDENTICAL_NAME: 'Bağlantı, farklı bir sayfaya işaret etmesine rağmen başka bir bağlantıyla aynı metne sahip. Aynı metne sahip birden fazla bağlantı, ekran okuyucu kullanan kişiler için kafa karışıklığına neden olabilir.
                    Aşağıdaki bağlantıyı diğer bağlantılardan ayırt etmeye yardımcı olmak için daha açıklayıcı hale getirmeyi düşünün: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Görüntü, çevresindeki metinle birlikte bir bağlantı olarak kullanılıyor, ancak alt özniteliği dekoratif veya boş olarak işaretlenmelidir.', MISSING_ALT_LINK_MESSAGE: 'Resim bağlantı olarak kullanılıyor ancak alt metni eksik! Lütfen alt metnin bağlantının sizi nereye götüreceğini açıkladığından emin olun.', MISSING_ALT_MESSAGE: 'Eksik alt metin! Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun.', - LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(error).
                    Alt metin: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(error)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
                    Alt metin: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(error).
                    Alt metin: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(altText)', - ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(error)" gereksiz olabilir.
                    Alt metin: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Alt metin içinde dosya uzantısı bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Kaldırın: %(ERROR).
                    ALT %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Bağlantılı bir resim içinde tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Alt metnin, görüntünün gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun. Aşağıdaki alt metni değiştirin: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu gösterir, bu nedenle "%(ERROR)" gereksiz olabilir. Alt metnin, resmin gerçek bir tanımını değil, bağlantının hedefini açıkladığından emin olun.
                    ALT %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Bulunan alt metin içinde dosya uzantısı. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa, görseli tanımladığınızdan emin olun. Kaldırın: %(ERROR).
                    ALT %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Tanımlayıcı olmayan veya yer tutucu alt metin bulundu. Aşağıdaki alt metni daha anlamlı bir metinle değiştirin: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Yardımcı teknolojiler zaten bunun bir resim olduğunu belirtmektedir, bu nedenle "%(ERROR)" gereksiz olabilir.
                    ALT %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Bağlantıda aria-hidden="true" özelliği var ancak hala klavye ile odaklanılabilir. Eğer gereksiz veya tekrar eden bir bağlantıyı gizlemeyi düşünüyorsanız, tabindex="-1" özelliğini de ekleyin.', LINK_IMAGE_NO_ALT_TEXT: 'Bağlantı içindeki resim dekoratif olarak işaretlenmiş ve bağlantı metni yok. Lütfen resme bağlantının hedefini açıklayan alt metin ekleyin.', LINK_IMAGE_HAS_TEXT: 'Bağlantı, çevresindeki metni açıklayıcı bir etiket olarak kullanmasına rağmen görüntü dekoratif olarak işaretlenmiştir.', - LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
                    Alt metin (%(altLength) karakter): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
                    Alt metin: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
                    Alt metin: %(altText)
                    Link etiketi: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
                    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
                    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
                    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.
                    Alt metin: %(altText)', + LINK_IMAGE_LONG_ALT: 'Bağlantılı bir görseldeki alt metin açıklaması çok uzun. Bağlantılı görsellerdeki alt metin, görselin birebir açıklamasını değil, bağlantının sizi nereye götürdüğünü açıklamalıdır. Alt metin olarak bağlantı verilen sayfanın başlığını kullanmayı düşünün.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Resim bağlantısı alt metin içeriyor. Alt metin bağlantının sizi nereye götürdüğünü açıklıyor mu? Bağlantı verilen sayfanın başlığını alt metin olarak kullanmayı düşünün.
                    ALT %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Resim bağlantısı hem alt metin hem de çevresindeki bağlantı metnini içerir. Bu resim dekoratifse ve başka bir sayfaya işlevsel bir bağlantı olarak kullanılıyorsa, resmi dekoratif veya boş olarak işaretlemeyi düşünün - çevresindeki bağlantı metni yeterli olmalıdır.
                    ALT %(ALT_TEXT)
                    Etiketi %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Resim dekoratif olarak işaretlenmiştir ve yardımcı teknoloji tarafından göz ardı edilecektir.
                    Bir başlık verilmiş olsa da, çoğu durumda görselin alt metni de olmalıdır.
                    • Alt metin, görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.', + IMAGE_FIGURE_DUPLICATE_ALT: 'Hem alt hem de başlık metni için aynı kelimeleri kullanmayın. Ekran okuyucular bilgileri iki kez duyuracaktır.
                    • Alt metin görselde ne olduğuna dair kısa bir açıklama sağlamalıdır.
                    • Alt yazı genellikle görseli çevreleyen içerikle ilişkilendirmek için bağlam sağlamalı veya belirli bir bilgi parçasına dikkat çekmelidir.
                    Daha fazla bilgi edinin: alt versus figcaption.
                    ALT %(ALT_TEXT)', IMAGE_DECORATIVE: 'Görüntü dekoratif olarak işaretlenir ve yardımcı teknoloji tarafından göz ardı edilir. Görsel bir hikaye, ruh hali veya önemli bir bilgi aktarıyorsa alt metin eklediğinizden emin olun.', - IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
                    Alt metin (%(altLength) karakter): %(altText)', - IMAGE_PASS: 'Alt metin: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt metin açıklaması çok uzun. Alt metin kısa, ancak bir tweet gibi anlamlı olmalıdır (yaklaşık 100 karakter). Bu karmaşık bir görsel veya grafikse, görselin uzun açıklamasını aşağıdaki metne veya bir akordeon bileşenine koymayı düşünün.
                    ALT %(altLength) Karakter %(ALT_TEXT)', + IMAGE_PASS: 'ALT %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'Resim düğmesinin alt metni eksik. Lütfen erişilebilir bir ad sağlamak için alt metin ekleyin. Örneğin: Arama veya Gönder.', LABELS_INPUT_RESET_MESSAGE: 'Sıfırla düğmeleri özellikle gerekmedikçe kullanılmamalıdır çünkü yanlışlıkla etkinleştirilmeleri kolaydır.
                    İpucu! Reset ve İptal düğmelerinin neden kullanılabilirlik sorunları oluşturduğunu öğrenin.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
                    Giriş etiketi: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Girdinin erişilebilir bir adı vardır, ancak lütfen görünür bir etiket olduğundan da emin olun.
                    Giriş etiketi %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: "Bu girdiyle ilişkilendirilmiş bir etiket yok. Etikete, bu girdinin id'siyle eşleşen bir for niteliği ekleyin.
                    Bu girdinin kimliği şudur: id="%(id)"", LABELS_MISSING_LABEL_MESSAGE: 'Bu girdiyle ilişkilendirilmiş bir etiket yok. Lütfen bu girdiye bir id ekleyin ve etikete eşleşen bir for niteliği ekleyin.', EMBED_VIDEO: 'Lütfen tüm videolarda altyazı olduğundan emin olun. Tüm ses ve video içerikleri için altyazı sağlanması zorunlu bir A Düzeyi gerekliliğidir. Altyazılar, işitme engelli veya işitme güçlüğü çeken kişileri destekler.', EMBED_AUDIO: "Lütfen tüm podcast'ler için bir transkript sağladığınızdan emin olun. Ses içeriği için transkript sağlamak zorunlu bir Seviye A gerekliliğidir. Transkriptler işitme engelli veya işitme güçlüğü çeken kişileri destekler, ancak herkese fayda sağlayabilir. Transkripti aşağıya veya bir akordeon panel içine yerleştirmeyi düşünün.", - EMBED_DATA_VIZ: "Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
                    karmaşık görüntüler hakkında daha fazla bilgi edinin.", - EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames. hakkında daha fazla bilgi edinin', + EMBED_DATA_VIZ: 'Bunun gibi veri görselleştirme araçları, gezinmek için klavye veya ekran okuyucu kullanan kişiler için genellikle sorunludur ve az gören veya renk körlüğü olan kişiler için önemli zorluklar yaratabilir. Aynı bilgilerin widget\'ın altında alternatif (metin veya tablo) bir formatta sunulması önerilir.
                    karmaşık görüntüler hakkında daha fazla bilgi edinin.', + EMBED_MISSING_TITLE: 'Gömülü içerik, içeriğini açıklayan erişilebilir bir ad gerektirir. Lütfen iframe öğesinde benzersiz bir title veya aria-label özniteliği sağlayın. iFrames.', EMBED_GENERAL_WARNING: 'Gömülü içerik kontrol edilemiyor. Lütfen resimlerin alt metni, videoların alt yazısı, metinlerin yeterli kontrastı ve etkileşimli bileşenlerin klavye ile erişilebilir olduğundan emin olun.', EMBED_UNFOCUSABLE: 'Odaklanılamayan öğeler içeren <iframe>, tabindex="-1" olmamalıdır. Gömülü içerik klavye ile erişilebilir olmayacak.', - QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
                    Bu bağlantı şuraya işaret ediyor:
                    %(el)', + QA_BAD_LINK: 'Kötü bağlantı bulundu. Bağlantı bir geliştirme ortamına işaret ediyor gibi görünüyor.
                    Bu bağlantı şuraya işaret ediyor:
                    %(LINK)', QA_IN_PAGE_LINK: 'Kırık aynı sayfa bağlantısı. Bağlantı hedefi, bu sayfadaki herhangi bir öğeyle eşleşmiyor.', QA_BAD_ITALICS: 'Kalın ve italik etiketlerinin anlamsal bir anlamı vardır ve paragrafların tamamını vurgulamak için kullanılmamalıdır. Kalınlaştırılmış metin, bir kelime veya cümleye güçlü bir vurgu yapmak için kullanılmalıdır. İtalik yazılar özel isimleri (kitap ve makale başlıkları gibi), yabancı kelimeleri ve alıntıları vurgulamak için kullanılmalıdır. Uzun alıntılar blok alıntı olarak biçimlendirilmelidir.', - QA_PDF: "PDF'ler erişilebilirlik açısından kontrol edilemiyor. PDF'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
                    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
                    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
                    Aksi takdirde, lütfen Acrobat DC'de erişilebilirlik için PDF'yi kontrol edin.", + QA_PDF: 'PDF\'ler erişilebilirlik açısından kontrol edilemiyor. PDF\'ler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. PDF\'ler genellikle ekran okuyucu kullanan kişiler (eksik yapısal etiketler veya eksik form alanı etiketleri) ve az gören kişiler (metin büyütüldüğünde yeniden akmıyor) için sorunlar içerir.
                    • Bu bir form ise, alternatif olarak erişilebilir bir HTML formu kullanmayı düşünün.
                    • Bu bir belge ise, bir web sayfasına dönüştürmeyi düşünün.
                    Aksi takdirde, lütfen Acrobat DC\'de erişilebilirlik için PDF\'yi kontrol edin.', QA_DOCUMENT: 'Belge erişilebilirlik açısından kontrol edilemiyor. Bağlantılı belgeler web içeriği olarak kabul edilir ve erişilebilir hale getirilmelidir. Lütfen bu belgeyi manuel olarak inceleyin. ', QA_PAGE_LANGUAGE: 'Sayfa dili bildirilmedi! Lütfen declare language on HTML tag.', QA_PAGE_TITLE: 'Sayfa başlığı eksik! Lütfen bir sayfa başlığı sağlayın.', - QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(sanitizedText)
                    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', - QA_FAKE_HEADING: "Bu bir başlık mı? %(boldtext)
                    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", - QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
                    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', + QA_BLOCKQUOTE_MESSAGE: 'Bu bir başlık mı? %(TEXT)
                    Blok tırnaklar yalnızca alıntılar için kullanılmalıdır. Bunun bir başlık olması amaçlanıyorsa, bu blok alıntıyı anlamsal bir başlığa (örneğin Başlık 2 veya Başlık 3) değiştirin.', + QA_FAKE_HEADING: "Bu bir başlık mı? %(TEXT)
                    Bir satır kalın veya büyük metin bir başlık gibi görünebilir, ancak ekran okuyucu kullanan biri bunun önemli olduğunu anlayamaz veya içeriğine atlayamaz. Kalın veya büyük metin asla anlamsal başlıkların (Başlık 2'den Başlık 6'ya) yerini almamalıdır.", + QA_SHOULD_BE_LIST: 'Bir liste oluşturmaya mı çalışıyorsunuz? Olası liste öğesi bulundu: %(firstPrefix)
                    Bunun yerine madde işareti veya sayı biçimlendirme düğmelerini kullanarak anlamsal listeler kullandığınızdan emin olun. Anlamsal bir liste kullanıldığında, yardımcı teknolojiler toplam öğe sayısı ve listedeki her bir öğenin göreli konumu gibi bilgileri iletebilir. anlamsal listeler hakkında daha fazla bilgi edinin.', QA_UPPERCASE_WARNING: 'Büyük harfler bulundu. Bazı ekran okuyucular büyük harfle yazılan metni kısaltma olarak yorumlayabilir ve her harfi ayrı ayrı okuyabilir. Ayrıca, bazı kişiler büyük harfleri okumayı daha zor bulabilir ve bu durum BAĞIRMA görüntüsü verebilir.', - QA_DUPLICATE_ID: 'yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
                    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', + QA_DUPLICATE_ID: 'Yinelenen kimlik bulundu. Yinelenen kimlik hatalarının, içerikle etkileşime girmeye çalışan yardımcı teknolojiler için sorunlara neden olduğu bilinmektedir.
                    Lütfen aşağıdaki kimliği kaldırın veya değiştirin: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Altı çizili metin bağlantılarla karıştırılabilir. <strong>strong importance</strong> veya <em>emphasis</em> gibi farklı bir stil kullanmayı düşünün.', QA_SUBSCRIPT_WARNING: 'Alt simge ve üst simge biçimlendirme seçenekleri yalnızca tipografik kurallar veya standartlar için metnin konumunu değiştirmek amacıyla kullanılmalıdır. Yalnızca sunum veya görünüm amacıyla kullanılmamalıdır. Tüm cümlelerin biçimlendirilmesi okunabilirlik sorunları yaratır. Uygun kullanım durumları arasında üslerin, dördüncü yerine 4üncü gibi sıra sayılarının ve kimyasal formüllerin (örneğin H2O) gösterilmesi yer alır.', TABLES_MISSING_HEADINGS: 'Eksik tablo başlıkları! Erişilebilir tablolar, başlık hücrelerini ve aralarındaki ilişkiyi tanımlayan veri hücrelerini gösteren HTML işaretlemesine ihtiyaç duyar. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Tablolar yalnızca tablo verileri için kullanılmalıdır.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_SEMANTIC_HEADING: 'Heading 2 veya Heading 3 gibi anlamsal başlıklar yalnızca içerik bölümleri için kullanılmalıdır; HTML tablolarında değil. Bunun yerine tablo başlıklarını <th> öğesini kullanarak belirtin.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', TABLES_EMPTY_HEADING: 'Boş tablo başlığı bulundu! Tablo başlıkları asla boş olmamalıdır. İlişkilerini aktarmak için satır ve/veya sütun başlıklarını belirlemek önemlidir. Bu bilgi, yardımcı teknoloji kullanan kişilere bağlam sağlar. Lütfen tabloların yalnızca tablo halindeki veriler için kullanılması gerektiğini unutmayın.
                    erişilebilir tablolar hakkında daha fazla bilgi edinin.', - CONTRAST_ERROR: "Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Aşağıdaki metin için kontrast oranı %(cratio)'dur: %(sanitizedText)", - CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Lütfen inceleyin: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast oranı: %(cratio)', + CONTRAST_ERROR: 'Bu metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast Oranı %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Bu metnin kontrastı bilinmemektedir ve manuel olarak gözden geçirilmesi gerekmektedir. Metin ve arka planın güçlü kontrast renklere sahip olduğundan emin olun. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Lütfen inceleyin: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Bu girişteki metin arka planla yeterli kontrasta sahip değil. Kontrast oranı normal metin için en az 4,5:1 ve büyük metin için 3:1 olmalıdır.
                    Kontrast Oranı %(RATIO) %(TEXT)', }, }; diff --git a/docs/assets/js/lang/ua.js b/docs/assets/js/lang/ua.js index f3261cf6..4d52417f 100644 --- a/docs/assets/js/lang/ua.js +++ b/docs/assets/js/lang/ua.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -25,7 +25,13 @@ var ua = { OFF: 'Вимкнено', ALERT_TEXT: 'Попередження', ALERT_CLOSE: 'Закрити', - OUTLINE: 'Контури сторінки', + OUTLINE: 'Структура', + ALT: 'АЛЬТ', + IMAGES: 'Зображення', + EDIT: 'Редагувати', + IMAGES_NOT_FOUND: 'Зображення не знайдено.', + DECORATIVE: 'Декоративний', + MISSING: 'Відсутній', PAGE_ISSUES: 'Проблеми зі сторінкою', SETTINGS: 'Налаштування', CONTRAST: 'Контраст', @@ -127,7 +133,7 @@ var ua = { // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Використано непослідовні рівні заголовків. Заголовки ніколи не повинні пропускати рівні або переходити від заголовка %(prevLevel) до заголовка %(level).', HEADING_EMPTY: 'Знайдено порожній заголовок! Щоб виправити, видаліть цей рядок або змініть його формат: замість Заголовок %(level) оберіть Звичайний або Абзац.', - HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
                    Кількість символів: %(headingLength)', + HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
                    %(HEADING_LENGTH) Символів', HEADING_FIRST: 'Першим заголовком на сторінці зазвичай повинен бути Заголовок 1 або Заголовок 2. Заголовок 1 має бути початком частини основного змісту та є основним заголовком, що описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_MISSING_ONE: 'Відсутній Заголовок 1. Заголовок 1 повинен бути початком області основного змісту та є основним заголовком, який описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_EMPTY_WITH_IMAGE: 'Заголовок не має тексту, але містить зображення. Якщо це не заголовок, змініть його формат: замість Заголовок %(level) поставте Звичайний або Абзац. В іншому разі додайте текст заміщення до зображення, якщо воно не є декоративним.', @@ -137,44 +143,44 @@ var ua = { // Links LINK_EMPTY: 'Видаліть пусті посилання без тексту.', LINK_EMPTY_LABELLEDBY: 'Лінк має значення для aria-labelledby, яке є порожнім або не відповідає значенню атрибута id іншого елемента на сторінці.', - LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
                    • Додайте короткий текст, який описує куди веде посилання.
                    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
                    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
                    ', - LINK_LABEL: 'Назва посилання: %(sanitizedText)', - LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(error)
                    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', - LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(error)
                    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
                    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
                    ', - LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
                    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', + LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
                    • Додайте короткий текст, який описує куди веде посилання.
                    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
                    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
                    ', + LINK_LABEL: 'Назва посилання %(TEXT)', + LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(ERROR)
                    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', + LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(ERROR)
                    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
                    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
                    ', + LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
                    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', LINK_DOI: 'Для веб-сторінок або ресурсів, доступних лише в Інтернеті, посібник зі стилю APA рекомендує використовувати описові посилання, обгортаючи URL-адресу або DOI роботи навколо її назви. Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій.', // Links advanced NEW_TAB_WARNING: 'Посилання відкривається у новій вкладці або вікні без попередження. Це може дезорієнтувати, особливо людей, які мають труднощі зі сприйняттям візуального контенту. До того ж, не завжди добре контролювати чийсь досвід чи приймати рішення за іншу особу. У тексті посилання вказуйте, що посилання відкривається у новому вікні.
                    Порада! Вивчіть найкращі практики: відкриття посилань у нових вікнах та вкладках браузера.', FILE_TYPE_WARNING: 'Посилання вказує на PDF або файл, що завантажується (наприклад, MP3, Zip, Word Doc) без попередження. Вкажіть тип файлу у тексті посилання. Якщо це великий файл, вкажіть його розмір.
                    Приклад: Виконавчий звіт (PDF, 3 МБ)', - LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
                    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
                    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Зображення використовується як посилання з оточуючим текстом, хоча атрибут текст заміщення повинен бути позначений як декоративний або нульовий.', MISSING_ALT_LINK_MESSAGE: 'Зображення використовується як посилання, але відсутній текст заміщення! Переконайтеся, що текст заміщення описує, куди веде посилання.', MISSING_ALT_MESSAGE: 'Відсутній текст заміщення! Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його.', - LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(error).
                    текст заміщення: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
                    текст заміщення: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(error).
                    текст заміщення: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(altText)', - ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими.
                    текст заміщення: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(ERROR).
                    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
                    АЛЬТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(ERROR).
                    АЛЬТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими.
                    АЛЬТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Посилання має aria-hidden="true", але все ще доступне для фокусування за допомогою клавіатури. Якщо ви плануєте приховати зайве або дубльоване посилання, також додайте tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Зображення у посиланні позначене як декоративне, а текст посилання відсутній. Будь ласка, додайте до зображення текст заміщення, який визначає місце призначення посилання.', LINK_IMAGE_HAS_TEXT: 'Зображення позначене як декоративне, хоча посилання використовує навколишній текст як описову назву.', - LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
                    текст заміщення (%(altLength) символів): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
                    текст заміщення: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
                    текст заміщення: %(altText)
                    Назва посилання: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
                    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
                    текст заміщення: %(altText)', + LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
                    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
                    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
                    АЛЬТ %(ALT_TEXT)
                    Назва посилання %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
                    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
                    АЛЬТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями. Якщо зображення передає історію, настрій або важливу інформацію, переконайтесь, що до нього додано текст заміщення.', - IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
                    текст заміщення (%(altLength) символів): %(altText)', - IMAGE_PASS: 'текст заміщення: %(altText)', + IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
                    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + IMAGE_PASS: 'АЛЬТ %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'На кнопці зображення не вистачає текст заміщенняу. Будь ласка, додайте текст заміщення, щоб надати доступну назву. Наприклад: Пошук або Подати.', LABELS_INPUT_RESET_MESSAGE: 'Кнопки перезавантаження не слід використовувати без необхідності, оскільки їх легко активувати помилково.
                    Порада! Дізнайтеся, чому кнопки перезавантаження та відміни викликають проблеми зі зручністю використання.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
                    Етикетка для введення: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
                    Етикетка для введення %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Додайте атрибут for що відповідає ідентифікатору цього входу.
                    Ідентифікатор цього входу: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Будь ласка, додайте id до цього введення та додайте відповідний атрибут for до назви.', @@ -187,16 +193,16 @@ var ua = { EMBED_UNFOCUSABLE: '<iframe> з елементами, на які не можна фокусуватися, не повинен мати tabindex="-1". Вбудований вміст не буде доступний за допомогою клавіатури.', // Quality assurance - QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
                    Це посилання вказує на:
                    %(el)', + QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
                    Це посилання вказує на:
                    %(LINK)', QA_IN_PAGE_LINK: 'Пошкоджений посилання в межах сторінки. Ціль посилання не відповідає жодному елементу на цій сторінці.', QA_BAD_ITALICS: 'Теги жирним шрифтом і курсивом мають змістовне значення і не повинні використовуватися для виділення цілих абзаців. Жирний текст слід використовувати для виділення слова або фрази. Курсив слід використовувати для виділення власних назв (наприклад, назв книг і статей), іноземних слів, цитат. Довгі цитати слід оформлювати як блокові цитати.', - QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
                    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
                    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
                    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', + QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
                    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
                    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
                    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', QA_DOCUMENT: 'Не вдалося перевірити документ на доступність. Документи, на які є посилання, вважаються веб-вмістом і також повинні бути доступними. Будь ласка, перегляньте цей документ вручну. ', QA_PAGE_LANGUAGE: 'Мова сторінки не вказана! Будь ласка, вкажіть мову в тезі HTML.', QA_PAGE_TITLE: 'Відсутня назва сторінки! Укажіть назву сторінки.', - QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(sanitizedText)
                    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', - QA_FAKE_HEADING: 'Це заголовок? %(boldtext)
                    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', - QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
                    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', + QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(TEXT)
                    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', + QA_FAKE_HEADING: 'Це заголовок? %(TEXT)
                    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', + QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
                    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', QA_UPPERCASE_WARNING: 'Знайдено текст великими літерами. Деякі програми читання з екрана можуть інтерпретувати текст, написаний великими літерами, як абревіатуру і читати кожну літеру окремо. Крім того, деяким людям важче читати текст, написаний великими літерами, і він може виглядати як КРИК.', QA_DUPLICATE_ID: 'Виявлено дублікат ID. Відомо, що помилки дублювання ID можуть викликати проблеми для допоміжних технологій, коли вони намагаються взаємодіяти із вмістом.
                    Будь ласка, видаліть або змініть наступний ідентифікатор: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Підкреслений текст можна переплутати з посиланнями. Розгляньте можливість використання іншого стилю, наприклад <strong>сильного акценту</strong> або <em>наголос</em>.', @@ -208,9 +214,9 @@ var ua = { TABLES_EMPTY_HEADING: 'Знайдено порожній заголовок таблиці! Заголовки таблиць ніколи не повинні бути порожніми. Важливо позначати заголовки рядків та/або стовпців, щоб передавати їх зв\'язок. Ця інформація забезпечує контекст для людей, які використовують допоміжні технології. Пам\'ятайте, що таблиці слід використовувати лише для табличних даних. Дізнайтеся більше про доступні таблиці.
                    Дізнайтеся більше про доступні таблиці.', // Contrast - CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Коефіцієнт контрастності становить %(cratio) для даного тексту: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Будь ласка, перевірте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
                    Коефіцієнт контрастності: %(cratio)', + CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Контрастне відношення %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Будь ласка, перевірте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
                    Контрастне відношення %(RATIO)', }, }; diff --git a/docs/assets/js/lang/ua.umd.js b/docs/assets/js/lang/ua.umd.js index c76e50d8..7c238190 100644 --- a/docs/assets/js/lang/ua.umd.js +++ b/docs/assets/js/lang/ua.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -31,7 +31,13 @@ OFF: 'Вимкнено', ALERT_TEXT: 'Попередження', ALERT_CLOSE: 'Закрити', - OUTLINE: 'Контури сторінки', + OUTLINE: 'Структура', + ALT: 'АЛЬТ', + IMAGES: 'Зображення', + EDIT: 'Редагувати', + IMAGES_NOT_FOUND: 'Зображення не знайдено.', + DECORATIVE: 'Декоративний', + MISSING: 'Відсутній', PAGE_ISSUES: 'Проблеми зі сторінкою', SETTINGS: 'Налаштування', CONTRAST: 'Контраст', @@ -133,7 +139,7 @@ // Headings HEADING_NON_CONSECUTIVE_LEVEL: 'Використано непослідовні рівні заголовків. Заголовки ніколи не повинні пропускати рівні або переходити від заголовка %(prevLevel) до заголовка %(level).', HEADING_EMPTY: 'Знайдено порожній заголовок! Щоб виправити, видаліть цей рядок або змініть його формат: замість Заголовок %(level) оберіть Звичайний або Абзац.', - HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
                    Кількість символів: %(headingLength)', + HEADING_LONG: 'Заголовки задовгі! Заголовки слід використовувати для організації змісту та передачі структури. Вони мають бути короткими, інформативними та унікальними. Будь ласка, не виходьте за 160 символів (не більше одного речення).
                    %(HEADING_LENGTH) Символів', HEADING_FIRST: 'Першим заголовком на сторінці зазвичай повинен бути Заголовок 1 або Заголовок 2. Заголовок 1 має бути початком частини основного змісту та є основним заголовком, що описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_MISSING_ONE: 'Відсутній Заголовок 1. Заголовок 1 повинен бути початком області основного змісту та є основним заголовком, який описує загальну мету сторінки. Дізнайтеся більше про структуру заголовків.', HEADING_EMPTY_WITH_IMAGE: 'Заголовок не має тексту, але містить зображення. Якщо це не заголовок, змініть його формат: замість Заголовок %(level) поставте Звичайний або Абзац. В іншому разі додайте текст заміщення до зображення, якщо воно не є декоративним.', @@ -143,44 +149,44 @@ // Links LINK_EMPTY: 'Видаліть пусті посилання без тексту.', LINK_EMPTY_LABELLEDBY: 'Лінк має значення для aria-labelledby, яке є порожнім або не відповідає значенню атрибута id іншого елемента на сторінці.', - LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
                    • Додайте короткий текст, який описує куди веде посилання.
                    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
                    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
                    ', - LINK_LABEL: 'Назва посилання: %(sanitizedText)', - LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(error)
                    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', - LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(error)
                    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
                    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
                    ', - LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
                    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', + LINK_EMPTY_LINK_NO_LABEL: 'Посилання не має тексту для розпізнавання, який є видимим для читання з екрана та інших допоміжних технологій. Щоб виправити:
                    • Додайте короткий текст, який описує куди веде посилання.
                    • У разі коли це посилання на іконку або SVG, то, швидше за все, відсутній опис.
                    • Якщо ви вважаєте, що це помилкове посилання викликане сбоєм копіювання/вставки, розгляньте його видалення.
                    ', + LINK_LABEL: 'Назва посилання %(TEXT)', + LINK_STOPWORD: 'Текст посилання може бути недостатньо описовим поза контекстом: %(ERROR)
                    Порада! Текст посилання завжди має бути чітким, унікальним та змістовним. Уникайте поширених слів типу "натисніть тут" або "дізнатися більше".', + LINK_BEST_PRACTICES: 'Розгляньте можливість заміни тексту посилання: %(ERROR)
                    • "Натисніть тут" стосується механіки миші, позаяк багато людей не користуються мишею або можуть переглядати цей вебсайт на мобільному пристрої. Розгляньте можливість використання іншого дієслова, що стосується виконання завдання.
                    • Уникайте використання символів HTML у якості закликів до дії, якщо вони не приховані для допоміжних технологій.
                    ', + LINK_URL: 'Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій. У більшості випадків замість URL краще використовувати текст, придатний для читання людиною. Короткі URL-адреси (такі як домашня сторінка сайту) цілком допустимі.
                    Порада! Текст посилання завжди має бути чітким, унікальним та значущім, щоб його можна було зрозуміти поза контекстом.', LINK_DOI: 'Для веб-сторінок або ресурсів, доступних лише в Інтернеті, посібник зі стилю APA рекомендує використовувати описові посилання, обгортаючи URL-адресу або DOI роботи навколо її назви. Довгі, менш розбірливі URL-адреси, які використовуються як текст посилання, можуть бути складними для прослуховування з використанням допоміжних технологій.', // Links advanced NEW_TAB_WARNING: 'Посилання відкривається у новій вкладці або вікні без попередження. Це може дезорієнтувати, особливо людей, які мають труднощі зі сприйняттям візуального контенту. До того ж, не завжди добре контролювати чийсь досвід чи приймати рішення за іншу особу. У тексті посилання вказуйте, що посилання відкривається у новому вікні.
                    Порада! Вивчіть найкращі практики: відкриття посилань у нових вікнах та вкладках браузера.', FILE_TYPE_WARNING: 'Посилання вказує на PDF або файл, що завантажується (наприклад, MP3, Zip, Word Doc) без попередження. Вкажіть тип файлу у тексті посилання. Якщо це великий файл, вкажіть його розмір.
                    Приклад: Виконавчий звіт (PDF, 3 МБ)', - LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
                    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(sanitizedText)', + LINK_IDENTICAL_NAME: 'Посилання має той самий текст, що й інше посилання, але вказує на іншу сторінку. Декілька посилань з однаковим текстом можуть заплутати людей, які використовують програми для читання з екрана.
                    Розгляньте можливість зробити наступне посилання більш описовим, щоб відрізнити його від інших посилань: %(TEXT)', // Images MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: 'Зображення використовується як посилання з оточуючим текстом, хоча атрибут текст заміщення повинен бути позначений як декоративний або нульовий.', MISSING_ALT_LINK_MESSAGE: 'Зображення використовується як посилання, але відсутній текст заміщення! Переконайтеся, що текст заміщення описує, куди веде посилання.', MISSING_ALT_MESSAGE: 'Відсутній текст заміщення! Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його.', - LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(error).
                    текст заміщення: %(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(altText)', - LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
                    текст заміщення: %(altText)', - ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(error).
                    текст заміщення: %(altText)', - ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(altText)', - ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(error)" можуть бути зайвими.
                    текст заміщення: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення. Видалити: %(ERROR).
                    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення усередині зв\'язаного зображення. Переконайтеся, що текст заміщення визначає місце призначення посилання, а не надає дослівний опис зображення. Замініть наступний текст: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими. Переконайтеся, що текст заміщення описує місце призначення посилання, а не надає дослівний опис зображення.
                    АЛЬТ %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: 'Знайдено розширення файлу в текст заміщенняі. Якщо зображення передає історію, настрій або важливу інформацію, обов\'язково опишіть його. Видалити: %(ERROR).
                    АЛЬТ %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: 'Виявлено не описовий або заповнюючий текст заміщення. Замініть наступний текст заміщення чимось більш значущим: %(ALT_TEXT)', + ALT_HAS_SUS_WORD: 'Допоміжні технології вже вказують, що це зображення, тому "%(ERROR)" можуть бути зайвими.
                    АЛЬТ %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: 'Посилання має aria-hidden="true", але все ще доступне для фокусування за допомогою клавіатури. Якщо ви плануєте приховати зайве або дубльоване посилання, також додайте tabindex="-1".', LINK_IMAGE_NO_ALT_TEXT: 'Зображення у посиланні позначене як декоративне, а текст посилання відсутній. Будь ласка, додайте до зображення текст заміщення, який визначає місце призначення посилання.', LINK_IMAGE_HAS_TEXT: 'Зображення позначене як декоративне, хоча посилання використовує навколишній текст як описову назву.', - LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
                    текст заміщення (%(altLength) символів): %(altText)', - LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
                    текст заміщення: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
                    текст заміщення: %(altText)
                    Назва посилання: %(sanitizedText)', - IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
                    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', - IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
                    текст заміщення: %(altText)', + LINK_IMAGE_LONG_ALT: 'Опис текст заміщенняу на пов\'язаному зображенні занадто довгий. текст заміщення на пов\'язаних зображеннях повинен вказувати, куди веде посилання, а не містити дослівний опис зображення. Розгляньте можливість використання заголовка сторінки в якості текст заміщенняу, яку веде посилання.
                    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: 'Посилання на зображення містить альтернативний текст. Чи описує альтернативний текст, куди веде посилання? Подумайте про використання назви сторінки, на яку веде посилання, в якості альтернативного тексту.
                    АЛЬТ %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: 'Посилання на зображення містить як текст заміщення, так і текст навколишнього посилання. Якщо зображення є декоративним і використовується як функціональне посилання на іншу сторінку, розгляньте можливість помітити зображення як декоративне або нульове ‒ тексту навколишнього посилання має бути достатньо.
                    АЛЬТ %(ALT_TEXT)
                    Назва посилання %(TEXT)', + IMAGE_FIGURE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями.
                    Незважаючи на наявність підпису, у більшості випадків зображення також повинно містити текст заміщення.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).', + IMAGE_FIGURE_DUPLICATE_ALT: 'Не використовуйте однакові слова для текст заміщенняу та підпису. Пристрої читання з екрана будуть зчитувати їх двічі.
                    • текст заміщення повинен містити короткий опис того, що зображенно.
                    • Підпис зазвичай повинен надавати контекст, щоб встановити зв’язок зображення з навколишнім змістом, або привернути увагу до певної інформації.
                    Дізнайтесь більше: : alt (текст заміщення) в порівнянні з figcaption (підписом).
                    АЛЬТ %(ALT_TEXT)', IMAGE_DECORATIVE: 'Зображення позначене як декоративне та буде проігноровано допоміжними технологіями. Якщо зображення передає історію, настрій або важливу інформацію, переконайтесь, що до нього додано текст заміщення.', - IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
                    текст заміщення (%(altLength) символів): %(altText)', - IMAGE_PASS: 'текст заміщення: %(altText)', + IMAGE_ALT_TOO_LONG: 'Опис текст заміщенняу задовгий. текст заміщення має бути коротким, але змістовним, як твіт (близько 100 символів). Якщо це складне зображення або діаграма, подумайте про те, щоб помістити довгий опис зображення в текст нижче або в компонент випадаючого списку (акордеону).
                    АЛЬТ %(altLength) Символів %(ALT_TEXT)', + IMAGE_PASS: 'АЛЬТ %(ALT_TEXT)', // Labels LABELS_MISSING_IMAGE_INPUT_MESSAGE: 'На кнопці зображення не вистачає текст заміщенняу. Будь ласка, додайте текст заміщення, щоб надати доступну назву. Наприклад: Пошук або Подати.', LABELS_INPUT_RESET_MESSAGE: 'Кнопки перезавантаження не слід використовувати без необхідності, оскільки їх легко активувати помилково.
                    Порада! Дізнайтеся, чому кнопки перезавантаження та відміни викликають проблеми зі зручністю використання.', - LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
                    Етикетка для введення: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: 'Введення має доступне ім\'я, проте, будь ласка, переконайтеся, що у нього є видимий підпис.
                    Етикетка для введення %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Додайте атрибут for що відповідає ідентифікатору цього входу.
                    Ідентифікатор цього входу: id="%(id)"', LABELS_MISSING_LABEL_MESSAGE: 'Із цим введенням не пов\'язана жодна назва. Будь ласка, додайте id до цього введення та додайте відповідний атрибут for до назви.', @@ -193,16 +199,16 @@ EMBED_UNFOCUSABLE: '<iframe> з елементами, на які не можна фокусуватися, не повинен мати tabindex="-1". Вбудований вміст не буде доступний за допомогою клавіатури.', // Quality assurance - QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
                    Це посилання вказує на:
                    %(el)', + QA_BAD_LINK: 'Знайдено неякісне посилання. Схоже, що посилання вказує на середовище розробки.
                    Це посилання вказує на:
                    %(LINK)', QA_IN_PAGE_LINK: 'Пошкоджений посилання в межах сторінки. Ціль посилання не відповідає жодному елементу на цій сторінці.', QA_BAD_ITALICS: 'Теги жирним шрифтом і курсивом мають змістовне значення і не повинні використовуватися для виділення цілих абзаців. Жирний текст слід використовувати для виділення слова або фрази. Курсив слід використовувати для виділення власних назв (наприклад, назв книг і статей), іноземних слів, цитат. Довгі цитати слід оформлювати як блокові цитати.', - QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
                    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
                    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
                    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', + QA_PDF: 'Неможливо перевірити PDF-файли на доступність. PDF-файли вважаються веб-контентом і повинні бути доступні. PDF-файли часто створюють проблеми для користувачів програм читання з екрана (відсутні структурні теги або відсутні мітки полів форми) і для людей зі слабким зором (текст не розгортається під час збільшення).
                    • Якщо це форма, розгляньте можливість використання доступної HTML-форми у якості альтернативи.
                    • Якщо це документ, розгляньте можливість перетворення його на веб-сторінку.
                    В іншому випадку, перевірте файли PDF на доступність у Acrobat DC.', QA_DOCUMENT: 'Не вдалося перевірити документ на доступність. Документи, на які є посилання, вважаються веб-вмістом і також повинні бути доступними. Будь ласка, перегляньте цей документ вручну. ', QA_PAGE_LANGUAGE: 'Мова сторінки не вказана! Будь ласка, вкажіть мову в тезі HTML.', QA_PAGE_TITLE: 'Відсутня назва сторінки! Укажіть назву сторінки.', - QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(sanitizedText)
                    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', - QA_FAKE_HEADING: 'Це заголовок? %(boldtext)
                    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', - QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
                    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', + QA_BLOCKQUOTE_MESSAGE: 'Це заголовок? %(TEXT)
                    Блок-цитати слід використовувати лише для цитат. Якщо це задумано як заголовок, змініть блокову цитату на змістовний заголовок (наприклад, Заголовок 2 або Заголовок 3).', + QA_FAKE_HEADING: 'Це заголовок? %(TEXT)
                    Рядок жирного або великого тексту може виглядати як заголовок, але хтось, але людина, яка використовує програму читання з екрана, не зможе визначити його важливість або перейти до його змісту. Жирний або великий текст ніколи не повинен замінювати семантичні заголовки (від заголовка 2 до заголовка 6).', + QA_SHOULD_BE_LIST: 'Ви намагаєтесь створити список? Знайдено можливий елемент списку: %(firstPrefix)
                    Переконайтеся, що ви використовуєте змістовні списки, вживаючи маркування або нумерацію. У разі використання змістовного списку допоміжні технології можуть передавати таку інформацію, як загальна кількість елементів та відносне положення кожного елемента у списку. Дізнайтесь більше про змістовні списки.', QA_UPPERCASE_WARNING: 'Знайдено текст великими літерами. Деякі програми читання з екрана можуть інтерпретувати текст, написаний великими літерами, як абревіатуру і читати кожну літеру окремо. Крім того, деяким людям важче читати текст, написаний великими літерами, і він може виглядати як КРИК.', QA_DUPLICATE_ID: 'Виявлено дублікат ID. Відомо, що помилки дублювання ID можуть викликати проблеми для допоміжних технологій, коли вони намагаються взаємодіяти із вмістом.
                    Будь ласка, видаліть або змініть наступний ідентифікатор: %(id)', QA_TEXT_UNDERLINE_WARNING: 'Підкреслений текст можна переплутати з посиланнями. Розгляньте можливість використання іншого стилю, наприклад <strong>сильного акценту</strong> або <em>наголос</em>.', @@ -214,9 +220,9 @@ TABLES_EMPTY_HEADING: 'Знайдено порожній заголовок таблиці! Заголовки таблиць ніколи не повинні бути порожніми. Важливо позначати заголовки рядків та/або стовпців, щоб передавати їх зв\'язок. Ця інформація забезпечує контекст для людей, які використовують допоміжні технології. Пам\'ятайте, що таблиці слід використовувати лише для табличних даних. Дізнайтеся більше про доступні таблиці.
                    Дізнайтеся більше про доступні таблиці.', // Contrast - CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Коефіцієнт контрастності становить %(cratio) для даного тексту: %(sanitizedText)', - CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Будь ласка, перевірте: %(sanitizedText)', - CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
                    Коефіцієнт контрастності: %(cratio)', + CONTRAST_ERROR: 'Цей текст недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Контрастне відношення %(RATIO) %(TEXT)', + CONTRAST_WARNING: 'Контрастність цього тексту не встановлена і потребує перевірки вручну. Переконайтеся, що текст і фон мають різко контрастні кольори. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого тексту.
                    Будь ласка, перевірте: %(TEXT)', + CONTRAST_INPUT_ERROR: 'Текст у цьому введенні недостатньо контрастний щодо фону. Коефіцієнт контрастності має бути не менше 4,5:1 для звичайного тексту та 3:1 для великого.
                    Контрастне відношення %(RATIO)', }, }; diff --git a/docs/assets/js/lang/zh.js b/docs/assets/js/lang/zh.js index 375840ee..83710526 100644 --- a/docs/assets/js/lang/zh.js +++ b/docs/assets/js/lang/zh.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -26,7 +26,13 @@ var zh = { OFF: '关闭', ALERT_TEXT: '警报', ALERT_CLOSE: '关闭', - OUTLINE: '页面概要', + OUTLINE: '大纲', + ALT: 'ALT', + IMAGES: '图片', + EDIT: '编辑', + IMAGES_NOT_FOUND: '未找到图片。', + DECORATIVE: '装饰性', + MISSING: '缺失', PAGE_ISSUES: '页码问题', SETTINGS: '设置', CONTRAST: '对比', @@ -146,9 +152,9 @@ var zh = { LANG_GOOD: '良好', READABILITY_NO_P_OR_LI_MESSAGE: '无法计算可读性得分。没有找到段落<p>或列表内容<li>。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '没有足够的内容来计算可读性得分。', - HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题% (prevLevel) 标题% (level) 。', + HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题 %(prevLevel)标题%(level)。', HEADING_EMPTY: '发现空的标题!要解决这个问题, 请删除这一行或将其格式从标题%(level)改为正常段落。', - HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
                    字符数: %(headingLength)。', + HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
                    %(HEADING_LENGTH) 字符。', HEADING_FIRST: '一个页面的第一个标题通常应该是标题1或标题2。标题1应该是主要内容部分的开始, 也是描述页面整体目的的主要标题。了解更多关于标题结构。的信息。', HEADING_MISSING_ONE: '缺少标题1。标题1应该是主要内容区的开始, 是描述页面整体目的的主要标题。了解更多关于标题结构.的信息。', HEADING_EMPTY_WITH_IMAGE: '标题没有文字, 但包含一个图像。如果这不是一个标题, 请将其格式从标题%(level)改为正常段落。否则, 如果图片不是装饰性的, 请为其添加alt文本。', @@ -157,65 +163,65 @@ var zh = { LINK_EMPTY: '删除没有任何文字的空链接。', LINK_EMPTY_LABELLEDBY: '链接具有aria-labelledby的值为空或不与页面上另一个元素的id属性值匹配。', LINK_EMPTY_LINK_NO_LABEL: '链接没有可识别的文字, 对屏幕阅读器和其他辅助技术是可见的。要解决这个问题:
                    • 添加一些简明的文字, 描述该链接带你到哪里。
                    • 如果它是一个图标链接或SVG,它可能缺少一个描述性的标签。
                    • 如果你认为这个链接是一个由于复制/粘贴错误造成的错误, 考虑删除它。
                    。', - LINK_LABEL: '链接标签: %(sanitizedText)', - LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(error)
                    提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', - LINK_BEST_PRACTICES: '考虑替换链接文本: %(error)
                    • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
                    • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。', + LINK_LABEL: '链接标签: %(TEXT)', + LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(ERROR)
                      提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', + LINK_BEST_PRACTICES: '考虑替换链接文本: %(ERROR)
                      • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
                      • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。
                      ', LINK_URL: '用作链接文本的较长的、不太容易理解的URL可能难以用辅助技术听懂。在大多数情况下, 最好使用人类可读的文本来代替URL。
                      提示!链接文本应该总是清晰、独特和有意义的, 这样它就可以脱离上下文而被理解。', LINK_DOI: '对于网页或纯在线资源,APA风格指南建议使用描述性链接,将作品的URL或DOI包裹在其标题上。使用较长的、不易理解的URL作为链接文本,在使用辅助技术访问时可能难以理解。', - NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
                      提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', - FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
                      示例: 执行报告 (PDF, 3MB) 。', - LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
                      考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(sanitizedText)。', + NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
                      提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', + FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
                      示例: 执行报告 (PDF, 3MB) 。', + LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
                      考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '图片被用作带有周围文本的链接, 尽管alt属性应被标记为装饰性或空。', MISSING_ALT_LINK_MESSAGE: '图像被用作链接,但缺少替代文本!请确保替代文本描述了链接将您带到的位置。', MISSING_ALT_MESSAGE: '缺少替代文本!如果图像传达了故事、情绪或重要信息 - 请务必描述图像。', - LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(error).
                      替代文字:%(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(altText)。', - LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
                      alt文本: %(altText)', - ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(error).
                      替代文字:%(altText)', - ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(altText)。', - ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。
                      替代文字: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(ERROR).
                      ALT文本 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
                      ALT文本 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(ERROR)
                      ALT文本 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(ALT_TEXT)。', + ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。
                      ALT文本 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '链接具有aria-hidden="true",但仍可通过键盘聚焦。如果您打算隐藏多余或重复的链接,也请添加tabindex="-1"。', LINK_IMAGE_NO_ALT_TEXT: '链接中的图像被标记为装饰性的, 没有链接文本。请在图片上添加描述链接目的地的alt文本。', LINK_IMAGE_HAS_TEXT: '图片被标记为装饰性的, 尽管链接是使用周围的文字作为描述性的标签。', - LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
                      alt文本 (% (altLength) 字符) : % (altText) 。', - LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
                      替代文字: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
                      标题文本: %(altText)
                      链接标签: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
                      ALT文本 %(altLength) 字符 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
                      ALT文本 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
                      ALT文本 %(ALT_TEXT)
                      链接标签: %(TEXT)', IMAGE_FIGURE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。
                      虽然提供了一个标题, 但在大多数情况下, 图像也应该有alt文本。
                      • alt文本应该对图像中的内容进行简明的描述。
                      • 标题通常应该提供背景, 将图像与周围的内容联系起来, 或者对某一特定的信息给予关注: alt与figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: '不要在alt和标题文本中使用完全相同的词。屏幕阅读器会将信息公布两次。
                        • alt文本应提供对图片中内容的简明描述。
                        • 标题通常应提供背景, 将图片与周围的内容联系起来, 或对某一特定信息给予关注。
                        了解更多: alt与figcaption.
                        替代文字: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '不要在 alt 文本和标题文本中使用完全相同的词语。屏幕阅读器会重复宣读信息。
                        • alt 文本应提供对图像内容的简洁描述。
                        • 标题通常应提供上下文以将图像与周围内容联系起来,或者关注特定信息。
                        了解更多:alt 与 figcaption 的区别。
                        ALT %(ALT_TEXT)', IMAGE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。如果图片传达了一个故事、情绪或重要的信息--请务必添加alt文本。', - IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
                        标题文本 (%(altLength)字符) : %(altText)', - IMAGE_PASS: '替代文本: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
                        ALT文本 %(altLength) 字符 %(ALT_TEXT)', + IMAGE_PASS: 'ALT文本 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '图片按钮缺少alt文本。请添加alt文本, 提供一个可访问的名称。比如说: SearchSubmit。', LABELS_INPUT_RESET_MESSAGE: '除非特别需要, 否则不应使用重置按钮, 因为它们很容易被错误激活。
                        提示!了解为什么复位和取消按钮会带来可用性问题。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
                        输入标签: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
                        输入标签 %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '没有与此输入相关的标签。给标签添加一个for属性, 该属性与该输入的id相匹配。
                        这个输入的ID是: id="% (id) "', LABELS_MISSING_LABEL_MESSAGE: '没有与此输入相关的标签。请为这个输入添加一个id, 并为标签添加一个匹配的for属性。', EMBED_VIDEO: '请确保所有视频都有闭合字幕。为所有音频和视频内容提供字幕是一项强制性的A级要求。字幕支持聋哑人或听力困难的人。', EMBED_AUDIO: '请确保为所有播客提供文字记录。为音频内容提供文字记录是一项强制性的A级要求。转录支持聋哑人或听力困难的人, 但也能使所有人受益。考虑将文字记录放在下面或放在一个手风琴面板内。', EMBED_DATA_VIZ: '像这样的数据可视化部件对于使用键盘或屏幕阅读器导航的人来说往往是有问题的, 而且对于低视力或色盲的人来说也会带来很大的困难。建议在小组件下方以替代 (文本或表格) 的形式提供相同的信息。
                        了解更多关于复杂图像的信息。', - EMBED_MISSING_TITLE: '嵌入内容需要一个描述其内容的可访问名称。请在iframe元素上提供一个独特的titlearia-label属性。了解更多关于iFrames.的信息。', + EMBED_MISSING_TITLE: '嵌入式内容需要一个描述其内容的可访问名称。请在 iframe 元素上提供一个唯一的 titlearia-label 属性。了解更多关于 iFrames。', EMBED_GENERAL_WARNING: '无法检查嵌入式内容。请确保图像有alt文本, 视频有标题, 文本有足够的对比度, 互动组件是键盘可访问的。', EMBED_UNFOCUSABLE: '带有无法聚焦元素的 <iframe> 不应具有 tabindex="-1"。嵌入内容将无法通过键盘访问。', - QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
                        这个链接指向:
                        %(el)', + QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
                        这个链接指向:
                        %(LINK)', QA_IN_PAGE_LINK: '破损的同页链接。链接目标与此页面上的任何元素都不匹配。', QA_BAD_ITALICS: '粗体和斜体标签具有语义, 不应用于突出整个段落。加粗的文字应该用于对一个词或短语进行强烈的强调。斜体字应该用来突出专有名词 (即书名和文章标题) 、外国词、引号。长篇引语应采用块状引语的格式。', QA_PDF: '无法检查PDF的可访问性。PDF被认为是网络内容, 也必须做到无障碍。对于使用屏幕阅读器的人 (缺失结构标签或缺失表格字段标签) 和低视力的人 (文本在放大时不回流) 来说, PDF经常包含一些问题。
                        • 如果这是一个表格, 请考虑使用可访问的HTML表格作为替代。
                        • 如果这是一个文档, 请考虑将其转换为网页。
                        否则, 请在Acrobat DC中检查PDF的可访问性。', - QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', + QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', QA_PAGE_LANGUAGE: '页面语言未声明!请在HTML标签上声明语言。', QA_PAGE_TITLE: '缺少页面标题!请提供一个页面标题。', - QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(sanitizedText)
                        方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', - QA_FAKE_HEADING: '这是一个标题吗?%(boldtext)
                        一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', - QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
                        请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', + QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(TEXT)
                        方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', + QA_FAKE_HEADING: '这是一个标题吗?%(TEXT)
                        一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', + QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
                        请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', QA_UPPERCASE_WARNING: '发现全大写。一些屏幕阅读器可能会将所有大写字母的文本解释为缩写, 并会单独阅读每个字母。此外, 有些人觉得全大写的文字更难读, 而且可能给人一种大喊大叫的感觉。', - QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
                        请删除或更改以下ID: %(id)。', + QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
                        请删除或更改以下ID: %(id)', QA_TEXT_UNDERLINE_WARNING: '带下划线的文本可能会与链接相混淆。考虑使用不同的风格, 如<strong>strong重要性</strong><em>emphasis<;/em>;。', QA_SUBSCRIPT_WARNING: '下标和上标格式化选项只能用于改变文字的位置, 以符合排版习惯或标准。它不应该仅仅用于演示或外观目的。对整个句子进行格式化会带来可读性问题。适当的使用情况包括显示指数、序数, 如4th而不是第四, 以及化学公式 (如H2O) 。', TABLES_MISSING_HEADINGS: '缺少表头!可访问的表格需要HTML标记, 表明标题单元和数据单元, 定义它们的关系。这种信息为使用辅助技术的人提供了背景。表格应该只用于表格式的数据。
                        了解更多关于无障碍表格的信息。', TABLES_SEMANTIC_HEADING: '语义标题, 如Heading 2或Heading 3, 只能用于内容的章节;不能用于HTML表格。使用<th>元素来表示表格的标题。
                        了解更多关于可访问的表格。', TABLES_EMPTY_HEADING: '发现空的表头!表头应该永远不会是空的。指定行和/或列的标题以表达它们的关系是很重要的。这一信息为使用辅助技术的人提供了背景。请记住, 表格应该只用于表格式数据。
                        了解更多关于可访问的表格。', - CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
                        以下文本的对比度为%(cratio): %(sanitizedText) ', - CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
                        请审查: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
                        对比度: %(cratio)', + CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
                        对比度比率 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
                        请审查: %(TEXT)', + CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
                        对比度比率 %(RATIO)', }, }; diff --git a/docs/assets/js/lang/zh.umd.js b/docs/assets/js/lang/zh.umd.js index 81b31639..58dc8d67 100644 --- a/docs/assets/js/lang/zh.umd.js +++ b/docs/assets/js/lang/zh.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -32,7 +32,13 @@ OFF: '关闭', ALERT_TEXT: '警报', ALERT_CLOSE: '关闭', - OUTLINE: '页面概要', + OUTLINE: '大纲', + ALT: 'ALT', + IMAGES: '图片', + EDIT: '编辑', + IMAGES_NOT_FOUND: '未找到图片。', + DECORATIVE: '装饰性', + MISSING: '缺失', PAGE_ISSUES: '页码问题', SETTINGS: '设置', CONTRAST: '对比', @@ -152,9 +158,9 @@ LANG_GOOD: '良好', READABILITY_NO_P_OR_LI_MESSAGE: '无法计算可读性得分。没有找到段落<p>或列表内容<li>。', READABILITY_NOT_ENOUGH_CONTENT_MESSAGE: '没有足够的内容来计算可读性得分。', - HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题% (prevLevel) 标题% (level) 。', + HEADING_NON_CONSECUTIVE_LEVEL: '使用了非连续的标题级别。标题不应跳级, 或从标题 %(prevLevel)标题%(level)。', HEADING_EMPTY: '发现空的标题!要解决这个问题, 请删除这一行或将其格式从标题%(level)改为正常段落。', - HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
                        字符数: %(headingLength)。', + HEADING_LONG: '标题很长!标题应被用来组织内容和传达结构。它们应该是简短的、信息丰富的和独特的。请将标题保持在160个字符以内 (不超过一个句子) 。
                        %(HEADING_LENGTH) 字符。', HEADING_FIRST: '一个页面的第一个标题通常应该是标题1或标题2。标题1应该是主要内容部分的开始, 也是描述页面整体目的的主要标题。了解更多关于标题结构。的信息。', HEADING_MISSING_ONE: '缺少标题1。标题1应该是主要内容区的开始, 是描述页面整体目的的主要标题。了解更多关于标题结构.的信息。', HEADING_EMPTY_WITH_IMAGE: '标题没有文字, 但包含一个图像。如果这不是一个标题, 请将其格式从标题%(level)改为正常段落。否则, 如果图片不是装饰性的, 请为其添加alt文本。', @@ -163,65 +169,65 @@ LINK_EMPTY: '删除没有任何文字的空链接。', LINK_EMPTY_LABELLEDBY: '链接具有aria-labelledby的值为空或不与页面上另一个元素的id属性值匹配。', LINK_EMPTY_LINK_NO_LABEL: '链接没有可识别的文字, 对屏幕阅读器和其他辅助技术是可见的。要解决这个问题:
                        • 添加一些简明的文字, 描述该链接带你到哪里。
                        • 如果它是一个图标链接或SVG,它可能缺少一个描述性的标签。
                        • 如果你认为这个链接是一个由于复制/粘贴错误造成的错误, 考虑删除它。
                        。', - LINK_LABEL: '链接标签: %(sanitizedText)', - LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(error)
                        提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', - LINK_BEST_PRACTICES: '考虑替换链接文本: %(error)
                        • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
                        • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。', + LINK_LABEL: '链接标签: %(TEXT)', + LINK_STOPWORD: '链接文本可能没有足够的描述性, 脱离了上下文: %(ERROR)
                          提示!链接文本应始终清晰、独特和有意义。避免使用诸如"点击这里"或"了解更多"等常见的词语;', + LINK_BEST_PRACTICES: '考虑替换链接文本: %(ERROR)
                          • "Click here"将重点放在鼠标操作上, 而许多人并不使用鼠标, 或者可能在移动设备上浏览本网站。考虑使用一个与任务相关的不同动词。
                          • 避免使用HTML符号作为行动呼吁, 除非它们对辅助技术是隐藏的。
                          ', LINK_URL: '用作链接文本的较长的、不太容易理解的URL可能难以用辅助技术听懂。在大多数情况下, 最好使用人类可读的文本来代替URL。
                          提示!链接文本应该总是清晰、独特和有意义的, 这样它就可以脱离上下文而被理解。', LINK_DOI: '对于网页或纯在线资源,APA风格指南建议使用描述性链接,将作品的URL或DOI包裹在其标题上。使用较长的、不易理解的URL作为链接文本,在使用辅助技术访问时可能难以理解。', - NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
                          提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', - FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
                          示例: 执行报告 (PDF, 3MB) 。', - LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
                          考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(sanitizedText)。', + NEW_TAB_WARNING: '链接在新的标签或窗口中打开, 没有警告。这样做可能会使人迷失方向, 特别是对那些对视觉内容有感知困难的人来说。其次, 控制别人的体验或为他们做决定并不总是一种好的做法。在链接文本中指出该链接在新窗口中打开
                          提示!学习最佳做法: 在新的浏览器窗口和标签中打开链接。', + FILE_TYPE_WARNING: '链接指向PDF或可下载的文件 (如MP3、Zip、Word Doc) , 而没有警告。在链接文本中指出文件类型。如果是大文件, 可以考虑包括文件大小。
                          示例: 执行报告 (PDF, 3MB) 。', + LINK_IDENTICAL_NAME: '链接的文字与另一个链接相同, 但它指向不同的页面。
                          考虑使以下链接更具描述性, 以帮助将其与其他链接区分开来: %(TEXT)', MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE: '图片被用作带有周围文本的链接, 尽管alt属性应被标记为装饰性或空。', MISSING_ALT_LINK_MESSAGE: '图像被用作链接,但缺少替代文本!请确保替代文本描述了链接将您带到的位置。', MISSING_ALT_MESSAGE: '缺少替代文本!如果图像传达了故事、情绪或重要信息 - 请务必描述图像。', - LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(error).
                          替代文字:%(altText)', - LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(altText)。', - LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
                          alt文本: %(altText)', - ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(error).
                          替代文字:%(altText)', - ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(altText)。', - ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(error)" 可能是多余的。
                          替代文字: %(altText)', + LINK_ALT_HAS_FILE_EXTENSION: '在alt文本中发现文件扩展名。确保alt文本描述链接的目的地, 而不是图片的字面描述。删除: %(ERROR).
                          ALT文本 %(ALT_TEXT)', + LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE: '发现链接图片中的非描述性或占位符的alt文本。确保alt文本描述了链接的目的地, 而不是图像的字面描述。替换以下alt文本: %(ALT_TEXT)', + LINK_IMAGE_SUS_ALT_MESSAGE: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。确保alt文本描述了链接的目的地, 而不是图像的字面描述。
                          ALT文本 %(ALT_TEXT)', + ALT_HAS_FILE_EXTENSION: '在alt文本内找到文件扩展名。如果图片传达了一个故事、情绪或重要信息--一定要描述图片。删除: %(ERROR)
                          ALT文本 %(ALT_TEXT)', + ALT_PLACEHOLDER_MESSAGE: '发现非描述性或占位符的alt文本。用更有意义的内容替换下面的alt文本: %(ALT_TEXT)。', + ALT_HAS_SUS_WORD: '辅助技术已经表明这是一张图片, 所以"%(ERROR)" 可能是多余的。
                          ALT文本 %(ALT_TEXT)', LINK_HIDDEN_FOCUSABLE: '链接具有aria-hidden="true",但仍可通过键盘聚焦。如果您打算隐藏多余或重复的链接,也请添加tabindex="-1"。', LINK_IMAGE_NO_ALT_TEXT: '链接中的图像被标记为装饰性的, 没有链接文本。请在图片上添加描述链接目的地的alt文本。', LINK_IMAGE_HAS_TEXT: '图片被标记为装饰性的, 尽管链接是使用周围的文字作为描述性的标签。', - LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
                          alt文本 (% (altLength) 字符) : % (altText) 。', - LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
                          替代文字: %(altText)', - LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
                          标题文本: %(altText)
                          链接标签: %(sanitizedText)', + LINK_IMAGE_LONG_ALT: '链接图片的alt文本描述太长。链接图片的alt文本应该描述链接的位置, 而不是图片的字面描述。考虑使用它所链接的页面的标题作为alt文本。
                          ALT文本 %(altLength) 字符 %(ALT_TEXT)', + LINK_IMAGE_ALT_WARNING: '图片链接包含alt文本。符号文本是否描述了该链接的位置?可以考虑使用它所链接的页面的标题作为alt文本。
                          ALT文本 %(ALT_TEXT)', + LINK_IMAGE_ALT_AND_TEXT_WARNING: '图片链接包含alt文本和周围的链接文本。如果该图片是装饰性的, 并被用作另一个页面的功能链接, 请考虑将该图片标记为装饰性或无效--周围的链接文本应该足够了。
                          ALT文本 %(ALT_TEXT)
                          链接标签: %(TEXT)', IMAGE_FIGURE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。
                          虽然提供了一个标题, 但在大多数情况下, 图像也应该有alt文本。
                          • alt文本应该对图像中的内容进行简明的描述。
                          • 标题通常应该提供背景, 将图像与周围的内容联系起来, 或者对某一特定的信息给予关注: alt与figcaption.', - IMAGE_FIGURE_DUPLICATE_ALT: '不要在alt和标题文本中使用完全相同的词。屏幕阅读器会将信息公布两次。
                            • alt文本应提供对图片中内容的简明描述。
                            • 标题通常应提供背景, 将图片与周围的内容联系起来, 或对某一特定信息给予关注。
                            了解更多: alt与figcaption.
                            替代文字: %(altText)', + IMAGE_FIGURE_DUPLICATE_ALT: '不要在 alt 文本和标题文本中使用完全相同的词语。屏幕阅读器会重复宣读信息。
                            • alt 文本应提供对图像内容的简洁描述。
                            • 标题通常应提供上下文以将图像与周围内容联系起来,或者关注特定信息。
                            了解更多:alt 与 figcaption 的区别。
                            ALT %(ALT_TEXT)', IMAGE_DECORATIVE: '图片被标记为装饰性, 将被辅助技术所忽略。如果图片传达了一个故事、情绪或重要的信息--请务必添加alt文本。', - IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
                            标题文本 (%(altLength)字符) : %(altText)', - IMAGE_PASS: '替代文本: %(altText)', + IMAGE_ALT_TOO_LONG: 'Alt文本描述太长。Alt文本应该是简洁的, 但又像tweet一样有意义 (大约100个字符) 。如果这是一张复杂的图片或图表, 可以考虑将图片的长篇描述放在下面的文字或手风琴组件中。
                            ALT文本 %(altLength) 字符 %(ALT_TEXT)', + IMAGE_PASS: 'ALT文本 %(ALT_TEXT)', LABELS_MISSING_IMAGE_INPUT_MESSAGE: '图片按钮缺少alt文本。请添加alt文本, 提供一个可访问的名称。比如说: SearchSubmit。', LABELS_INPUT_RESET_MESSAGE: '除非特别需要, 否则不应使用重置按钮, 因为它们很容易被错误激活。
                            提示!了解为什么复位和取消按钮会带来可用性问题。', - LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
                            输入标签: %(sanitizedText)', + LABELS_ARIA_LABEL_INPUT_MESSAGE: '输入有一个无障碍名称, 但请确保也有一个可见的标签。
                            输入标签 %(TEXT)', LABELS_NO_FOR_ATTRIBUTE_MESSAGE: '没有与此输入相关的标签。给标签添加一个for属性, 该属性与该输入的id相匹配。
                            这个输入的ID是: id="% (id) "', LABELS_MISSING_LABEL_MESSAGE: '没有与此输入相关的标签。请为这个输入添加一个id, 并为标签添加一个匹配的for属性。', EMBED_VIDEO: '请确保所有视频都有闭合字幕。为所有音频和视频内容提供字幕是一项强制性的A级要求。字幕支持聋哑人或听力困难的人。', EMBED_AUDIO: '请确保为所有播客提供文字记录。为音频内容提供文字记录是一项强制性的A级要求。转录支持聋哑人或听力困难的人, 但也能使所有人受益。考虑将文字记录放在下面或放在一个手风琴面板内。', EMBED_DATA_VIZ: '像这样的数据可视化部件对于使用键盘或屏幕阅读器导航的人来说往往是有问题的, 而且对于低视力或色盲的人来说也会带来很大的困难。建议在小组件下方以替代 (文本或表格) 的形式提供相同的信息。
                            了解更多关于复杂图像的信息。', - EMBED_MISSING_TITLE: '嵌入内容需要一个描述其内容的可访问名称。请在iframe元素上提供一个独特的titlearia-label属性。了解更多关于iFrames.的信息。', + EMBED_MISSING_TITLE: '嵌入式内容需要一个描述其内容的可访问名称。请在 iframe 元素上提供一个唯一的 titlearia-label 属性。了解更多关于 iFrames。', EMBED_GENERAL_WARNING: '无法检查嵌入式内容。请确保图像有alt文本, 视频有标题, 文本有足够的对比度, 互动组件是键盘可访问的。', EMBED_UNFOCUSABLE: '带有无法聚焦元素的 <iframe> 不应具有 tabindex="-1"。嵌入内容将无法通过键盘访问。', - QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
                            这个链接指向:
                            %(el)', + QA_BAD_LINK: '发现坏的链接。链接似乎指向一个开发环境。
                            这个链接指向:
                            %(LINK)', QA_IN_PAGE_LINK: '破损的同页链接。链接目标与此页面上的任何元素都不匹配。', QA_BAD_ITALICS: '粗体和斜体标签具有语义, 不应用于突出整个段落。加粗的文字应该用于对一个词或短语进行强烈的强调。斜体字应该用来突出专有名词 (即书名和文章标题) 、外国词、引号。长篇引语应采用块状引语的格式。', QA_PDF: '无法检查PDF的可访问性。PDF被认为是网络内容, 也必须做到无障碍。对于使用屏幕阅读器的人 (缺失结构标签或缺失表格字段标签) 和低视力的人 (文本在放大时不回流) 来说, PDF经常包含一些问题。
                            • 如果这是一个表格, 请考虑使用可访问的HTML表格作为替代。
                            • 如果这是一个文档, 请考虑将其转换为网页。
                            否则, 请在Acrobat DC中检查PDF的可访问性。', - QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', + QA_DOCUMENT: '无法检查文件的可访问性。链接文件被认为是网络内容, 也必须做到无障碍。请手动审查该文件。。', QA_PAGE_LANGUAGE: '页面语言未声明!请在HTML标签上声明语言。', QA_PAGE_TITLE: '缺少页面标题!请提供一个页面标题。', - QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(sanitizedText)
                            方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', - QA_FAKE_HEADING: '这是一个标题吗?%(boldtext)
                            一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', - QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
                            请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', + QA_BLOCKQUOTE_MESSAGE: '这是一个标题吗?%(TEXT)
                            方块引号应该只用于引号。如果这是一个标题, 请将这个区块引号改为语义标题 (例如标题2或标题3) 。', + QA_FAKE_HEADING: '这是一个标题吗?%(TEXT)
                            一行粗体或大字体可能看起来像一个标题, 但使用屏幕阅读器的人无法看出它的重要性或跳到它的内容。粗体或大字体永远不应取代语义标题 (标题2至标题6) 。', + QA_SHOULD_BE_LIST: '您是否试图创建一个列表?找到了可能的列表项: %(firstPrefix)
                            请确保使用语义列表, 用子弹或数字格式按钮代替。当使用语义列表时, 辅助技术能够传达信息, 如项目的总数和每个项目在列表中的相对位置。了解更多关于语义列表的信息。', QA_UPPERCASE_WARNING: '发现全大写。一些屏幕阅读器可能会将所有大写字母的文本解释为缩写, 并会单独阅读每个字母。此外, 有些人觉得全大写的文字更难读, 而且可能给人一种大喊大叫的感觉。', - QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
                            请删除或更改以下ID: %(id)。', + QA_DUPLICATE_ID: '发现重复的ID。众所周知, 当辅助技术试图与内容互动时, 重复的ID错误会给辅助技术带来问题。
                            请删除或更改以下ID: %(id)', QA_TEXT_UNDERLINE_WARNING: '带下划线的文本可能会与链接相混淆。考虑使用不同的风格, 如<strong>strong重要性</strong><em>emphasis<;/em>;。', QA_SUBSCRIPT_WARNING: '下标和上标格式化选项只能用于改变文字的位置, 以符合排版习惯或标准。它不应该仅仅用于演示或外观目的。对整个句子进行格式化会带来可读性问题。适当的使用情况包括显示指数、序数, 如4th而不是第四, 以及化学公式 (如H2O) 。', TABLES_MISSING_HEADINGS: '缺少表头!可访问的表格需要HTML标记, 表明标题单元和数据单元, 定义它们的关系。这种信息为使用辅助技术的人提供了背景。表格应该只用于表格式的数据。
                            了解更多关于无障碍表格的信息。', TABLES_SEMANTIC_HEADING: '语义标题, 如Heading 2或Heading 3, 只能用于内容的章节;不能用于HTML表格。使用<th>元素来表示表格的标题。
                            了解更多关于可访问的表格。', TABLES_EMPTY_HEADING: '发现空的表头!表头应该永远不会是空的。指定行和/或列的标题以表达它们的关系是很重要的。这一信息为使用辅助技术的人提供了背景。请记住, 表格应该只用于表格式数据。
                            了解更多关于可访问的表格。', - CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
                            以下文本的对比度为%(cratio): %(sanitizedText) ', - CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
                            请审查: %(sanitizedText)', - CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
                            对比度: %(cratio)', + CONTRAST_ERROR: '这个文本与背景的对比度不够。普通文本的对比度至少应该是4.5:1, 大文本的对比度应该是3:1。
                            对比度比率 %(RATIO) %(TEXT)', + CONTRAST_WARNING: '该文本的对比度不明, 需要人工审查。确保文字和背景有强烈的颜色对比。正常文本的对比度应至少为4.5:1, 大型文本为3:1。
                            请审查: %(TEXT)', + CONTRAST_INPUT_ERROR: '该输入的文字与背景的对比度不够。普通文本的对比度应该至少为4.5:1, 大文本的对比度应该为3:1。
                            对比度比率 %(RATIO)', }, }; diff --git a/docs/assets/js/sa11y.esm.js b/docs/assets/js/sa11y.esm.js index 6e886ead..eb40f5de 100644 --- a/docs/assets/js/sa11y.esm.js +++ b/docs/assets/js/sa11y.esm.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -27,10 +27,15 @@ const defaultOptions = { linkIgnoreStrings: '', // Other features + aboutContent: '', delayCheck: 0, delayCustomCheck: 500, showGoodLinkButton: true, showHinPageOutline: false, + showImageOutline: true, + editImageURLofCMS: '', + relativePathImageSRC: '', + relativePathImageID: '', detectSPArouting: false, doNotRun: '', dismissAnnotations: true, @@ -40,6 +45,9 @@ const defaultOptions = { autoDetectShadowComponents: false, panelPosition: 'right', altTextMaxCharLength: 250, + susAltStopWords: '', + linkStopWords: '', + extraPlaceholderStopWords: '', headingMaxCharLength: 170, URLTextMaxCharLength: 40, URLAsLinkTextWarning: true, @@ -70,7 +78,7 @@ const defaultOptions = { strongItalicsQA: true, pdfQA: true, documentQA: true, - documentLinks: '.ppt, .doc, .xls, .csv, sway.com, docs.google.com', + documentLinks: '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"], a[href^="https://sway."]', langQA: true, blockquotesQA: true, allCapsQA: true, @@ -130,59 +138,14 @@ const Lang = { return $el.replaceAll(/
                            /g, '') .replaceAll(/`) - .replaceAll(/{r}/g, 'class="red-text"'); + .replaceAll(/{r}/g, 'class="red-text"') + .replaceAll(/{w}/g, 'class="yellow-text"') + .replaceAll(/{b}/g, 'class="badge"') + .replaceAll(/{wb}/g, 'class="badge warning-badge"') + .replaceAll(/{eb}/g, 'class="badge error-badge"'); }, }; -var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; - -/* ************************************************************ */ -/* Auto-detect shadow DOM or process provided web components. */ -/* ************************************************************ */ -const addStylestoShadow = (component) => { - const style = document.createElement('style'); - style.setAttribute('class', 'sa11y-css-utilities'); - style.textContent = styles$1; - component.shadowRoot.appendChild(style); -}; - -function findShadowComponents(option, desiredRoot) { - let webComponents; - if (option.autoDetectShadowComponents) { - // Elements to ignore. - const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; - - // Search all elements. - const root = document.querySelector(desiredRoot); - const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); - - // Query for open shadow roots & inject CSS utilities into every shadow DOM. - const foundShadows = []; - search.forEach((component) => { - if (component.shadowRoot && component.shadowRoot.mode === 'open') { - foundShadows.push(component); - addStylestoShadow(component); - } - }); - - // Return ALL web components on the page. - const all = Array.from(foundShadows).map((component) => component.tagName.toLowerCase()); - webComponents = (all.length === 1) ? `${all.toString()}` : all.join(', '); - } else { - // If autoDetectShadowComponents is OFF, use provided shadow dom. - webComponents = option.suppliedShadowComponents || ''; - - // Append styles to each provided shadow dom. - if (webComponents) { - const providedShadow = document.querySelectorAll(webComponents); - providedShadow.forEach((component) => { - addStylestoShadow(component); - }); - } - } - return webComponents; -} - const Constants = (function myConstants() { /* **************** */ /* Initialize Roots */ @@ -216,6 +179,7 @@ const Constants = (function myConstants() { Global.headless = option.headless; Global.panelPosition = option.panelPosition; Global.dismissAnnotations = option.dismissAnnotations; + Global.aboutContent = option.aboutContent; // Toggleable plugins Global.contrastPlugin = option.contrastPlugin; @@ -224,6 +188,10 @@ const Constants = (function myConstants() { Global.colourFilterPlugin = option.colourFilterPlugin; Global.checkAllHideToggles = option.checkAllHideToggles; Global.exportResultsPlugin = option.exportResultsPlugin; + Global.showImageOutline = option.showImageOutline; + Global.editImageURLofCMS = option.editImageURLofCMS; + Global.relativePathImageSRC = option.relativePathImageSRC; + Global.relativePathImageID = option.relativePathImageID; // A11y: Determine scroll behaviour let reducedMotion = false; @@ -251,10 +219,17 @@ const Constants = (function myConstants() { Panel.panel = Sa11yPanel.getElementById('panel'); Panel.content = Sa11yPanel.getElementById('panel-content'); Panel.controls = Sa11yPanel.getElementById('panel-controls'); + Panel.outline = Sa11yPanel.getElementById('outline-panel'); Panel.outlineContent = Sa11yPanel.getElementById('outline-content'); Panel.outlineList = Sa11yPanel.getElementById('outline-list'); Panel.outlineHeader = Sa11yPanel.getElementById('outline-header'); + + Panel.images = Sa11yPanel.getElementById('images-panel'); + Panel.imagesContent = Sa11yPanel.getElementById('images-content'); + Panel.imagesList = Sa11yPanel.getElementById('images-list'); + Panel.imagesHeader = Sa11yPanel.getElementById('images-header'); + Panel.notifBadge = Sa11yPanel.getElementById('notification-badge'); Panel.notifCount = Sa11yPanel.getElementById('notification-count'); Panel.notifText = Sa11yPanel.getElementById('notification-text'); @@ -266,10 +241,12 @@ const Constants = (function myConstants() { Panel.pageIssuesHeader = Sa11yPanel.getElementById('page-issues-header'); Panel.pageIssuesContent = Sa11yPanel.getElementById('page-issues-content'); - // Settings + // Settings panel Panel.settings = Sa11yPanel.getElementById('settings-panel'); Panel.settingsHeader = Sa11yPanel.getElementById('settings-header'); Panel.settingsContent = Sa11yPanel.getElementById('settings-content'); + + // Settings toggles Panel.contrastToggle = Sa11yPanel.getElementById('contrast-toggle'); Panel.labelsToggle = Sa11yPanel.getElementById('labels-toggle'); Panel.linksToggle = Sa11yPanel.getElementById('links-advanced-toggle'); @@ -289,6 +266,7 @@ const Constants = (function myConstants() { // Buttons Panel.toggle = Sa11yPanel.getElementById('toggle'); Panel.outlineToggle = Sa11yPanel.getElementById('outline-toggle'); + Panel.imagesToggle = Sa11yPanel.getElementById('images-toggle'); Panel.settingsToggle = Sa11yPanel.getElementById('settings-toggle'); Panel.skipButton = Sa11yPanel.getElementById('skip-button'); Panel.dismissButton = Sa11yPanel.getElementById('dismiss-button'); @@ -437,16 +415,6 @@ const Constants = (function myConstants() { EmbeddedContent.All = `${EmbeddedContent.Video}, ${EmbeddedContent.Audio}, ${EmbeddedContent.Visualization}`; } - /* ***************** */ - /* Shadow Components */ - /* ***************** */ - const Shadow = {}; - function initializeShadowSearch(checkRoot, autoDetectShadowComponents, shadowComponents) { - Shadow.Components = findShadowComponents( - checkRoot, - autoDetectShadowComponents); - } - return { initializeRoot, Root, @@ -460,8 +428,6 @@ const Constants = (function myConstants() { Exclusions, initializeEmbeddedContent, EmbeddedContent, - initializeShadowSearch, - Shadow, }; }()); @@ -490,8 +456,8 @@ function find(selector, desiredRoot, exclude) { if (!root) root = document.body; } - const shadowComponents = Constants.Shadow.Components; - const shadow = (shadowComponents) ? `, ${shadowComponents}` : ''; + const shadowComponents = document.querySelectorAll('[data-sa11y-has-shadow-root]'); + const shadow = (shadowComponents) ? ', [data-sa11y-has-shadow-root]' : ''; const exclusions = Constants.Exclusions.Container; const additional = (exclude !== undefined) ? `, ${exclude}` : ''; @@ -503,9 +469,8 @@ function find(selector, desiredRoot, exclude) { // 2. Dive into the each shadow root and collect an array of its results. const shadowFind = []; // Remove first comma and whitespace. - const prepShadow = shadowComponents.trim().replace(/^,+/, ''); elements.forEach((el, i) => { - if (el && el.matches && el.matches(prepShadow) && el.shadowRoot) { + if (el && el.matches && el.matches('[data-sa11y-has-shadow-root]') && el.shadowRoot) { shadowFind[i] = el.shadowRoot.querySelectorAll(`:is(${selector}):not(${exclusions}${additional})`); } }); @@ -936,14 +901,21 @@ function remove(elements, root) { * Checks if a scrollable area within a container element is scrollable or not, and applies appropriate CSS classes and attributes. Make sure to add aria-label manually. * @param {Element} scrollArea The scrollable area element to check. * @param {Element} container The container element that wraps the scrollable area. + * @param {Attribute} ariaLabel Give scroll area an accessible name and region landmark. */ -function isScrollable(scrollArea, container) { - if (scrollArea.scrollHeight > container.clientHeight) { - container.classList.add('scrollable'); - scrollArea.setAttribute('tabindex', '0'); - } else { - container.classList.remove('scrollable'); - } +function isScrollable(scrollArea, container, ariaLabel) { + setTimeout(() => { + if (scrollArea.scrollHeight > container.clientHeight) { + container.classList.add('scrollable'); + scrollArea.setAttribute('tabindex', '0'); + if (ariaLabel) { + scrollArea.setAttribute('aria-label', ariaLabel); + scrollArea.setAttribute('role', 'region'); + } + } else { + container.classList.remove('scrollable'); + } + }, 50); } /** @@ -1134,6 +1106,43 @@ const Elements = (function myElements() { }; }()); +var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; + +/* ************************************************************ */ +/* Auto-detect shadow DOM or process provided web components. */ +/* ************************************************************ */ +const addStylestoShadow = (component) => { + const style = document.createElement('style'); + style.setAttribute('class', 'sa11y-css-utilities'); + style.textContent = styles$1; + component.shadowRoot.appendChild(style); +}; + +function findShadowComponents(option) { + if (option.autoDetectShadowComponents) { + // Elements to ignore. + const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; + + // Search all elements. + const root = document.querySelector(option.checkRoot); + const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); + + // Query for open shadow roots & inject CSS utilities into every shadow DOM. + search.forEach((component) => { + if (component.shadowRoot && component.shadowRoot.mode === 'open') { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + } + }); + } else if (option.shadowComponents) { + const providedShadow = document.querySelectorAll(option.shadowComponents); + providedShadow.forEach((component) => { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + }); + } +} + /* ******************************************************** */ /* Feature to detect if URL changed for bookmarklet/SPAs. */ /* ******************************************************** */ @@ -1153,7 +1162,7 @@ function detectPageChanges(detectSPArouting, checkAll, resetAll) { url = window.location.href; // Update current URL } }, 250); - window.addEventListener('mousemove', checkURL); + window.addEventListener('click', checkURL); window.addEventListener('keydown', checkURL); } } @@ -1537,7 +1546,8 @@ function downloadCSVTemplate(results) { // Make issue messages more readable in CSV format. const prepContent = content .replaceAll(/]*>.*?<\/span>/gi, '') - .replaceAll('', ' | '); + .replaceAll('', ' | ') + .replaceAll(/"/g, '""'); const stripHTML = stripHTMLtags(String(prepContent)); const encoded = decodeHTML(stripHTML); @@ -1558,7 +1568,8 @@ function downloadCSVTemplate(results) { const csvContent = `${headers.join(',')}\n${filteredObjects.map((obj) => headers.map((header) => obj[header]).join(',')).join('\n')}`; // Create blob - const blob = new Blob([csvContent], { type: 'text/csv' }); + const bom = new Uint8Array([0xEF, 0xBB, 0xBF]); + const blob = new Blob([bom, csvContent], { type: 'text/csv;charset=utf-8;' }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; @@ -1602,7 +1613,7 @@ function removeExportListeners() { var styles = ":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"; -var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; +var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; class ConsoleErrors extends HTMLElement { constructor(error) { @@ -1697,7 +1708,7 @@ function mainToggle(checkAll, resetAll) { }; } -var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; +var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:\"\";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; class ControlPanel extends HTMLElement { connectedCallback() { @@ -1790,6 +1801,12 @@ class ControlPanel extends HTMLElement {
                          • ` : ''; + /* CUSTOMIZABLE ABOUT SECTION */ + const aboutSection = Constants.Global.aboutContent ? ` +
                            + ${Constants.Global.aboutContent} +
                            ` : ''; + /* MAIN TOGGLE */ const mainToggle = `
                          + ${aboutSection} `; @@ -1895,12 +1928,20 @@ class ControlPanel extends HTMLElement { `; /* OUTLINE & SETTING TAB TOGGLES. */ + const imageToggleButton = ``; + + // Spacer for toggle width... + const spacer = Constants.Global.showImageOutline + ? '
                          ' + : '
                          '; + const tabToggles = `
                          - ${(panelPosition === 'left') ? '
                          ' : ''} + ${(panelPosition === 'left') ? spacer : ''} + ${Constants.Global.showImageOutline ? imageToggleButton : ''} - ${(panelPosition === 'right') ? '
                          ' : ''} + ${(panelPosition === 'right') ? spacer : ''}
                          `; /* MAIN CONTAINER */ @@ -1919,6 +1960,7 @@ class ControlPanel extends HTMLElement { ${colourFilterPanel} ${tabToggles} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${pageIssues} @@ -1929,6 +1971,7 @@ class ControlPanel extends HTMLElement {
                          ${pageIssues} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${colourFilterPanel} @@ -2191,6 +2234,80 @@ function settingsPanelToggles(checkAll, resetAll) { /* eslint-disable no-return-assign */ +/** + * OUTLINE PANEL. + */ +const openOutline = () => { + Constants.Panel.outlineToggle.classList.add('active'); + Constants.Panel.outline.classList.add('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-outline', 'Opened'); + isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = false); + + const event = new CustomEvent('sa11y-build-heading-outline'); + document.dispatchEvent(event); +}; + +const closeOutline = () => { + Constants.Panel.outline.classList.remove('active'); + Constants.Panel.outlineToggle.classList.remove('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-outline', 'Closed'); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = true); +}; + +/** + * IMAGES PANEL. + */ +const openImages = () => { + Constants.Panel.imagesToggle.classList.add('active'); + Constants.Panel.images.classList.add('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-images', 'Opened'); + isScrollable(Constants.Panel.imagesList, Constants.Panel.imagesContent); + + const event = new CustomEvent('sa11y-build-image-outline'); + document.dispatchEvent(event); +}; + +const closeImages = () => { + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.classList.remove('active'); + Constants.Panel.images.classList.remove('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-images', 'Closed'); + } +}; + +/** + * SETTINGS PANEL. + */ +const openSettings = () => { + Constants.Panel.settingsToggle.classList.add('active'); + Constants.Panel.settings.classList.add('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-settings', 'Opened'); + isScrollable( + Constants.Panel.settingsContent, + Constants.Panel.settingsContent, + Lang._('SETTINGS'), + ); +}; + +const closeSettings = () => { + Constants.Panel.settings.classList.remove('active'); + Constants.Panel.settingsToggle.classList.remove('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-settings', 'Closed'); +}; + /* **************************************************************** */ /* Main panel: Initialize Show Outline and Settings buttons/tabs. */ /* **************************************************************** */ @@ -2200,46 +2317,43 @@ function initializePanelToggles() { /* **************** */ Constants.Panel.outlineToggle.addEventListener('click', () => { if (Constants.Panel.outlineToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + closeOutline(); } else { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-outline', 'Opened'); - store.setItem('sa11y-remember-settings', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = false); + openOutline(); + closeSettings(); + closeImages(); } // Set focus on Page Outline heading for accessibility. Constants.Panel.outlineHeader.focus(); - - // Close Settings panel when Show Outline is active. - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); }); // Remember to leave outline open if (store.getItem('sa11y-remember-outline') === 'Opened') { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + openOutline(); + } - setTimeout(() => { - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); - }, 0); + /* **************** */ + /* Images panel */ + /* **************** */ + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.addEventListener('click', () => { + if (Constants.Panel.imagesToggle.getAttribute('aria-expanded') === 'true') { + closeImages(); + } else { + openImages(); + closeOutline(); + closeSettings(); + } + + // Set focus on Images heading for accessibility. + Constants.Panel.imagesHeader.focus(); + }); + + // Remember to leave outline open + if (store.getItem('sa11y-remember-images') === 'Opened') { + openImages(); + } } /* **************** */ @@ -2247,49 +2361,20 @@ function initializePanelToggles() { /* **************** */ Constants.Panel.settingsToggle.addEventListener('click', () => { if (Constants.Panel.settingsToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-settings', 'Closed'); + closeSettings(); } else { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-settings', 'Opened'); - store.setItem('sa11y-remember-outline', 'Closed'); + openSettings(); + closeOutline(); + closeImages(); } // Set focus on Settings heading for accessibility. Constants.Panel.settingsHeader.focus(); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - - // Close Show Outline panel when Settings is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Keyboard accessibility fix for scrollable panel content. - if (Constants.Panel.settingsContent.clientHeight > 350) { - Constants.Panel.settingsContent.setAttribute('tabindex', '0'); - Constants.Panel.settingsContent.setAttribute('aria-label', `${Lang._('SETTINGS')}`); - Constants.Panel.settingsContent.setAttribute('role', 'region'); - } - - // Close Outline panel when Show Outline is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('settings-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); }); // Remember to leave settings open if (store.getItem('sa11y-remember-settings') === 'Opened') { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + openSettings(); } // Accessibility: Skip link to Page Issues @@ -2298,49 +2383,25 @@ function initializePanelToggles() { }); // Page issues: add gradient if scrollable list. - setTimeout(() => { - isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); - }, 0); - - // Enhanced keyboard accessibility for panel. - Constants.Panel.controls.addEventListener('keydown', (e) => { - const $tab = Constants.Panel.panel.querySelectorAll('#outline-toggle[role=tab], #settings-toggle[role=tab]'); - if (e.key === 'ArrowRight') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowDown') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowLeft') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowUp') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } + isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); + + /* ******************************** */ + /* Better keyboard accessibility. */ + /* ******************************** */ + const tabs = Constants.Panel.panel.querySelectorAll('[role=tab]'); + let currentIndex = Array.from(tabs).findIndex((tab) => tab.classList.contains('active')); + tabs.forEach((tab) => { + tab.addEventListener('keydown', (e) => { + if (e.key === 'ArrowRight') { + e.preventDefault(); + currentIndex = (currentIndex + 1) % tabs.length; + tabs[currentIndex].focus(); + } else if (e.key === 'ArrowLeft') { + e.preventDefault(); + currentIndex = (currentIndex - 1 + tabs.length) % tabs.length; + tabs[currentIndex].focus(); } - } + }); }); } @@ -2349,43 +2410,44 @@ function initializePanelToggles() { */ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { - // Create a single array that gets appended to heading outline. - const outlineArray = []; - - // Find all dismissed headings and update headingOutline array. - const findDismissedHeadings = dismissed.map((e) => { - const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); - if (found === undefined) return ''; - return found; - }); - findDismissedHeadings.forEach(($el) => { - Object.assign($el, { dismissedHeading: true }); - }); - - // Iterate through object that contains all headings (and error type). - headingOutline.forEach((heading) => { - const $el = heading.element; - const level = heading.headingLevel; - const headingText = heading.text; - const i = heading.index; - const issue = heading.type; - const visibility = heading.hidden; - const parent = heading.visibleParent; - const dismissedH = heading.dismissedHeading; - const { isWithinRoot } = heading; - - // Filter out specified headings in outlineIgnore prop. - const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; - - if (!ignoreArray.includes($el)) { - // Indicate if heading is totally hidden or visually hidden. - const visibleIcon = (visibility === true) ? 'Hidden' : ''; - const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; - const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + const outlineHandler = () => { + // Create a single array that gets appended to heading outline. + const outlineArray = []; + + // Find all dismissed headings and update headingOutline array. + const findDismissedHeadings = dismissed.map((e) => { + const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; + }); + findDismissedHeadings.forEach(($el) => { + Object.assign($el, { dismissedHeading: true }); + }); - let append; - if (issue === 'error' && isWithinRoot === true) { - append = ` + // Iterate through object that contains all headings (and error type). + headingOutline.forEach((heading) => { + const $el = heading.element; + const level = heading.headingLevel; + const headingText = heading.text; + const i = heading.index; + const issue = heading.type; + const visibility = heading.hidden; + const parent = heading.visibleParent; + const dismissedH = heading.dismissedHeading; + const { isWithinRoot } = heading; + + // Filter out specified headings in outlineIgnore prop. + const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; + + if (!ignoreArray.includes($el)) { + // Indicate if heading is totally hidden or visually hidden. + const visibleIcon = (visibility === true) ? 'Hidden' : ''; + const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; + const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + + let append; + if (issue === 'error' && isWithinRoot === true) { + append = `
                        • @@ -2396,9 +2458,9 @@ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { ${headingText}
                        • `; - outlineArray.push(append); - } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { - append = ` + outlineArray.push(append); + } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { + append = `
                        • @@ -2407,154 +2469,305 @@ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { ${headingText}
                        • `; - outlineArray.push(append); - } else { - append = ` + outlineArray.push(append); + } else { + append = `
                        • ${visibleIcon} ${badgeH + level} ${headingText}
                        • `; - outlineArray.push(append); - } + outlineArray.push(append); + } - /** - * Append heading labels. - */ - const label = document.createElement('sa11y-heading-label'); - const anchor = document.createElement('sa11y-heading-anchor'); - label.hidden = true; - - // If heading is in a hidden container, place the anchor just before it's most visible parent. - if (parent !== null) { - $el.insertAdjacentElement('beforeend', label); - const hiddenParent = parent.previousElementSibling; - anchor.setAttribute('id', `sa11y-h${i}`); - if (hiddenParent) { - hiddenParent.insertAdjacentElement('beforebegin', anchor); - hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + /** + * Append heading labels. + */ + const label = document.createElement('sa11y-heading-label'); + const anchor = document.createElement('sa11y-heading-anchor'); + label.hidden = true; + + // If heading is in a hidden container, place the anchor just before it's most visible parent. + if (parent !== null) { + $el.insertAdjacentElement('beforeend', label); + const hiddenParent = parent.previousElementSibling; + anchor.setAttribute('id', `sa11y-h${i}`); + if (hiddenParent) { + hiddenParent.insertAdjacentElement('beforebegin', anchor); + hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + } else { + parent.parentNode.insertAdjacentElement('beforebegin', anchor); + parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + } } else { - parent.parentNode.insertAdjacentElement('beforebegin', anchor); - parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + // If the heading isn't hidden, append visible label. + $el.insertAdjacentElement('beforeend', label); + + // Create anchor above visible label. + label.insertAdjacentElement('beforebegin', anchor); + anchor.setAttribute('id', `sa11y-h${i}`); } - } else { - // If the heading isn't hidden, append visible label. - $el.insertAdjacentElement('beforeend', label); - // Create anchor above visible label. - label.insertAdjacentElement('beforebegin', anchor); - anchor.setAttribute('id', `sa11y-h${i}`); + // Populate heading label. + const content = document.createElement('span'); + content.classList.add('heading-label'); + content.innerHTML = `H${level}`; + label.shadowRoot.appendChild(content); + + // Make heading labels visible when panel is open. + if (store.getItem('sa11y-remember-outline') === 'Opened') { + label.hidden = false; + } } + }); - // Populate heading label. - const content = document.createElement('span'); - content.classList.add('heading-label'); - content.innerHTML = `H${level}`; - label.shadowRoot.appendChild(content); + // Append headings to Page Outline. + Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) + ? `
                        • ${Lang._('PANEL_NO_HEADINGS')}
                        • ` + : outlineArray.join(' '); - // Make heading labels visible when panel is open. - if (store.getItem('sa11y-remember-outline') === 'Opened') { - label.hidden = false; - } - } - }); + // Make clickable! + setTimeout(() => { + const panel = document.querySelector('sa11y-control-panel'); + const shadow = panel.shadowRoot; + const children = Array.from(shadow.querySelectorAll('#outline-list a')); + + children.forEach(($el, i) => { + // Make Page Outline clickable. + const outlineLink = shadow.getElementById(`sa11y-link-${i}`); + + const headingID = find( + `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, + 'document', + Constants.Exclusions.Container, + ); - // Append headings to Page Outline. - Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) - ? `
                        • ${Lang._('PANEL_NO_HEADINGS')}
                        • ` - : outlineArray.join(' '); + // Scroll to. + const pulseAndScroll = (heading) => { + addPulse(heading.parentElement); + heading.scrollIntoView({ + behavior: `${Constants.Global.scrollBehaviour}`, + block: 'center', + }); + }; - // Make clickable! - setTimeout(() => { - const panel = document.querySelector('sa11y-control-panel'); - const shadow = panel.shadowRoot; - const children = Array.from(shadow.querySelectorAll('#outline-list a')); - - children.forEach(($el, i) => { - // Make Page Outline clickable. - const outlineLink = shadow.getElementById(`sa11y-link-${i}`); - - const headingID = find( - `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, - 'document', - Constants.Exclusions.Container, - ); + // Add pulse. + const smoothPulse = (e) => { + if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { + headingID.forEach((heading) => { + pulseAndScroll(heading); + }); - // Scroll to. - const pulseAndScroll = (heading) => { - addPulse(heading.parentElement); - heading.scrollIntoView({ - behavior: `${Constants.Global.scrollBehaviour}`, - block: 'center', - }); - }; + if (outlineLink.classList.contains('hidden-h')) { + createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); + } else if (Constants.Panel.alert.classList.contains('active')) { + removeAlert(); + } + } + e.preventDefault(); + }; - // Add pulse. - const smoothPulse = (e) => { - if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { - headingID.forEach((heading) => { - pulseAndScroll(heading); - }); + // Attach event listeners. + outlineLink?.addEventListener('click', smoothPulse, false); + outlineLink?.addEventListener('keyup', smoothPulse, false); + }); - if (outlineLink.classList.contains('hidden-h')) { - createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); - } else if (Constants.Panel.alert.classList.contains('active')) { - removeAlert(); + /** + * Roving tabindex menu for page outline. + * Thanks to Srijan for this snippet! + * @link https://blog.srij.dev/roving-tabindex-from-scratch + */ + let current = 0; + const handleKeyDown = (e) => { + if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; + if (e.code === 'Space') { + children[current].click(); + return; + } + const selected = children[current]; + selected.setAttribute('tabindex', -1); + let next; + if (e.code === 'ArrowDown') { + next = current + 1; + if (current === children.length - 1) { + next = 0; + } + } else if ((e.code === 'ArrowUp')) { + next = current - 1; + if (current === 0) { + next = children.length - 1; } } + children[next].setAttribute('tabindex', 0); + children[next].focus(); + current = next; e.preventDefault(); }; + Constants.Panel.outlineList.addEventListener('focus', () => { + if (children.length > 0) { + Constants.Panel.outlineList.setAttribute('tabindex', -1); + children[current].setAttribute('tabindex', 0); + children[current].focus(); + } + Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + }); + Constants.Panel.outlineList.addEventListener('blur', () => { + Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + }); + }, 0); - // Attach event listeners. - outlineLink?.addEventListener('click', smoothPulse, false); - outlineLink?.addEventListener('keyup', smoothPulse, false); - }); + // Remove event listener and returned dismissed results. + document.removeEventListener('sa11y-build-heading-outline', outlineHandler); + return dismissed; + }; - /** - * Roving tabindex menu for page outline. - * Thanks to Srijan for this snippet! - * @link https://blog.srij.dev/roving-tabindex-from-scratch - */ - let current = 0; - const handleKeyDown = (e) => { - if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; - if (e.code === 'Space') { - children[current].click(); - return; - } - const selected = children[current]; - selected.setAttribute('tabindex', -1); - let next; - if (e.code === 'ArrowDown') { - next = current + 1; - if (current === children.length - 1) { - next = 0; - } - } else if ((e.code === 'ArrowUp')) { - next = current - 1; - if (current === 0) { - next = children.length - 1; - } - } - children[next].setAttribute('tabindex', 0); - children[next].focus(); - current = next; - e.preventDefault(); - }; - Constants.Panel.outlineList.addEventListener('focus', () => { - if (children.length > 0) { - Constants.Panel.outlineList.setAttribute('tabindex', -1); - children[current].setAttribute('tabindex', 0); - children[current].focus(); + // Generate heading outline based on local storage or if "Outline" button is selected. + const rememberOutline = store.getItem('sa11y-remember-outline'); + if (rememberOutline === 'Opened') outlineHandler(); + document.addEventListener('sa11y-build-heading-outline', outlineHandler); +} + +/** + * Create Images outline. +*/ + +function generateImageOutline(dismissed, imageResults) { + const generateEditLink = (image) => { + let finalURL; + // Only generate edit link if prop is populated. + if (Constants.Global.editImageURLofCMS.length !== 0) { + const { src } = image.element; + + // Check if image's SRC attribute is hosted on same domain or is relative path. + const relativePath = Constants.Global.relativePathImageSRC + ? Constants.Global.relativePathImageSRC + : window.location.host; + + const parts = src.split(relativePath); + const fileExtension = parts.length > 1 ? parts[1] : ''; + + const imageID = Constants.Global.relativePathImageID; + let imageUniqueID; + if (imageID.length && image.element.classList.length) { + image.element.classList.forEach((className) => { + if (className.startsWith(imageID)) { + const [digit] = className.match(/\d+/) || []; + imageUniqueID = digit; + } + }); } - Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + + const editURL = (relativePath && imageID.length) + ? Constants.Global.editImageURLofCMS + imageUniqueID + : Constants.Global.editImageURLofCMS + fileExtension; + + // Only add edit button to relative (locally hosted) images. + const isRelativeLink = (imageSrc) => imageSrc.includes(window.location.host) || imageSrc.startsWith(relativePath); + finalURL = (isRelativeLink(src) && imageUniqueID !== undefined) + ? `` + : ''; + } + return finalURL ?? ''; + }; + + const imageOutlineHandler = () => { + // Create a single array that gets appended to heading outline. + const imageArray = []; + + // Find all dismissed images and update headingOutline array. + const findDismissedImages = dismissed.map((e) => { + const found = imageResults.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; }); - Constants.Panel.outlineList.addEventListener('blur', () => { - Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + + findDismissedImages.forEach(($el) => { + Object.assign($el, { dismissedImage: true }); }); - }, 0); - return dismissed; + + imageResults.forEach((image) => { + const issue = image.type; + const { dismissedImage } = image; + const altText = escapeHTML(image.element.alt); + + // Account for lazy loading libraries that use 'data-src' attribute. + const { src } = image.element; + const dataSrc = image.element.getAttribute('data-src'); + const source = (dataSrc && dataSrc.length > 3) ? dataSrc : src; + + // Generate edit link if locally hosted image and prop is enabled. + const edit = generateEditLink(image); + + let append; + if (issue === 'error') { + const missing = altText.length === 0 + ? `
                          ${Lang._('MISSING')}
                          ` + : `${altText}`; + append = ` +
                        • + +
                          +
                          + + ${Lang._('ERROR')} + ${Lang._('ALT')} +
                          + ${missing} +
                          + ${edit} +
                        • `; + imageArray.push(append); + } else if (issue === 'warning' && !dismissedImage) { + const decorative = altText.length === 0 + ? `
                          ${Lang._('DECORATIVE')}
                          ` : ''; + append = ` +
                        • + +
                          +
                          + + ${Lang._('WARNING')} + ${Lang._('ALT')} +
                          + ${decorative} ${altText} +
                          + ${edit} +
                        • `; + imageArray.push(append); + } else { + const decorative = altText.length === 0 + ? `
                          ${Lang._('DECORATIVE')}
                          ` : ''; + append = ` +
                        • + +
                          +
                          ${Lang._('ALT')}
                          + ${decorative} ${altText} +
                          + ${edit} +
                        • `; + imageArray.push(append); + } + }); + + // Append headings to Page Outline. + Constants.Panel.imagesList.innerHTML = (imageArray.length === 0) + ? `
                        • ${Lang._('IMAGES_NOT_FOUND')}
                        • ` + : imageArray.join(' '); + + // Remove event listener. + document.removeEventListener('sa11y-build-image-outline', imageOutlineHandler); + }; + + /* Generate image outline based on local storage or if "Image" button is selected. */ + const rememberImages = store.getItem('sa11y-remember-images'); + if (rememberImages === 'Opened') imageOutlineHandler(); + document.addEventListener('sa11y-build-image-outline', imageOutlineHandler); } /* ************************************************************ */ @@ -6620,16 +6833,33 @@ function checkImages(results, option) { hit[0] = word; } }); - Lang._('SUSPICIOUS_ALT_STOPWORDS').forEach((word) => { - if (alt.toLowerCase().indexOf(word) >= 0) { + + const susAltWordsOverride = (option.susAltStopWords) ? option.susAltStopWords.split(',').map((word) => word.trim()) : Lang._('SUSPICIOUS_ALT_STOPWORDS'); + susAltWordsOverride.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { hit[1] = word; } }); + Lang._('PLACEHOLDER_ALT_STOPWORDS').forEach((word) => { if (alt.length === word.length && alt.toLowerCase().indexOf(word) >= 0) { hit[2] = word; } }); + + // Additional placeholder stopwords to flag as an error. + const { extraPlaceholderStopWords } = option; + if (extraPlaceholderStopWords.length) { + const array = extraPlaceholderStopWords.split(',').map((word) => word.trim()); + array.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { + hit[2] = word; + } + }); + } + return hit; }; @@ -7065,7 +7295,8 @@ function checkLinkText(results, option) { }); // Other warnings we want to add. - Lang._('WARNING_ALT_STOPWORDS').forEach((word) => { + const linkStopWords = (option.linkStopWords) ? option.linkStopWords.split(',').map((word) => word.trim()) : Lang._('WARNING_ALT_STOPWORDS'); + linkStopWords.forEach((word) => { if (textContent.toLowerCase().indexOf(word) >= 0) { hit[1] = word; } @@ -7325,6 +7556,39 @@ function checkLinkText(results, option) { return results; } +/** + * Converts a color string in the format 'color(srgb r g b [a])' to RGBA format. + * If alpha value is not provided, it defaults to 1 (fully opaque). + * @param {string} colorString The color string in the format 'color(srgb r g b [a])'. + * @returns {string} The RGBA color string in the format 'rgba(r, g, b, a)'. + * Returns 'invalid-format' if the input format is invalid. + */ +const convertColorToRGBA = (colorString) => { + if (colorString.startsWith('color(srgb')) { + const rgbaRegex = /srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/; // Added alpha value regex group + const match = colorString.match(rgbaRegex); + + if (match && match.length >= 4) { + const [r, g, b, a] = match.slice(1); + + // Ensure the parsed values are within the valid range [0, 1]. + const parsedR = Math.min(1, parseFloat(r)); + const parsedG = Math.min(1, parseFloat(g)); + const parsedB = Math.min(1, parseFloat(b)); + + // Parse alpha value or default to 1 if not provided + const alpha = a !== undefined ? Math.min(1, parseFloat(a)) : 1; + + // Converting RGB to RGBA. + const rgbaColor = `rgba(${Math.round(parsedR * 255)}, ${Math.round(parsedG * 255)}, ${Math.round(parsedB * 255)}, ${alpha})`; + + return rgbaColor; + } + return 'invalid-format'; + } + return colorString; // Return the original color if it's not in the color() format. +}; + /** * Rulesets: Contrast * Color contrast plugin by Jason Day. @@ -7398,18 +7662,18 @@ function checkContrast(results, option) { } const styles = getComputedStyle(el); - const bgColor = styles.backgroundColor; + const bgColor = convertColorToRGBA(styles.backgroundColor); const bgImage = styles.backgroundImage; const rgb = `${contrastObject.parseRgb(bgColor)}`; const alpha = rgb.split(','); - // if background has alpha transparency, flag manual check + // if background has alpha transparency, flag manual check. if (alpha[3] < 1 && alpha[3] > 0) { return 'alpha'; } - // if element has no background image, or transparent return bgColor if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent' && bgImage === 'none' && alpha[3] !== '0') { + // if element has no background image, or transparent return bgColor return bgColor; } if (bgImage !== 'none') { return 'image'; @@ -7433,8 +7697,12 @@ function checkContrast(results, option) { const elem = Elements.Found.Contrast[i]; if (Elements.Found.Contrast) { + let ratio; + let error; + let warning; + const style = getComputedStyle(elem); - const { color } = style; + const color = convertColorToRGBA(style.color); const { fill } = style; const fontSize = parseInt(style.fontSize, 10); const pointSize = fontSize * (3 / 4); @@ -7443,14 +7711,26 @@ function checkContrast(results, option) { const background = contrastObject.getBackground(elem); const textString = [].reduce.call(elem.childNodes, (a, b) => a + (b.nodeType === 3 ? b.textContent : ''), ''); const text = textString.trim(); - const clip = window.getComputedStyle(elem).clip.replace(/\s/g, ''); - const width = parseFloat(window.getComputedStyle(elem).width); - const height = parseFloat(window.getComputedStyle(elem).height); - let ratio; - let error; - let warning; - if ((width === 1 && height === 1) && (clip === "rect(0,0,0,0)" || clip === "rect(1px,1px,1px,1px)")) ; else if (htmlTag === 'SVG') { + // Maybe visually hidden text. + const computedStyle = window.getComputedStyle(elem); + const clip = computedStyle.clip.replace(/\s/g, ''); + const clipPath = computedStyle.getPropertyValue('clip-path'); + const width = parseFloat(computedStyle.width); + const height = parseFloat(computedStyle.height); + const maybeVisuallyHidden = (width === 1 && height === 1) && + (clipPath === 'inset(50%)' || /^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(clip)); + + // Ignore if visually hidden for screen readers. + if (maybeVisuallyHidden) { + return; + } else if (color.startsWith('color(')) { + // Push a warning if using a color() functional notation. + warning = { + elem, + }; + contrastErrors.warnings.push(warning); + } else if (htmlTag === 'SVG') { ratio = Math.round(contrastObject.contrastRatio(fill, background) * 100) / 100; if (ratio < 3) { error = { @@ -8066,9 +8346,8 @@ function checkQA(results, option) { const href = $el.getAttribute('href'); // Has file extension. - const extensions = Constants.Global.documentLinks.split(', '); - const hasExtension = extensions.some((extension) => href.includes(extension)); - const hasPDF = href.includes('.pdf'); + const hasExtension = $el.matches(Constants.Global.documentLinks); + const hasPDF = $el.matches('a[href$=".pdf"], a[href*=".pdf?"]'); // Dismiss key. const key = prepareDismissal(`DOCUMENT${href}`); @@ -8395,11 +8674,9 @@ function checkQA(results, option) { /* Error: Duplicate IDs */ /* *************************************************************** */ if (option.duplicateIdQA) { - const doms = Constants.Shadow.Components ? `body, ${Constants.Shadow.Components}` : 'body'; - const allDoms = document.querySelectorAll(doms); - // Look for duplicate IDs within each DOM. - allDoms.forEach((dom) => { + const doms = document.querySelectorAll('body, [data-sa11y-has-shadow-root]'); + doms.forEach((dom) => { const allIds = new Set(); const findDuplicateIds = (ids, withinDOM) => { ids.forEach(($el) => { @@ -8656,6 +8933,7 @@ class Sa11y { try { this.results = []; this.headingOutline = []; + this.imageOutline = []; this.errorCount = 0; this.warningCount = 0; this.customChecksRunning = false; @@ -8668,7 +8946,7 @@ class Sa11y { Constants.initializeRoot(desiredRoot, desiredReadabilityRoot); // Find all web components on the page. - Constants.initializeShadowSearch(option, desiredRoot); + findShadowComponents(option); // Find and cache elements. Elements.initializeElements(option); @@ -8683,6 +8961,8 @@ class Sa11y { checkEmbeddedContent(this.results, option); checkReadability(); + this.imageResults = this.results.filter((item) => item.element?.tagName === 'IMG'); + /* Custom checks */ if (option.customChecks === true) { // Option 1: Provide via sa11y-custom-checks.js @@ -8790,6 +9070,10 @@ class Sa11y { option.showHinPageOutline, ); + if (option.showImageOutline) { + generateImageOutline(this.dismissed, this.imageResults); + } + updatePanel( dismiss.dismissCount, count.error, @@ -8829,6 +9113,17 @@ class Sa11y { this.resetAll = (restartPanel = true) => { Constants.Global.html.removeAttribute('data-sa11y-active'); + // Remove from page. + remove([ + 'sa11y-annotation', + 'sa11y-heading-label', + 'sa11y-heading-anchor', + 'sa11y-tooltips', + '[data-sa11y-readability-period]', + '[data-sa11y-clone-image-text]', + '.sa11y-css-utilities', + ], 'document'); + // Reset all data attributes. resetAttributes([ 'data-sa11y-parent', @@ -8840,21 +9135,12 @@ class Sa11y { 'data-sa11y-overflow', 'data-sa11y-pulse-border', 'data-sa11y-filter', - ], 'document'); - - // Remove from page. - remove([ - 'sa11y-annotation', - 'sa11y-heading-label', - 'sa11y-heading-anchor', - 'sa11y-tooltips', - '[data-sa11y-readability-period]', - '[data-sa11y-clone-image-text]', - '.sa11y-css-utilities', + 'data-sa11y-has-shadow-root', ], 'document'); // Remove from panel. Constants.Panel.outlineList.innerHTML = ''; + if (option.showImageOutline) Constants.Panel.imagesList.innerHTML = ''; Constants.Panel.pageIssuesList.innerHTML = ''; Constants.Panel.readabilityInfo.innerHTML = ''; Constants.Panel.readabilityDetails.innerHTML = ''; @@ -8875,6 +9161,11 @@ class Sa11y { // Main panel warning and error count. while (Constants.Panel.status.firstChild) Constants.Panel.status.removeChild(Constants.Panel.status.firstChild); + // Remove data attribute from shadow root elements. + document.querySelectorAll('[data-sa11y-has-shadow-root]').forEach((el) => { + el.removeAttribute('data-sa11y-has-shadow-root'); + }); + if (restartPanel) { Constants.Panel.panel.classList.remove('active'); } diff --git a/docs/assets/js/sa11y.esm.min.js b/docs/assets/js/sa11y.esm.min.js index d977a3b3..9372e353 100644 --- a/docs/assets/js/sa11y.esm.min.js +++ b/docs/assets/js/sa11y.esm.min.js @@ -1,6 +1,6 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -9,4 +9,4 @@ * For all acknowledgements, please visit: https://sa11y.netlify.app/acknowledgements/ * The above copyright notice shall be included in all copies or substantial portions of the Software. **/ -const e={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:".ppt, .doc, .xls, .csv, sway.com, docs.google.com",langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},t={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
                          /g,'').replaceAll(/{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};const o=function(){const e={};const i={};const a={};const r={};const s={};const l={};const d={};return{initializeRoot:function(t,n){e.areaToCheck=document.querySelector(t),e.areaToCheck||(e.areaToCheck=document.querySelector("body")),e.Readability=document.querySelector(n),e.Readability||(e.areaToCheck?(e.Readability=e.areaToCheck,console.error(`Sa11y configuration error: The selector '${n}' used for the property 'readabilityRoot' does not exist. '${e.areaToCheck.tagName}' was used as a fallback.`)):e.Readability=document.querySelector("body"))},Root:e,initializeGlobal:function(e){i.html=document.querySelector("html"),i.headless=e.headless,i.panelPosition=e.panelPosition,i.dismissAnnotations=e.dismissAnnotations,i.contrastPlugin=e.contrastPlugin,i.formLabelsPlugin=e.formLabelsPlugin,i.linksAdvancedPlugin=e.linksAdvancedPlugin,i.colourFilterPlugin=e.colourFilterPlugin,i.checkAllHideToggles=e.checkAllHideToggles,i.exportResultsPlugin=e.exportResultsPlugin;let t=!1;"function"==typeof window.matchMedia&&(t=window.matchMedia("(prefers-reduced-motion: reduce)")),i.scrollBehaviour=!t||t.matches?"auto":"smooth",i.langDirection="rtl"===i.html.getAttribute("dir")?"rtl":"ltr",e.documentLinks&&(i.documentLinks=`${e.documentLinks}`)},Global:i,initializePanelSelectors:function(){const e=document.querySelector("sa11y-control-panel").shadowRoot;a.panel=e.getElementById("panel"),a.content=e.getElementById("panel-content"),a.controls=e.getElementById("panel-controls"),a.outline=e.getElementById("outline-panel"),a.outlineContent=e.getElementById("outline-content"),a.outlineList=e.getElementById("outline-list"),a.outlineHeader=e.getElementById("outline-header"),a.notifBadge=e.getElementById("notification-badge"),a.notifCount=e.getElementById("notification-count"),a.notifText=e.getElementById("notification-text"),a.status=e.getElementById("status"),a.pageIssues=e.getElementById("page-issues"),a.pageIssuesList=e.getElementById("page-issues-list"),a.pageIssuesHeader=e.getElementById("page-issues-header"),a.pageIssuesContent=e.getElementById("page-issues-content"),a.settings=e.getElementById("settings-panel"),a.settingsHeader=e.getElementById("settings-header"),a.settingsContent=e.getElementById("settings-content"),a.contrastToggle=e.getElementById("contrast-toggle"),a.labelsToggle=e.getElementById("labels-toggle"),a.linksToggle=e.getElementById("links-advanced-toggle"),a.readabilityToggle=e.getElementById("readability-toggle"),a.themeToggle=e.getElementById("theme-toggle"),a.contrastItem=e.getElementById("contrast-item"),a.labelsItem=e.getElementById("form-labels-item"),a.linksItem=e.getElementById("links-advanced-item"),a.readabilityItem=e.getElementById("readability-item"),a.darkModeItem=e.getElementById("dark-mode-item"),a.colourPanel=e.getElementById("panel-colour-filters"),a.colourFilterItem=e.getElementById("colour-filter-item"),a.colourFilterSelect=e.getElementById("colour-filter-select"),a.colourFilterIcon=e.getElementById("filter-icon"),a.toggle=e.getElementById("toggle"),a.outlineToggle=e.getElementById("outline-toggle"),a.settingsToggle=e.getElementById("settings-toggle"),a.skipButton=e.getElementById("skip-button"),a.dismissButton=e.getElementById("dismiss-button"),a.dismissTooltip=e.getElementById("dismiss-tooltip"),a.skipToPageIssues=e.getElementById("skip-to-page-issues"),a.exportHTML=e.getElementById("export-html"),a.exportCSV=e.getElementById("export-csv"),a.alert=e.getElementById("panel-alert"),a.alertText=e.getElementById("panel-alert-text"),a.alertPreview=e.getElementById("panel-alert-preview"),a.alertClose=e.getElementById("close-alert"),a.readability=e.getElementById("readability-panel"),a.readabilityInfo=e.getElementById("readability-info"),a.readabilityDetails=e.getElementById("readability-details")},Panel:a,initializeReadability:function(e){if(e.readabilityPlugin){r.Lang=t._("LANG_CODE").substring(0,2);const e=["en","fr","es","de","nl","it","sv","fi","da","no","nb","nn","pt"],n=o.Global.html.getAttribute("lang");if(n){const t=n.toLowerCase().substring(0,2);e.includes(t)&&e.includes(r.Lang)?r.Plugin=!0:r.Plugin=!1}else r.Plugin=!1}},Readability:r,initializeExclusions:function(e){if(e.containerIgnore){const t=e.containerIgnore.split(",").map((e=>`${e} *, ${e}`));s.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else s.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";s.Contrast="script, style, link",e.contrastIgnore&&(s.Contrast=`${e.contrastIgnore}, ${s.Contrast}`),s.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(s.Readability=`${e.readabilityIgnore}, ${s.Readability}`),e.headerIgnore&&(s.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(s.Outline=`${e.outlineIgnore}`),s.Images='[role="presentation"]',e.imageIgnore&&(s.Images=`${e.imageIgnore}, ${s.Images}`),s.Links=".anchorjs-link",e.linkIgnore&&(s.Links=`${e.linkIgnore}, ${s.Links}`),e.linkIgnoreSpan&&(s.LinkSpan=e.linkIgnoreSpan)},Exclusions:s,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Video=`video, ${t.join(", ")}`}else l.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Audio=`audio, ${t.join(", ")}`}else l.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Visualization=t.join(", ")}else l.Visualization="datastudio.google.com, tableau";l.All=`${l.Video}, ${l.Audio}, ${l.Visualization}`},EmbeddedContent:l,initializeShadowSearch:function(e,t,o){d.Components=function(e,t){let o;if(e.autoDetectShadowComponents){const e="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",i=document.querySelector(t),a=i?Array.from(i.querySelectorAll(`*:not(${e})`)):Array.from(document.body.querySelectorAll(`*:not(${e})`)),r=[];a.forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(r.push(e),n(e))}));const s=Array.from(r).map((e=>e.tagName.toLowerCase()));o=1===s.length?`${s.toString()}`:s.join(", ")}else o=e.suppliedShadowComponents||"",o&&document.querySelectorAll(o).forEach((e=>{n(e)}));return o}(e,t)},Shadow:d}}();function i(e,t,n){let i;"document"===t?i=document:"readability"===t?(i=o.Readability.Root,i||(i=o.Root.areaToCheck)):"root"===t?(i=o.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=o.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=o.Shadow.Components,r=a?`, ${a}`:"",s=o.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[],n=a.trim().replace(/^,+/,"");if(d.forEach(((o,i)=>{o&&o.matches&&o.matches(n)&&o.shadowRoot&&(t[i]=o.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function a(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function r(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function s(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function l(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function d(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function c(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function p(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function u(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const g={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function m(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function f(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function b(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function h(e,t,n){b();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
                          ${n}
                          `:"";function c(){b();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
                          ${t}
                          `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function y(e,t){e.forEach((e=>{i(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function v(e,t){i(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function x(e,t){e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0")):t.classList.remove("scrollable")}function w(e){const t=e.element,n=`
                          ${r(e.htmlPath)}
                          `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${s(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const A=function(){const e={};const t={};return{initializeElements:function(t){e.Images=i("img","root",o.Exclusions.Images),e.Headings=i('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",o.Exclusions.Headings),e.HeadingOne=i('h1, [role="heading"][aria-level="1"]',"document",o.Exclusions.Headings),e.Links=i("a[href]","root",o.Exclusions.Links),e.Inputs=i("input, select, textarea","root",o.Exclusions.Container),e.Contrast=i("*","root",o.Exclusions.Contrast),e.Labels=i("label","root",o.Exclusions.Container),e.Readability=i("p, li","readability",o.Exclusions.Readability),e.Paragraphs=i("p","root",o.Exclusions.Container),e.Lists=i("li","root",o.Exclusions.Container),e.Spans=i("span","root",o.Exclusions.Container),e.Blockquotes=i("blockquote","root",o.Exclusions.Container),e.Tables=i('table:not([role="presentation"])',"root",o.Exclusions.Container),e.StrongItalics=i("strong, em","root",o.Exclusions.Container),e.Underlines=i("u","root",o.Exclusions.Container),e.Subscripts=i("sup, sub","root",o.Exclusions.Container),e.Language=o.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?i(t.linksToFlag,"root",o.Exclusions.Container):[],e.iframes=i("iframe:not(hidden), audio, video","root",o.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(o.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=i("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();function E(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==g.getItem("sa11y-remember-panel")&&g.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("mousemove",o),window.addEventListener("keydown",o)}}let L,k;function I(e,n,a,r){if(o.Global.dismissAnnotations){k=n=>{(async(e,n,o,a)=>{let r=JSON.parse(g.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=n.find((t=>t.id===e));if(null===r&&(setTimeout((()=>h(t._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=i(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;g.setItem("sa11y-latest-dismissed",n),g.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),g.setItem("sa11y-dismissed",JSON.stringify(r)),g.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await o()}}})(n,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",k),o.Panel.panel.addEventListener("click",k)}L=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));g.setItem("sa11y-dismissed",JSON.stringify(i)),o.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(n,a,r)},o.Panel.dismissButton?.addEventListener("click",L)}var T=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function _(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function S(e,n){const o=function(e,n){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:n.length};function s(e,n){const o={error:t._("ERRORS"),warning:t._("WARNINGS"),dismissed:t._("DISMISSED")}[n];if(!(e.length>0))return"";let i=`

                          ${o}

                          `,s="
                            ",l="
                          ";return"dismissed"===n&&(s=`
                          ${t.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
                            `,l="
                          "),i+=s,e.forEach((e=>{let n="";e.element&&(n=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
                        • \n ${t._("PREVIEW")}:\n ${w(e)}\n
                        • \n
                        • \n ${t._("ELEMENT")}:\n
                          ${r(e.htmlPath)}
                          \n
                        • `:`\n
                        • \n ${t._("ELEMENT")}:\n
                          ${r(e.htmlPath)}
                          \n
                        • `);const o=e.cssPath?`
                        • \n ${t._("PATH")}:\n
                          ${e.cssPath}
                          \n
                        • `:"";i+=`
                        • \n

                          ${e.content.replace('

                          '," | ")}

                          \n
                            ${n}${o}
                          \n
                        • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(n,"dismissed"),p=_(),u=p.titleCheck?"":`
                          ${t._("PAGE_TITLE")}
                          ${p.metaTitle}
                          `,g=0!==a.error?`
                          ${t._("ERRORS")}
                          ${a.error}
                          `:"",m=0!==a.warning?`
                          ${t._("WARNINGS")}
                          ${a.warning}
                          `:"",f=0!==a.dismiss?`
                          ${t._("DISMISSED")}
                          ${a.dismiss}
                          `:"";return`\n \n \n \n \n \n ${t._("RESULTS")}: ${p.metaTitle}\n \n \n \n
                          \n

                          ${t._("RESULTS")}

                          \n
                          \n
                          \n ${u}\n
                          URL
                          \n
                          ${p.pageURL}
                          \n
                          ${t._("DATE")}
                          \n
                          ${p.date}
                          \n
                          \n
                          \n ${g}\n ${m}\n ${f}\n
                          \n
                          \n
                          \n ${l}\n ${d}\n ${c}\n
                          \n

                          ${t.sprintf("GENERATED",'Sa11y')}

                          \n
                          \n \n \n `}(e,n),i=_(),a=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(a),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function P(e){const t=_(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ");const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Blob([i],{type:"text/csv"}),r=window.URL.createObjectURL(a),s=document.createElement("a");s.href=r,s.href=window.URL.createObjectURL(a);const l=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;s.setAttribute("download",`Sa11y_${t.numericDate+l}.csv`),document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}let C,O;var $='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class N extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),n=document.createElement("style");n.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+$,e.appendChild(n);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const a=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

                          ${t._("ERROR")}

                          \n

                          ${t.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

                          \n

                          ${r(this.error.stack)}

                          URL: ${a}

                          \n `,e.appendChild(i),setTimeout((()=>{o.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class R extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+$,this.shadowRoot.appendChild(e);const n="On"===g.getItem("sa11y-remember-contrast"),i="On"===g.getItem("sa11y-remember-labels"),a="On"===g.getItem("sa11y-remember-links-advanced"),r="On"===g.getItem("sa11y-remember-readability"),s=o.Global.checkAllHideToggles,{panelPosition:l}=o.Global,d=o.Global.contrastPlugin?`\n
                        • \n \n \n
                        • `:"",c=o.Global.formLabelsPlugin?`\n
                        • \n \n \n
                        • `:"",p=o.Global.linksAdvancedPlugin?`\n `:"",u=o.Readability.Plugin?`\n
                        • \n \n \n
                        • `:"",m=o.Global.colourFilterPlugin?`\n
                        • \n \n
                          \n \n
                          \n
                        • `:"",f=o.Global.colourFilterPlugin?`\n
                          \n \n

                          ${t._("COLOUR_FILTER_MESSAGE")}

                          \n
                          `:"",b=o.Global.exportResultsPlugin?`\n
                        • \n ${t._("EXPORT_RESULTS")}\n \n \n
                        • `:"",h=`\n `,y=`\n
                          \n
                          \n

                          ${t._("PAGE_ISSUES")}

                          \n
                          \n
                          \n
                            \n
                            \n
                            `,v=`\n
                            \n
                            \n

                            ${t._("OUTLINE")}

                            \n
                            \n
                            \n
                          \n \n
                          \n
                          \n

                          ${t._("LANG_READABILITY")}

                          \n

                          \n
                            \n
                            \n
                            \n `,x=`\n
                            \n
                            \n

                            ${t._("SETTINGS")}

                            \n
                            \n
                            \n
                              \n ${d}\n ${c}\n ${p}\n ${u}\n
                            • \n \n \n
                            • \n ${b}\n ${m}\n
                            \n
                            \n
                            `,w=`\n \n
                            \n
                            \n \n

                            ${t._("ALERT_TEXT")}

                            \n
                            \n

                            \n
                            \n
                            \n `,A=`\n
                            \n \n \n \n
                            \n

                            ${t._("PANEL_HEADING")}

                            \n

                            \n
                            \n
                            `,E=`\n
                            \n ${"left"===l?'
                            ':""}\n \n \n ${"right"===l?'
                            ':""}\n
                            `,L=document.createElement("div");L.setAttribute("id","container"),L.setAttribute("role","region"),L.setAttribute("lang",t._("LANG_CODE")),L.setAttribute("aria-label",t._("CONTAINER_LABEL")),L.setAttribute("dir",o.Global.langDirection),L.innerHTML="top-left"===l||"top-right"===l?`\n ${h}\n
                            \n ${A}\n ${f}\n ${E}\n ${v}\n ${x}\n ${w}\n ${y}\n
                            `:`\n ${h}\n
                            \n ${y}\n ${v}\n ${x}\n ${w}\n ${f}\n ${A}\n ${E}\n
                            `,this.shadowRoot.appendChild(L),o.initializePanelSelectors()}}function D(e,n,a){const r=[];return e.map((e=>{const t=n.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),n.forEach((e=>{const n=e.element,i=e.headingLevel,s=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:m}=e;if(!(o.Exclusions.Outline?Array.from(document.querySelectorAll(o.Exclusions.Outline)):[]).includes(n)){const e=!0===c?'Hidden':"",o=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
                          • \n \n \n \n ${t._("ERROR")} ${f+i}\n ${s}\n \n
                          • `,r.push(b)):"warning"!==d||u||!0!==m?(b=`\n
                          • \n \n ${e} ${f+i}\n ${s}\n \n
                          • `,r.push(b)):(b=`\n
                          • \n \n \n \n ${t._("WARNING")} ${f+i}\n ${s}\n \n
                          • `,r.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){n.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else n.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===g.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),o.Panel.outlineList.innerHTML=0===r.length?`
                          • ${t._("PANEL_NO_HEADINGS")}
                          • `:r.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,n=Array.from(e.querySelectorAll("#outline-list a"));n.forEach(((n,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=i(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",o.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{m(e.parentElement),e.scrollIntoView({behavior:`${o.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?h(`${t._("HEADING_NOT_VISIBLE_ALERT")}`):o.Panel.alert.classList.contains("active")&&b()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void n[a].click();let t;n[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(t=a+1,a===n.length-1&&(t=0)):"ArrowUp"===e.code&&(t=a-1,0===a&&(t=n.length-1)),n[t].setAttribute("tabindex",0),n[t].focus(),a=t,e.preventDefault()};o.Panel.outlineList.addEventListener("focus",(()=>{n.length>0&&(o.Panel.outlineList.setAttribute("tabindex",-1),n[a].setAttribute("tabindex",0),n[a].focus()),o.Panel.outlineList.addEventListener("keydown",r)})),o.Panel.outlineList.addEventListener("blur",(()=>{o.Panel.outlineList.removeEventListener("keydown",r)}))}),0),e}var M="top",B="bottom",G="right",H="left",F="auto",U=[M,B,G,H],z="start",j="end",q="clippingParents",W="viewport",V="popper",Q="reference",K=U.reduce((function(e,t){return e.concat([t+"-"+z,t+"-"+j])}),[]),Y=[].concat(U,[F]).reduce((function(e,t){return e.concat([t,t+"-"+z,t+"-"+j])}),[]),X=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Z(e){return e?(e.nodeName||"").toLowerCase():null}function J(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ee(e){return e instanceof J(e).Element||e instanceof Element}function te(e){return e instanceof J(e).HTMLElement||e instanceof HTMLElement}function ne(e){return"undefined"!=typeof ShadowRoot&&(e instanceof J(e).ShadowRoot||e instanceof ShadowRoot)}var oe={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];te(i)&&Z(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});te(o)&&Z(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ie(e){return e.split("-")[0]}var ae=Math.max,re=Math.min,se=Math.round;function le(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function de(){return!/^((?!chrome|android).)*safari/i.test(le())}function ce(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&te(e)&&(i=e.offsetWidth>0&&se(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&se(o.height)/e.offsetHeight||1);var r=(ee(e)?J(e):window).visualViewport,s=!de()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function pe(e){var t=ce(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ue(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&ne(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ge(e){return J(e).getComputedStyle(e)}function me(e){return["table","td","th"].indexOf(Z(e))>=0}function fe(e){return((ee(e)?e.ownerDocument:e.document)||window.document).documentElement}function be(e){return"html"===Z(e)?e:e.assignedSlot||e.parentNode||(ne(e)?e.host:null)||fe(e)}function he(e){return te(e)&&"fixed"!==ge(e).position?e.offsetParent:null}function ye(e){for(var t=J(e),n=he(e);n&&me(n)&&"static"===ge(n).position;)n=he(n);return n&&("html"===Z(n)||"body"===Z(n)&&"static"===ge(n).position)?t:n||function(e){var t=/firefox/i.test(le());if(/Trident/i.test(le())&&te(e)&&"fixed"===ge(e).position)return null;var n=be(e);for(ne(n)&&(n=n.host);te(n)&&["html","body"].indexOf(Z(n))<0;){var o=ge(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function ve(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function xe(e,t,n){return ae(e,re(t,n))}function we(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ae(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Ee={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ie(n.placement),l=ve(s),d=[H,G].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return we("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ae(e,U))}(i.padding,n),p=pe(a),u="y"===l?M:H,g="y"===l?B:G,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ye(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,A=xe(v,w,x),E=l;n.modifiersData[o]=((t={})[E]=A,t.centerOffset=A-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ue(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Le(e){return e.split("-")[1]}var ke={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ie(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=H,x=M,w=window;if(d){var A=ye(n),E="clientHeight",L="clientWidth";if(A===J(n)&&"static"!==ge(A=fe(n)).position&&"absolute"===s&&(E="scrollHeight",L="scrollWidth"),i===M||(i===H||i===G)&&a===j)x=B,f-=(p&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-o.height,f*=l?1:-1;if(i===H||(i===M||i===B)&&a===j)v=G,g-=(p&&A===w&&w.visualViewport?w.visualViewport.width:A[L])-o.width,g*=l?1:-1}var k,I=Object.assign({position:s},d&&ke),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:se(n*i)/i||0,y:se(o*i)/i||0}}({x:g,y:f},J(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},I,((k={})[x]=y?"0":"",k[v]=h?"0":"",k.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",k)):Object.assign({},I,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Te={passive:!0};var _e={left:"right",right:"left",bottom:"top",top:"bottom"};function Se(e){return e.replace(/left|right|bottom|top/g,(function(e){return _e[e]}))}var Pe={start:"end",end:"start"};function Ce(e){return e.replace(/start|end/g,(function(e){return Pe[e]}))}function Oe(e){var t=J(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function $e(e){return ce(fe(e)).left+Oe(e).scrollLeft}function Ne(e){var t=ge(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function Re(e){return["html","body","#document"].indexOf(Z(e))>=0?e.ownerDocument.body:te(e)&&Ne(e)?e:Re(be(e))}function De(e,t){var n;void 0===t&&(t=[]);var o=Re(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=J(o),r=i?[a].concat(a.visualViewport||[],Ne(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(De(be(r)))}function Me(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Be(e,t,n){return t===W?Me(function(e,t){var n=J(e),o=fe(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=de();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+$e(e),y:l}}(e,n)):ee(t)?function(e,t){var n=ce(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):Me(function(e){var t,n=fe(e),o=Oe(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ae(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ae(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+$e(e),l=-o.scrollTop;return"rtl"===ge(i||n).direction&&(s+=ae(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(fe(e)))}function Ge(e,t,n,o){var i="clippingParents"===t?function(e){var t=De(be(e)),n=["absolute","fixed"].indexOf(ge(e).position)>=0&&te(e)?ye(e):e;return ee(n)?t.filter((function(e){return ee(e)&&ue(e,n)&&"body"!==Z(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=Be(e,n,o);return t.top=ae(i.top,t.top),t.right=re(i.right,t.right),t.bottom=re(i.bottom,t.bottom),t.left=ae(i.left,t.left),t}),Be(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function He(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ie(i):null,r=i?Le(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case M:t={x:s,y:n.y-o.height};break;case B:t={x:s,y:n.y+n.height};break;case G:t={x:n.x+n.width,y:l};break;case H:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?ve(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case z:t[d]=t[d]-(n[c]/2-o[c]/2);break;case j:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Fe(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?q:s,d=n.rootBoundary,c=void 0===d?W:d,p=n.elementContext,u=void 0===p?V:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=we("number"!=typeof b?b:Ae(b,U)),y=u===V?Q:V,v=e.rects.popper,x=e.elements[m?y:u],w=Ge(ee(x)?x:x.contextElement||fe(e.elements.popper),l,c,r),A=ce(e.elements.reference),E=He({reference:A,element:v,strategy:"absolute",placement:i}),L=Me(Object.assign({},v,E)),k=u===V?L:A,I={top:w.top-k.top+h.top,bottom:k.bottom-w.bottom+h.bottom,left:w.left-k.left+h.left,right:k.right-w.right+h.right},T=e.modifiersData.offset;if(u===V&&T){var _=T[i];Object.keys(I).forEach((function(e){var t=[G,B].indexOf(e)>=0?1:-1,n=[M,B].indexOf(e)>=0?"y":"x";I[e]+=_[n]*t}))}return I}function Ue(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?Y:l,c=Le(o),p=c?s?K:K.filter((function(e){return Le(e)===c})):U,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Fe(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ie(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ze={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ie(b),y=l||(h===b||!m?[Se(b)]:function(e){if(ie(e)===F)return[];var t=Se(e);return[Ce(e),t,Ce(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ie(n)===F?Ue(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,A=new Map,E=!0,L=v[0],k=0;k=0,P=S?"width":"height",C=Fe(t,{placement:I,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?G:H:_?B:M;x[P]>w[P]&&(O=Se(O));var $=Se(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){L=I,E=!1;break}A.set(I,N)}if(E)for(var R=function(e){var t=v.find((function(t){var n=A.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},D=m?3:1;D>0;D--){if("break"===R(D))break}t.placement!==L&&(t.modifiersData[o]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function je(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function qe(e){return[M,G,B,H].some((function(t){return e[t]>=0}))}var We={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=Y.reduce((function(e,n){return e[n]=function(e,t,n){var o=ie(e),i=[H,M].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[H,G].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var Ve={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Fe(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ie(t.placement),y=Le(t.placement),v=!y,x=ve(h),w="x"===x?"y":"x",A=t.modifiersData.popperOffsets,E=t.rects.reference,L=t.rects.popper,k="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,I="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(A){if(a){var S,P="y"===x?M:H,C="y"===x?B:G,O="y"===x?"height":"width",$=A[x],N=$+b[P],R=$-b[C],D=g?-L[O]/2:0,F=y===z?E[O]:L[O],U=y===z?-L[O]:-E[O],j=t.elements.arrow,q=g&&j?pe(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=W[P],Q=W[C],K=xe(0,E[O],q[O]),Y=v?E[O]/2-D-K-V-I.mainAxis:F-K-V-I.mainAxis,X=v?-E[O]/2+D+K+Q+I.mainAxis:U+K+Q+I.mainAxis,Z=t.elements.arrow&&ye(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=xe(g?re(N,$+Y-ee-J):N,$,g?ae(R,te):R);A[x]=ne,_[x]=ne-$}if(s){var oe,se="x"===x?M:H,le="x"===x?B:G,de=A[w],ce="y"===w?"height":"width",ue=de+b[se],ge=de-b[le],me=-1!==[M,H].indexOf(h),fe=null!=(oe=null==T?void 0:T[w])?oe:0,be=me?ue:de-E[ce]-L[ce]-fe+I.altAxis,he=me?de+E[ce]+L[ce]-fe-I.altAxis:ge,we=g&&me?function(e,t,n){var o=xe(e,t,n);return o>n?n:o}(be,de,he):xe(g?be:ue,de,g?he:ge);A[w]=we,_[w]=we-de}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function Qe(e,t,n){void 0===n&&(n=!1);var o,i,a=te(t),r=te(t)&&function(e){var t=e.getBoundingClientRect(),n=se(t.width)/e.offsetWidth||1,o=se(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=fe(t),l=ce(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==Z(t)||Ne(s))&&(d=(o=t)!==J(o)&&te(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:Oe(o)),te(t)?((c=ce(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=$e(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function Ke(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var Ye={placement:"bottom",modifiers:[],strategy:"absolute"};function Xe(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function lt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function dt(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function ct(e){return[].concat(e)}function pt(e,t){-1===e.indexOf(t)&&e.push(t)}function ut(e){return[].slice.call(e)}function gt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function mt(){return document.createElement("div")}function ft(e){return["Element","Fragment"].some((function(t){return st(e,t)}))}function bt(e){return ft(e)?[e]:function(e){return st(e,"NodeList")}(e)?ut(e):Array.isArray(e)?e:ut(document.querySelectorAll(e))}function ht(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function yt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function vt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function xt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var wt={isTouch:!1},At=0;function Et(){wt.isTouch||(wt.isTouch=!0,window.performance&&document.addEventListener("mousemove",Lt))}function Lt(){var e=performance.now();e-At<20&&(wt.isTouch=!1,document.removeEventListener("mousemove",Lt)),At=e}function kt(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var It=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Tt=Object.assign({appendTo:at,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),_t=Object.keys(Tt);function St(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Tt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Pt(e,t){var n=Object.assign({},t,{content:lt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(St(Object.assign({},Tt,{plugins:t}))):_t).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Tt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Ct=function(){return"innerHTML"};function Ot(e,t){e[Ct()]=t}function $t(e){var t=mt();return!0===e?t.className=nt:(t.className=ot,ft(e)?t.appendChild(e):Ot(t,e)),t}function Nt(e,t){ft(t.content)?(Ot(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Ot(e,t.content):e.textContent=t.content)}function Rt(e){var t=e.firstElementChild,n=ut(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(et)})),arrow:n.find((function(e){return e.classList.contains(nt)||e.classList.contains(ot)})),backdrop:n.find((function(e){return e.classList.contains(tt)}))}}function Dt(e){var t=mt(),n=mt();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=mt();function i(n,o){var i=Rt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Nt(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild($t(o.arrow))):a.appendChild($t(o.arrow)):s&&a.removeChild(s)}return o.className=et,o.setAttribute("data-state","hidden"),Nt(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Dt.$$tippy=!0;var Mt=1,Bt=[],Gt=[];function Ht(e,t){var n,o,i,a,r,s,l,d,c=Pt(e,Object.assign({},Tt,St(gt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=dt(V,c.interactiveDebounce),h=Mt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:mt(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),q();var n=v.props,o=Pt(e,Object.assign({},n,gt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(D(),b=dt(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?ct(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),A&&A(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=wt.isTouch&&!v.props.touch,i=rt(v.props.duration,0,Tt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();ht([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;ht([n,o],i),yt([n,o],"visible")}N(),R(),pt(Gt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===at||"parent"===t?n.parentNode:lt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=rt(v.props.duration,1,Tt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(D(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(ht([a,r],o),yt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),pt(Bt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Gt=Gt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),q(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,A=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var E=y.map((function(e){return e.fn(v)})),L=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function k(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function I(){return"hold"===k()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=ct(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Rt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||wt.isTouch||a&&"focus"===a.type?0:rt(v.props.delay,e?0:1,Tt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),E.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;ct(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!L&&v.props.aria.expanded&&ct(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function D(){S().removeEventListener("mousemove",b),Bt=Bt.filter((function(e){return e!==b}))}function M(t){if(!wt.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!xt(w,n)){if(ct(v.props.triggerTarget||e).some((function(e){return xt(e,n)}))){if(wt.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function B(){g=!0}function G(){g=!1}function H(){var e=S();e.addEventListener("mousedown",M,!0),e.addEventListener("touchend",M,it),e.addEventListener("touchstart",G,it),e.addEventListener("touchmove",B,it)}function F(){var e=S();e.removeEventListener("mousedown",M,!0),e.removeEventListener("touchend",M,it),e.removeEventListener("touchstart",G,it),e.removeEventListener("touchmove",B,it)}function U(e,t){var n=P().box;function o(e){e.target===n&&(vt(n,"remove",o),t())}if(0===e)return t();vt(n,"remove",r),vt(n,"add",o),r=o}function z(t,n,o){void 0===o&&(o=!1),ct(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;I()&&(z("touchstart",W,{passive:!0}),z("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(z(e,W),e){case"mouseenter":z("mouseleave",Q);break;case"focus":z(It?"focusout":"blur",K);break;case"focusin":z("focusout",K)}}))}function q(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function W(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&st(e,"MouseEvent")&&Bt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(D(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!wt.isTouch&&I()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Rt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=Je(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return ut(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=k(),i=o[0],a=o[1];wt.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Ft(e,t){void 0===t&&(t={});var n=Tt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Et,it),window.addEventListener("blur",kt);var o=Object.assign({},t,{plugins:n}),i=bt(e).reduce((function(e,t){var n=t&&Ht(t,o);return n&&e.push(n),e}),[]);return ft(e)?i[0]:i}Ft.defaultProps=Tt,Ft.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Tt[t]=e[t]}))},Ft.currentInput=wt,Object.assign({},oe,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Ft.setDefaultProps({render:Dt});var Ut='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),n=document.createElement("style");n.innerHTML=Ut+$,e.appendChild(n);const i=[];A.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Ft(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Ft(o.Panel.skipButton,{content:`${t._("SHORTCUT_TOOLTIP")} »
                            ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Ut+$,e.appendChild(t),this.object=Ft(o.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+$,e.appendChild(t)}}const Wt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class Vt extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class Qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const Kt=(e,n)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=p(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=w(n.find((e=>e.id===a)));(e=>{const t=p(e.getRootNode().host,"display","none");if(null!==t){m(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(h(`${t._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?u(e).top-150:u(t).top-150}}else b(),o.Panel.skipButton.focus();return u(e).top-150};let Yt=-1;const Xt=()=>{const e=g.getItem("sa11y-latest-dismissed");null!==e&&(Yt=parseInt(e,10)-1),g.removeItem("sa11y-latest-dismissed");const t=i("[data-sa11y-opened]","root");t[0]&&(Yt=parseInt(t[0].getAttribute("data-sa11y-position"),10))},Zt=e=>{Xt();const t=A.Annotations.Array;Yt>=t.length-1&&(Yt=-1);const n=t[Yt+1].shadowRoot.querySelector("button"),i=Kt(n,e);window.scrollTo({top:i,behavior:`${o.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),Yt+=1},Jt=e=>{if(Xt(),Yt>0){const t=A.Annotations.Array[Yt-1].shadowRoot.querySelector("button"),n=Kt(t,e);window.scrollTo({top:n,behavior:`${o.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),Yt-=1,-1===Yt&&(Yt=A.Annotations.Array.length-1)}};let en,tn;function nn(e){en=t=>{!function(e,t){A.Annotations.Array.length&&!o.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),Zt(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),Jt(t)))}(t,e)},tn=()=>{Zt(e)},document.addEventListener("keydown",en),o.Panel.skipButton.addEventListener("click",tn)}const on=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},an=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},rn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${sn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},sn=(e,t,n=0)=>{const o=rn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=on(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=rn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,an(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=on(a.currentNode,a.currentNode.getAttribute("alt")),an(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=on(a.currentNode,"");break;default:i+=on(a.currentNode,"")}}else an(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function ln(e,n){return A.Found.Images.forEach((i=>{const a="noAria"===rn(i)?i.getAttribute("alt"):rn(i),r=i.closest("a[href]"),l=r?c(r,o.Exclusions.LinkSpan).textContent:"",p=n.linkIgnoreStrings?l.replace(n.linkIgnoreStrings,""):l,u=r?d(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:i,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const n=0===u?t.sprintf("MISSING_ALT_LINK_MESSAGE"):t.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=d(s(a)),l=(e=>{const n=[null,null,null];return[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const o=t.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(n[0]=t)})),t._("SUSPICIOUS_ALT_STOPWORDS").forEach((t=>{e.toLowerCase().indexOf(t)>=0&&(n[1]=t)})),t._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[2]=t)})),n})(o),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),m=g?.querySelector("figcaption"),b=m?m.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===o)return void e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const n=f(`DECORATIVE${h}`);if(r){const n=0===u?"error":"good",o=0===u?t.sprintf("LINK_IMAGE_NO_ALT_TEXT"):t.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:n,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=m&&b.length?t.sprintf("IMAGE_FIGURE_DECORATIVE"):t.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"warning",content:t.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:n});return}if(null!==l[0]){const n=r?t.sprintf("LINK_ALT_HAS_FILE_EXTENSION",l[0],o):t.sprintf("ALT_HAS_FILE_EXTENSION",l[0],o);e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else if(null!==l[2]){const n=r?t.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",o):t.sprintf("ALT_PLACEHOLDER_MESSAGE",o);e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else if(null!==l[1]){const n=f(`${h+o}`),a=r?t.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",l[1],o):t.sprintf("ALT_HAS_SUS_WORD",l[1],o);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:n})}else if(a.length>n.altTextMaxCharLength){const n=f(`${h+o+a.length}`),s=r?t.sprintf("LINK_IMAGE_LONG_ALT",a.length,o):t.sprintf("IMAGE_ALT_TOO_LONG",a.length,o);e.push({element:i,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:n})}else if(r){const n=f(`${h+o}`),a=s(d(sn(r))),l=0===u?t.sprintf("LINK_IMAGE_ALT_WARNING",o):t.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",o,a);e.push({element:i,type:"warning",content:l,inline:!1,position:"beforebegin",dismiss:n})}else if(g){if(!!m&&b.toLowerCase()===o.trim().toLowerCase()){const n=f(`FIGURE${h+o}`);e.push({element:i,type:"warning",content:t.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",o),inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}})),e}function dn(e,n,i){let a;return A.Found.Headings.forEach(((r,l)=>{const c=sn(r,n.headerIgnoreSpan),u=s(d(n.headerIgnoreStrings?c.replace(n.headerIgnoreStrings,""):c)),g=o.Root.areaToCheck.contains(r),m=o.Root.areaToCheck.contains(r.getRootNode().host),b=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==l)if(n.nonConsecutiveHeadingIsError)v=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const n=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}else if(0===y)if(r.querySelectorAll("img").length){const n=r.querySelector("img").getAttribute("alt");null!==n&&" "!==n&&""!==n||(v=t.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=t.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===l&&1!==h&&2!==h)v=t.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>n.headingMaxCharLength&&n.flagLongHeadings){x=t.sprintf("HEADING_LONG",y);const n=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}a=h;const w=!!((A=r).getAttribute("hidden")||0===A.offsetWidth&&0===A.offsetHeight||1===A.clientHeight&&1===A.clientWidth)||"none"===getComputedStyle(A).getPropertyValue("display");var A;const E=p(r,"display","none");if(null!==v)i.push({element:r,headingLevel:h,text:u,index:l,type:"error",hidden:w,visibleParent:E,isWithinRoot:b});else if(null!==x){const e=f(`HEADING${h+u}`);i.push({element:r,headingLevel:h,text:u,index:l,type:"warning",hidden:w,visibleParent:E,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:r,headingLevel:h,text:u,index:l,hidden:w,visibleParent:E,isWithinRoot:b})})),0===A.Found.HeadingOne.length&&n.missingH1&&e.push({type:"warning",content:t.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function cn(e,n){const i={};return A.Found.Links.forEach((a=>{const r=sn(a,o.Exclusions.LinkSpan),l=d(n.linkIgnoreStrings?r.replace(n.linkIgnoreStrings,""):r),c=(e=>{const n=[null,null,null,null];return t._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[0]=t),!1))),t._("WARNING_ALT_STOPWORDS").forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[3]=t),!1))),n})(l.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===l.length&&/[^a-zA-Z0-9]/g.test(l),u=l.match(/([<>↣↳←→↓«»↴]+)/),m=u?u[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==l.length)if(null!==c[0])e.push({element:a,type:"error",content:t.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==m){const n=f(`LINK${l+b}`),o=m||c[1];e.push({element:a,type:"warning",content:t.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[2]&&n.linksToDOI){const n=f(`LINK${l+c[2]+b}`);l.length>8&&e.push({element:a,type:"warning",content:t.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[3]&&n.URLAsLinkTextWarning){const o=f(`LINK${l+c[2]+b}`);l.length>n.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:t.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(n.showGoodLinkButton){const n=s(l);e.push({element:a,type:"good",content:t.sprintf("LINK_LABEL",n),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(n.linksAdvancedPlugin){if("On"===g.getItem("sa11y-remember-links-advanced")||n.headless||n.checkAllHideToggles){const n=t._("NEW_WINDOW_PHRASES").some((e=>l.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(t._("FILE_TYPE_PHRASES")).some((e=>l.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=l.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(i[d]&&!i[b]){const n=f(`LINK${d+b}`),o=s(l);e.push({element:a,type:"warning",content:t.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:n})}else if("_blank"!==a.getAttribute("target")||r||n)if(r&&!o){const n=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:t.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}else i[d]=!0,i[b]=!0;else{const n=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:t.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}}}})),e}class pn{constructor(n){const p={...e,...n};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",Qt),customElements.define("sa11y-heading-anchor",Vt),customElements.define("sa11y-annotation",qt),customElements.define("sa11y-tooltips",zt),customElements.define("sa11y-dismiss-tooltip",jt),customElements.define("sa11y-control-panel",R),customElements.define("sa11y-console-error",N),o.initializeGlobal(p),o.initializeReadability(p),o.initializeExclusions(p),o.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),g.removeItem("sa11y-dismissed");else{const i=new R;document.body.appendChild(i),function(e,n){o.Global.contrastPlugin?o.Panel.contrastToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-contrast")?(g.setItem("sa11y-remember-contrast","Off"),o.Panel.contrastToggle.textContent=`${t._("OFF")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-contrast","On"),o.Panel.contrastToggle.textContent=`${t._("ON")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-contrast","Off"),o.Global.formLabelsPlugin?o.Panel.labelsToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-labels")?(g.setItem("sa11y-remember-labels","Off"),o.Panel.labelsToggle.textContent=`${t._("OFF")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-labels","On"),o.Panel.labelsToggle.textContent=`${t._("ON")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-labels","Off"),o.Global.linksAdvancedPlugin?o.Panel.linksToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-links-advanced")?(g.setItem("sa11y-remember-links-advanced","Off"),o.Panel.linksToggle.textContent=`${t._("OFF")}`,o.Panel.linksToggle.setAttribute("aria-pressed","false"),n(!1),await e()):(g.setItem("sa11y-remember-links-advanced","On"),o.Panel.linksToggle.textContent=`${t._("ON")}`,o.Panel.linksToggle.setAttribute("aria-pressed","true"),n(!1),await e())}:g.setItem("sa11y-remember-links-advanced","Off"),o.Readability.Plugin&&(o.Panel.readabilityToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-readability")?(g.setItem("sa11y-remember-readability","Off"),o.Panel.readabilityToggle.textContent=`${t._("OFF")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","false"),o.Panel.readability.classList.remove("active"),n(!1),await e()):(g.setItem("sa11y-remember-readability","On"),o.Panel.readabilityToggle.textContent=`${t._("ON")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","true"),o.Panel.readability.classList.add("active"),n(!1),await e())},"On"===g.getItem("sa11y-remember-readability")&&o.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):(o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(o.Global.html.setAttribute("data-sa11y-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"),g.setItem("sa11y-remember-theme","")):(o.Global.html.setAttribute("data-sa11y-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false"),g.setItem("sa11y-remember-theme",""))})),o.Panel.themeToggle.onclick=async()=>{const e=g.getItem("sa11y-remember-theme");"dark"===e?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=g.getItem("sa11y-remember-theme");"dark"===a?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${t._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${t._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),o.Global.colourFilterPlugin&&o.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(o.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[t._("RED_EYE"),t._("GREEN_EYE"),t._("BLUE_EYE"),t._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?h(t._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(o.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),o.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),y(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),v(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),o.Panel.skipButton.disabled=!0,o.Panel.pageIssues.classList.remove("active"),"left"!==o.Global.panelPosition&&"right"!==o.Global.panelPosition||o.Panel.settingsContent.classList.add("hide-settings-border"),o.Panel.colourFilterSelect.classList.add("active"),o.Panel.colourPanel.classList.add("active"),o.Panel.colourPanel.setAttribute("data-colour",a[i-1]),o.Panel.content.hidden=!0):(o.Root.areaToCheck.removeAttribute("data-sa11y-filter"),o.Panel.settingsContent.classList.remove("hide-settings-border"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.colourPanel.classList.remove("active"),o.Panel.colourPanel.removeAttribute("data-colour"),o.Panel.content.hidden=!1,n(!1),await e())}))}(this.checkAll,this.resetAll),o.Panel.outlineToggle.addEventListener("click",(()=>{"true"===o.Panel.outlineToggle.getAttribute("aria-expanded")?(o.Panel.outlineToggle.classList.remove("outline-active"),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),x(o.Panel.outlineList,o.Panel.outlineContent)):(o.Panel.outlineToggle.classList.add("outline-active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-outline","Opened"),g.setItem("sa11y-remember-settings","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!1))),o.Panel.outlineHeader.focus(),o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.classList.remove("settings-active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),x(o.Panel.outlineList,o.Panel.outlineContent)})),"Opened"===g.getItem("sa11y-remember-outline")&&(o.Panel.outlineToggle.classList.add("outline-active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),setTimeout((()=>{x(o.Panel.outlineList,o.Panel.outlineContent)}),0)),o.Panel.settingsToggle.addEventListener("click",(()=>{"true"===o.Panel.settingsToggle.getAttribute("aria-expanded")?(o.Panel.settingsToggle.classList.remove("settings-active"),o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-settings","Closed")):(o.Panel.settingsToggle.classList.add("settings-active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-settings","Opened"),g.setItem("sa11y-remember-outline","Closed")),o.Panel.settingsHeader.focus(),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("outline-active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed"),o.Panel.settingsContent.clientHeight>350&&(o.Panel.settingsContent.setAttribute("tabindex","0"),o.Panel.settingsContent.setAttribute("aria-label",`${t._("SETTINGS")}`),o.Panel.settingsContent.setAttribute("role","region")),o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("settings-active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false")})),"Opened"===g.getItem("sa11y-remember-settings")&&(o.Panel.settingsToggle.classList.add("settings-active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true")),o.Panel.skipToPageIssues.addEventListener("click",(()=>{o.Panel.pageIssuesHeader.focus()})),setTimeout((()=>{x(o.Panel.pageIssuesList,o.Panel.pageIssuesContent)}),0),o.Panel.controls.addEventListener("keydown",(e=>{const t=o.Panel.panel.querySelectorAll("#outline-toggle[role=tab], #settings-toggle[role=tab]");if("ArrowRight"===e.key)for(let n=0;n0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}if("ArrowUp"===e.key)for(let n=t.length-1;n>0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}})),function(){if(o.Global.colourFilterPlugin&&!1===o.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),E(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new jt,document.body.appendChild(this.dismissTooltip),o.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(o.Panel.toggle.disabled=!0),e=this.checkAll,n=this.resetAll,o.Panel.toggle.addEventListener("click",(t=>{"Opened"===g.getItem("sa11y-remember-panel")?(t.preventDefault(),g.setItem("sa11y-remember-panel","Closed"),o.Panel.toggle.classList.remove("on"),o.Panel.toggle.setAttribute("aria-expanded","false"),n(),0===o.Panel.notifCount.innerHTML.trim().length?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"):(t.preventDefault(),g.setItem("sa11y-remember-panel","Opened"),o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),e(),x(o.Panel.outlineList,o.Panel.outlineContent))})),"Opened"===g.getItem("sa11y-remember-panel")&&(o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),o.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(o.Panel.toggle.click(),o.Panel.toggle.focus())}}var e,n},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,n=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||h(`${t.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),o.initializeRoot(e,n),o.initializeShadowSearch(p,e),A.initializeElements(p),dn(this.results,p,this.headingOutline),cn(this.results,p),ln(this.results,p),function(e,n){if(n.contrastPlugin&&("On"===g.getItem("sa11y-remember-contrast")||n.headless||n.checkAllHideToggles)){let n={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=t.backgroundColor,i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){n={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),p=window.getComputedStyle(t).clip.replace(/\s/g,""),u=parseFloat(window.getComputedStyle(t).width),g=parseFloat(window.getComputedStyle(t).height);let m,f,b;if(1!==u||1!==g||"rect(0,0,0,0)"!==p&&"rect(1px,1px,1px,1px)"!==p)if("SVG"===l)m=Math.round(100*o.contrastRatio(a,d))/100,m<3&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f));else if(c.length||"INPUT"===l||"SELECT"===l||"TEXTAREA"===l){const e=t.getAttribute("type");"range"===e||"color"===e||("image"===d||"alpha"===d?(b={elem:t},n.warnings.push(b)):(m=Math.round(100*o.contrastRatio(i,d))/100,r>=18||r>=14&&s>=700?m<3&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f)):m<4.5&&(f={elem:t,ratio:`${m}:1`},n.errors.push(f))))}}}return n}};o.check(),n.errors.forEach((n=>{const o=n.elem,i=n.ratio,a=s(c(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:t.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:t.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),n.warnings.forEach((n=>{const o=n.elem,i=c(o.cloneNode(!0),"script, style").textContent,a=f(`CONTRAST${i}`),r=s(i);e.push({element:o,type:"warning",content:t.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,n){n.formLabelsPlugin&&("On"===g.getItem("sa11y-remember-labels")||n.headless||n.checkAllHideToggles)&&A.Found.Inputs.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),i="-1"===n.getAttribute("tabindex");if(a(n)||o&&i)return;const r=d(sn(n)),l=n.getAttribute("alt"),c=n.getAttribute("type"),p=n.getAttribute("title"),u=n.getAttribute("aria-label")||n.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!l||" "===l))return void(u||p||e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=f(`INPUT${r}`);return void e.push({element:n,type:"warning",content:t.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===r.length)e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=f(`INPUT${r}`),i=s(r);e.push({element:n,type:"warning",content:t.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=n.closest("label"),m=g?d(sn(g)):"";if(g&&m.length)return;const b=n.getAttribute("id");b?A.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:n,type:"error",content:t.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,n){if(n.badLinksQA&&A.Found.CustomErrorLinks.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("QA_BAD_LINK",n),inline:!0,position:"beforebegin"})})),n.strongItalicsQA&&A.Found.StrongItalics.forEach((n=>{const o=n.textContent.trim().length,i=f(n.tagName+n.textContent);o>400&&e.push({element:n.parentNode,type:"warning",content:t.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),A.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=o.Global.documentLinks.split(", ").some((e=>a.includes(e))),s=a.includes(".pdf"),l=f(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(n.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const n=a.substring(1);document.getElementById(n)||document.getElementById(decodeURIComponent(n))||document.getElementById(encodeURIComponent(n))||e.push({element:i,type:"error",content:t.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}n.documentQA&&r?e.push({element:i,type:"warning",content:t.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):n.pdfQA&&s&&e.push({element:i,type:"warning",content:t.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),n.langQA&&(!A.Found.Language||A.Found.Language.length<2)&&e.push({type:"error",content:t.sprintf("QA_PAGE_LANGUAGE")}),n.blockquotesQA&&A.Found.Blockquotes.forEach((n=>{const o=n.textContent;if(o.trim().length<25){const i=s(o),a=f(`BLOCKQUOTE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),n.tablesQA&&A.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");n.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:t.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),n.tablesQAsemanticHeadings&&a.length>0&&a.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(n.tablesQAemptyTH&&0===i.textContent.trim().length){const a=n.tablesQAemptyTHisError?"error":"warning",r=f(`TABLE${o.textContent}`);e.push({element:i,type:a,content:t.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),n.fakeHeadingsQA){const n='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=l(o),r=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(n)&&d&&r){const n=s(a),i=f(`BOLD${n}`);e.push({element:o,type:"warning",content:t.sprintf("QA_FAKE_HEADING",n),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(n)){const n=o.querySelector("strong, b"),i=l(n),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=c(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=s(i),l=f(`BOLD${r}`);e.push({element:n,type:"warning",content:t.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:l})}}};A.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),d=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",b="",h=!1;if(A.Found.Paragraphs.forEach(((n,o)=>{let s=!1,c=!1;b=b||l(n).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(r),w=p.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const i=A.Found.Paragraphs[o+1];if(i){if(s=l(i).replace("(","").substring(0,2),d.includes(s?.toLowerCase().trim()))return;const e=g(s);y?"A "!==u&&u===e&&(c=!0):x&&!h&&e.match(r)&&(c=!0,h=!0)}if(!c){let e=n?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(c=!0))}if(c){const o=f(`LIST${n.textContent}`);e.push({element:n,type:"warning",content:t.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}b=s?"":s})),n.allCapsQA){const n=n=>{let o="";"LI"===n.tagName?n.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=l(n);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=f(`UPPERCASE${o}`);e.push({element:n,type:"warning",content:t.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};A.Found.Paragraphs.forEach((e=>n(e))),A.Found.Headings.forEach((e=>n(e))),A.Found.Lists.forEach((e=>n(e))),A.Found.Blockquotes.forEach((e=>n(e)))}if(n.duplicateIdQA){const n=o.Shadow.Components?`body, ${o.Shadow.Components}`:"body";document.querySelectorAll(n).forEach((n=>{const i=new Set,a=(n,o)=>{n.forEach((n=>{const{id:a}=n;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:n,type:"error",content:t.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};n.shadowRoot&&a(Array.from(n.shadowRoot.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),n.shadowRoot),a(Array.from(n.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),n)}))}if(n.underlinedTextQA){A.Found.Underlines.forEach((n=>{const o=f(`UNDERLINE${l(n)}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const n=n=>{const o=getComputedStyle(n).textDecorationLine,i=l(n);if("underline"===o){const o=f(`UNDERLINE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};A.Found.Paragraphs.forEach((e=>n(e))),A.Found.Headings.forEach((e=>n(e))),A.Found.Lists.forEach((e=>n(e))),A.Found.Blockquotes.forEach((e=>n(e))),A.Found.Spans.forEach((e=>n(e)))}if(n.pageTitleQA){const n=document.querySelector("head title");n&&0!==n.textContent.trim().length||e.push({type:"error",content:t.sprintf("QA_PAGE_TITLE")})}n.subscriptQA&&A.Found.Subscripts.forEach((n=>{const o=l(n);if(o.length>=80){const i=f(n.tagName+o);e.push({element:n,type:"warning",content:t.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,n){n.embeddedContentAll&&(n.embeddedContentAudio&&A.Found.Audio.forEach((n=>{const o=f(`AUDIO${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentVideo&&A.Found.Videos.forEach((n=>{const o="undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src"),i=n.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=f(`VIDEO${o}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),n.embeddedContentDataViz&&A.Found.Visualizations.forEach((n=>{const o=f(`DATAVIZ${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentTitles&&A.Found.iframes.forEach((n=>{const o=a(n),i="VIDEO"===n.tagName||"AUDIO"===n.tagName,r="true"===n.getAttribute("aria-hidden"),s="-1"===n.getAttribute("tabindex");if(o||i||r&&s)return;if(s)return void e.push({element:n,type:"error",content:t.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=rn(n);0===d("noAria"===l?n.getAttribute("title")||"":l).length&&e.push({element:n,type:"error",content:t.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),n.embeddedContentGeneral&&A.Found.EmbeddedContent.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),i="-1"===n.getAttribute("tabindex");if(a(n)||o&&i)return;if("VIDEO"===n.tagName||"AUDIO"===n.tagName)return;const r=f(`IFRAME${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(o.Readability.Plugin&&"On"===g.getItem("sa11y-remember-readability")){A.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const n=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?t._("LANG_VERY_DIFFICULT"):g>31&&g<49?t._("LANG_DIFFICULT"):g>50&&g<60?t._("LANG_FAIRLY_DIFFICULT"):t._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(o.Readability.Lang)){const n=(e=>{const n=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=n().length,i=n().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?t._("LANG_GOOD"):r>40&&r<50?t._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?t._("LANG_DIFFICULT"):t._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:n.score,averageWordsPerSentence:n.avgWordsPerSentence,complexWords:n.complexWords,difficultyLevel:n.difficulty,wordCount:n.wordCount}}!1===o.Global.headless&&(0===i.length?o.Panel.readabilityInfo.innerHTML=t._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(o.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,o.Panel.readabilityDetails.innerHTML=`\n
                          • \n ${t._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
                          • \n
                          • \n ${t._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
                          • \n
                          • \n ${t._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
                          • `):o.Panel.readabilityInfo.textContent=t._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new N(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,n){let i=g.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(o.Panel.dismissButton.classList.add("active"),o.Panel.dismissTooltip.innerText=t.sprintf("PANEL_DISMISS_BUTTON",l),n.object.setContent(t.sprintf("PANEL_DISMISS_BUTTON",l))):o.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,n){const i=e+n;0===i?(o.Panel.notifCount.innerText="",o.Panel.notifText.innerText="",o.Panel.notifBadge.style.display="none"):n>0&&0===e?(o.Panel.notifBadge.classList.add("notification-badge-warning"),o.Panel.notifCount.innerText=`${n}`,o.Panel.notifText.innerText=`${t._("PANEL_ICON_WARNINGS")}`):(o.Panel.notifBadge.classList.remove("notification-badge-warning"),o.Panel.notifCount.innerText=`${i}`,o.Panel.notifText.innerText=t._("PANEL_ICON_TOTAL")),"Opened"===g.getItem("sa11y-remember-panel")||0===i?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===g.getItem("sa11y-remember-panel")){this.results.forEach(((e,n)=>{Object.assign(e,{id:n}),function(e,n,i,a=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(n))throw Error(`Invalid type [${n}] for annotation`);[n].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:t._("ERROR"),[p[1]]:t._("WARNING"),[p[2]]:t._("GOOD")},g=!0===c&&"warning"===n&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(o.Panel.pageIssues.classList.add("active"),o.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[n]} ${i}${g}`,o.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                            ${u[n]}

                            \n ${r(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),A.initializeAnnotations();const c=new zt;document.body.appendChild(c),I(this.results,this.dismissed,this.checkAll,this.resetAll),D(this.dismissed,this.headingOutline,p.showHinPageOutline),i=l.dismissCount,a=d.error,s=d.warning,o.Panel.skipButton.disabled=!1,o.Panel.panel.classList.add("active"),o.Global.html.setAttribute("data-sa11y-active","true"),o.Panel.skipButton.classList.add("active"),a>0&&s>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${t._("ERRORS")} ${a} ${t._("WARNINGS")} ${s}`):a>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${t._("ERRORS")} ${a}`):s>0?(o.Panel.content.setAttribute("class","warnings"),o.Panel.status.innerHTML=`${t._("WARNINGS")} ${s}`):i>0?(o.Panel.status.innerHTML=`${t._("DISMISSED")} ${i}`,o.Panel.skipButton.classList.remove("active")):(o.Panel.content.setAttribute("class","good"),o.Panel.status.innerHTML=`${t._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(o.Panel.skipButton.disabled=!0),nn(this.results),p.exportResultsPlugin&&(e=this.results,n=l.dismissedResults,o.Global.exportResultsPlugin&&(C=()=>{S(e,n)},O=()=>{P(e)},o.Panel.exportHTML.addEventListener("click",C),o.Panel.exportCSV.addEventListener("click",O))),Wt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}o.Panel.toggle.disabled=!1}var e,n,i,a,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(o.Global.html.removeAttribute("data-sa11y-active"),y(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter"],"document"),v(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),o.Panel.outlineList.innerHTML="",o.Panel.pageIssuesList.innerHTML="",o.Panel.readabilityInfo.innerHTML="",o.Panel.readabilityDetails.innerHTML="",o.Panel.panel.classList.remove("has-page-issues"),o.Panel.pageIssues.classList.remove("active"),b(),document.removeEventListener("keydown",en),o.Panel.skipButton.removeEventListener("click",tn),o.Global.exportResultsPlugin&&(o.Panel.exportHTML.removeEventListener("click",C),o.Panel.exportCSV.removeEventListener("click",O)),o.Panel.panel?.removeEventListener("click",k),o.Panel.dismissButton?.removeEventListener("click",L),o.Global.colourFilterPlugin&&(o.Panel.colourFilterSelect.value=0,o.Panel.colourPanel.classList.remove("active"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.content.hidden=!1);o.Panel.status.firstChild;)o.Panel.status.removeChild(o.Panel.status.firstChild);e&&o.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===g.getItem("sa11y-remember-panel")&&o.Panel.toggle.click(),o.Panel.toggle.disabled=!0},this.enabled=()=>{o.Panel.toggle.disabled=!1},this.find=(e,t,n)=>i(e,t,n),this.prepareDismissal=e=>f(e),this.sanitizeHTML=e=>s(e),this.initialize()}}export{t as Lang,pn as Sa11y}; +const e={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",aboutContent:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,showImageOutline:!0,editImageURLofCMS:"",relativePathImageSRC:"",relativePathImageID:"",detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,susAltStopWords:"",linkStopWords:"",extraPlaceholderStopWords:"",headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:'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"], a[href^="https://sway."]',langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},t={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
                            /g,'').replaceAll(/`${e} *, ${e}`));r.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else r.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";r.Contrast="script, style, link",e.contrastIgnore&&(r.Contrast=`${e.contrastIgnore}, ${r.Contrast}`),r.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(r.Readability=`${e.readabilityIgnore}, ${r.Readability}`),e.headerIgnore&&(r.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(r.Outline=`${e.outlineIgnore}`),r.Images='[role="presentation"]',e.imageIgnore&&(r.Images=`${e.imageIgnore}, ${r.Images}`),r.Links=".anchorjs-link",e.linkIgnore&&(r.Links=`${e.linkIgnore}, ${r.Links}`),e.linkIgnoreSpan&&(r.LinkSpan=e.linkIgnoreSpan)},Exclusions:r,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Video=`video, ${t.join(", ")}`}else s.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Audio=`audio, ${t.join(", ")}`}else s.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Visualization=t.join(", ")}else s.Visualization="datastudio.google.com, tableau";s.All=`${s.Video}, ${s.Audio}, ${s.Visualization}`},EmbeddedContent:s}}();function o(e,t,o){let i;"document"===t?i=document:"readability"===t?(i=n.Readability.Root,i||(i=n.Root.areaToCheck)):"root"===t?(i=n.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=n.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=document.querySelectorAll("[data-sa11y-has-shadow-root]"),r=a?", [data-sa11y-has-shadow-root]":"",s=n.Exclusions.Container,l=void 0!==o?`, ${o}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[];if(d.forEach(((n,o)=>{n&&n.matches&&n.matches("[data-sa11y-has-shadow-root]")&&n.shadowRoot&&(t[o]=n.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function i(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function a(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function r(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function s(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function l(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function d(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function c(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function p(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const u={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function g(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function m(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function f(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function b(e,t,n){f();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
                            ${n}
                            `:"";function c(){f();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
                            ${t}
                            `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function h(e,t){e.forEach((e=>{o(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function y(e,t){o(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function v(e,t,n){setTimeout((()=>{e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0"),n&&(e.setAttribute("aria-label",n),e.setAttribute("role","region"))):t.classList.remove("scrollable")}),50)}function x(e){const t=e.element,n=`
                            ${a(e.htmlPath)}
                            `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${r(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),s=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const w=function(){const e={};const t={};return{initializeElements:function(t){e.Images=o("img","root",n.Exclusions.Images),e.Headings=o('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",n.Exclusions.Headings),e.HeadingOne=o('h1, [role="heading"][aria-level="1"]',"document",n.Exclusions.Headings),e.Links=o("a[href]","root",n.Exclusions.Links),e.Inputs=o("input, select, textarea","root",n.Exclusions.Container),e.Contrast=o("*","root",n.Exclusions.Contrast),e.Labels=o("label","root",n.Exclusions.Container),e.Readability=o("p, li","readability",n.Exclusions.Readability),e.Paragraphs=o("p","root",n.Exclusions.Container),e.Lists=o("li","root",n.Exclusions.Container),e.Spans=o("span","root",n.Exclusions.Container),e.Blockquotes=o("blockquote","root",n.Exclusions.Container),e.Tables=o('table:not([role="presentation"])',"root",n.Exclusions.Container),e.StrongItalics=o("strong, em","root",n.Exclusions.Container),e.Underlines=o("u","root",n.Exclusions.Container),e.Subscripts=o("sup, sub","root",n.Exclusions.Container),e.Language=n.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?o(t.linksToFlag,"root",n.Exclusions.Container):[],e.iframes=o("iframe:not(hidden), audio, video","root",n.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(n.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(n.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=o("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();const E=e=>{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};function A(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==u.getItem("sa11y-remember-panel")&&u.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("click",o),window.addEventListener("keydown",o)}}let I,L;function k(e,i,a,r){if(n.Global.dismissAnnotations){L=n=>{(async(e,n,i,a)=>{let r=JSON.parse(u.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=n.find((t=>t.id===e));if(null===r&&(setTimeout((()=>b(t._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=o(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;u.setItem("sa11y-latest-dismissed",n),u.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),u.setItem("sa11y-dismissed",JSON.stringify(r)),u.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await i()}}})(n,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",L),n.Panel.panel.addEventListener("click",L)}I=()=>{(async(e,t,o)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));u.setItem("sa11y-dismissed",JSON.stringify(i)),n.Panel.dismissButton.classList.remove("active"),o(!1),await t()})(i,a,r)},n.Panel.dismissButton?.addEventListener("click",I)}var T=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function _(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function S(e,n){const o=function(e,n){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),r={error:o.length,warning:i.length,dismiss:n.length};function s(e,n){const o={error:t._("ERRORS"),warning:t._("WARNINGS"),dismissed:t._("DISMISSED")}[n];if(!(e.length>0))return"";let i=`

                            ${o}

                            `,s="
                              ",l="
                            ";return"dismissed"===n&&(s=`
                            ${t.sprintf("PANEL_DISMISS_BUTTON",r.dismiss)}
                              `,l="
                            "),i+=s,e.forEach((e=>{let n="";e.element&&(n=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
                          • \n ${t._("PREVIEW")}:\n ${x(e)}\n
                          • \n
                          • \n ${t._("ELEMENT")}:\n
                            ${a(e.htmlPath)}
                            \n
                          • `:`\n
                          • \n ${t._("ELEMENT")}:\n
                            ${a(e.htmlPath)}
                            \n
                          • `);const o=e.cssPath?`
                          • \n ${t._("PATH")}:\n
                            ${e.cssPath}
                            \n
                          • `:"";i+=`
                          • \n

                            ${e.content.replace('

                            '," | ")}

                            \n
                              ${n}${o}
                            \n
                          • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(n,"dismissed"),p=_(),u=p.titleCheck?"":`
                            ${t._("PAGE_TITLE")}
                            ${p.metaTitle}
                            `,g=0!==r.error?`
                            ${t._("ERRORS")}
                            ${r.error}
                            `:"",m=0!==r.warning?`
                            ${t._("WARNINGS")}
                            ${r.warning}
                            `:"",f=0!==r.dismiss?`
                            ${t._("DISMISSED")}
                            ${r.dismiss}
                            `:"";return`\n \n \n \n \n \n ${t._("RESULTS")}: ${p.metaTitle}\n \n \n \n
                            \n

                            ${t._("RESULTS")}

                            \n
                            \n
                            \n ${u}\n
                            URL
                            \n
                            ${p.pageURL}
                            \n
                            ${t._("DATE")}
                            \n
                            ${p.date}
                            \n
                            \n
                            \n ${g}\n ${m}\n ${f}\n
                            \n
                            \n
                            \n ${l}\n ${d}\n ${c}\n
                            \n

                            ${t.sprintf("GENERATED",'Sa11y')}

                            \n
                            \n \n \n `}(e,n),i=_(),r=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(r),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function P(e){const t=_(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ").replaceAll(/"/g,'""');const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Uint8Array([239,187,191]),r=new Blob([a,i],{type:"text/csv;charset=utf-8;"}),s=window.URL.createObjectURL(r),l=document.createElement("a");l.href=s,l.href=window.URL.createObjectURL(r);const d=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;l.setAttribute("download",`Sa11y_${t.numericDate+d}.csv`),document.body.appendChild(l),l.click(),setTimeout((()=>{document.body.removeChild(l),window.URL.revokeObjectURL(l.href)}),100)}let C,O;var $='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class N extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),o=document.createElement("style");o.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+$,e.appendChild(o);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const r=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${r}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

                            ${t._("ERROR")}

                            \n

                            ${t.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

                            \n

                            ${a(this.error.stack)}

                            URL: ${r}

                            \n `,e.appendChild(i),setTimeout((()=>{n.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class R extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+$,this.shadowRoot.appendChild(e);const o="On"===u.getItem("sa11y-remember-contrast"),i="On"===u.getItem("sa11y-remember-labels"),a="On"===u.getItem("sa11y-remember-links-advanced"),r="On"===u.getItem("sa11y-remember-readability"),s=n.Global.checkAllHideToggles,{panelPosition:l}=n.Global,d=n.Global.contrastPlugin?`\n
                          • \n \n \n
                          • `:"",c=n.Global.formLabelsPlugin?`\n
                          • \n \n \n
                          • `:"",p=n.Global.linksAdvancedPlugin?`\n `:"",g=n.Readability.Plugin?`\n
                          • \n \n \n
                          • `:"",m=n.Global.colourFilterPlugin?`\n
                          • \n \n
                            \n \n
                            \n
                          • `:"",f=n.Global.colourFilterPlugin?`\n
                            \n \n

                            ${t._("COLOUR_FILTER_MESSAGE")}

                            \n
                            `:"",b=n.Global.exportResultsPlugin?`\n
                          • \n ${t._("EXPORT_RESULTS")}\n \n \n
                          • `:"",h=n.Global.aboutContent?`\n
                            \n ${n.Global.aboutContent}\n
                            `:"",y=`\n `,v=`\n
                            \n
                            \n

                            ${t._("PAGE_ISSUES")}

                            \n
                            \n
                            \n
                              \n
                              \n
                              `,x=`\n
                              \n
                              \n

                              ${t._("OUTLINE")}

                              \n
                              \n
                              \n
                            \n \n
                            \n
                            \n

                            ${t._("LANG_READABILITY")}

                            \n

                            \n
                              \n
                              \n
                              \n `,w=n.Global.showImageOutline?`\n
                              \n
                              \n

                              ${t._("IMAGES")}

                              \n
                              \n
                              \n
                            \n \n `:"",E=`\n
                            \n
                            \n

                            ${t._("SETTINGS")}

                            \n
                            \n
                            \n
                              \n ${d}\n ${c}\n ${p}\n ${g}\n
                            • \n \n \n
                            • \n ${b}\n ${m}\n
                            \n ${h}\n
                            \n
                            `,A=`\n \n
                            \n
                            \n \n

                            ${t._("ALERT_TEXT")}

                            \n
                            \n

                            \n
                            \n
                            \n `,I=`\n
                            \n \n \n \n
                            \n

                            ${t._("PANEL_HEADING")}

                            \n

                            \n
                            \n
                            `,L=``,k=n.Global.showImageOutline?'
                            ':'
                            ',T=`\n
                            \n ${"left"===l?k:""}\n \n ${n.Global.showImageOutline?L:""}\n \n ${"right"===l?k:""}\n
                            `,_=document.createElement("div");_.setAttribute("id","container"),_.setAttribute("role","region"),_.setAttribute("lang",t._("LANG_CODE")),_.setAttribute("aria-label",t._("CONTAINER_LABEL")),_.setAttribute("dir",n.Global.langDirection),_.innerHTML="top-left"===l||"top-right"===l?`\n ${y}\n
                            \n ${I}\n ${f}\n ${T}\n ${x}\n ${w}\n ${E}\n ${A}\n ${v}\n
                            `:`\n ${y}\n
                            \n ${v}\n ${x}\n ${w}\n ${E}\n ${A}\n ${f}\n ${I}\n ${T}\n
                            `,this.shadowRoot.appendChild(_),n.initializePanelSelectors()}}const M=()=>{n.Panel.outlineToggle.classList.add("active"),n.Panel.outline.classList.add("active"),n.Panel.outlineToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-outline","Opened"),v(n.Panel.outlineList,n.Panel.outlineContent);o("sa11y-heading-label","root").forEach((e=>e.hidden=!1));const e=new CustomEvent("sa11y-build-heading-outline");document.dispatchEvent(e)},D=()=>{n.Panel.outline.classList.remove("active"),n.Panel.outlineToggle.classList.remove("active"),n.Panel.outlineToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-outline","Closed");o("sa11y-heading-label","root").forEach((e=>e.hidden=!0))},G=()=>{n.Panel.imagesToggle.classList.add("active"),n.Panel.images.classList.add("active"),n.Panel.imagesToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-images","Opened"),v(n.Panel.imagesList,n.Panel.imagesContent);const e=new CustomEvent("sa11y-build-image-outline");document.dispatchEvent(e)},B=()=>{n.Global.showImageOutline&&(n.Panel.imagesToggle.classList.remove("active"),n.Panel.images.classList.remove("active"),n.Panel.imagesToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-images","Closed"))},H=()=>{n.Panel.settingsToggle.classList.add("active"),n.Panel.settings.classList.add("active"),n.Panel.settingsToggle.setAttribute("aria-expanded","true"),u.setItem("sa11y-remember-settings","Opened"),v(n.Panel.settingsContent,n.Panel.settingsContent,t._("SETTINGS"))},F=()=>{n.Panel.settings.classList.remove("active"),n.Panel.settingsToggle.classList.remove("active"),n.Panel.settingsToggle.setAttribute("aria-expanded","false"),u.setItem("sa11y-remember-settings","Closed")};function U(e,i,a){const r=()=>{const s=[];return e.map((e=>{const t=i.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),i.forEach((e=>{const o=e.element,i=e.headingLevel,r=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,g=e.dismissedHeading,{isWithinRoot:m}=e;if(!(n.Exclusions.Outline?Array.from(document.querySelectorAll(n.Exclusions.Outline)):[]).includes(o)){const e=!0===c?'Hidden':"",n=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
                          • \n \n \n \n ${t._("ERROR")} ${f+i}\n ${r}\n \n
                          • `,s.push(b)):"warning"!==d||g||!0!==m?(b=`\n
                          • \n \n ${e} ${f+i}\n ${r}\n \n
                          • `,s.push(b)):(b=`\n
                          • \n \n \n \n ${t._("WARNING")} ${f+i}\n ${r}\n \n
                          • `,s.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){o.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else o.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===u.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),n.Panel.outlineList.innerHTML=0===s.length?`
                          • ${t._("PANEL_NO_HEADINGS")}
                          • `:s.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,i=Array.from(e.querySelectorAll("#outline-list a"));i.forEach(((i,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=o(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",n.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{g(e.parentElement),e.scrollIntoView({behavior:`${n.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?b(`${t._("HEADING_NOT_VISIBLE_ALERT")}`):n.Panel.alert.classList.contains("active")&&f()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void i[a].click();let t;i[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(t=a+1,a===i.length-1&&(t=0)):"ArrowUp"===e.code&&(t=a-1,0===a&&(t=i.length-1)),i[t].setAttribute("tabindex",0),i[t].focus(),a=t,e.preventDefault()};n.Panel.outlineList.addEventListener("focus",(()=>{i.length>0&&(n.Panel.outlineList.setAttribute("tabindex",-1),i[a].setAttribute("tabindex",0),i[a].focus()),n.Panel.outlineList.addEventListener("keydown",r)})),n.Panel.outlineList.addEventListener("blur",(()=>{n.Panel.outlineList.removeEventListener("keydown",r)}))}),0),document.removeEventListener("sa11y-build-heading-outline",r),e};"Opened"===u.getItem("sa11y-remember-outline")&&r(),document.addEventListener("sa11y-build-heading-outline",r)}function W(e,o){const i=()=>{const r=[];e.map((e=>{const t=o.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===t?"":t})).forEach((e=>{Object.assign(e,{dismissedImage:!0})})),o.forEach((e=>{const o=e.type,{dismissedImage:i}=e,s=a(e.element.alt),{src:l}=e.element,d=e.element.getAttribute("data-src"),c=d&&d.length>3?d:l,p=(e=>{let o;if(0!==n.Global.editImageURLofCMS.length){const{src:a}=e.element,r=n.Global.relativePathImageSRC?n.Global.relativePathImageSRC:window.location.host,s=a.split(r),l=s.length>1?s[1]:"",d=n.Global.relativePathImageID;let c;d.length&&e.element.classList.length&&e.element.classList.forEach((e=>{if(e.startsWith(d)){const[t]=e.match(/\d+/)||[];c=t}}));const p=r&&d.length?n.Global.editImageURLofCMS+c:n.Global.editImageURLofCMS+l;o=((i=a).includes(window.location.host)||i.startsWith(r))&&void 0!==c?`
                            ${t._("EDIT")}
                            `:""}var i;return o??""})(e);let u;if("error"===o){const e=0===s.length?`
                            ${t._("MISSING")}
                            `:`${s}`;u=`\n
                          • \n \n
                            \n
                            \n \n ${t._("ERROR")}\n ${t._("ALT")}\n
                            \n ${e}\n
                            \n ${p}\n
                          • `,r.push(u)}else if("warning"!==o||i){const e=0===s.length?`
                            ${t._("DECORATIVE")}
                            `:"";u=`\n
                          • \n \n
                            \n
                            ${t._("ALT")}
                            \n ${e} ${s}\n
                            \n ${p}\n
                          • `,r.push(u)}else{const e=0===s.length?`
                            ${t._("DECORATIVE")}
                            `:"";u=`\n
                          • \n \n
                            \n
                            \n \n ${t._("WARNING")}\n ${t._("ALT")}\n
                            \n ${e} ${s}\n
                            \n ${p}\n
                          • `,r.push(u)}})),n.Panel.imagesList.innerHTML=0===r.length?`
                          • ${t._("IMAGES_NOT_FOUND")}
                          • `:r.join(" "),document.removeEventListener("sa11y-build-image-outline",i)};"Opened"===u.getItem("sa11y-remember-images")&&i(),document.addEventListener("sa11y-build-image-outline",i)}var j="top",z="bottom",q="right",V="left",Q="auto",K=[j,z,q,V],Y="start",X="end",Z="clippingParents",J="viewport",ee="popper",te="reference",ne=K.reduce((function(e,t){return e.concat([t+"-"+Y,t+"-"+X])}),[]),oe=[].concat(K,[Q]).reduce((function(e,t){return e.concat([t,t+"-"+Y,t+"-"+X])}),[]),ie=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ae(e){return e?(e.nodeName||"").toLowerCase():null}function re(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function se(e){return e instanceof re(e).Element||e instanceof Element}function le(e){return e instanceof re(e).HTMLElement||e instanceof HTMLElement}function de(e){return"undefined"!=typeof ShadowRoot&&(e instanceof re(e).ShadowRoot||e instanceof ShadowRoot)}var ce={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];le(i)&&ae(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});le(o)&&ae(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function pe(e){return e.split("-")[0]}var ue=Math.max,ge=Math.min,me=Math.round;function fe(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function be(){return!/^((?!chrome|android).)*safari/i.test(fe())}function he(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&le(e)&&(i=e.offsetWidth>0&&me(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&me(o.height)/e.offsetHeight||1);var r=(se(e)?re(e):window).visualViewport,s=!be()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ye(e){var t=he(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ve(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&de(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function xe(e){return re(e).getComputedStyle(e)}function we(e){return["table","td","th"].indexOf(ae(e))>=0}function Ee(e){return((se(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ae(e){return"html"===ae(e)?e:e.assignedSlot||e.parentNode||(de(e)?e.host:null)||Ee(e)}function Ie(e){return le(e)&&"fixed"!==xe(e).position?e.offsetParent:null}function Le(e){for(var t=re(e),n=Ie(e);n&&we(n)&&"static"===xe(n).position;)n=Ie(n);return n&&("html"===ae(n)||"body"===ae(n)&&"static"===xe(n).position)?t:n||function(e){var t=/firefox/i.test(fe());if(/Trident/i.test(fe())&&le(e)&&"fixed"===xe(e).position)return null;var n=Ae(e);for(de(n)&&(n=n.host);le(n)&&["html","body"].indexOf(ae(n))<0;){var o=xe(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function ke(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Te(e,t,n){return ue(e,ge(t,n))}function _e(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Se(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Pe={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=pe(n.placement),l=ke(s),d=[V,q].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return _e("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Se(e,K))}(i.padding,n),p=ye(a),u="y"===l?j:V,g="y"===l?z:q,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=Le(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,E=Te(v,w,x),A=l;n.modifiersData[o]=((t={})[A]=E,t.centerOffset=E-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ve(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ce(e){return e.split("-")[1]}var Oe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function $e(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=V,x=j,w=window;if(d){var E=Le(n),A="clientHeight",I="clientWidth";if(E===re(n)&&"static"!==xe(E=Ee(n)).position&&"absolute"===s&&(A="scrollHeight",I="scrollWidth"),i===j||(i===V||i===q)&&a===X)x=z,f-=(p&&E===w&&w.visualViewport?w.visualViewport.height:E[A])-o.height,f*=l?1:-1;if(i===V||(i===j||i===z)&&a===X)v=q,g-=(p&&E===w&&w.visualViewport?w.visualViewport.width:E[I])-o.width,g*=l?1:-1}var L,k=Object.assign({position:s},d&&Oe),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:me(n*i)/i||0,y:me(o*i)/i||0}}({x:g,y:f},re(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},k,((L={})[x]=y?"0":"",L[v]=h?"0":"",L.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",L)):Object.assign({},k,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Ne={passive:!0};var Re={left:"right",right:"left",bottom:"top",top:"bottom"};function Me(e){return e.replace(/left|right|bottom|top/g,(function(e){return Re[e]}))}var De={start:"end",end:"start"};function Ge(e){return e.replace(/start|end/g,(function(e){return De[e]}))}function Be(e){var t=re(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function He(e){return he(Ee(e)).left+Be(e).scrollLeft}function Fe(e){var t=xe(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function Ue(e){return["html","body","#document"].indexOf(ae(e))>=0?e.ownerDocument.body:le(e)&&Fe(e)?e:Ue(Ae(e))}function We(e,t){var n;void 0===t&&(t=[]);var o=Ue(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=re(o),r=i?[a].concat(a.visualViewport||[],Fe(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(We(Ae(r)))}function je(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ze(e,t,n){return t===J?je(function(e,t){var n=re(e),o=Ee(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=be();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+He(e),y:l}}(e,n)):se(t)?function(e,t){var n=he(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):je(function(e){var t,n=Ee(e),o=Be(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ue(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ue(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+He(e),l=-o.scrollTop;return"rtl"===xe(i||n).direction&&(s+=ue(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(Ee(e)))}function qe(e,t,n,o){var i="clippingParents"===t?function(e){var t=We(Ae(e)),n=["absolute","fixed"].indexOf(xe(e).position)>=0&&le(e)?Le(e):e;return se(n)?t.filter((function(e){return se(e)&&ve(e,n)&&"body"!==ae(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=ze(e,n,o);return t.top=ue(i.top,t.top),t.right=ge(i.right,t.right),t.bottom=ge(i.bottom,t.bottom),t.left=ue(i.left,t.left),t}),ze(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Ve(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?pe(i):null,r=i?Ce(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case j:t={x:s,y:n.y-o.height};break;case z:t={x:s,y:n.y+n.height};break;case q:t={x:n.x+n.width,y:l};break;case V:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?ke(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case Y:t[d]=t[d]-(n[c]/2-o[c]/2);break;case X:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Qe(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?Z:s,d=n.rootBoundary,c=void 0===d?J:d,p=n.elementContext,u=void 0===p?ee:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=_e("number"!=typeof b?b:Se(b,K)),y=u===ee?te:ee,v=e.rects.popper,x=e.elements[m?y:u],w=qe(se(x)?x:x.contextElement||Ee(e.elements.popper),l,c,r),E=he(e.elements.reference),A=Ve({reference:E,element:v,strategy:"absolute",placement:i}),I=je(Object.assign({},v,A)),L=u===ee?I:E,k={top:w.top-L.top+h.top,bottom:L.bottom-w.bottom+h.bottom,left:w.left-L.left+h.left,right:L.right-w.right+h.right},T=e.modifiersData.offset;if(u===ee&&T){var _=T[i];Object.keys(k).forEach((function(e){var t=[q,z].indexOf(e)>=0?1:-1,n=[j,z].indexOf(e)>=0?"y":"x";k[e]+=_[n]*t}))}return k}function Ke(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?oe:l,c=Ce(o),p=c?s?ne:ne.filter((function(e){return Ce(e)===c})):K,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Qe(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[pe(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var Ye={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=pe(b),y=l||(h===b||!m?[Me(b)]:function(e){if(pe(e)===Q)return[];var t=Me(e);return[Ge(e),t,Ge(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(pe(n)===Q?Ke(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,E=new Map,A=!0,I=v[0],L=0;L=0,P=S?"width":"height",C=Qe(t,{placement:k,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?q:V:_?z:j;x[P]>w[P]&&(O=Me(O));var $=Me(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){I=k,A=!1;break}E.set(k,N)}if(A)for(var R=function(e){var t=v.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return I=t,"break"},M=m?3:1;M>0;M--){if("break"===R(M))break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Xe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ze(e){return[j,q,z,V].some((function(t){return e[t]>=0}))}var Je={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=oe.reduce((function(e,n){return e[n]=function(e,t,n){var o=pe(e),i=[V,j].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[V,q].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var et={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Qe(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=pe(t.placement),y=Ce(t.placement),v=!y,x=ke(h),w="x"===x?"y":"x",E=t.modifiersData.popperOffsets,A=t.rects.reference,I=t.rects.popper,L="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,k="number"==typeof L?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(E){if(a){var S,P="y"===x?j:V,C="y"===x?z:q,O="y"===x?"height":"width",$=E[x],N=$+b[P],R=$-b[C],M=g?-I[O]/2:0,D=y===Y?A[O]:I[O],G=y===Y?-I[O]:-A[O],B=t.elements.arrow,H=g&&B?ye(B):{width:0,height:0},F=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},U=F[P],W=F[C],Q=Te(0,A[O],H[O]),K=v?A[O]/2-M-Q-U-k.mainAxis:D-Q-U-k.mainAxis,X=v?-A[O]/2+M+Q+W+k.mainAxis:G+Q+W+k.mainAxis,Z=t.elements.arrow&&Le(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=Te(g?ge(N,$+K-ee-J):N,$,g?ue(R,te):R);E[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?j:V,ae="x"===x?z:q,re=E[w],se="y"===w?"height":"width",le=re+b[ie],de=re-b[ae],ce=-1!==[j,V].indexOf(h),me=null!=(oe=null==T?void 0:T[w])?oe:0,fe=ce?le:re-A[se]-I[se]-me+k.altAxis,be=ce?re+A[se]+I[se]-me-k.altAxis:de,he=g&&ce?function(e,t,n){var o=Te(e,t,n);return o>n?n:o}(fe,re,be):Te(g?fe:le,re,g?be:de);E[w]=he,_[w]=he-re}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function tt(e,t,n){void 0===n&&(n=!1);var o,i,a=le(t),r=le(t)&&function(e){var t=e.getBoundingClientRect(),n=me(t.width)/e.offsetWidth||1,o=me(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=Ee(t),l=he(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==ae(t)||Fe(s))&&(d=(o=t)!==re(o)&&le(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:Be(o)),le(t)?((c=he(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=He(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function nt(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var ot={placement:"bottom",modifiers:[],strategy:"absolute"};function it(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function ft(e,t){return"function"==typeof e?e.apply(void 0,t):e}function bt(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function ht(e){return[].concat(e)}function yt(e,t){-1===e.indexOf(t)&&e.push(t)}function vt(e){return[].slice.call(e)}function xt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function wt(){return document.createElement("div")}function Et(e){return["Element","Fragment"].some((function(t){return mt(e,t)}))}function At(e){return Et(e)?[e]:function(e){return mt(e,"NodeList")}(e)?vt(e):Array.isArray(e)?e:vt(document.querySelectorAll(e))}function It(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function Lt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function kt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function Tt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var _t={isTouch:!1},St=0;function Pt(){_t.isTouch||(_t.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ct))}function Ct(){var e=performance.now();e-St<20&&(_t.isTouch=!1,document.removeEventListener("mousemove",Ct)),St=e}function Ot(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var $t=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Nt=Object.assign({appendTo:ut,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),Rt=Object.keys(Nt);function Mt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Nt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Dt(e,t){var n=Object.assign({},t,{content:ft(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Mt(Object.assign({},Nt,{plugins:t}))):Rt).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Nt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Gt=function(){return"innerHTML"};function Bt(e,t){e[Gt()]=t}function Ht(e){var t=wt();return!0===e?t.className=dt:(t.className=ct,Et(e)?t.appendChild(e):Bt(t,e)),t}function Ft(e,t){Et(t.content)?(Bt(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Bt(e,t.content):e.textContent=t.content)}function Ut(e){var t=e.firstElementChild,n=vt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(st)})),arrow:n.find((function(e){return e.classList.contains(dt)||e.classList.contains(ct)})),backdrop:n.find((function(e){return e.classList.contains(lt)}))}}function Wt(e){var t=wt(),n=wt();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=wt();function i(n,o){var i=Ut(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Ft(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Ht(o.arrow))):a.appendChild(Ht(o.arrow)):s&&a.removeChild(s)}return o.className=st,o.setAttribute("data-state","hidden"),Ft(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Wt.$$tippy=!0;var jt=1,zt=[],qt=[];function Vt(e,t){var n,o,i,a,r,s,l,d,c=Dt(e,Object.assign({},Nt,Mt(xt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=bt(V,c.interactiveDebounce),h=jt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:wt(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),z();var n=v.props,o=Dt(e,Object.assign({},n,xt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(M(),b=bt(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?ht(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),E&&E(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=_t.isTouch&&!v.props.touch,i=gt(v.props.duration,0,Nt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();It([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;It([n,o],i),Lt([n,o],"visible")}N(),R(),yt(qt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===ut||"parent"===t?n.parentNode:ft(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=gt(v.props.duration,1,Nt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(M(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(It([a,r],o),Lt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),yt(zt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);qt=qt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),z(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,E=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var A=y.map((function(e){return e.fn(v)})),I=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function L(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function k(){return"hold"===L()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=ht(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Ut(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||_t.isTouch||a&&"focus"===a.type?0:gt(v.props.delay,e?0:1,Nt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),A.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;ht(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!I&&v.props.aria.expanded&&ht(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function M(){S().removeEventListener("mousemove",b),zt=zt.filter((function(e){return e!==b}))}function D(t){if(!_t.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!Tt(w,n)){if(ht(v.props.triggerTarget||e).some((function(e){return Tt(e,n)}))){if(_t.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function G(){g=!0}function B(){g=!1}function H(){var e=S();e.addEventListener("mousedown",D,!0),e.addEventListener("touchend",D,pt),e.addEventListener("touchstart",B,pt),e.addEventListener("touchmove",G,pt)}function F(){var e=S();e.removeEventListener("mousedown",D,!0),e.removeEventListener("touchend",D,pt),e.removeEventListener("touchstart",B,pt),e.removeEventListener("touchmove",G,pt)}function U(e,t){var n=P().box;function o(e){e.target===n&&(kt(n,"remove",o),t())}if(0===e)return t();kt(n,"remove",r),kt(n,"add",o),r=o}function W(t,n,o){void 0===o&&(o=!1),ht(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;k()&&(W("touchstart",q,{passive:!0}),W("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(W(e,q),e){case"mouseenter":W("mouseleave",Q);break;case"focus":W($t?"focusout":"blur",K);break;case"focusin":W("focusout",K)}}))}function z(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function q(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&mt(e,"MouseEvent")&&zt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(M(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!_t.isTouch&&k()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Ut(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=rt(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return vt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=L(),i=o[0],a=o[1];_t.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Qt(e,t){void 0===t&&(t={});var n=Nt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Pt,pt),window.addEventListener("blur",Ot);var o=Object.assign({},t,{plugins:n}),i=At(e).reduce((function(e,t){var n=t&&Vt(t,o);return n&&e.push(n),e}),[]);return Et(e)?i[0]:i}Qt.defaultProps=Nt,Qt.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Nt[t]=e[t]}))},Qt.currentInput=_t,Object.assign({},ce,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Qt.setDefaultProps({render:Wt});var Kt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class Yt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),o=document.createElement("style");o.innerHTML=Kt+$,e.appendChild(o);const i=[];w.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Qt(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Qt(n.Panel.skipButton,{content:`${t._("SHORTCUT_TOOLTIP")} »
                            ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Xt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Kt+$,e.appendChild(t),this.object=Qt(n.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+$,e.appendChild(t)}}const Jt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class en extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class tn extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const nn=(e,o)=>{if(0===e.offsetTop){const n=e.getRootNode().host,i=c(n,"display","none"),a=parseInt(n.getAttribute("data-sa11y-annotation"),10),r=x(o.find((e=>e.id===a)));(e=>{const t=c(e.getRootNode().host,"display","none");if(null!==t){g(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(b(`${t._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?p(e).top-150:p(t).top-150}}else f(),n.Panel.skipButton.focus();return p(e).top-150};let on=-1;const an=()=>{const e=u.getItem("sa11y-latest-dismissed");null!==e&&(on=parseInt(e,10)-1),u.removeItem("sa11y-latest-dismissed");const t=o("[data-sa11y-opened]","root");t[0]&&(on=parseInt(t[0].getAttribute("data-sa11y-position"),10))},rn=e=>{an();const t=w.Annotations.Array;on>=t.length-1&&(on=-1);const o=t[on+1].shadowRoot.querySelector("button"),i=nn(o,e);window.scrollTo({top:i,behavior:`${n.Global.scrollBehaviour}`}),0!==o.offsetTop&&(o.focus(),o.click()),on+=1},sn=e=>{if(an(),on>0){const t=w.Annotations.Array[on-1].shadowRoot.querySelector("button"),o=nn(t,e);window.scrollTo({top:o,behavior:`${n.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),on-=1,-1===on&&(on=w.Annotations.Array.length-1)}};let ln,dn;function cn(e){ln=t=>{!function(e,t){w.Annotations.Array.length&&!n.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),rn(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),sn(t)))}(t,e)},dn=()=>{rn(e)},document.addEventListener("keydown",ln),n.Panel.skipButton.addEventListener("click",dn)}const pn=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},un=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},gn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${mn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},mn=(e,t,n=0)=>{const o=gn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=pn(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=gn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,un(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=pn(a.currentNode,a.currentNode.getAttribute("alt")),un(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=pn(a.currentNode,"");break;default:i+=pn(a.currentNode,"")}}else un(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function fn(e,o){return w.Found.Images.forEach((i=>{const a="noAria"===gn(i)?i.getAttribute("alt"):gn(i),s=i.closest("a[href]"),c=s?d(s,n.Exclusions.LinkSpan).textContent:"",p=o.linkIgnoreStrings?c.replace(o.linkIgnoreStrings,""):c,u=s?l(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(s&&"true"===s.getAttribute("aria-hidden")){"-1"===s.getAttribute("tabindex")||e.push({element:i,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(s){const n=0===u?t.sprintf("MISSING_ALT_LINK_MESSAGE"):t.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:n,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const n=l(r(a)),d=(e=>{const n=[null,null,null];[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const o=t.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(n[0]=t)})),(o.susAltStopWords?o.susAltStopWords.split(",").map((e=>e.trim())):t._("SUSPICIOUS_ALT_STOPWORDS")).forEach((t=>{const o=e.toLowerCase().indexOf(t);o>-1&&o<6&&(n[1]=t)})),t._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[2]=t)}));const{extraPlaceholderStopWords:i}=o;i.length&&i.split(",").map((e=>e.trim())).forEach((t=>{const o=e.toLowerCase().indexOf(t);o>-1&&o<6&&(n[2]=t)}));return n})(n),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),f=g?.querySelector("figcaption"),b=f?f.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===n)return void e.push({element:i,type:"error",content:t.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const n=m(`DECORATIVE${h}`);if(s){const n=0===u?"error":"good",o=0===u?t.sprintf("LINK_IMAGE_NO_ALT_TEXT"):t.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:n,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=f&&b.length?t.sprintf("IMAGE_FIGURE_DECORATIVE"):t.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:n})}else e.push({element:i,type:"warning",content:t.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:n});return}if(null!==d[0]){const o=s?t.sprintf("LINK_ALT_HAS_FILE_EXTENSION",d[0],n):t.sprintf("ALT_HAS_FILE_EXTENSION",d[0],n);e.push({element:i,type:"error",content:o,inline:!1,position:"beforebegin"})}else if(null!==d[2]){const o=s?t.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",n):t.sprintf("ALT_PLACEHOLDER_MESSAGE",n);e.push({element:i,type:"error",content:o,inline:!1,position:"beforebegin"})}else if(null!==d[1]){const o=m(`${h+n}`),a=s?t.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",d[1],n):t.sprintf("ALT_HAS_SUS_WORD",d[1],n);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:o})}else if(a.length>o.altTextMaxCharLength){const o=m(`${h+n+a.length}`),r=s?t.sprintf("LINK_IMAGE_LONG_ALT",a.length,n):t.sprintf("IMAGE_ALT_TOO_LONG",a.length,n);e.push({element:i,type:"warning",content:r,inline:!1,position:"beforebegin",dismiss:o})}else if(s){const o=m(`${h+n}`),a=r(l(mn(s))),d=0===u?t.sprintf("LINK_IMAGE_ALT_WARNING",n):t.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",n,a);e.push({element:i,type:"warning",content:d,inline:!1,position:"beforebegin",dismiss:o})}else if(g){if(!!f&&b.toLowerCase()===n.trim().toLowerCase()){const o=m(`FIGURE${h+n}`);e.push({element:i,type:"warning",content:t.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",n),inline:!1,position:"beforebegin",dismiss:o})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",n),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:t.sprintf("IMAGE_PASS",n),inline:!1,position:"beforebegin"})}})),e}function bn(e,o,i){let a;return w.Found.Headings.forEach(((s,d)=>{const p=mn(s,o.headerIgnoreSpan),u=r(l(o.headerIgnoreStrings?p.replace(o.headerIgnoreStrings,""):p)),g=n.Root.areaToCheck.contains(s),f=n.Root.areaToCheck.contains(s.getRootNode().host),b=g||f,h=parseInt(s.getAttribute("aria-level")||s.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==d)if(o.nonConsecutiveHeadingIsError)v=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=t.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const n=m(`HEADING${h+u}`);e.push({element:s,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}else if(0===y)if(s.querySelectorAll("img").length){const n=s.querySelector("img").getAttribute("alt");null!==n&&" "!==n&&""!==n||(v=t.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=t.sprintf("HEADING_EMPTY",h),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===d&&1!==h&&2!==h)v=t.sprintf("HEADING_FIRST"),e.push({element:s,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>o.headingMaxCharLength&&o.flagLongHeadings){x=t.sprintf("HEADING_LONG",y);const n=m(`HEADING${h+u}`);e.push({element:s,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:n,isWithinRoot:b})}a=h;const w=!!((E=s).getAttribute("hidden")||0===E.offsetWidth&&0===E.offsetHeight||1===E.clientHeight&&1===E.clientWidth)||"none"===getComputedStyle(E).getPropertyValue("display");var E;const A=c(s,"display","none");if(null!==v)i.push({element:s,headingLevel:h,text:u,index:d,type:"error",hidden:w,visibleParent:A,isWithinRoot:b});else if(null!==x){const e=m(`HEADING${h+u}`);i.push({element:s,headingLevel:h,text:u,index:d,type:"warning",hidden:w,visibleParent:A,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:s,headingLevel:h,text:u,index:d,hidden:w,visibleParent:A,isWithinRoot:b})})),0===w.Found.HeadingOne.length&&o.missingH1&&e.push({type:"warning",content:t.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function hn(e,o){const i={};return w.Found.Links.forEach((a=>{const s=mn(a,n.Exclusions.LinkSpan),d=l(o.linkIgnoreStrings?s.replace(o.linkIgnoreStrings,""):s),c=(e=>{const n=[null,null,null,null];return t._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(n[0]=t),!1))),(o.linkStopWords?o.linkStopWords.split(",").map((e=>e.trim())):t._("WARNING_ALT_STOPWORDS")).forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(n[3]=t),!1))),n})(d.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===d.length&&/[^a-zA-Z0-9]/g.test(d),g=d.match(/([<>↣↳←→↓«»↴]+)/),f=g?g[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:t.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==d.length)if(null!==c[0])e.push({element:a,type:"error",content:t.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==f){const n=m(`LINK${d+b}`),o=f||c[1];e.push({element:a,type:"warning",content:t.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[2]&&o.linksToDOI){const n=m(`LINK${d+c[2]+b}`);d.length>8&&e.push({element:a,type:"warning",content:t.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:n})}else if(null!==c[3]&&o.URLAsLinkTextWarning){const n=m(`LINK${d+c[2]+b}`);d.length>o.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:t.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:n})}else if(v){if(o.showGoodLinkButton){const n=r(d);e.push({element:a,type:"good",content:t.sprintf("LINK_LABEL",n),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:t.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(o.linksAdvancedPlugin){if("On"===u.getItem("sa11y-remember-links-advanced")||o.headless||o.checkAllHideToggles){const n=t._("NEW_WINDOW_PHRASES").some((e=>d.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(t._("FILE_TYPE_PHRASES")).some((e=>d.toLowerCase().includes(e))),s=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),l=d.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==l.length)if(i[l]&&!i[b]){const n=m(`LINK${l+b}`),o=r(d);e.push({element:a,type:"warning",content:t.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:n})}else if("_blank"!==a.getAttribute("target")||s||n)if(s&&!o){const n=m(`LINK${l+b}`);e.push({element:a,type:"warning",content:t.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}else i[l]=!0,i[b]=!0;else{const n=m(`LINK${l+b}`);e.push({element:a,type:"warning",content:t.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:n})}}}})),e}const yn=e=>{if(e.startsWith("color(srgb")){const t=/srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/,n=e.match(t);if(n&&n.length>=4){const[e,t,o,i]=n.slice(1),a=Math.min(1,parseFloat(e)),r=Math.min(1,parseFloat(t)),s=Math.min(1,parseFloat(o)),l=void 0!==i?Math.min(1,parseFloat(i)):1;return`rgba(${Math.round(255*a)}, ${Math.round(255*r)}, ${Math.round(255*s)}, ${l})`}return"invalid-format"}return e};class vn{constructor(c){const p={...e,...c};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",tn),customElements.define("sa11y-heading-anchor",en),customElements.define("sa11y-annotation",Zt),customElements.define("sa11y-tooltips",Yt),customElements.define("sa11y-dismiss-tooltip",Xt),customElements.define("sa11y-control-panel",R),customElements.define("sa11y-console-error",N),n.initializeGlobal(p),n.initializeReadability(p),n.initializeExclusions(p),n.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),u.removeItem("sa11y-dismissed");else{const i=new R;document.body.appendChild(i),function(e,o){n.Global.contrastPlugin?n.Panel.contrastToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-contrast")?(u.setItem("sa11y-remember-contrast","Off"),n.Panel.contrastToggle.textContent=`${t._("OFF")}`,n.Panel.contrastToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-contrast","On"),n.Panel.contrastToggle.textContent=`${t._("ON")}`,n.Panel.contrastToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-contrast","Off"),n.Global.formLabelsPlugin?n.Panel.labelsToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-labels")?(u.setItem("sa11y-remember-labels","Off"),n.Panel.labelsToggle.textContent=`${t._("OFF")}`,n.Panel.labelsToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-labels","On"),n.Panel.labelsToggle.textContent=`${t._("ON")}`,n.Panel.labelsToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-labels","Off"),n.Global.linksAdvancedPlugin?n.Panel.linksToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-links-advanced")?(u.setItem("sa11y-remember-links-advanced","Off"),n.Panel.linksToggle.textContent=`${t._("OFF")}`,n.Panel.linksToggle.setAttribute("aria-pressed","false"),o(!1),await e()):(u.setItem("sa11y-remember-links-advanced","On"),n.Panel.linksToggle.textContent=`${t._("ON")}`,n.Panel.linksToggle.setAttribute("aria-pressed","true"),o(!1),await e())}:u.setItem("sa11y-remember-links-advanced","Off"),n.Readability.Plugin&&(n.Panel.readabilityToggle.onclick=async()=>{"On"===u.getItem("sa11y-remember-readability")?(u.setItem("sa11y-remember-readability","Off"),n.Panel.readabilityToggle.textContent=`${t._("OFF")}`,n.Panel.readabilityToggle.setAttribute("aria-pressed","false"),n.Panel.readability.classList.remove("active"),o(!1),await e()):(u.setItem("sa11y-remember-readability","On"),n.Panel.readabilityToggle.textContent=`${t._("ON")}`,n.Panel.readabilityToggle.setAttribute("aria-pressed","true"),n.Panel.readability.classList.add("active"),o(!1),await e())},"On"===u.getItem("sa11y-remember-readability")&&n.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):(n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(n.Global.html.setAttribute("data-sa11y-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true"),u.setItem("sa11y-remember-theme","")):(n.Global.html.setAttribute("data-sa11y-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false"),u.setItem("sa11y-remember-theme",""))})),n.Panel.themeToggle.onclick=async()=>{const e=u.getItem("sa11y-remember-theme");"dark"===e?(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")):(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=u.getItem("sa11y-remember-theme");"dark"===a?(n.Global.html.setAttribute("data-sa11y-theme","dark"),u.setItem("sa11y-remember-theme","dark"),n.Panel.themeToggle.textContent=`${t._("ON")}`,n.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(n.Global.html.setAttribute("data-sa11y-theme","light"),u.setItem("sa11y-remember-theme","light"),n.Panel.themeToggle.textContent=`${t._("OFF")}`,n.Panel.themeToggle.setAttribute("aria-pressed","false")),n.Global.colourFilterPlugin&&n.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(n.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[t._("RED_EYE"),t._("GREEN_EYE"),t._("BLUE_EYE"),t._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?b(t._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(n.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),n.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),h(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),y(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),n.Panel.skipButton.disabled=!0,n.Panel.pageIssues.classList.remove("active"),"left"!==n.Global.panelPosition&&"right"!==n.Global.panelPosition||n.Panel.settingsContent.classList.add("hide-settings-border"),n.Panel.colourFilterSelect.classList.add("active"),n.Panel.colourPanel.classList.add("active"),n.Panel.colourPanel.setAttribute("data-colour",a[i-1]),n.Panel.content.hidden=!0):(n.Root.areaToCheck.removeAttribute("data-sa11y-filter"),n.Panel.settingsContent.classList.remove("hide-settings-border"),n.Panel.colourFilterSelect.classList.remove("active"),n.Panel.colourPanel.classList.remove("active"),n.Panel.colourPanel.removeAttribute("data-colour"),n.Panel.content.hidden=!1,o(!1),await e())}))}(this.checkAll,this.resetAll),function(){n.Panel.outlineToggle.addEventListener("click",(()=>{"true"===n.Panel.outlineToggle.getAttribute("aria-expanded")?D():(M(),F(),B()),n.Panel.outlineHeader.focus()})),"Opened"===u.getItem("sa11y-remember-outline")&&M(),n.Global.showImageOutline&&(n.Panel.imagesToggle.addEventListener("click",(()=>{"true"===n.Panel.imagesToggle.getAttribute("aria-expanded")?B():(G(),D(),F()),n.Panel.imagesHeader.focus()})),"Opened"===u.getItem("sa11y-remember-images")&&G()),n.Panel.settingsToggle.addEventListener("click",(()=>{"true"===n.Panel.settingsToggle.getAttribute("aria-expanded")?F():(H(),D(),B()),n.Panel.settingsHeader.focus()})),"Opened"===u.getItem("sa11y-remember-settings")&&H(),n.Panel.skipToPageIssues.addEventListener("click",(()=>{n.Panel.pageIssuesHeader.focus()})),v(n.Panel.pageIssuesList,n.Panel.pageIssuesContent);const e=n.Panel.panel.querySelectorAll("[role=tab]");let t=Array.from(e).findIndex((e=>e.classList.contains("active")));e.forEach((n=>{n.addEventListener("keydown",(n=>{"ArrowRight"===n.key?(n.preventDefault(),t=(t+1)%e.length,e[t].focus()):"ArrowLeft"===n.key&&(n.preventDefault(),t=(t-1+e.length)%e.length,e[t].focus())}))}))}(),function(){if(n.Global.colourFilterPlugin&&!1===n.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),A(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new Xt,document.body.appendChild(this.dismissTooltip),n.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(n.Panel.toggle.disabled=!0),e=this.checkAll,o=this.resetAll,n.Panel.toggle.addEventListener("click",(t=>{"Opened"===u.getItem("sa11y-remember-panel")?(t.preventDefault(),u.setItem("sa11y-remember-panel","Closed"),n.Panel.toggle.classList.remove("on"),n.Panel.toggle.setAttribute("aria-expanded","false"),o(),0===n.Panel.notifCount.innerHTML.trim().length?n.Panel.notifBadge.style.display="none":n.Panel.notifBadge.style.display="flex"):(t.preventDefault(),u.setItem("sa11y-remember-panel","Opened"),n.Panel.toggle.classList.add("on"),n.Panel.toggle.setAttribute("aria-expanded","true"),e(),v(n.Panel.outlineList,n.Panel.outlineContent))})),"Opened"===u.getItem("sa11y-remember-panel")&&(n.Panel.toggle.classList.add("on"),n.Panel.toggle.setAttribute("aria-expanded","true"),n.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(n.Panel.toggle.click(),n.Panel.toggle.focus())}}var e,o},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,o=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.imageOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||b(`${t.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),n.initializeRoot(e,o),function(e){if(e.autoDetectShadowComponents){const t="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",n=document.querySelector(e.checkRoot);(n?Array.from(n.querySelectorAll(`*:not(${t})`)):Array.from(document.body.querySelectorAll(`*:not(${t})`))).forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(e.setAttribute("data-sa11y-has-shadow-root",""),E(e))}))}else e.shadowComponents&&document.querySelectorAll(e.shadowComponents).forEach((e=>{e.setAttribute("data-sa11y-has-shadow-root",""),E(e)}))}(p),w.initializeElements(p),bn(this.results,p,this.headingOutline),hn(this.results,p),fn(this.results,p),function(e,n){if(n.contrastPlugin&&("On"===u.getItem("sa11y-remember-contrast")||n.headless||n.checkAllHideToggles)){let n={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=yn(t.backgroundColor),i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){n={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),m=window.getComputedStyle(t),f=m.clip.replace(/\s/g,""),b=m.getPropertyValue("clip-path"),h=parseFloat(m.width),y=parseFloat(m.height);if(1===h&&1===y&&("inset(50%)"===b||/^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(f)))return;if(s.startsWith("color("))a={elem:t},n.warnings.push(a);else if("SVG"===p)e=Math.round(100*o.contrastRatio(l,u))/100,e<3&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i));else if(g.length||"INPUT"===p||"SELECT"===p||"TEXTAREA"===p){const r=t.getAttribute("type");"range"===r||"color"===r||("image"===u||"alpha"===u?(a={elem:t},n.warnings.push(a)):(e=Math.round(100*o.contrastRatio(s,u))/100,d>=18||d>=14&&c>=700?e<3&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i)):e<4.5&&(i={elem:t,ratio:`${e}:1`},n.errors.push(i))))}}}return n}};o.check(),n.errors.forEach((n=>{const o=n.elem,i=n.ratio,a=r(d(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:t.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:t.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),n.warnings.forEach((n=>{const o=n.elem,i=d(o.cloneNode(!0),"script, style").textContent,a=m(`CONTRAST${i}`),s=r(i);e.push({element:o,type:"warning",content:t.sprintf("CONTRAST_WARNING",s),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,n){n.formLabelsPlugin&&("On"===u.getItem("sa11y-remember-labels")||n.headless||n.checkAllHideToggles)&&w.Found.Inputs.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),a="-1"===n.getAttribute("tabindex");if(i(n)||o&&a)return;const s=l(mn(n)),d=n.getAttribute("alt"),c=n.getAttribute("type"),p=n.getAttribute("title"),u=n.getAttribute("aria-label")||n.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!d||" "===d))return void(u||p||e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=m(`INPUT${s}`);return void e.push({element:n,type:"warning",content:t.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===s.length)e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=m(`INPUT${s}`),i=r(s);e.push({element:n,type:"warning",content:t.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=n.closest("label"),f=g?l(mn(g)):"";if(g&&f.length)return;const b=n.getAttribute("id");b?w.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:n,type:"error",content:t.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:n,type:"error",content:t.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,o){if(o.badLinksQA&&w.Found.CustomErrorLinks.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("QA_BAD_LINK",n),inline:!0,position:"beforebegin"})})),o.strongItalicsQA&&w.Found.StrongItalics.forEach((n=>{const o=n.textContent.trim().length,i=m(n.tagName+n.textContent);o>400&&e.push({element:n.parentNode,type:"warning",content:t.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),w.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=i.matches(n.Global.documentLinks),s=i.matches('a[href$=".pdf"], a[href*=".pdf?"]'),l=m(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(o.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const n=a.substring(1);document.getElementById(n)||document.getElementById(decodeURIComponent(n))||document.getElementById(encodeURIComponent(n))||e.push({element:i,type:"error",content:t.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}o.documentQA&&r?e.push({element:i,type:"warning",content:t.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):o.pdfQA&&s&&e.push({element:i,type:"warning",content:t.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),o.langQA&&(!w.Found.Language||w.Found.Language.length<2)&&e.push({type:"error",content:t.sprintf("QA_PAGE_LANGUAGE")}),o.blockquotesQA&&w.Found.Blockquotes.forEach((n=>{const o=n.textContent;if(o.trim().length<25){const i=r(o),a=m(`BLOCKQUOTE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),o.tablesQA&&w.Found.Tables.forEach((n=>{const i=n.querySelectorAll("th"),a=n.querySelectorAll("h1, h2, h3, h4, h5, h6");o.tablesQAmissingTH&&0===i.length&&e.push({element:n,type:"error",content:t.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),o.tablesQAsemanticHeadings&&a.length>0&&a.forEach((n=>{e.push({element:n,type:"error",content:t.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(o.tablesQAemptyTH&&0===i.textContent.trim().length){const a=o.tablesQAemptyTHisError?"error":"warning",r=m(`TABLE${n.textContent}`);e.push({element:i,type:a,content:t.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),o.fakeHeadingsQA){const n='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=s(o),l=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(n)&&d&&l){const n=r(a),i=m(`BOLD${n}`);e.push({element:o,type:"warning",content:t.sprintf("QA_FAKE_HEADING",n),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(n)){const n=o.querySelector("strong, b"),i=s(n),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=d(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const s=r(i),l=m(`BOLD${s}`);e.push({element:n,type:"warning",content:t.sprintf("QA_FAKE_HEADING",s),inline:!1,position:"beforebegin",dismiss:l})}}};w.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),l=new RegExp(/\p{Extended_Pictographic}/,"u"),c=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let f="",b="",h=!1;if(w.Found.Paragraphs.forEach(((n,o)=>{let r=!1,d=!1;b=b||s(n).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(l),E=p.test(u.charAt(0));if(u.length>0&&u!==f&&!v&&(y||x||E)){const i=w.Found.Paragraphs[o+1];if(i){if(r=s(i).replace("(","").substring(0,2),c.includes(r?.toLowerCase().trim()))return;const e=g(r);y?"A "!==u&&u===e&&(d=!0):x&&!h&&e.match(l)&&(d=!0,h=!0)}if(!d){let e=n?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(l))&&(d=!0))}if(d){const o=m(`LIST${n.textContent}`);e.push({element:n,type:"warning",content:t.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),f=u}else f=""}b=r?"":r})),o.allCapsQA){const n=n=>{let o="";"LI"===n.tagName?n.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=s(n);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=m(`UPPERCASE${o}`);e.push({element:n,type:"warning",content:t.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};w.Found.Paragraphs.forEach((e=>n(e))),w.Found.Headings.forEach((e=>n(e))),w.Found.Lists.forEach((e=>n(e))),w.Found.Blockquotes.forEach((e=>n(e)))}o.duplicateIdQA&&document.querySelectorAll("body, [data-sa11y-has-shadow-root]").forEach((o=>{const i=new Set,a=(n,o)=>{n.forEach((n=>{const{id:a}=n;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:n,type:"error",content:t.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};o.shadowRoot&&a(Array.from(o.shadowRoot.querySelectorAll(`[id]:not(${n.Exclusions.Container})`)),o.shadowRoot),a(Array.from(o.querySelectorAll(`[id]:not(${n.Exclusions.Container})`)),o)}));if(o.underlinedTextQA){w.Found.Underlines.forEach((n=>{const o=m(`UNDERLINE${s(n)}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const n=n=>{const o=getComputedStyle(n).textDecorationLine,i=s(n);if("underline"===o){const o=m(`UNDERLINE${i}`);e.push({element:n,type:"warning",content:t.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};w.Found.Paragraphs.forEach((e=>n(e))),w.Found.Headings.forEach((e=>n(e))),w.Found.Lists.forEach((e=>n(e))),w.Found.Blockquotes.forEach((e=>n(e))),w.Found.Spans.forEach((e=>n(e)))}if(o.pageTitleQA){const n=document.querySelector("head title");n&&0!==n.textContent.trim().length||e.push({type:"error",content:t.sprintf("QA_PAGE_TITLE")})}o.subscriptQA&&w.Found.Subscripts.forEach((n=>{const o=s(n);if(o.length>=80){const i=m(n.tagName+o);e.push({element:n,type:"warning",content:t.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,n){n.embeddedContentAll&&(n.embeddedContentAudio&&w.Found.Audio.forEach((n=>{const o=m(`AUDIO${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentVideo&&w.Found.Videos.forEach((n=>{const o="undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src"),i=n.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=m(`VIDEO${o}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),n.embeddedContentDataViz&&w.Found.Visualizations.forEach((n=>{const o=m(`DATAVIZ${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),n.embeddedContentTitles&&w.Found.iframes.forEach((n=>{const o=i(n),a="VIDEO"===n.tagName||"AUDIO"===n.tagName,r="true"===n.getAttribute("aria-hidden"),s="-1"===n.getAttribute("tabindex");if(o||a||r&&s)return;if(s)return void e.push({element:n,type:"error",content:t.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const d=gn(n);0===l("noAria"===d?n.getAttribute("title")||"":d).length&&e.push({element:n,type:"error",content:t.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),n.embeddedContentGeneral&&w.Found.EmbeddedContent.forEach((n=>{const o="true"===n.getAttribute("aria-hidden"),a="-1"===n.getAttribute("tabindex");if(i(n)||o&&a)return;if("VIDEO"===n.tagName||"AUDIO"===n.tagName)return;const r=m(`IFRAME${"undefined"!==n.getAttribute("src")?n.getAttribute("src"):n.querySelector("[src]")?.getAttribute("src")}`);e.push({element:n,type:"warning",content:t.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(n.Readability.Plugin&&"On"===u.getItem("sa11y-remember-readability")){w.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const o=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?t._("LANG_VERY_DIFFICULT"):g>31&&g<49?t._("LANG_DIFFICULT"):g>50&&g<60?t._("LANG_FAIRLY_DIFFICULT"):t._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(n.Readability.Lang)){const n=(e=>{const n=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=n().length,i=n().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?t._("LANG_GOOD"):r>40&&r<50?t._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?t._("LANG_DIFFICULT"):t._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:n.score,averageWordsPerSentence:n.avgWordsPerSentence,complexWords:n.complexWords,difficultyLevel:n.difficulty,wordCount:n.wordCount}}!1===n.Global.headless&&(0===i.length?n.Panel.readabilityInfo.innerHTML=t._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(n.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,n.Panel.readabilityDetails.innerHTML=`\n
                          • \n ${t._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
                          • \n
                          • \n ${t._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
                          • \n
                          • \n ${t._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
                          • `):n.Panel.readabilityInfo.textContent=t._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),this.imageResults=this.results.filter((e=>"IMG"===e.element?.tagName)),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new N(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,o){let i=u.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(n.Panel.dismissButton.classList.add("active"),n.Panel.dismissTooltip.innerText=t.sprintf("PANEL_DISMISS_BUTTON",l),o.object.setContent(t.sprintf("PANEL_DISMISS_BUTTON",l))):n.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,o){const i=e+o;0===i?(n.Panel.notifCount.innerText="",n.Panel.notifText.innerText="",n.Panel.notifBadge.style.display="none"):o>0&&0===e?(n.Panel.notifBadge.classList.add("notification-badge-warning"),n.Panel.notifCount.innerText=`${o}`,n.Panel.notifText.innerText=`${t._("PANEL_ICON_WARNINGS")}`):(n.Panel.notifBadge.classList.remove("notification-badge-warning"),n.Panel.notifCount.innerText=`${i}`,n.Panel.notifText.innerText=t._("PANEL_ICON_TOTAL")),"Opened"===u.getItem("sa11y-remember-panel")||0===i?n.Panel.notifBadge.style.display="none":n.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===u.getItem("sa11y-remember-panel")){this.results.forEach(((e,o)=>{Object.assign(e,{id:o}),function(e,o,i,r=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(o))throw Error(`Invalid type [${o}] for annotation`);[o].forEach((t=>{if("error"===t&&void 0!==e){const t=r?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=r?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:t._("ERROR"),[p[1]]:t._("WARNING"),[p[2]]:t._("GOOD")},g=!0===c&&"warning"===o&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(n.Panel.pageIssues.classList.add("active"),n.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[o]} ${i}${g}`,n.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(r?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                            ${u[o]}

                            \n ${a(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),w.initializeAnnotations();const c=new Yt;document.body.appendChild(c),k(this.results,this.dismissed,this.checkAll,this.resetAll),U(this.dismissed,this.headingOutline,p.showHinPageOutline),p.showImageOutline&&W(this.dismissed,this.imageResults),i=l.dismissCount,r=d.error,s=d.warning,n.Panel.skipButton.disabled=!1,n.Panel.panel.classList.add("active"),n.Global.html.setAttribute("data-sa11y-active","true"),n.Panel.skipButton.classList.add("active"),r>0&&s>0?(n.Panel.content.setAttribute("class","errors"),n.Panel.status.innerHTML=`${t._("ERRORS")} ${r} ${t._("WARNINGS")} ${s}`):r>0?(n.Panel.content.setAttribute("class","errors"),n.Panel.status.innerHTML=`${t._("ERRORS")} ${r}`):s>0?(n.Panel.content.setAttribute("class","warnings"),n.Panel.status.innerHTML=`${t._("WARNINGS")} ${s}`):i>0?(n.Panel.status.innerHTML=`${t._("DISMISSED")} ${i}`,n.Panel.skipButton.classList.remove("active")):(n.Panel.content.setAttribute("class","good"),n.Panel.status.innerHTML=`${t._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(n.Panel.skipButton.disabled=!0),cn(this.results),p.exportResultsPlugin&&(e=this.results,o=l.dismissedResults,n.Global.exportResultsPlugin&&(C=()=>{S(e,o)},O=()=>{P(e)},n.Panel.exportHTML.addEventListener("click",C),n.Panel.exportCSV.addEventListener("click",O))),Jt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}n.Panel.toggle.disabled=!1}var e,o,i,r,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(n.Global.html.removeAttribute("data-sa11y-active"),y(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),h(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter","data-sa11y-has-shadow-root"],"document"),n.Panel.outlineList.innerHTML="",p.showImageOutline&&(n.Panel.imagesList.innerHTML=""),n.Panel.pageIssuesList.innerHTML="",n.Panel.readabilityInfo.innerHTML="",n.Panel.readabilityDetails.innerHTML="",n.Panel.panel.classList.remove("has-page-issues"),n.Panel.pageIssues.classList.remove("active"),f(),document.removeEventListener("keydown",ln),n.Panel.skipButton.removeEventListener("click",dn),n.Global.exportResultsPlugin&&(n.Panel.exportHTML.removeEventListener("click",C),n.Panel.exportCSV.removeEventListener("click",O)),n.Panel.panel?.removeEventListener("click",L),n.Panel.dismissButton?.removeEventListener("click",I),n.Global.colourFilterPlugin&&(n.Panel.colourFilterSelect.value=0,n.Panel.colourPanel.classList.remove("active"),n.Panel.colourFilterSelect.classList.remove("active"),n.Panel.content.hidden=!1);n.Panel.status.firstChild;)n.Panel.status.removeChild(n.Panel.status.firstChild);document.querySelectorAll("[data-sa11y-has-shadow-root]").forEach((e=>{e.removeAttribute("data-sa11y-has-shadow-root")})),e&&n.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===u.getItem("sa11y-remember-panel")&&n.Panel.toggle.click(),n.Panel.toggle.disabled=!0},this.enabled=()=>{n.Panel.toggle.disabled=!1},this.find=(e,t,n)=>o(e,t,n),this.prepareDismissal=e=>m(e),this.sanitizeHTML=e=>r(e),this.initialize()}}export{t as Lang,vn as Sa11y}; diff --git a/docs/assets/js/sa11y.umd.js b/docs/assets/js/sa11y.umd.js index 53e5ca0b..45cc0ced 100644 --- a/docs/assets/js/sa11y.umd.js +++ b/docs/assets/js/sa11y.umd.js @@ -1,7 +1,7 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -33,10 +33,15 @@ linkIgnoreStrings: '', // Other features + aboutContent: '', delayCheck: 0, delayCustomCheck: 500, showGoodLinkButton: true, showHinPageOutline: false, + showImageOutline: true, + editImageURLofCMS: '', + relativePathImageSRC: '', + relativePathImageID: '', detectSPArouting: false, doNotRun: '', dismissAnnotations: true, @@ -46,6 +51,9 @@ autoDetectShadowComponents: false, panelPosition: 'right', altTextMaxCharLength: 250, + susAltStopWords: '', + linkStopWords: '', + extraPlaceholderStopWords: '', headingMaxCharLength: 170, URLTextMaxCharLength: 40, URLAsLinkTextWarning: true, @@ -76,7 +84,7 @@ strongItalicsQA: true, pdfQA: true, documentQA: true, - documentLinks: '.ppt, .doc, .xls, .csv, sway.com, docs.google.com', + documentLinks: '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"], a[href^="https://sway."]', langQA: true, blockquotesQA: true, allCapsQA: true, @@ -136,59 +144,14 @@ return $el.replaceAll(/
                            /g, '') .replaceAll(/`) - .replaceAll(/{r}/g, 'class="red-text"'); + .replaceAll(/{r}/g, 'class="red-text"') + .replaceAll(/{w}/g, 'class="yellow-text"') + .replaceAll(/{b}/g, 'class="badge"') + .replaceAll(/{wb}/g, 'class="badge warning-badge"') + .replaceAll(/{eb}/g, 'class="badge error-badge"'); }, }; - var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; - - /* ************************************************************ */ - /* Auto-detect shadow DOM or process provided web components. */ - /* ************************************************************ */ - const addStylestoShadow = (component) => { - const style = document.createElement('style'); - style.setAttribute('class', 'sa11y-css-utilities'); - style.textContent = styles$1; - component.shadowRoot.appendChild(style); - }; - - function findShadowComponents(option, desiredRoot) { - let webComponents; - if (option.autoDetectShadowComponents) { - // Elements to ignore. - const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; - - // Search all elements. - const root = document.querySelector(desiredRoot); - const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); - - // Query for open shadow roots & inject CSS utilities into every shadow DOM. - const foundShadows = []; - search.forEach((component) => { - if (component.shadowRoot && component.shadowRoot.mode === 'open') { - foundShadows.push(component); - addStylestoShadow(component); - } - }); - - // Return ALL web components on the page. - const all = Array.from(foundShadows).map((component) => component.tagName.toLowerCase()); - webComponents = (all.length === 1) ? `${all.toString()}` : all.join(', '); - } else { - // If autoDetectShadowComponents is OFF, use provided shadow dom. - webComponents = option.suppliedShadowComponents || ''; - - // Append styles to each provided shadow dom. - if (webComponents) { - const providedShadow = document.querySelectorAll(webComponents); - providedShadow.forEach((component) => { - addStylestoShadow(component); - }); - } - } - return webComponents; - } - const Constants = (function myConstants() { /* **************** */ /* Initialize Roots */ @@ -222,6 +185,7 @@ Global.headless = option.headless; Global.panelPosition = option.panelPosition; Global.dismissAnnotations = option.dismissAnnotations; + Global.aboutContent = option.aboutContent; // Toggleable plugins Global.contrastPlugin = option.contrastPlugin; @@ -230,6 +194,10 @@ Global.colourFilterPlugin = option.colourFilterPlugin; Global.checkAllHideToggles = option.checkAllHideToggles; Global.exportResultsPlugin = option.exportResultsPlugin; + Global.showImageOutline = option.showImageOutline; + Global.editImageURLofCMS = option.editImageURLofCMS; + Global.relativePathImageSRC = option.relativePathImageSRC; + Global.relativePathImageID = option.relativePathImageID; // A11y: Determine scroll behaviour let reducedMotion = false; @@ -257,10 +225,17 @@ Panel.panel = Sa11yPanel.getElementById('panel'); Panel.content = Sa11yPanel.getElementById('panel-content'); Panel.controls = Sa11yPanel.getElementById('panel-controls'); + Panel.outline = Sa11yPanel.getElementById('outline-panel'); Panel.outlineContent = Sa11yPanel.getElementById('outline-content'); Panel.outlineList = Sa11yPanel.getElementById('outline-list'); Panel.outlineHeader = Sa11yPanel.getElementById('outline-header'); + + Panel.images = Sa11yPanel.getElementById('images-panel'); + Panel.imagesContent = Sa11yPanel.getElementById('images-content'); + Panel.imagesList = Sa11yPanel.getElementById('images-list'); + Panel.imagesHeader = Sa11yPanel.getElementById('images-header'); + Panel.notifBadge = Sa11yPanel.getElementById('notification-badge'); Panel.notifCount = Sa11yPanel.getElementById('notification-count'); Panel.notifText = Sa11yPanel.getElementById('notification-text'); @@ -272,10 +247,12 @@ Panel.pageIssuesHeader = Sa11yPanel.getElementById('page-issues-header'); Panel.pageIssuesContent = Sa11yPanel.getElementById('page-issues-content'); - // Settings + // Settings panel Panel.settings = Sa11yPanel.getElementById('settings-panel'); Panel.settingsHeader = Sa11yPanel.getElementById('settings-header'); Panel.settingsContent = Sa11yPanel.getElementById('settings-content'); + + // Settings toggles Panel.contrastToggle = Sa11yPanel.getElementById('contrast-toggle'); Panel.labelsToggle = Sa11yPanel.getElementById('labels-toggle'); Panel.linksToggle = Sa11yPanel.getElementById('links-advanced-toggle'); @@ -295,6 +272,7 @@ // Buttons Panel.toggle = Sa11yPanel.getElementById('toggle'); Panel.outlineToggle = Sa11yPanel.getElementById('outline-toggle'); + Panel.imagesToggle = Sa11yPanel.getElementById('images-toggle'); Panel.settingsToggle = Sa11yPanel.getElementById('settings-toggle'); Panel.skipButton = Sa11yPanel.getElementById('skip-button'); Panel.dismissButton = Sa11yPanel.getElementById('dismiss-button'); @@ -443,16 +421,6 @@ EmbeddedContent.All = `${EmbeddedContent.Video}, ${EmbeddedContent.Audio}, ${EmbeddedContent.Visualization}`; } - /* ***************** */ - /* Shadow Components */ - /* ***************** */ - const Shadow = {}; - function initializeShadowSearch(checkRoot, autoDetectShadowComponents, shadowComponents) { - Shadow.Components = findShadowComponents( - checkRoot, - autoDetectShadowComponents); - } - return { initializeRoot, Root, @@ -466,8 +434,6 @@ Exclusions, initializeEmbeddedContent, EmbeddedContent, - initializeShadowSearch, - Shadow, }; }()); @@ -496,8 +462,8 @@ if (!root) root = document.body; } - const shadowComponents = Constants.Shadow.Components; - const shadow = (shadowComponents) ? `, ${shadowComponents}` : ''; + const shadowComponents = document.querySelectorAll('[data-sa11y-has-shadow-root]'); + const shadow = (shadowComponents) ? ', [data-sa11y-has-shadow-root]' : ''; const exclusions = Constants.Exclusions.Container; const additional = (exclude !== undefined) ? `, ${exclude}` : ''; @@ -509,9 +475,8 @@ // 2. Dive into the each shadow root and collect an array of its results. const shadowFind = []; // Remove first comma and whitespace. - const prepShadow = shadowComponents.trim().replace(/^,+/, ''); elements.forEach((el, i) => { - if (el && el.matches && el.matches(prepShadow) && el.shadowRoot) { + if (el && el.matches && el.matches('[data-sa11y-has-shadow-root]') && el.shadowRoot) { shadowFind[i] = el.shadowRoot.querySelectorAll(`:is(${selector}):not(${exclusions}${additional})`); } }); @@ -942,14 +907,21 @@ * Checks if a scrollable area within a container element is scrollable or not, and applies appropriate CSS classes and attributes. Make sure to add aria-label manually. * @param {Element} scrollArea The scrollable area element to check. * @param {Element} container The container element that wraps the scrollable area. + * @param {Attribute} ariaLabel Give scroll area an accessible name and region landmark. */ - function isScrollable(scrollArea, container) { - if (scrollArea.scrollHeight > container.clientHeight) { - container.classList.add('scrollable'); - scrollArea.setAttribute('tabindex', '0'); - } else { - container.classList.remove('scrollable'); - } + function isScrollable(scrollArea, container, ariaLabel) { + setTimeout(() => { + if (scrollArea.scrollHeight > container.clientHeight) { + container.classList.add('scrollable'); + scrollArea.setAttribute('tabindex', '0'); + if (ariaLabel) { + scrollArea.setAttribute('aria-label', ariaLabel); + scrollArea.setAttribute('role', 'region'); + } + } else { + container.classList.remove('scrollable'); + } + }, 50); } /** @@ -1140,6 +1112,43 @@ }; }()); + var styles$1 = "[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}"; + + /* ************************************************************ */ + /* Auto-detect shadow DOM or process provided web components. */ + /* ************************************************************ */ + const addStylestoShadow = (component) => { + const style = document.createElement('style'); + style.setAttribute('class', 'sa11y-css-utilities'); + style.textContent = styles$1; + component.shadowRoot.appendChild(style); + }; + + function findShadowComponents(option) { + if (option.autoDetectShadowComponents) { + // Elements to ignore. + const ignore = 'sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script'; + + // Search all elements. + const root = document.querySelector(option.checkRoot); + const search = (root) ? Array.from(root.querySelectorAll(`*:not(${ignore})`)) : Array.from(document.body.querySelectorAll(`*:not(${ignore})`)); + + // Query for open shadow roots & inject CSS utilities into every shadow DOM. + search.forEach((component) => { + if (component.shadowRoot && component.shadowRoot.mode === 'open') { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + } + }); + } else if (option.shadowComponents) { + const providedShadow = document.querySelectorAll(option.shadowComponents); + providedShadow.forEach((component) => { + component.setAttribute('data-sa11y-has-shadow-root', ''); + addStylestoShadow(component); + }); + } + } + /* ******************************************************** */ /* Feature to detect if URL changed for bookmarklet/SPAs. */ /* ******************************************************** */ @@ -1159,7 +1168,7 @@ url = window.location.href; // Update current URL } }, 250); - window.addEventListener('mousemove', checkURL); + window.addEventListener('click', checkURL); window.addEventListener('keydown', checkURL); } } @@ -1543,7 +1552,8 @@ // Make issue messages more readable in CSV format. const prepContent = content .replaceAll(/]*>.*?<\/span>/gi, '') - .replaceAll('', ' | '); + .replaceAll('', ' | ') + .replaceAll(/"/g, '""'); const stripHTML = stripHTMLtags(String(prepContent)); const encoded = decodeHTML(stripHTML); @@ -1564,7 +1574,8 @@ const csvContent = `${headers.join(',')}\n${filteredObjects.map((obj) => headers.map((header) => obj[header]).join(',')).join('\n')}`; // Create blob - const blob = new Blob([csvContent], { type: 'text/csv' }); + const bom = new Uint8Array([0xEF, 0xBB, 0xBF]); + const blob = new Blob([bom, csvContent], { type: 'text/csv;charset=utf-8;' }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; @@ -1608,7 +1619,7 @@ var styles = ":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"; - var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; + var sharedStyles = ".visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:\"\";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex=\"-1\"]:focus:not(:focus-visible),#container [tabindex=\"0\"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex=\"-1\"]:focus-visible,#container [tabindex=\"0\"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex=\"-1\"]:focus,#container [tabindex=\"0\"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}"; class ConsoleErrors extends HTMLElement { constructor(error) { @@ -1703,7 +1714,7 @@ }; } - var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; + var panelStyles = "a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:\"\";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:\"\";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:\"\";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:\" \";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:\"\";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}"; class ControlPanel extends HTMLElement { connectedCallback() { @@ -1796,6 +1807,12 @@ ` : ''; + /* CUSTOMIZABLE ABOUT SECTION */ + const aboutSection = Constants.Global.aboutContent ? ` +
                            + ${Constants.Global.aboutContent} +
                            ` : ''; + /* MAIN TOGGLE */ const mainToggle = ` `; + + // Spacer for toggle width... + const spacer = Constants.Global.showImageOutline + ? '
                            ' + : '
                            '; + const tabToggles = `
                            - ${(panelPosition === 'left') ? '
                            ' : ''} + ${(panelPosition === 'left') ? spacer : ''} + ${Constants.Global.showImageOutline ? imageToggleButton : ''} - ${(panelPosition === 'right') ? '
                            ' : ''} + ${(panelPosition === 'right') ? spacer : ''}
                            `; /* MAIN CONTAINER */ @@ -1925,6 +1966,7 @@ ${colourFilterPanel} ${tabToggles} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${pageIssues} @@ -1935,6 +1977,7 @@
                            ${pageIssues} ${pageOutline} + ${imagesOutline} ${pageSettings} ${panelAlerts} ${colourFilterPanel} @@ -2197,6 +2240,80 @@ /* eslint-disable no-return-assign */ + /** + * OUTLINE PANEL. + */ + const openOutline = () => { + Constants.Panel.outlineToggle.classList.add('active'); + Constants.Panel.outline.classList.add('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-outline', 'Opened'); + isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = false); + + const event = new CustomEvent('sa11y-build-heading-outline'); + document.dispatchEvent(event); + }; + + const closeOutline = () => { + Constants.Panel.outline.classList.remove('active'); + Constants.Panel.outlineToggle.classList.remove('active'); + Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-outline', 'Closed'); + + // Toggle visibility of heading labels + const headingLabels = find('sa11y-heading-label', 'root'); + headingLabels.forEach(($el) => $el.hidden = true); + }; + + /** + * IMAGES PANEL. + */ + const openImages = () => { + Constants.Panel.imagesToggle.classList.add('active'); + Constants.Panel.images.classList.add('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-images', 'Opened'); + isScrollable(Constants.Panel.imagesList, Constants.Panel.imagesContent); + + const event = new CustomEvent('sa11y-build-image-outline'); + document.dispatchEvent(event); + }; + + const closeImages = () => { + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.classList.remove('active'); + Constants.Panel.images.classList.remove('active'); + Constants.Panel.imagesToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-images', 'Closed'); + } + }; + + /** + * SETTINGS PANEL. + */ + const openSettings = () => { + Constants.Panel.settingsToggle.classList.add('active'); + Constants.Panel.settings.classList.add('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + store.setItem('sa11y-remember-settings', 'Opened'); + isScrollable( + Constants.Panel.settingsContent, + Constants.Panel.settingsContent, + Lang._('SETTINGS'), + ); + }; + + const closeSettings = () => { + Constants.Panel.settings.classList.remove('active'); + Constants.Panel.settingsToggle.classList.remove('active'); + Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); + store.setItem('sa11y-remember-settings', 'Closed'); + }; + /* **************************************************************** */ /* Main panel: Initialize Show Outline and Settings buttons/tabs. */ /* **************************************************************** */ @@ -2206,46 +2323,43 @@ /* **************** */ Constants.Panel.outlineToggle.addEventListener('click', () => { if (Constants.Panel.outlineToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); + closeOutline(); } else { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-outline', 'Opened'); - store.setItem('sa11y-remember-settings', 'Closed'); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = false); + openOutline(); + closeSettings(); + closeImages(); } // Set focus on Page Outline heading for accessibility. Constants.Panel.outlineHeader.focus(); - - // Close Settings panel when Show Outline is active. - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); }); // Remember to leave outline open if (store.getItem('sa11y-remember-outline') === 'Opened') { - Constants.Panel.outlineToggle.classList.add('outline-active'); - Constants.Panel.outline.classList.add('active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'true'); + openOutline(); + } - setTimeout(() => { - isScrollable(Constants.Panel.outlineList, Constants.Panel.outlineContent); - }, 0); + /* **************** */ + /* Images panel */ + /* **************** */ + if (Constants.Global.showImageOutline) { + Constants.Panel.imagesToggle.addEventListener('click', () => { + if (Constants.Panel.imagesToggle.getAttribute('aria-expanded') === 'true') { + closeImages(); + } else { + openImages(); + closeOutline(); + closeSettings(); + } + + // Set focus on Images heading for accessibility. + Constants.Panel.imagesHeader.focus(); + }); + + // Remember to leave outline open + if (store.getItem('sa11y-remember-images') === 'Opened') { + openImages(); + } } /* **************** */ @@ -2253,49 +2367,20 @@ /* **************** */ Constants.Panel.settingsToggle.addEventListener('click', () => { if (Constants.Panel.settingsToggle.getAttribute('aria-expanded') === 'true') { - Constants.Panel.settingsToggle.classList.remove('settings-active'); - Constants.Panel.settings.classList.remove('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-settings', 'Closed'); + closeSettings(); } else { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); - store.setItem('sa11y-remember-settings', 'Opened'); - store.setItem('sa11y-remember-outline', 'Closed'); + openSettings(); + closeOutline(); + closeImages(); } // Set focus on Settings heading for accessibility. Constants.Panel.settingsHeader.focus(); - - // Toggle visibility of heading labels - const $headingAnnotations = document.querySelectorAll('sa11y-heading-label'); - $headingAnnotations.forEach(($el) => $el.hidden = true); - - // Close Show Outline panel when Settings is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('outline-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); - store.setItem('sa11y-remember-outline', 'Closed'); - - // Keyboard accessibility fix for scrollable panel content. - if (Constants.Panel.settingsContent.clientHeight > 350) { - Constants.Panel.settingsContent.setAttribute('tabindex', '0'); - Constants.Panel.settingsContent.setAttribute('aria-label', `${Lang._('SETTINGS')}`); - Constants.Panel.settingsContent.setAttribute('role', 'region'); - } - - // Close Outline panel when Show Outline is active. - Constants.Panel.outline.classList.remove('active'); - Constants.Panel.outlineToggle.classList.remove('settings-active'); - Constants.Panel.outlineToggle.setAttribute('aria-expanded', 'false'); }); // Remember to leave settings open if (store.getItem('sa11y-remember-settings') === 'Opened') { - Constants.Panel.settingsToggle.classList.add('settings-active'); - Constants.Panel.settings.classList.add('active'); - Constants.Panel.settingsToggle.setAttribute('aria-expanded', 'true'); + openSettings(); } // Accessibility: Skip link to Page Issues @@ -2304,49 +2389,25 @@ }); // Page issues: add gradient if scrollable list. - setTimeout(() => { - isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); - }, 0); - - // Enhanced keyboard accessibility for panel. - Constants.Panel.controls.addEventListener('keydown', (e) => { - const $tab = Constants.Panel.panel.querySelectorAll('#outline-toggle[role=tab], #settings-toggle[role=tab]'); - if (e.key === 'ArrowRight') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowDown') { - for (let i = 0; i < $tab.length; i++) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i + 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowLeft') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } - } - } - if (e.key === 'ArrowUp') { - for (let i = $tab.length - 1; i > 0; i--) { - if ($tab[i].getAttribute('aria-expanded') === 'true' || $tab[i].getAttribute('aria-expanded') === 'false') { - $tab[i - 1].focus(); - e.preventDefault(); - break; - } + isScrollable(Constants.Panel.pageIssuesList, Constants.Panel.pageIssuesContent); + + /* ******************************** */ + /* Better keyboard accessibility. */ + /* ******************************** */ + const tabs = Constants.Panel.panel.querySelectorAll('[role=tab]'); + let currentIndex = Array.from(tabs).findIndex((tab) => tab.classList.contains('active')); + tabs.forEach((tab) => { + tab.addEventListener('keydown', (e) => { + if (e.key === 'ArrowRight') { + e.preventDefault(); + currentIndex = (currentIndex + 1) % tabs.length; + tabs[currentIndex].focus(); + } else if (e.key === 'ArrowLeft') { + e.preventDefault(); + currentIndex = (currentIndex - 1 + tabs.length) % tabs.length; + tabs[currentIndex].focus(); } - } + }); }); } @@ -2355,43 +2416,44 @@ */ function generatePageOutline(dismissed, headingOutline, showHinPageOutline) { - // Create a single array that gets appended to heading outline. - const outlineArray = []; - - // Find all dismissed headings and update headingOutline array. - const findDismissedHeadings = dismissed.map((e) => { - const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); - if (found === undefined) return ''; - return found; - }); - findDismissedHeadings.forEach(($el) => { - Object.assign($el, { dismissedHeading: true }); - }); - - // Iterate through object that contains all headings (and error type). - headingOutline.forEach((heading) => { - const $el = heading.element; - const level = heading.headingLevel; - const headingText = heading.text; - const i = heading.index; - const issue = heading.type; - const visibility = heading.hidden; - const parent = heading.visibleParent; - const dismissedH = heading.dismissedHeading; - const { isWithinRoot } = heading; - - // Filter out specified headings in outlineIgnore prop. - const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; - - if (!ignoreArray.includes($el)) { - // Indicate if heading is totally hidden or visually hidden. - const visibleIcon = (visibility === true) ? 'Hidden' : ''; - const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; - const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + const outlineHandler = () => { + // Create a single array that gets appended to heading outline. + const outlineArray = []; + + // Find all dismissed headings and update headingOutline array. + const findDismissedHeadings = dismissed.map((e) => { + const found = headingOutline.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; + }); + findDismissedHeadings.forEach(($el) => { + Object.assign($el, { dismissedHeading: true }); + }); - let append; - if (issue === 'error' && isWithinRoot === true) { - append = ` + // Iterate through object that contains all headings (and error type). + headingOutline.forEach((heading) => { + const $el = heading.element; + const level = heading.headingLevel; + const headingText = heading.text; + const i = heading.index; + const issue = heading.type; + const visibility = heading.hidden; + const parent = heading.visibleParent; + const dismissedH = heading.dismissedHeading; + const { isWithinRoot } = heading; + + // Filter out specified headings in outlineIgnore prop. + const ignoreArray = Constants.Exclusions.Outline ? Array.from(document.querySelectorAll(Constants.Exclusions.Outline)) : []; + + if (!ignoreArray.includes($el)) { + // Indicate if heading is totally hidden or visually hidden. + const visibleIcon = (visibility === true) ? 'Hidden' : ''; + const visibleStatus = (visibility === true) ? 'class="hidden-h"' : ''; + const badgeH = (showHinPageOutline === true || showHinPageOutline === 1) ? 'H' : ''; + + let append; + if (issue === 'error' && isWithinRoot === true) { + append = `
                          • @@ -2402,9 +2464,9 @@ ${headingText}
                          • `; - outlineArray.push(append); - } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { - append = ` + outlineArray.push(append); + } else if (issue === 'warning' && !dismissedH && isWithinRoot === true) { + append = `
                          • @@ -2413,154 +2475,305 @@ ${headingText}
                          • `; - outlineArray.push(append); - } else { - append = ` + outlineArray.push(append); + } else { + append = `
                          • ${visibleIcon} ${badgeH + level} ${headingText}
                          • `; - outlineArray.push(append); - } + outlineArray.push(append); + } - /** - * Append heading labels. - */ - const label = document.createElement('sa11y-heading-label'); - const anchor = document.createElement('sa11y-heading-anchor'); - label.hidden = true; - - // If heading is in a hidden container, place the anchor just before it's most visible parent. - if (parent !== null) { - $el.insertAdjacentElement('beforeend', label); - const hiddenParent = parent.previousElementSibling; - anchor.setAttribute('id', `sa11y-h${i}`); - if (hiddenParent) { - hiddenParent.insertAdjacentElement('beforebegin', anchor); - hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + /** + * Append heading labels. + */ + const label = document.createElement('sa11y-heading-label'); + const anchor = document.createElement('sa11y-heading-anchor'); + label.hidden = true; + + // If heading is in a hidden container, place the anchor just before it's most visible parent. + if (parent !== null) { + $el.insertAdjacentElement('beforeend', label); + const hiddenParent = parent.previousElementSibling; + anchor.setAttribute('id', `sa11y-h${i}`); + if (hiddenParent) { + hiddenParent.insertAdjacentElement('beforebegin', anchor); + hiddenParent.setAttribute('data-sa11y-parent', `h${i}`); + } else { + parent.parentNode.insertAdjacentElement('beforebegin', anchor); + parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + } } else { - parent.parentNode.insertAdjacentElement('beforebegin', anchor); - parent.parentNode.setAttribute('data-sa11y-parent', `h${i}`); + // If the heading isn't hidden, append visible label. + $el.insertAdjacentElement('beforeend', label); + + // Create anchor above visible label. + label.insertAdjacentElement('beforebegin', anchor); + anchor.setAttribute('id', `sa11y-h${i}`); } - } else { - // If the heading isn't hidden, append visible label. - $el.insertAdjacentElement('beforeend', label); - // Create anchor above visible label. - label.insertAdjacentElement('beforebegin', anchor); - anchor.setAttribute('id', `sa11y-h${i}`); + // Populate heading label. + const content = document.createElement('span'); + content.classList.add('heading-label'); + content.innerHTML = `H${level}`; + label.shadowRoot.appendChild(content); + + // Make heading labels visible when panel is open. + if (store.getItem('sa11y-remember-outline') === 'Opened') { + label.hidden = false; + } } + }); - // Populate heading label. - const content = document.createElement('span'); - content.classList.add('heading-label'); - content.innerHTML = `H${level}`; - label.shadowRoot.appendChild(content); + // Append headings to Page Outline. + Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) + ? `
                          • ${Lang._('PANEL_NO_HEADINGS')}
                          • ` + : outlineArray.join(' '); - // Make heading labels visible when panel is open. - if (store.getItem('sa11y-remember-outline') === 'Opened') { - label.hidden = false; - } - } - }); + // Make clickable! + setTimeout(() => { + const panel = document.querySelector('sa11y-control-panel'); + const shadow = panel.shadowRoot; + const children = Array.from(shadow.querySelectorAll('#outline-list a')); + + children.forEach(($el, i) => { + // Make Page Outline clickable. + const outlineLink = shadow.getElementById(`sa11y-link-${i}`); + + const headingID = find( + `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, + 'document', + Constants.Exclusions.Container, + ); - // Append headings to Page Outline. - Constants.Panel.outlineList.innerHTML = (outlineArray.length === 0) - ? `
                          • ${Lang._('PANEL_NO_HEADINGS')}
                          • ` - : outlineArray.join(' '); + // Scroll to. + const pulseAndScroll = (heading) => { + addPulse(heading.parentElement); + heading.scrollIntoView({ + behavior: `${Constants.Global.scrollBehaviour}`, + block: 'center', + }); + }; - // Make clickable! - setTimeout(() => { - const panel = document.querySelector('sa11y-control-panel'); - const shadow = panel.shadowRoot; - const children = Array.from(shadow.querySelectorAll('#outline-list a')); - - children.forEach(($el, i) => { - // Make Page Outline clickable. - const outlineLink = shadow.getElementById(`sa11y-link-${i}`); - - const headingID = find( - `#sa11y-h${i}, [data-sa11y-parent="h${i}"]`, - 'document', - Constants.Exclusions.Container, - ); + // Add pulse. + const smoothPulse = (e) => { + if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { + headingID.forEach((heading) => { + pulseAndScroll(heading); + }); - // Scroll to. - const pulseAndScroll = (heading) => { - addPulse(heading.parentElement); - heading.scrollIntoView({ - behavior: `${Constants.Global.scrollBehaviour}`, - block: 'center', - }); - }; + if (outlineLink.classList.contains('hidden-h')) { + createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); + } else if (Constants.Panel.alert.classList.contains('active')) { + removeAlert(); + } + } + e.preventDefault(); + }; - // Add pulse. - const smoothPulse = (e) => { - if ((e.type === 'keyup' && e.code === 'Enter') || e.type === 'click') { - headingID.forEach((heading) => { - pulseAndScroll(heading); - }); + // Attach event listeners. + outlineLink?.addEventListener('click', smoothPulse, false); + outlineLink?.addEventListener('keyup', smoothPulse, false); + }); - if (outlineLink.classList.contains('hidden-h')) { - createAlert(`${Lang._('HEADING_NOT_VISIBLE_ALERT')}`); - } else if (Constants.Panel.alert.classList.contains('active')) { - removeAlert(); + /** + * Roving tabindex menu for page outline. + * Thanks to Srijan for this snippet! + * @link https://blog.srij.dev/roving-tabindex-from-scratch + */ + let current = 0; + const handleKeyDown = (e) => { + if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; + if (e.code === 'Space') { + children[current].click(); + return; + } + const selected = children[current]; + selected.setAttribute('tabindex', -1); + let next; + if (e.code === 'ArrowDown') { + next = current + 1; + if (current === children.length - 1) { + next = 0; + } + } else if ((e.code === 'ArrowUp')) { + next = current - 1; + if (current === 0) { + next = children.length - 1; } } + children[next].setAttribute('tabindex', 0); + children[next].focus(); + current = next; e.preventDefault(); }; + Constants.Panel.outlineList.addEventListener('focus', () => { + if (children.length > 0) { + Constants.Panel.outlineList.setAttribute('tabindex', -1); + children[current].setAttribute('tabindex', 0); + children[current].focus(); + } + Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + }); + Constants.Panel.outlineList.addEventListener('blur', () => { + Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + }); + }, 0); - // Attach event listeners. - outlineLink?.addEventListener('click', smoothPulse, false); - outlineLink?.addEventListener('keyup', smoothPulse, false); - }); + // Remove event listener and returned dismissed results. + document.removeEventListener('sa11y-build-heading-outline', outlineHandler); + return dismissed; + }; - /** - * Roving tabindex menu for page outline. - * Thanks to Srijan for this snippet! - * @link https://blog.srij.dev/roving-tabindex-from-scratch - */ - let current = 0; - const handleKeyDown = (e) => { - if (!['ArrowUp', 'ArrowDown', 'Space'].includes(e.code)) return; - if (e.code === 'Space') { - children[current].click(); - return; - } - const selected = children[current]; - selected.setAttribute('tabindex', -1); - let next; - if (e.code === 'ArrowDown') { - next = current + 1; - if (current === children.length - 1) { - next = 0; - } - } else if ((e.code === 'ArrowUp')) { - next = current - 1; - if (current === 0) { - next = children.length - 1; - } - } - children[next].setAttribute('tabindex', 0); - children[next].focus(); - current = next; - e.preventDefault(); - }; - Constants.Panel.outlineList.addEventListener('focus', () => { - if (children.length > 0) { - Constants.Panel.outlineList.setAttribute('tabindex', -1); - children[current].setAttribute('tabindex', 0); - children[current].focus(); + // Generate heading outline based on local storage or if "Outline" button is selected. + const rememberOutline = store.getItem('sa11y-remember-outline'); + if (rememberOutline === 'Opened') outlineHandler(); + document.addEventListener('sa11y-build-heading-outline', outlineHandler); + } + + /** + * Create Images outline. + */ + + function generateImageOutline(dismissed, imageResults) { + const generateEditLink = (image) => { + let finalURL; + // Only generate edit link if prop is populated. + if (Constants.Global.editImageURLofCMS.length !== 0) { + const { src } = image.element; + + // Check if image's SRC attribute is hosted on same domain or is relative path. + const relativePath = Constants.Global.relativePathImageSRC + ? Constants.Global.relativePathImageSRC + : window.location.host; + + const parts = src.split(relativePath); + const fileExtension = parts.length > 1 ? parts[1] : ''; + + const imageID = Constants.Global.relativePathImageID; + let imageUniqueID; + if (imageID.length && image.element.classList.length) { + image.element.classList.forEach((className) => { + if (className.startsWith(imageID)) { + const [digit] = className.match(/\d+/) || []; + imageUniqueID = digit; + } + }); } - Constants.Panel.outlineList.addEventListener('keydown', handleKeyDown); + + const editURL = (relativePath && imageID.length) + ? Constants.Global.editImageURLofCMS + imageUniqueID + : Constants.Global.editImageURLofCMS + fileExtension; + + // Only add edit button to relative (locally hosted) images. + const isRelativeLink = (imageSrc) => imageSrc.includes(window.location.host) || imageSrc.startsWith(relativePath); + finalURL = (isRelativeLink(src) && imageUniqueID !== undefined) + ? `` + : ''; + } + return finalURL ?? ''; + }; + + const imageOutlineHandler = () => { + // Create a single array that gets appended to heading outline. + const imageArray = []; + + // Find all dismissed images and update headingOutline array. + const findDismissedImages = dismissed.map((e) => { + const found = imageResults.find((f) => (e.key.includes(f.dismiss) && e.href === window.location.pathname)); + if (found === undefined) return ''; + return found; }); - Constants.Panel.outlineList.addEventListener('blur', () => { - Constants.Panel.outlineList.removeEventListener('keydown', handleKeyDown); + + findDismissedImages.forEach(($el) => { + Object.assign($el, { dismissedImage: true }); }); - }, 0); - return dismissed; + + imageResults.forEach((image) => { + const issue = image.type; + const { dismissedImage } = image; + const altText = escapeHTML(image.element.alt); + + // Account for lazy loading libraries that use 'data-src' attribute. + const { src } = image.element; + const dataSrc = image.element.getAttribute('data-src'); + const source = (dataSrc && dataSrc.length > 3) ? dataSrc : src; + + // Generate edit link if locally hosted image and prop is enabled. + const edit = generateEditLink(image); + + let append; + if (issue === 'error') { + const missing = altText.length === 0 + ? `
                            ${Lang._('MISSING')}
                            ` + : `${altText}`; + append = ` +
                          • + +
                            +
                            + + ${Lang._('ERROR')} + ${Lang._('ALT')} +
                            + ${missing} +
                            + ${edit} +
                          • `; + imageArray.push(append); + } else if (issue === 'warning' && !dismissedImage) { + const decorative = altText.length === 0 + ? `
                            ${Lang._('DECORATIVE')}
                            ` : ''; + append = ` +
                          • + +
                            +
                            + + ${Lang._('WARNING')} + ${Lang._('ALT')} +
                            + ${decorative} ${altText} +
                            + ${edit} +
                          • `; + imageArray.push(append); + } else { + const decorative = altText.length === 0 + ? `
                            ${Lang._('DECORATIVE')}
                            ` : ''; + append = ` +
                          • + +
                            +
                            ${Lang._('ALT')}
                            + ${decorative} ${altText} +
                            + ${edit} +
                          • `; + imageArray.push(append); + } + }); + + // Append headings to Page Outline. + Constants.Panel.imagesList.innerHTML = (imageArray.length === 0) + ? `
                          • ${Lang._('IMAGES_NOT_FOUND')}
                          • ` + : imageArray.join(' '); + + // Remove event listener. + document.removeEventListener('sa11y-build-image-outline', imageOutlineHandler); + }; + + /* Generate image outline based on local storage or if "Image" button is selected. */ + const rememberImages = store.getItem('sa11y-remember-images'); + if (rememberImages === 'Opened') imageOutlineHandler(); + document.addEventListener('sa11y-build-image-outline', imageOutlineHandler); } /* ************************************************************ */ @@ -6626,16 +6839,33 @@ hit[0] = word; } }); - Lang._('SUSPICIOUS_ALT_STOPWORDS').forEach((word) => { - if (alt.toLowerCase().indexOf(word) >= 0) { + + const susAltWordsOverride = (option.susAltStopWords) ? option.susAltStopWords.split(',').map((word) => word.trim()) : Lang._('SUSPICIOUS_ALT_STOPWORDS'); + susAltWordsOverride.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { hit[1] = word; } }); + Lang._('PLACEHOLDER_ALT_STOPWORDS').forEach((word) => { if (alt.length === word.length && alt.toLowerCase().indexOf(word) >= 0) { hit[2] = word; } }); + + // Additional placeholder stopwords to flag as an error. + const { extraPlaceholderStopWords } = option; + if (extraPlaceholderStopWords.length) { + const array = extraPlaceholderStopWords.split(',').map((word) => word.trim()); + array.forEach((word) => { + const susWord = alt.toLowerCase().indexOf(word); + if (susWord > -1 && susWord < 6) { + hit[2] = word; + } + }); + } + return hit; }; @@ -7071,7 +7301,8 @@ }); // Other warnings we want to add. - Lang._('WARNING_ALT_STOPWORDS').forEach((word) => { + const linkStopWords = (option.linkStopWords) ? option.linkStopWords.split(',').map((word) => word.trim()) : Lang._('WARNING_ALT_STOPWORDS'); + linkStopWords.forEach((word) => { if (textContent.toLowerCase().indexOf(word) >= 0) { hit[1] = word; } @@ -7331,6 +7562,39 @@ return results; } + /** + * Converts a color string in the format 'color(srgb r g b [a])' to RGBA format. + * If alpha value is not provided, it defaults to 1 (fully opaque). + * @param {string} colorString The color string in the format 'color(srgb r g b [a])'. + * @returns {string} The RGBA color string in the format 'rgba(r, g, b, a)'. + * Returns 'invalid-format' if the input format is invalid. + */ + const convertColorToRGBA = (colorString) => { + if (colorString.startsWith('color(srgb')) { + const rgbaRegex = /srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/; // Added alpha value regex group + const match = colorString.match(rgbaRegex); + + if (match && match.length >= 4) { + const [r, g, b, a] = match.slice(1); + + // Ensure the parsed values are within the valid range [0, 1]. + const parsedR = Math.min(1, parseFloat(r)); + const parsedG = Math.min(1, parseFloat(g)); + const parsedB = Math.min(1, parseFloat(b)); + + // Parse alpha value or default to 1 if not provided + const alpha = a !== undefined ? Math.min(1, parseFloat(a)) : 1; + + // Converting RGB to RGBA. + const rgbaColor = `rgba(${Math.round(parsedR * 255)}, ${Math.round(parsedG * 255)}, ${Math.round(parsedB * 255)}, ${alpha})`; + + return rgbaColor; + } + return 'invalid-format'; + } + return colorString; // Return the original color if it's not in the color() format. + }; + /** * Rulesets: Contrast * Color contrast plugin by Jason Day. @@ -7404,18 +7668,18 @@ } const styles = getComputedStyle(el); - const bgColor = styles.backgroundColor; + const bgColor = convertColorToRGBA(styles.backgroundColor); const bgImage = styles.backgroundImage; const rgb = `${contrastObject.parseRgb(bgColor)}`; const alpha = rgb.split(','); - // if background has alpha transparency, flag manual check + // if background has alpha transparency, flag manual check. if (alpha[3] < 1 && alpha[3] > 0) { return 'alpha'; } - // if element has no background image, or transparent return bgColor if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent' && bgImage === 'none' && alpha[3] !== '0') { + // if element has no background image, or transparent return bgColor return bgColor; } if (bgImage !== 'none') { return 'image'; @@ -7439,8 +7703,12 @@ const elem = Elements.Found.Contrast[i]; if (Elements.Found.Contrast) { + let ratio; + let error; + let warning; + const style = getComputedStyle(elem); - const { color } = style; + const color = convertColorToRGBA(style.color); const { fill } = style; const fontSize = parseInt(style.fontSize, 10); const pointSize = fontSize * (3 / 4); @@ -7449,14 +7717,26 @@ const background = contrastObject.getBackground(elem); const textString = [].reduce.call(elem.childNodes, (a, b) => a + (b.nodeType === 3 ? b.textContent : ''), ''); const text = textString.trim(); - const clip = window.getComputedStyle(elem).clip.replace(/\s/g, ''); - const width = parseFloat(window.getComputedStyle(elem).width); - const height = parseFloat(window.getComputedStyle(elem).height); - let ratio; - let error; - let warning; - if ((width === 1 && height === 1) && (clip === "rect(0,0,0,0)" || clip === "rect(1px,1px,1px,1px)")) ; else if (htmlTag === 'SVG') { + // Maybe visually hidden text. + const computedStyle = window.getComputedStyle(elem); + const clip = computedStyle.clip.replace(/\s/g, ''); + const clipPath = computedStyle.getPropertyValue('clip-path'); + const width = parseFloat(computedStyle.width); + const height = parseFloat(computedStyle.height); + const maybeVisuallyHidden = (width === 1 && height === 1) && + (clipPath === 'inset(50%)' || /^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(clip)); + + // Ignore if visually hidden for screen readers. + if (maybeVisuallyHidden) { + return; + } else if (color.startsWith('color(')) { + // Push a warning if using a color() functional notation. + warning = { + elem, + }; + contrastErrors.warnings.push(warning); + } else if (htmlTag === 'SVG') { ratio = Math.round(contrastObject.contrastRatio(fill, background) * 100) / 100; if (ratio < 3) { error = { @@ -8072,9 +8352,8 @@ const href = $el.getAttribute('href'); // Has file extension. - const extensions = Constants.Global.documentLinks.split(', '); - const hasExtension = extensions.some((extension) => href.includes(extension)); - const hasPDF = href.includes('.pdf'); + const hasExtension = $el.matches(Constants.Global.documentLinks); + const hasPDF = $el.matches('a[href$=".pdf"], a[href*=".pdf?"]'); // Dismiss key. const key = prepareDismissal(`DOCUMENT${href}`); @@ -8401,11 +8680,9 @@ /* Error: Duplicate IDs */ /* *************************************************************** */ if (option.duplicateIdQA) { - const doms = Constants.Shadow.Components ? `body, ${Constants.Shadow.Components}` : 'body'; - const allDoms = document.querySelectorAll(doms); - // Look for duplicate IDs within each DOM. - allDoms.forEach((dom) => { + const doms = document.querySelectorAll('body, [data-sa11y-has-shadow-root]'); + doms.forEach((dom) => { const allIds = new Set(); const findDuplicateIds = (ids, withinDOM) => { ids.forEach(($el) => { @@ -8662,6 +8939,7 @@ try { this.results = []; this.headingOutline = []; + this.imageOutline = []; this.errorCount = 0; this.warningCount = 0; this.customChecksRunning = false; @@ -8674,7 +8952,7 @@ Constants.initializeRoot(desiredRoot, desiredReadabilityRoot); // Find all web components on the page. - Constants.initializeShadowSearch(option, desiredRoot); + findShadowComponents(option); // Find and cache elements. Elements.initializeElements(option); @@ -8689,6 +8967,8 @@ checkEmbeddedContent(this.results, option); checkReadability(); + this.imageResults = this.results.filter((item) => item.element?.tagName === 'IMG'); + /* Custom checks */ if (option.customChecks === true) { // Option 1: Provide via sa11y-custom-checks.js @@ -8796,6 +9076,10 @@ option.showHinPageOutline, ); + if (option.showImageOutline) { + generateImageOutline(this.dismissed, this.imageResults); + } + updatePanel( dismiss.dismissCount, count.error, @@ -8835,6 +9119,17 @@ this.resetAll = (restartPanel = true) => { Constants.Global.html.removeAttribute('data-sa11y-active'); + // Remove from page. + remove([ + 'sa11y-annotation', + 'sa11y-heading-label', + 'sa11y-heading-anchor', + 'sa11y-tooltips', + '[data-sa11y-readability-period]', + '[data-sa11y-clone-image-text]', + '.sa11y-css-utilities', + ], 'document'); + // Reset all data attributes. resetAttributes([ 'data-sa11y-parent', @@ -8846,21 +9141,12 @@ 'data-sa11y-overflow', 'data-sa11y-pulse-border', 'data-sa11y-filter', - ], 'document'); - - // Remove from page. - remove([ - 'sa11y-annotation', - 'sa11y-heading-label', - 'sa11y-heading-anchor', - 'sa11y-tooltips', - '[data-sa11y-readability-period]', - '[data-sa11y-clone-image-text]', - '.sa11y-css-utilities', + 'data-sa11y-has-shadow-root', ], 'document'); // Remove from panel. Constants.Panel.outlineList.innerHTML = ''; + if (option.showImageOutline) Constants.Panel.imagesList.innerHTML = ''; Constants.Panel.pageIssuesList.innerHTML = ''; Constants.Panel.readabilityInfo.innerHTML = ''; Constants.Panel.readabilityDetails.innerHTML = ''; @@ -8881,6 +9167,11 @@ // Main panel warning and error count. while (Constants.Panel.status.firstChild) Constants.Panel.status.removeChild(Constants.Panel.status.firstChild); + // Remove data attribute from shadow root elements. + document.querySelectorAll('[data-sa11y-has-shadow-root]').forEach((el) => { + el.removeAttribute('data-sa11y-has-shadow-root'); + }); + if (restartPanel) { Constants.Panel.panel.classList.remove('active'); } diff --git a/docs/assets/js/sa11y.umd.min.js b/docs/assets/js/sa11y.umd.min.js index 5472c236..c19fcf39 100644 --- a/docs/assets/js/sa11y.umd.min.js +++ b/docs/assets/js/sa11y.umd.min.js @@ -1,6 +1,6 @@ /*! * Sa11y, the accessibility quality assurance assistant. - * @version 3.1.5 + * @version 3.2.0 * @author Adam Chaboryk * @license GPL-2.0-or-later * @copyright © 2020 - 2024 Toronto Metropolitan University. @@ -9,4 +9,4 @@ * For all acknowledgements, please visit: https://sa11y.netlify.app/acknowledgements/ * The above copyright notice shall be included in all copies or substantial portions of the Software. **/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Sa11y={})}(this,(function(e){"use strict";const t={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:".ppt, .doc, .xls, .csv, sway.com, docs.google.com",langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},n={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
                            /g,'').replaceAll(/{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};const i=function(){const e={};const t={};const a={};const r={};const s={};const l={};const d={};return{initializeRoot:function(t,n){e.areaToCheck=document.querySelector(t),e.areaToCheck||(e.areaToCheck=document.querySelector("body")),e.Readability=document.querySelector(n),e.Readability||(e.areaToCheck?(e.Readability=e.areaToCheck,console.error(`Sa11y configuration error: The selector '${n}' used for the property 'readabilityRoot' does not exist. '${e.areaToCheck.tagName}' was used as a fallback.`)):e.Readability=document.querySelector("body"))},Root:e,initializeGlobal:function(e){t.html=document.querySelector("html"),t.headless=e.headless,t.panelPosition=e.panelPosition,t.dismissAnnotations=e.dismissAnnotations,t.contrastPlugin=e.contrastPlugin,t.formLabelsPlugin=e.formLabelsPlugin,t.linksAdvancedPlugin=e.linksAdvancedPlugin,t.colourFilterPlugin=e.colourFilterPlugin,t.checkAllHideToggles=e.checkAllHideToggles,t.exportResultsPlugin=e.exportResultsPlugin;let n=!1;"function"==typeof window.matchMedia&&(n=window.matchMedia("(prefers-reduced-motion: reduce)")),t.scrollBehaviour=!n||n.matches?"auto":"smooth",t.langDirection="rtl"===t.html.getAttribute("dir")?"rtl":"ltr",e.documentLinks&&(t.documentLinks=`${e.documentLinks}`)},Global:t,initializePanelSelectors:function(){const e=document.querySelector("sa11y-control-panel").shadowRoot;a.panel=e.getElementById("panel"),a.content=e.getElementById("panel-content"),a.controls=e.getElementById("panel-controls"),a.outline=e.getElementById("outline-panel"),a.outlineContent=e.getElementById("outline-content"),a.outlineList=e.getElementById("outline-list"),a.outlineHeader=e.getElementById("outline-header"),a.notifBadge=e.getElementById("notification-badge"),a.notifCount=e.getElementById("notification-count"),a.notifText=e.getElementById("notification-text"),a.status=e.getElementById("status"),a.pageIssues=e.getElementById("page-issues"),a.pageIssuesList=e.getElementById("page-issues-list"),a.pageIssuesHeader=e.getElementById("page-issues-header"),a.pageIssuesContent=e.getElementById("page-issues-content"),a.settings=e.getElementById("settings-panel"),a.settingsHeader=e.getElementById("settings-header"),a.settingsContent=e.getElementById("settings-content"),a.contrastToggle=e.getElementById("contrast-toggle"),a.labelsToggle=e.getElementById("labels-toggle"),a.linksToggle=e.getElementById("links-advanced-toggle"),a.readabilityToggle=e.getElementById("readability-toggle"),a.themeToggle=e.getElementById("theme-toggle"),a.contrastItem=e.getElementById("contrast-item"),a.labelsItem=e.getElementById("form-labels-item"),a.linksItem=e.getElementById("links-advanced-item"),a.readabilityItem=e.getElementById("readability-item"),a.darkModeItem=e.getElementById("dark-mode-item"),a.colourPanel=e.getElementById("panel-colour-filters"),a.colourFilterItem=e.getElementById("colour-filter-item"),a.colourFilterSelect=e.getElementById("colour-filter-select"),a.colourFilterIcon=e.getElementById("filter-icon"),a.toggle=e.getElementById("toggle"),a.outlineToggle=e.getElementById("outline-toggle"),a.settingsToggle=e.getElementById("settings-toggle"),a.skipButton=e.getElementById("skip-button"),a.dismissButton=e.getElementById("dismiss-button"),a.dismissTooltip=e.getElementById("dismiss-tooltip"),a.skipToPageIssues=e.getElementById("skip-to-page-issues"),a.exportHTML=e.getElementById("export-html"),a.exportCSV=e.getElementById("export-csv"),a.alert=e.getElementById("panel-alert"),a.alertText=e.getElementById("panel-alert-text"),a.alertPreview=e.getElementById("panel-alert-preview"),a.alertClose=e.getElementById("close-alert"),a.readability=e.getElementById("readability-panel"),a.readabilityInfo=e.getElementById("readability-info"),a.readabilityDetails=e.getElementById("readability-details")},Panel:a,initializeReadability:function(e){if(e.readabilityPlugin){r.Lang=n._("LANG_CODE").substring(0,2);const e=["en","fr","es","de","nl","it","sv","fi","da","no","nb","nn","pt"],t=i.Global.html.getAttribute("lang");if(t){const n=t.toLowerCase().substring(0,2);e.includes(n)&&e.includes(r.Lang)?r.Plugin=!0:r.Plugin=!1}else r.Plugin=!1}},Readability:r,initializeExclusions:function(e){if(e.containerIgnore){const t=e.containerIgnore.split(",").map((e=>`${e} *, ${e}`));s.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else s.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";s.Contrast="script, style, link",e.contrastIgnore&&(s.Contrast=`${e.contrastIgnore}, ${s.Contrast}`),s.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(s.Readability=`${e.readabilityIgnore}, ${s.Readability}`),e.headerIgnore&&(s.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(s.Outline=`${e.outlineIgnore}`),s.Images='[role="presentation"]',e.imageIgnore&&(s.Images=`${e.imageIgnore}, ${s.Images}`),s.Links=".anchorjs-link",e.linkIgnore&&(s.Links=`${e.linkIgnore}, ${s.Links}`),e.linkIgnoreSpan&&(s.LinkSpan=e.linkIgnoreSpan)},Exclusions:s,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Video=`video, ${t.join(", ")}`}else l.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Audio=`audio, ${t.join(", ")}`}else l.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));l.Visualization=t.join(", ")}else l.Visualization="datastudio.google.com, tableau";l.All=`${l.Video}, ${l.Audio}, ${l.Visualization}`},EmbeddedContent:l,initializeShadowSearch:function(e,t,n){d.Components=function(e,t){let n;if(e.autoDetectShadowComponents){const e="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",i=document.querySelector(t),a=i?Array.from(i.querySelectorAll(`*:not(${e})`)):Array.from(document.body.querySelectorAll(`*:not(${e})`)),r=[];a.forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(r.push(e),o(e))}));const s=Array.from(r).map((e=>e.tagName.toLowerCase()));n=1===s.length?`${s.toString()}`:s.join(", ")}else n=e.suppliedShadowComponents||"",n&&document.querySelectorAll(n).forEach((e=>{o(e)}));return n}(e,t)},Shadow:d}}();function a(e,t,n){let o;"document"===t?o=document:"readability"===t?(o=i.Readability.Root,o||(o=i.Root.areaToCheck)):"root"===t?(o=i.Root.areaToCheck,o||(o=document.body)):"panel"===t?(o=i.Panel.panel,o||(o=document.body)):(o=document.querySelector(t),o||(o=document.body));const a=i.Shadow.Components,r=a?`, ${a}`:"",s=i.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(o.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[],n=a.trim().replace(/^,+/,"");if(d.forEach(((o,i)=>{o&&o.matches&&o.matches(n)&&o.shadowRoot&&(t[i]=o.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function r(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function s(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function l(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function d(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function c(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function p(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function u(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function g(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const m={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function f(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function b(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function h(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function y(e,t,n){h();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
                            ${n}
                            `:"";function c(){h();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
                            ${t}
                            `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function v(e,t){e.forEach((e=>{a(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function x(e,t){a(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function w(e,t){e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0")):t.classList.remove("scrollable")}function A(e){const t=e.element,n=`
                            ${s(e.htmlPath)}
                            `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${l(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const E=function(){const e={};const t={};return{initializeElements:function(t){e.Images=a("img","root",i.Exclusions.Images),e.Headings=a('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",i.Exclusions.Headings),e.HeadingOne=a('h1, [role="heading"][aria-level="1"]',"document",i.Exclusions.Headings),e.Links=a("a[href]","root",i.Exclusions.Links),e.Inputs=a("input, select, textarea","root",i.Exclusions.Container),e.Contrast=a("*","root",i.Exclusions.Contrast),e.Labels=a("label","root",i.Exclusions.Container),e.Readability=a("p, li","readability",i.Exclusions.Readability),e.Paragraphs=a("p","root",i.Exclusions.Container),e.Lists=a("li","root",i.Exclusions.Container),e.Spans=a("span","root",i.Exclusions.Container),e.Blockquotes=a("blockquote","root",i.Exclusions.Container),e.Tables=a('table:not([role="presentation"])',"root",i.Exclusions.Container),e.StrongItalics=a("strong, em","root",i.Exclusions.Container),e.Underlines=a("u","root",i.Exclusions.Container),e.Subscripts=a("sup, sub","root",i.Exclusions.Container),e.Language=i.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?a(t.linksToFlag,"root",i.Exclusions.Container):[],e.iframes=a("iframe:not(hidden), audio, video","root",i.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(i.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(i.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=a("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();function L(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==m.getItem("sa11y-remember-panel")&&m.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("mousemove",o),window.addEventListener("keydown",o)}}let k,I;function T(e,t,o,r){if(i.Global.dismissAnnotations){I=t=>{(async(e,t,o,i)=>{let r=JSON.parse(m.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=t.find((t=>t.id===e));if(null===r&&(setTimeout((()=>y(n._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=a(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;m.setItem("sa11y-latest-dismissed",n),m.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),m.setItem("sa11y-dismissed",JSON.stringify(r)),m.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),i(!1),await o()}}})(t,e,o,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",I),i.Panel.panel.addEventListener("click",I)}k=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const o=e.filter((e=>e.href!==window.location.pathname));m.setItem("sa11y-dismissed",JSON.stringify(o)),i.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(t,o,r)},i.Panel.dismissButton?.addEventListener("click",k)}var _=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function S(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function P(e,t){const o=function(e,t){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:t.length};function r(e,t){const o={error:n._("ERRORS"),warning:n._("WARNINGS"),dismissed:n._("DISMISSED")}[t];if(!(e.length>0))return"";let i=`

                            ${o}

                            `,r="
                              ",l="
                            ";return"dismissed"===t&&(r=`
                            ${n.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
                              `,l="
                            "),i+=r,e.forEach((e=>{let t="";e.element&&(t=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
                          • \n ${n._("PREVIEW")}:\n ${A(e)}\n
                          • \n
                          • \n ${n._("ELEMENT")}:\n
                            ${s(e.htmlPath)}
                            \n
                          • `:`\n
                          • \n ${n._("ELEMENT")}:\n
                            ${s(e.htmlPath)}
                            \n
                          • `);const o=e.cssPath?`
                          • \n ${n._("PATH")}:\n
                            ${e.cssPath}
                            \n
                          • `:"";i+=`
                          • \n

                            ${e.content.replace('

                            '," | ")}

                            \n
                              ${t}${o}
                            \n
                          • `})),i+=l,i}const l=r(o,"error"),d=r(i,"warning"),c=r(t,"dismissed"),p=S(),u=p.titleCheck?"":`
                            ${n._("PAGE_TITLE")}
                            ${p.metaTitle}
                            `,g=0!==a.error?`
                            ${n._("ERRORS")}
                            ${a.error}
                            `:"",m=0!==a.warning?`
                            ${n._("WARNINGS")}
                            ${a.warning}
                            `:"",f=0!==a.dismiss?`
                            ${n._("DISMISSED")}
                            ${a.dismiss}
                            `:"";return`\n \n \n \n \n \n ${n._("RESULTS")}: ${p.metaTitle}\n \n \n \n
                            \n

                            ${n._("RESULTS")}

                            \n
                            \n
                            \n ${u}\n
                            URL
                            \n
                            ${p.pageURL}
                            \n
                            ${n._("DATE")}
                            \n
                            ${p.date}
                            \n
                            \n
                            \n ${g}\n ${m}\n ${f}\n
                            \n
                            \n
                            \n ${l}\n ${d}\n ${c}\n
                            \n

                            ${n.sprintf("GENERATED",'Sa11y')}

                            \n
                            \n \n \n `}(e,t),i=S(),a=new Blob([o],{type:"text/html"}),r=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;r.href=window.URL.createObjectURL(a),r.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(r),r.click(),setTimeout((()=>{document.body.removeChild(r),window.URL.revokeObjectURL(r.href)}),100)}function C(e){const t=S(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ");const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Blob([i],{type:"text/csv"}),r=window.URL.createObjectURL(a),s=document.createElement("a");s.href=r,s.href=window.URL.createObjectURL(a);const l=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;s.setAttribute("download",`Sa11y_${t.numericDate+l}.csv`),document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}let O,$;var N='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text)}.yellow-text{color:var(--sa11y-yellow-text)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus,#container #settings-toggle:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus:not(:focus-visible),#container #settings-toggle:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#settings-toggle):not(#outline-toggle):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #outline-toggle:focus-visible,#container #settings-toggle:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#outline-toggle:focus,#settings-toggle:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class R extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+N,e.appendChild(t);const o=document.createElement("div");o.setAttribute("id","dialog"),o.setAttribute("tabindex","-1");const a=window.location,r=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;o.innerHTML=`\n \n

                            ${n._("ERROR")}

                            \n

                            ${n.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",r)}

                            \n

                            ${s(this.error.stack)}

                            URL: ${a}

                            \n `,e.appendChild(o),setTimeout((()=>{i.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class D extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:45px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 5px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#outline-toggle,#settings-toggle{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#outline-toggle.outline-active,#outline-toggle.settings-active,#outline-toggle:hover,#settings-toggle.outline-active,#settings-toggle.settings-active,#settings-toggle:hover{background-color:var(--sa11y-shortcut-hover)}#outline-toggle.outline-active,#outline-toggle.settings-active,#settings-toggle.outline-active,#settings-toggle.settings-active{font-weight:500}#outline-toggle{border-inline-end:1px solid var(--sa11y-panel-bg-splitter)}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";height:0;inset-inline-end:25px;margin-top:22.5px;position:absolute;width:0}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}#readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background-image:linear-gradient(180deg,transparent 0,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;z-index:-1}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:375px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:335px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+N,this.shadowRoot.appendChild(e);const t="On"===m.getItem("sa11y-remember-contrast"),o="On"===m.getItem("sa11y-remember-labels"),a="On"===m.getItem("sa11y-remember-links-advanced"),r="On"===m.getItem("sa11y-remember-readability"),s=i.Global.checkAllHideToggles,{panelPosition:l}=i.Global,d=i.Global.contrastPlugin?`\n
                          • \n \n \n
                          • `:"",c=i.Global.formLabelsPlugin?`\n
                          • \n \n \n
                          • `:"",p=i.Global.linksAdvancedPlugin?`\n `:"",u=i.Readability.Plugin?`\n
                          • \n \n \n
                          • `:"",g=i.Global.colourFilterPlugin?`\n
                          • \n \n
                            \n \n
                            \n
                          • `:"",f=i.Global.colourFilterPlugin?`\n
                            \n \n

                            ${n._("COLOUR_FILTER_MESSAGE")}

                            \n
                            `:"",b=i.Global.exportResultsPlugin?`\n
                          • \n ${n._("EXPORT_RESULTS")}\n \n \n
                          • `:"",h=`\n `,y=`\n
                            \n
                            \n

                            ${n._("PAGE_ISSUES")}

                            \n
                            \n
                            \n
                              \n
                              \n
                              `,v=`\n
                              \n
                              \n

                              ${n._("OUTLINE")}

                              \n
                              \n
                              \n \n
                              \n
                              \n
                              \n

                              ${n._("LANG_READABILITY")}

                              \n

                              \n
                                \n
                                \n
                                \n
                                `,x=`\n
                                \n
                                \n

                                ${n._("SETTINGS")}

                                \n
                                \n
                                \n
                                  \n ${d}\n ${c}\n ${p}\n ${u}\n
                                • \n \n \n
                                • \n ${b}\n ${g}\n
                                \n
                                \n
                                `,w=`\n \n
                                \n
                                \n \n

                                ${n._("ALERT_TEXT")}

                                \n
                                \n

                                \n
                                \n
                                \n
                                `,A=`\n
                                \n \n \n \n
                                \n

                                ${n._("PANEL_HEADING")}

                                \n

                                \n
                                \n
                                `,E=`\n
                                \n ${"left"===l?'
                                ':""}\n \n \n ${"right"===l?'
                                ':""}\n
                                `,L=document.createElement("div");L.setAttribute("id","container"),L.setAttribute("role","region"),L.setAttribute("lang",n._("LANG_CODE")),L.setAttribute("aria-label",n._("CONTAINER_LABEL")),L.setAttribute("dir",i.Global.langDirection),L.innerHTML="top-left"===l||"top-right"===l?`\n ${h}\n
                                \n ${A}\n ${f}\n ${E}\n ${v}\n ${x}\n ${w}\n ${y}\n
                                `:`\n ${h}\n
                                \n ${y}\n ${v}\n ${x}\n ${w}\n ${f}\n ${A}\n ${E}\n
                                `,this.shadowRoot.appendChild(L),i.initializePanelSelectors()}}function M(e,t,o){const r=[];return e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),t.forEach((e=>{const t=e.element,a=e.headingLevel,s=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:g}=e;if(!(i.Exclusions.Outline?Array.from(document.querySelectorAll(i.Exclusions.Outline)):[]).includes(t)){const e=!0===c?'Hidden':"",i=!0===c?'class="hidden-h"':"",f=!0===o||1===o?"H":"";let b;"error"===d&&!0===g?(b=`\n
                              • \n \n \n \n ${n._("ERROR")} ${f+a}\n ${s}\n \n
                              • `,r.push(b)):"warning"!==d||u||!0!==g?(b=`\n
                              • \n \n ${e} ${f+a}\n ${s}\n \n
                              • `,r.push(b)):(b=`\n
                              • \n \n \n \n ${n._("WARNING")} ${f+a}\n ${s}\n \n
                              • `,r.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){t.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else t.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${a}`,h.shadowRoot.appendChild(v),"Opened"===m.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),i.Panel.outlineList.innerHTML=0===r.length?`
                              • ${n._("PANEL_NO_HEADINGS")}
                              • `:r.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,t=Array.from(e.querySelectorAll("#outline-list a"));t.forEach(((t,o)=>{const r=e.getElementById(`sa11y-link-${o}`),s=a(`#sa11y-h${o}, [data-sa11y-parent="h${o}"]`,"document",i.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{f(e.parentElement),e.scrollIntoView({behavior:`${i.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?y(`${n._("HEADING_NOT_VISIBLE_ALERT")}`):i.Panel.alert.classList.contains("active")&&h()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let o=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void t[o].click();let n;t[o].setAttribute("tabindex",-1),"ArrowDown"===e.code?(n=o+1,o===t.length-1&&(n=0)):"ArrowUp"===e.code&&(n=o-1,0===o&&(n=t.length-1)),t[n].setAttribute("tabindex",0),t[n].focus(),o=n,e.preventDefault()};i.Panel.outlineList.addEventListener("focus",(()=>{t.length>0&&(i.Panel.outlineList.setAttribute("tabindex",-1),t[o].setAttribute("tabindex",0),t[o].focus()),i.Panel.outlineList.addEventListener("keydown",r)})),i.Panel.outlineList.addEventListener("blur",(()=>{i.Panel.outlineList.removeEventListener("keydown",r)}))}),0),e}var B="top",G="bottom",H="right",F="left",U="auto",z=[B,G,H,F],j="start",q="end",W="clippingParents",V="viewport",Q="popper",K="reference",Y=z.reduce((function(e,t){return e.concat([t+"-"+j,t+"-"+q])}),[]),X=[].concat(z,[U]).reduce((function(e,t){return e.concat([t,t+"-"+j,t+"-"+q])}),[]),Z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function J(e){return e?(e.nodeName||"").toLowerCase():null}function ee(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function te(e){return e instanceof ee(e).Element||e instanceof Element}function ne(e){return e instanceof ee(e).HTMLElement||e instanceof HTMLElement}function oe(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ee(e).ShadowRoot||e instanceof ShadowRoot)}var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];ne(i)&&J(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});ne(o)&&J(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ae(e){return e.split("-")[0]}var re=Math.max,se=Math.min,le=Math.round;function de(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function ce(){return!/^((?!chrome|android).)*safari/i.test(de())}function pe(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&ne(e)&&(i=e.offsetWidth>0&&le(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&le(o.height)/e.offsetHeight||1);var r=(te(e)?ee(e):window).visualViewport,s=!ce()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ue(e){var t=pe(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ge(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&oe(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function me(e){return ee(e).getComputedStyle(e)}function fe(e){return["table","td","th"].indexOf(J(e))>=0}function be(e){return((te(e)?e.ownerDocument:e.document)||window.document).documentElement}function he(e){return"html"===J(e)?e:e.assignedSlot||e.parentNode||(oe(e)?e.host:null)||be(e)}function ye(e){return ne(e)&&"fixed"!==me(e).position?e.offsetParent:null}function ve(e){for(var t=ee(e),n=ye(e);n&&fe(n)&&"static"===me(n).position;)n=ye(n);return n&&("html"===J(n)||"body"===J(n)&&"static"===me(n).position)?t:n||function(e){var t=/firefox/i.test(de());if(/Trident/i.test(de())&&ne(e)&&"fixed"===me(e).position)return null;var n=he(e);for(oe(n)&&(n=n.host);ne(n)&&["html","body"].indexOf(J(n))<0;){var o=me(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function xe(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function we(e,t,n){return re(e,se(t,n))}function Ae(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ee(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Le={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ae(n.placement),l=xe(s),d=[F,H].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return Ae("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ee(e,z))}(i.padding,n),p=ue(a),u="y"===l?B:F,g="y"===l?G:H,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ve(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,A=we(v,w,x),E=l;n.modifiersData[o]=((t={})[E]=A,t.centerOffset=A-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ge(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ke(e){return e.split("-")[1]}var Ie={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Te(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=F,x=B,w=window;if(d){var A=ve(n),E="clientHeight",L="clientWidth";if(A===ee(n)&&"static"!==me(A=be(n)).position&&"absolute"===s&&(E="scrollHeight",L="scrollWidth"),i===B||(i===F||i===H)&&a===q)x=G,f-=(p&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-o.height,f*=l?1:-1;if(i===F||(i===B||i===G)&&a===q)v=H,g-=(p&&A===w&&w.visualViewport?w.visualViewport.width:A[L])-o.width,g*=l?1:-1}var k,I=Object.assign({position:s},d&&Ie),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:le(n*i)/i||0,y:le(o*i)/i||0}}({x:g,y:f},ee(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},I,((k={})[x]=y?"0":"",k[v]=h?"0":"",k.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",k)):Object.assign({},I,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var _e={passive:!0};var Se={left:"right",right:"left",bottom:"top",top:"bottom"};function Pe(e){return e.replace(/left|right|bottom|top/g,(function(e){return Se[e]}))}var Ce={start:"end",end:"start"};function Oe(e){return e.replace(/start|end/g,(function(e){return Ce[e]}))}function $e(e){var t=ee(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Ne(e){return pe(be(e)).left+$e(e).scrollLeft}function Re(e){var t=me(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function De(e){return["html","body","#document"].indexOf(J(e))>=0?e.ownerDocument.body:ne(e)&&Re(e)?e:De(he(e))}function Me(e,t){var n;void 0===t&&(t=[]);var o=De(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=ee(o),r=i?[a].concat(a.visualViewport||[],Re(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(Me(he(r)))}function Be(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ge(e,t,n){return t===V?Be(function(e,t){var n=ee(e),o=be(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=ce();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+Ne(e),y:l}}(e,n)):te(t)?function(e,t){var n=pe(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):Be(function(e){var t,n=be(e),o=$e(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=re(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=re(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+Ne(e),l=-o.scrollTop;return"rtl"===me(i||n).direction&&(s+=re(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(be(e)))}function He(e,t,n,o){var i="clippingParents"===t?function(e){var t=Me(he(e)),n=["absolute","fixed"].indexOf(me(e).position)>=0&&ne(e)?ve(e):e;return te(n)?t.filter((function(e){return te(e)&&ge(e,n)&&"body"!==J(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=Ge(e,n,o);return t.top=re(i.top,t.top),t.right=se(i.right,t.right),t.bottom=se(i.bottom,t.bottom),t.left=re(i.left,t.left),t}),Ge(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Fe(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ae(i):null,r=i?ke(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case B:t={x:s,y:n.y-o.height};break;case G:t={x:s,y:n.y+n.height};break;case H:t={x:n.x+n.width,y:l};break;case F:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?xe(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case j:t[d]=t[d]-(n[c]/2-o[c]/2);break;case q:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Ue(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?W:s,d=n.rootBoundary,c=void 0===d?V:d,p=n.elementContext,u=void 0===p?Q:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=Ae("number"!=typeof b?b:Ee(b,z)),y=u===Q?K:Q,v=e.rects.popper,x=e.elements[m?y:u],w=He(te(x)?x:x.contextElement||be(e.elements.popper),l,c,r),A=pe(e.elements.reference),E=Fe({reference:A,element:v,strategy:"absolute",placement:i}),L=Be(Object.assign({},v,E)),k=u===Q?L:A,I={top:w.top-k.top+h.top,bottom:k.bottom-w.bottom+h.bottom,left:w.left-k.left+h.left,right:k.right-w.right+h.right},T=e.modifiersData.offset;if(u===Q&&T){var _=T[i];Object.keys(I).forEach((function(e){var t=[H,G].indexOf(e)>=0?1:-1,n=[B,G].indexOf(e)>=0?"y":"x";I[e]+=_[n]*t}))}return I}function ze(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?X:l,c=ke(o),p=c?s?Y:Y.filter((function(e){return ke(e)===c})):z,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Ue(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ae(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var je={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ae(b),y=l||(h===b||!m?[Pe(b)]:function(e){if(ae(e)===U)return[];var t=Pe(e);return[Oe(e),t,Oe(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ae(n)===U?ze(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,A=new Map,E=!0,L=v[0],k=0;k=0,P=S?"width":"height",C=Ue(t,{placement:I,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?H:F:_?G:B;x[P]>w[P]&&(O=Pe(O));var $=Pe(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){L=I,E=!1;break}A.set(I,N)}if(E)for(var R=function(e){var t=v.find((function(t){var n=A.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},D=m?3:1;D>0;D--){if("break"===R(D))break}t.placement!==L&&(t.modifiersData[o]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function qe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function We(e){return[B,H,G,F].some((function(t){return e[t]>=0}))}var Ve={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=X.reduce((function(e,n){return e[n]=function(e,t,n){var o=ae(e),i=[F,B].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[F,H].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var Qe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Ue(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ae(t.placement),y=ke(t.placement),v=!y,x=xe(h),w="x"===x?"y":"x",A=t.modifiersData.popperOffsets,E=t.rects.reference,L=t.rects.popper,k="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,I="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(A){if(a){var S,P="y"===x?B:F,C="y"===x?G:H,O="y"===x?"height":"width",$=A[x],N=$+b[P],R=$-b[C],D=g?-L[O]/2:0,M=y===j?E[O]:L[O],U=y===j?-L[O]:-E[O],z=t.elements.arrow,q=g&&z?ue(z):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=W[P],Q=W[C],K=we(0,E[O],q[O]),Y=v?E[O]/2-D-K-V-I.mainAxis:M-K-V-I.mainAxis,X=v?-E[O]/2+D+K+Q+I.mainAxis:U+K+Q+I.mainAxis,Z=t.elements.arrow&&ve(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+X-ee,ne=we(g?se(N,$+Y-ee-J):N,$,g?re(R,te):R);A[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?B:F,le="x"===x?G:H,de=A[w],ce="y"===w?"height":"width",pe=de+b[ie],ge=de-b[le],me=-1!==[B,F].indexOf(h),fe=null!=(oe=null==T?void 0:T[w])?oe:0,be=me?pe:de-E[ce]-L[ce]-fe+I.altAxis,he=me?de+E[ce]+L[ce]-fe-I.altAxis:ge,ye=g&&me?function(e,t,n){var o=we(e,t,n);return o>n?n:o}(be,de,he):we(g?be:pe,de,g?he:ge);A[w]=ye,_[w]=ye-de}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function Ke(e,t,n){void 0===n&&(n=!1);var o,i,a=ne(t),r=ne(t)&&function(e){var t=e.getBoundingClientRect(),n=le(t.width)/e.offsetWidth||1,o=le(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=be(t),l=pe(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==J(t)||Re(s))&&(d=(o=t)!==ee(o)&&ne(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:$e(o)),ne(t)?((c=pe(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=Ne(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function Ye(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var Xe={placement:"bottom",modifiers:[],strategy:"absolute"};function Ze(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function dt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function ct(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function pt(e){return[].concat(e)}function ut(e,t){-1===e.indexOf(t)&&e.push(t)}function gt(e){return[].slice.call(e)}function mt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function ft(){return document.createElement("div")}function bt(e){return["Element","Fragment"].some((function(t){return lt(e,t)}))}function ht(e){return bt(e)?[e]:function(e){return lt(e,"NodeList")}(e)?gt(e):Array.isArray(e)?e:gt(document.querySelectorAll(e))}function yt(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function vt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function xt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function wt(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var At={isTouch:!1},Et=0;function Lt(){At.isTouch||(At.isTouch=!0,window.performance&&document.addEventListener("mousemove",kt))}function kt(){var e=performance.now();e-Et<20&&(At.isTouch=!1,document.removeEventListener("mousemove",kt)),Et=e}function It(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var Tt=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,_t=Object.assign({appendTo:rt,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),St=Object.keys(_t);function Pt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=_t[i])?o:a);return t}),{});return Object.assign({},e,t)}function Ct(e,t){var n=Object.assign({},t,{content:dt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Pt(Object.assign({},_t,{plugins:t}))):St).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},_t.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Ot=function(){return"innerHTML"};function $t(e,t){e[Ot()]=t}function Nt(e){var t=ft();return!0===e?t.className=ot:(t.className=it,bt(e)?t.appendChild(e):$t(t,e)),t}function Rt(e,t){bt(t.content)?($t(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?$t(e,t.content):e.textContent=t.content)}function Dt(e){var t=e.firstElementChild,n=gt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(tt)})),arrow:n.find((function(e){return e.classList.contains(ot)||e.classList.contains(it)})),backdrop:n.find((function(e){return e.classList.contains(nt)}))}}function Mt(e){var t=ft(),n=ft();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=ft();function i(n,o){var i=Dt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Rt(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Nt(o.arrow))):a.appendChild(Nt(o.arrow)):s&&a.removeChild(s)}return o.className=tt,o.setAttribute("data-state","hidden"),Rt(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Mt.$$tippy=!0;var Bt=1,Gt=[],Ht=[];function Ft(e,t){var n,o,i,a,r,s,l,d,c=Ct(e,Object.assign({},_t,Pt(mt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=ct(V,c.interactiveDebounce),h=Bt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:ft(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),q();var n=v.props,o=Ct(e,Object.assign({},n,mt(t),{ignoreAttributes:!0}));v.props=o,j(),n.interactiveDebounce!==o.interactiveDebounce&&(D(),b=ct(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?pt(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),A&&A(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=At.isTouch&&!v.props.touch,i=st(v.props.duration,0,_t.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();yt([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;yt([n,o],i),vt([n,o],"visible")}N(),R(),ut(Ht,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===rt||"parent"===t?n.parentNode:dt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=st(v.props.duration,1,_t.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(D(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(yt([a,r],o),vt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),ut(Gt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Ht=Ht.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),q(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,A=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var E=y.map((function(e){return e.fn(v)})),L=e.hasAttribute("aria-expanded");return j(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function k(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function I(){return"hold"===k()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=pt(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return Dt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||At.isTouch||a&&"focus"===a.type?0:st(v.props.delay,e?0:1,_t.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),E.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;pt(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!L&&v.props.aria.expanded&&pt(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function D(){S().removeEventListener("mousemove",b),Gt=Gt.filter((function(e){return e!==b}))}function M(t){if(!At.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!wt(w,n)){if(pt(v.props.triggerTarget||e).some((function(e){return wt(e,n)}))){if(At.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function B(){g=!0}function G(){g=!1}function H(){var e=S();e.addEventListener("mousedown",M,!0),e.addEventListener("touchend",M,at),e.addEventListener("touchstart",G,at),e.addEventListener("touchmove",B,at)}function F(){var e=S();e.removeEventListener("mousedown",M,!0),e.removeEventListener("touchend",M,at),e.removeEventListener("touchstart",G,at),e.removeEventListener("touchmove",B,at)}function U(e,t){var n=P().box;function o(e){e.target===n&&(xt(n,"remove",o),t())}if(0===e)return t();xt(n,"remove",r),xt(n,"add",o),r=o}function z(t,n,o){void 0===o&&(o=!1),pt(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function j(){var e;I()&&(z("touchstart",W,{passive:!0}),z("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(z(e,W),e){case"mouseenter":z("mouseleave",Q);break;case"focus":z(Tt?"focusout":"blur",K);break;case"focusin":z("focusout",K)}}))}function q(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function W(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&<(e,"MouseEvent")&&Gt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(D(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!At.isTouch&&I()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?Dt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=et(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return gt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=k(),i=o[0],a=o[1];At.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Ut(e,t){void 0===t&&(t={});var n=_t.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Lt,at),window.addEventListener("blur",It);var o=Object.assign({},t,{plugins:n}),i=ht(e).reduce((function(e,t){var n=t&&Ft(t,o);return n&&e.push(n),e}),[]);return bt(e)?i[0]:i}Ut.defaultProps=_t,Ut.setDefaultProps=function(e){Object.keys(e).forEach((function(t){_t[t]=e[t]}))},Ut.currentInput=At,Object.assign({},ie,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Ut.setDefaultProps({render:Mt});var zt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=zt+N,e.appendChild(t);const o=[];E.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&o.push(...Array.from(t))}));const a=Ut(o,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Ut(i.Panel.skipButton,{content:`${n._("SHORTCUT_TOOLTIP")} »
                                ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class qt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=zt+N,e.appendChild(t),this.object=Ut(i.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Wt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+N,e.appendChild(t)}}const Vt=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class Qt extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class Kt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const Yt=(e,t)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=u(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=A(t.find((e=>e.id===a)));(e=>{const t=u(e.getRootNode().host,"display","none");if(null!==t){f(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(y(`${n._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?g(e).top-150:g(t).top-150}}else h(),i.Panel.skipButton.focus();return g(e).top-150};let Xt=-1;const Zt=()=>{const e=m.getItem("sa11y-latest-dismissed");null!==e&&(Xt=parseInt(e,10)-1),m.removeItem("sa11y-latest-dismissed");const t=a("[data-sa11y-opened]","root");t[0]&&(Xt=parseInt(t[0].getAttribute("data-sa11y-position"),10))},Jt=e=>{Zt();const t=E.Annotations.Array;Xt>=t.length-1&&(Xt=-1);const n=t[Xt+1].shadowRoot.querySelector("button"),o=Yt(n,e);window.scrollTo({top:o,behavior:`${i.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),Xt+=1},en=e=>{if(Zt(),Xt>0){const t=E.Annotations.Array[Xt-1].shadowRoot.querySelector("button"),n=Yt(t,e);window.scrollTo({top:n,behavior:`${i.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),Xt-=1,-1===Xt&&(Xt=E.Annotations.Array.length-1)}};let tn,nn;function on(e){tn=t=>{!function(e,t){E.Annotations.Array.length&&!i.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),Jt(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),en(t)))}(t,e)},nn=()=>{Jt(e)},document.addEventListener("keydown",tn),i.Panel.skipButton.addEventListener("click",nn)}const an=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},rn=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},sn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${ln(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},ln=(e,t,n=0)=>{const o=sn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=an(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=sn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,rn(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=an(a.currentNode,a.currentNode.getAttribute("alt")),rn(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=an(a.currentNode,"");break;default:i+=an(a.currentNode,"")}}else rn(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function dn(e,t){return E.Found.Images.forEach((o=>{const a="noAria"===sn(o)?o.getAttribute("alt"):sn(o),r=o.closest("a[href]"),s=r?p(r,i.Exclusions.LinkSpan).textContent:"",d=t.linkIgnoreStrings?s.replace(t.linkIgnoreStrings,""):s,u=r?c(d).length:0;if("true"!==o.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:o,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const t=0===u?n.sprintf("MISSING_ALT_LINK_MESSAGE"):n.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else e.push({element:o,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const i=c(l(a)),s=(e=>{const t=[null,null,null];return[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((n=>{const o=n.toLowerCase();e.toLowerCase().indexOf(o)>=0&&(t[0]=n)})),n._("SUSPICIOUS_ALT_STOPWORDS").forEach((n=>{e.toLowerCase().indexOf(n)>=0&&(t[1]=n)})),n._("PLACEHOLDER_ALT_STOPWORDS").forEach((n=>{e.length===n.length&&e.toLowerCase().indexOf(n)>=0&&(t[2]=n)})),t})(i),d=o.getAttribute("aria-label")||o.getAttribute("aria-labelledby"),p=""===a||" "===a,g=o.closest("figure"),m=g?.querySelector("figcaption"),f=m?m.textContent.trim():"",h=o.getAttribute("src")?o.getAttribute("src"):o.getAttribute("srcset");if(d&&""===i)return void e.push({element:o,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const t=b(`DECORATIVE${h}`);if(r){const t=0===u?"error":"good",i=0===u?n.sprintf("LINK_IMAGE_NO_ALT_TEXT"):n.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:o,type:t,content:i,inline:!1,position:"beforebegin"})}else if(g){const i=m&&f.length?n.sprintf("IMAGE_FIGURE_DECORATIVE"):n.sprintf("IMAGE_DECORATIVE");e.push({element:o,type:"warning",content:i,inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:o,type:"warning",content:n.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:t});return}if(null!==s[0]){const t=r?n.sprintf("LINK_ALT_HAS_FILE_EXTENSION",s[0],i):n.sprintf("ALT_HAS_FILE_EXTENSION",s[0],i);e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==s[2]){const t=r?n.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",i):n.sprintf("ALT_PLACEHOLDER_MESSAGE",i);e.push({element:o,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==s[1]){const t=b(`${h+i}`),a=r?n.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",s[1],i):n.sprintf("ALT_HAS_SUS_WORD",s[1],i);e.push({element:o,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:t})}else if(a.length>t.altTextMaxCharLength){const t=b(`${h+i+a.length}`),s=r?n.sprintf("LINK_IMAGE_LONG_ALT",a.length,i):n.sprintf("IMAGE_ALT_TOO_LONG",a.length,i);e.push({element:o,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(r){const t=b(`${h+i}`),a=l(c(ln(r))),s=0===u?n.sprintf("LINK_IMAGE_ALT_WARNING",i):n.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",i,a);e.push({element:o,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(g){if(!!m&&f.toLowerCase()===i.trim().toLowerCase()){const t=b(`FIGURE${h+i}`);e.push({element:o,type:"warning",content:n.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",i),inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:o,type:"good",content:n.sprintf("IMAGE_PASS",i),inline:!1,position:"beforebegin"})}else e.push({element:o,type:"good",content:n.sprintf("IMAGE_PASS",i),inline:!1,position:"beforebegin"})}})),e}function cn(e,t,o){let a;return E.Found.Headings.forEach(((r,s)=>{const d=ln(r,t.headerIgnoreSpan),p=l(c(t.headerIgnoreStrings?d.replace(t.headerIgnoreStrings,""):d)),g=i.Root.areaToCheck.contains(r),m=i.Root.areaToCheck.contains(r.getRootNode().host),f=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=p.length;let v=null,x=null;if(h-a>1&&0!==s)if(t.nonConsecutiveHeadingIsError)v=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else{x=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const t=b(`HEADING${h+p}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:f})}else if(0===y)if(r.querySelectorAll("img").length){const t=r.querySelector("img").getAttribute("alt");null!==t&&" "!==t&&""!==t||(v=n.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f}))}else v=n.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else if(0===s&&1!==h&&2!==h)v=n.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:f});else if(y>t.headingMaxCharLength&&t.flagLongHeadings){x=n.sprintf("HEADING_LONG",y);const t=b(`HEADING${h+p}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:f})}a=h;const w=!!((A=r).getAttribute("hidden")||0===A.offsetWidth&&0===A.offsetHeight||1===A.clientHeight&&1===A.clientWidth)||"none"===getComputedStyle(A).getPropertyValue("display");var A;const E=u(r,"display","none");if(null!==v)o.push({element:r,headingLevel:h,text:p,index:s,type:"error",hidden:w,visibleParent:E,isWithinRoot:f});else if(null!==x){const e=b(`HEADING${h+p}`);o.push({element:r,headingLevel:h,text:p,index:s,type:"warning",hidden:w,visibleParent:E,dismiss:e,isWithinRoot:f})}else null!==v&&null!==x||o.push({element:r,headingLevel:h,text:p,index:s,hidden:w,visibleParent:E,isWithinRoot:f})})),0===E.Found.HeadingOne.length&&t.missingH1&&e.push({type:"warning",content:n.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:o}}function pn(e,t){const o={};return E.Found.Links.forEach((a=>{const r=ln(a,i.Exclusions.LinkSpan),s=c(t.linkIgnoreStrings?r.replace(t.linkIgnoreStrings,""):r),d=(e=>{const t=[null,null,null,null];return n._("PARTIAL_ALT_STOPWORDS").forEach((n=>(e.length===n.length&&e.toLowerCase().indexOf(n)>=0&&(t[0]=n),!1))),n._("WARNING_ALT_STOPWORDS").forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[1]=n),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[2]=n),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((n=>(e.toLowerCase().indexOf(n)>=0&&(t[3]=n),!1))),t})(s.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===s.length&&/[^a-zA-Z0-9]/g.test(s),u=s.match(/([<>↣↳←→↓«»↴]+)/),g=u?u[1]:null,f=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!f&&""!==f||0!==s.length)if(null!==d[0])e.push({element:a,type:"error",content:n.sprintf("LINK_STOPWORD",d[0]),inline:!0,position:"afterend"});else if(null!==d[1]||null!==g){const t=b(`LINK${s+f}`),o=g||d[1];e.push({element:a,type:"warning",content:n.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==d[2]&&t.linksToDOI){const t=b(`LINK${s+d[2]+f}`);s.length>8&&e.push({element:a,type:"warning",content:n.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==d[3]&&t.URLAsLinkTextWarning){const o=b(`LINK${s+d[2]+f}`);s.length>t.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:n.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(t.showGoodLinkButton){const t=l(s);e.push({element:a,type:"good",content:n.sprintf("LINK_LABEL",t),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(t.linksAdvancedPlugin){if("On"===m.getItem("sa11y-remember-links-advanced")||t.headless||t.checkAllHideToggles){const t=n._("NEW_WINDOW_PHRASES").some((e=>s.toLowerCase().includes(e))),i=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(n._("FILE_TYPE_PHRASES")).some((e=>s.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=s.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(o[d]&&!o[f]){const t=b(`LINK${d+f}`),o=l(s);e.push({element:a,type:"warning",content:n.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:t})}else if("_blank"!==a.getAttribute("target")||r||t)if(r&&!i){const t=b(`LINK${d+f}`);e.push({element:a,type:"warning",content:n.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}else o[d]=!0,o[f]=!0;else{const t=b(`LINK${d+f}`);e.push({element:a,type:"warning",content:n.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}}}})),e}e.Lang=n,e.Sa11y=class{constructor(e){const o={...t,...e};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=o;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",Kt),customElements.define("sa11y-heading-anchor",Qt),customElements.define("sa11y-annotation",Wt),customElements.define("sa11y-tooltips",jt),customElements.define("sa11y-dismiss-tooltip",qt),customElements.define("sa11y-control-panel",D),customElements.define("sa11y-console-error",R),i.initializeGlobal(o),i.initializeReadability(o),i.initializeExclusions(o),i.initializeEmbeddedContent(o),e=()=>{if(o.headless)this.checkAll(),m.removeItem("sa11y-dismissed");else{const a=new D;document.body.appendChild(a),function(e,t){i.Global.contrastPlugin?i.Panel.contrastToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-contrast")?(m.setItem("sa11y-remember-contrast","Off"),i.Panel.contrastToggle.textContent=`${n._("OFF")}`,i.Panel.contrastToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-contrast","On"),i.Panel.contrastToggle.textContent=`${n._("ON")}`,i.Panel.contrastToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-contrast","Off"),i.Global.formLabelsPlugin?i.Panel.labelsToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-labels")?(m.setItem("sa11y-remember-labels","Off"),i.Panel.labelsToggle.textContent=`${n._("OFF")}`,i.Panel.labelsToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-labels","On"),i.Panel.labelsToggle.textContent=`${n._("ON")}`,i.Panel.labelsToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-labels","Off"),i.Global.linksAdvancedPlugin?i.Panel.linksToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-links-advanced")?(m.setItem("sa11y-remember-links-advanced","Off"),i.Panel.linksToggle.textContent=`${n._("OFF")}`,i.Panel.linksToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(m.setItem("sa11y-remember-links-advanced","On"),i.Panel.linksToggle.textContent=`${n._("ON")}`,i.Panel.linksToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:m.setItem("sa11y-remember-links-advanced","Off"),i.Readability.Plugin&&(i.Panel.readabilityToggle.onclick=async()=>{"On"===m.getItem("sa11y-remember-readability")?(m.setItem("sa11y-remember-readability","Off"),i.Panel.readabilityToggle.textContent=`${n._("OFF")}`,i.Panel.readabilityToggle.setAttribute("aria-pressed","false"),i.Panel.readability.classList.remove("active"),t(!1),await e()):(m.setItem("sa11y-remember-readability","On"),i.Panel.readabilityToggle.textContent=`${n._("ON")}`,i.Panel.readabilityToggle.setAttribute("aria-pressed","true"),i.Panel.readability.classList.add("active"),t(!1),await e())},"On"===m.getItem("sa11y-remember-readability")&&i.Panel.readability.classList.add("active"));const o=window.matchMedia("(prefers-color-scheme: dark)");o.matches?(i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):(i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")),o.addEventListener("change",(()=>{o.matches?(i.Global.html.setAttribute("data-sa11y-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true"),m.setItem("sa11y-remember-theme","")):(i.Global.html.setAttribute("data-sa11y-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false"),m.setItem("sa11y-remember-theme",""))})),i.Panel.themeToggle.onclick=async()=>{const e=m.getItem("sa11y-remember-theme");"dark"===e?(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):o.matches?(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")):(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=m.getItem("sa11y-remember-theme");"dark"===a?(i.Global.html.setAttribute("data-sa11y-theme","dark"),m.setItem("sa11y-remember-theme","dark"),i.Panel.themeToggle.textContent=`${n._("ON")}`,i.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(i.Global.html.setAttribute("data-sa11y-theme","light"),m.setItem("sa11y-remember-theme","light"),i.Panel.themeToggle.textContent=`${n._("OFF")}`,i.Panel.themeToggle.setAttribute("aria-pressed","false")),i.Global.colourFilterPlugin&&i.Panel.colourFilterSelect.addEventListener("change",(async()=>{const o=parseInt(i.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[n._("RED_EYE"),n._("GREEN_EYE"),n._("BLUE_EYE"),n._("MONO_EYE")];o>=1&&o<=4?window.matchMedia("(forced-colors: active)").matches?y(n._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(i.Root.areaToCheck.setAttribute("data-sa11y-filter",a[o-1]),i.Panel.colourFilterIcon.setAttribute("aria-label",r[o-1]),v(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),x(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),i.Panel.skipButton.disabled=!0,i.Panel.pageIssues.classList.remove("active"),"left"!==i.Global.panelPosition&&"right"!==i.Global.panelPosition||i.Panel.settingsContent.classList.add("hide-settings-border"),i.Panel.colourFilterSelect.classList.add("active"),i.Panel.colourPanel.classList.add("active"),i.Panel.colourPanel.setAttribute("data-colour",a[o-1]),i.Panel.content.hidden=!0):(i.Root.areaToCheck.removeAttribute("data-sa11y-filter"),i.Panel.settingsContent.classList.remove("hide-settings-border"),i.Panel.colourFilterSelect.classList.remove("active"),i.Panel.colourPanel.classList.remove("active"),i.Panel.colourPanel.removeAttribute("data-colour"),i.Panel.content.hidden=!1,t(!1),await e())}))}(this.checkAll,this.resetAll),i.Panel.outlineToggle.addEventListener("click",(()=>{"true"===i.Panel.outlineToggle.getAttribute("aria-expanded")?(i.Panel.outlineToggle.classList.remove("outline-active"),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-outline","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),w(i.Panel.outlineList,i.Panel.outlineContent)):(i.Panel.outlineToggle.classList.add("outline-active"),i.Panel.outline.classList.add("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","true"),m.setItem("sa11y-remember-outline","Opened"),m.setItem("sa11y-remember-settings","Closed"),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!1))),i.Panel.outlineHeader.focus(),i.Panel.settings.classList.remove("active"),i.Panel.settingsToggle.classList.remove("settings-active"),i.Panel.settingsToggle.setAttribute("aria-expanded","false"),w(i.Panel.outlineList,i.Panel.outlineContent)})),"Opened"===m.getItem("sa11y-remember-outline")&&(i.Panel.outlineToggle.classList.add("outline-active"),i.Panel.outline.classList.add("active"),i.Panel.outlineToggle.setAttribute("aria-expanded","true"),setTimeout((()=>{w(i.Panel.outlineList,i.Panel.outlineContent)}),0)),i.Panel.settingsToggle.addEventListener("click",(()=>{"true"===i.Panel.settingsToggle.getAttribute("aria-expanded")?(i.Panel.settingsToggle.classList.remove("settings-active"),i.Panel.settings.classList.remove("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-settings","Closed")):(i.Panel.settingsToggle.classList.add("settings-active"),i.Panel.settings.classList.add("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","true"),m.setItem("sa11y-remember-settings","Opened"),m.setItem("sa11y-remember-outline","Closed")),i.Panel.settingsHeader.focus(),document.querySelectorAll("sa11y-heading-label").forEach((e=>e.hidden=!0)),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.classList.remove("outline-active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false"),m.setItem("sa11y-remember-outline","Closed"),i.Panel.settingsContent.clientHeight>350&&(i.Panel.settingsContent.setAttribute("tabindex","0"),i.Panel.settingsContent.setAttribute("aria-label",`${n._("SETTINGS")}`),i.Panel.settingsContent.setAttribute("role","region")),i.Panel.outline.classList.remove("active"),i.Panel.outlineToggle.classList.remove("settings-active"),i.Panel.outlineToggle.setAttribute("aria-expanded","false")})),"Opened"===m.getItem("sa11y-remember-settings")&&(i.Panel.settingsToggle.classList.add("settings-active"),i.Panel.settings.classList.add("active"),i.Panel.settingsToggle.setAttribute("aria-expanded","true")),i.Panel.skipToPageIssues.addEventListener("click",(()=>{i.Panel.pageIssuesHeader.focus()})),setTimeout((()=>{w(i.Panel.pageIssuesList,i.Panel.pageIssuesContent)}),0),i.Panel.controls.addEventListener("keydown",(e=>{const t=i.Panel.panel.querySelectorAll("#outline-toggle[role=tab], #settings-toggle[role=tab]");if("ArrowRight"===e.key)for(let n=0;n0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}if("ArrowUp"===e.key)for(let n=t.length-1;n>0;n--)if("true"===t[n].getAttribute("aria-expanded")||"false"===t[n].getAttribute("aria-expanded")){t[n-1].focus(),e.preventDefault();break}})),function(){if(i.Global.colourFilterPlugin&&!1===i.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),L(o.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new qt,document.body.appendChild(this.dismissTooltip),i.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),o.delayCheck),o.delayCheck>=700&&(i.Panel.toggle.disabled=!0),e=this.checkAll,t=this.resetAll,i.Panel.toggle.addEventListener("click",(n=>{"Opened"===m.getItem("sa11y-remember-panel")?(n.preventDefault(),m.setItem("sa11y-remember-panel","Closed"),i.Panel.toggle.classList.remove("on"),i.Panel.toggle.setAttribute("aria-expanded","false"),t(),0===i.Panel.notifCount.innerHTML.trim().length?i.Panel.notifBadge.style.display="none":i.Panel.notifBadge.style.display="flex"):(n.preventDefault(),m.setItem("sa11y-remember-panel","Opened"),i.Panel.toggle.classList.add("on"),i.Panel.toggle.setAttribute("aria-expanded","true"),e(),w(i.Panel.outlineList,i.Panel.outlineContent))})),"Opened"===m.getItem("sa11y-remember-panel")&&(i.Panel.toggle.classList.add("on"),i.Panel.toggle.setAttribute("aria-expanded","true"),i.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(i.Panel.toggle.click(),i.Panel.toggle.focus())}}var e,t},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=o.checkRoot,t=o.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||y(`${n.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),i.initializeRoot(e,t),i.initializeShadowSearch(o,e),E.initializeElements(o),cn(this.results,o,this.headingOutline),pn(this.results,o),dn(this.results,o),function(e,t){if(t.contrastPlugin&&("On"===m.getItem("sa11y-remember-contrast")||t.headless||t.checkAllHideToggles)){let t={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=t.backgroundColor,i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){t={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),p=window.getComputedStyle(n).clip.replace(/\s/g,""),u=parseFloat(window.getComputedStyle(n).width),g=parseFloat(window.getComputedStyle(n).height);let m,f,b;if(1!==u||1!==g||"rect(0,0,0,0)"!==p&&"rect(1px,1px,1px,1px)"!==p)if("SVG"===l)m=Math.round(100*o.contrastRatio(a,d))/100,m<3&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f));else if(c.length||"INPUT"===l||"SELECT"===l||"TEXTAREA"===l){const e=n.getAttribute("type");"range"===e||"color"===e||("image"===d||"alpha"===d?(b={elem:n},t.warnings.push(b)):(m=Math.round(100*o.contrastRatio(i,d))/100,r>=18||r>=14&&s>=700?m<3&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f)):m<4.5&&(f={elem:n,ratio:`${m}:1`},t.errors.push(f))))}}}return t}};o.check(),t.errors.forEach((t=>{const o=t.elem,i=t.ratio,a=l(p(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:n.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:n.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),t.warnings.forEach((t=>{const o=t.elem,i=p(o.cloneNode(!0),"script, style").textContent,a=b(`CONTRAST${i}`),r=l(i);e.push({element:o,type:"warning",content:n.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,o),function(e,t){t.formLabelsPlugin&&("On"===m.getItem("sa11y-remember-labels")||t.headless||t.checkAllHideToggles)&&E.Found.Inputs.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(r(t)||o&&i)return;const a=c(ln(t)),s=t.getAttribute("alt"),d=t.getAttribute("type"),p=t.getAttribute("title"),u=t.getAttribute("aria-label")||t.getAttribute("aria-labelledby");if("submit"===d||"button"===d||"hidden"===d)return;if("image"===d&&(!s||" "===s))return void(u||p||e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===d){const o=b(`INPUT${a}`);return void e.push({element:t,type:"warning",content:n.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===a.length)e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=b(`INPUT${a}`),i=l(a);e.push({element:t,type:"warning",content:n.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=t.closest("label"),m=g?c(ln(g)):"";if(g&&m.length)return;const f=t.getAttribute("id");f?E.Found.Labels.some((e=>e.getAttribute("for")===f))||e.push({element:t,type:"error",content:n.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",f),inline:!1,position:"beforebegin"}):e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,o),function(e,t){if(t.badLinksQA&&E.Found.CustomErrorLinks.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("QA_BAD_LINK",t),inline:!0,position:"beforebegin"})})),t.strongItalicsQA&&E.Found.StrongItalics.forEach((t=>{const o=t.textContent.trim().length,i=b(t.tagName+t.textContent);o>400&&e.push({element:t.parentNode,type:"warning",content:n.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),E.Found.Links.forEach((o=>{if(o.hasAttribute("href")){const a=o.getAttribute("href"),r=i.Global.documentLinks.split(", ").some((e=>a.includes(e))),s=a.includes(".pdf"),l=b(`DOCUMENT${a}`),d="button"===o.getAttribute("role"),c=0!==o.textContent.trim().length;if(t.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const t=a.substring(1);document.getElementById(t)||document.getElementById(decodeURIComponent(t))||document.getElementById(encodeURIComponent(t))||e.push({element:o,type:"error",content:n.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}t.documentQA&&r?e.push({element:o,type:"warning",content:n.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):t.pdfQA&&s&&e.push({element:o,type:"warning",content:n.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),t.langQA&&(!E.Found.Language||E.Found.Language.length<2)&&e.push({type:"error",content:n.sprintf("QA_PAGE_LANGUAGE")}),t.blockquotesQA&&E.Found.Blockquotes.forEach((t=>{const o=t.textContent;if(o.trim().length<25){const i=l(o),a=b(`BLOCKQUOTE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),t.tablesQA&&E.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");t.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:n.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),t.tablesQAsemanticHeadings&&a.length>0&&a.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(t.tablesQAemptyTH&&0===i.textContent.trim().length){const a=t.tablesQAemptyTHisError?"error":"warning",r=b(`TABLE${o.textContent}`);e.push({element:i,type:a,content:n.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),t.fakeHeadingsQA){const t='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=d(o),r=null===a.match(/[.;?!"]/),s=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(t)&&s&&r){const t=l(a),i=b(`BOLD${t}`);e.push({element:o,type:"warning",content:n.sprintf("QA_FAKE_HEADING",t),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(t)){const t=o.querySelector("strong, b"),i=d(t),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=p(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=l(i),s=b(`BOLD${r}`);e.push({element:t,type:"warning",content:n.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:s})}}};E.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const o=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),s=["a","A","α","Α","а","А","1"],c=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",f="",h=!1;if(E.Found.Paragraphs.forEach(((t,i)=>{let l=!1,p=!1;f=f||d(t).replace("(","");const u=f.substring(0,2),y=u.match(a),v=u.match(o),x=u.match(r),w=c.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const o=E.Found.Paragraphs[i+1];if(o){if(l=d(o).replace("(","").substring(0,2),s.includes(l?.toLowerCase().trim()))return;const e=g(l);y?"A "!==u&&u===e&&(p=!0):x&&!h&&e.match(r)&&(p=!0,h=!0)}if(!p){let e=t?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(c.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(p=!0))}if(p){const o=b(`LIST${t.textContent}`);e.push({element:t,type:"warning",content:n.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}f=l?"":l})),t.allCapsQA){const t=t=>{let o="";"LI"===t.tagName?t.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=d(t);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=b(`UPPERCASE${o}`);e.push({element:t,type:"warning",content:n.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e)))}if(t.duplicateIdQA){const t=i.Shadow.Components?`body, ${i.Shadow.Components}`:"body";document.querySelectorAll(t).forEach((t=>{const o=new Set,a=(t,i)=>{t.forEach((t=>{const{id:a}=t;0!==a.trim().length&&(a&&!o.has(a)?o.add(a):Array.from(i.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:t,type:"error",content:n.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};t.shadowRoot&&a(Array.from(t.shadowRoot.querySelectorAll(`[id]:not(${i.Exclusions.Container})`)),t.shadowRoot),a(Array.from(t.querySelectorAll(`[id]:not(${i.Exclusions.Container})`)),t)}))}if(t.underlinedTextQA){E.Found.Underlines.forEach((t=>{const o=b(`UNDERLINE${d(t)}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const t=t=>{const o=getComputedStyle(t).textDecorationLine,i=d(t);if("underline"===o){const o=b(`UNDERLINE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e))),E.Found.Spans.forEach((e=>t(e)))}if(t.pageTitleQA){const t=document.querySelector("head title");t&&0!==t.textContent.trim().length||e.push({type:"error",content:n.sprintf("QA_PAGE_TITLE")})}t.subscriptQA&&E.Found.Subscripts.forEach((t=>{const o=d(t);if(o.length>=80){const i=b(t.tagName+o);e.push({element:t,type:"warning",content:n.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,o),function(e,t){t.embeddedContentAll&&(t.embeddedContentAudio&&E.Found.Audio.forEach((t=>{const o=b(`AUDIO${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentVideo&&E.Found.Videos.forEach((t=>{const o="undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src"),i=t.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=b(`VIDEO${o}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),t.embeddedContentDataViz&&E.Found.Visualizations.forEach((t=>{const o=b(`DATAVIZ${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentTitles&&E.Found.iframes.forEach((t=>{const o=r(t),i="VIDEO"===t.tagName||"AUDIO"===t.tagName,a="true"===t.getAttribute("aria-hidden"),s="-1"===t.getAttribute("tabindex");if(o||i||a&&s)return;if(s)return void e.push({element:t,type:"error",content:n.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=sn(t);0===c("noAria"===l?t.getAttribute("title")||"":l).length&&e.push({element:t,type:"error",content:n.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),t.embeddedContentGeneral&&E.Found.EmbeddedContent.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(r(t)||o&&i)return;if("VIDEO"===t.tagName||"AUDIO"===t.tagName)return;const a=b(`IFRAME${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:a})})))}(this.results,o),function(){let e;if(i.Readability.Plugin&&"On"===m.getItem("sa11y-remember-readability")){E.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const t=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=o.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?n._("LANG_VERY_DIFFICULT"):g>31&&g<49?n._("LANG_DIFFICULT"):g>50&&g<60?n._("LANG_FAIRLY_DIFFICULT"):n._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(i.Readability.Lang)){const t=(e=>{const t=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=t().length,i=t().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?n._("LANG_GOOD"):r>40&&r<50?n._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?n._("LANG_DIFFICULT"):n._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(o);e={score:t.score,averageWordsPerSentence:t.avgWordsPerSentence,complexWords:t.complexWords,difficultyLevel:t.difficulty,wordCount:t.wordCount}}!1===i.Global.headless&&(0===o.length?i.Panel.readabilityInfo.innerHTML=n._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(i.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,i.Panel.readabilityDetails.innerHTML=`\n
                              • \n ${n._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
                              • \n
                              • \n ${n._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
                              • \n
                              • \n ${n._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
                              • `):i.Panel.readabilityInfo.textContent=n._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),!0===o.customChecks?this.results:"object"==typeof o.customChecks?this.results.push(...o.customChecks):"listen"===o.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),o.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new R(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=o.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===o.headless){const d=function(e,t){let o=m.getItem("sa11y-dismissed");o=o?JSON.parse(o):[];const a=o.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(i.Panel.dismissButton.classList.add("active"),i.Panel.dismissTooltip.innerText=n.sprintf("PANEL_DISMISS_BUTTON",l),t.object.setContent(n.sprintf("PANEL_DISMISS_BUTTON",l))):i.Panel.dismissButton.classList.remove("active"),{dismissedIssues:o,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=d.updatedResults,this.dismissed=d.dismissedIssues;const c=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,t){const o=e+t;0===o?(i.Panel.notifCount.innerText="",i.Panel.notifText.innerText="",i.Panel.notifBadge.style.display="none"):t>0&&0===e?(i.Panel.notifBadge.classList.add("notification-badge-warning"),i.Panel.notifCount.innerText=`${t}`,i.Panel.notifText.innerText=`${n._("PANEL_ICON_WARNINGS")}`):(i.Panel.notifBadge.classList.remove("notification-badge-warning"),i.Panel.notifCount.innerText=`${o}`,i.Panel.notifText.innerText=n._("PANEL_ICON_TOTAL")),"Opened"===m.getItem("sa11y-remember-panel")||0===o?i.Panel.notifBadge.style.display="none":i.Panel.notifBadge.style.display="flex"}(c.error,c.warning),"Opened"===m.getItem("sa11y-remember-panel")){this.results.forEach(((e,t)=>{Object.assign(e,{id:t}),function(e,t,o,a=!1,r,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(t))throw Error(`Invalid type [${t}] for annotation`);[t].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:n._("ERROR"),[p[1]]:n._("WARNING"),[p[2]]:n._("GOOD")},g=!0===c&&"warning"===t&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(i.Panel.pageIssues.classList.add("active"),i.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[t]} ${o}${g}`,i.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                                ${u[t]}

                                \n ${s(o)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(r,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,o.dismissAnnotations)})),E.initializeAnnotations();const p=new jt;document.body.appendChild(p),T(this.results,this.dismissed,this.checkAll,this.resetAll),M(this.dismissed,this.headingOutline,o.showHinPageOutline),a=d.dismissCount,r=c.error,l=c.warning,i.Panel.skipButton.disabled=!1,i.Panel.panel.classList.add("active"),i.Global.html.setAttribute("data-sa11y-active","true"),i.Panel.skipButton.classList.add("active"),r>0&&l>0?(i.Panel.content.setAttribute("class","errors"),i.Panel.status.innerHTML=`${n._("ERRORS")} ${r} ${n._("WARNINGS")} ${l}`):r>0?(i.Panel.content.setAttribute("class","errors"),i.Panel.status.innerHTML=`${n._("ERRORS")} ${r}`):l>0?(i.Panel.content.setAttribute("class","warnings"),i.Panel.status.innerHTML=`${n._("WARNINGS")} ${l}`):a>0?(i.Panel.status.innerHTML=`${n._("DISMISSED")} ${a}`,i.Panel.skipButton.classList.remove("active")):(i.Panel.content.setAttribute("class","good"),i.Panel.status.innerHTML=`${n._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(i.Panel.skipButton.disabled=!0),on(this.results),o.exportResultsPlugin&&(e=this.results,t=d.dismissedResults,i.Global.exportResultsPlugin&&(O=()=>{P(e,t)},$=()=>{C(e)},i.Panel.exportHTML.addEventListener("click",O),i.Panel.exportCSV.addEventListener("click",$))),Vt(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}i.Panel.toggle.disabled=!1}var e,t,a,r,l;const d=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(d)},this.resetAll=(e=!0)=>{for(i.Global.html.removeAttribute("data-sa11y-active"),v(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter"],"document"),x(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),i.Panel.outlineList.innerHTML="",i.Panel.pageIssuesList.innerHTML="",i.Panel.readabilityInfo.innerHTML="",i.Panel.readabilityDetails.innerHTML="",i.Panel.panel.classList.remove("has-page-issues"),i.Panel.pageIssues.classList.remove("active"),h(),document.removeEventListener("keydown",tn),i.Panel.skipButton.removeEventListener("click",nn),i.Global.exportResultsPlugin&&(i.Panel.exportHTML.removeEventListener("click",O),i.Panel.exportCSV.removeEventListener("click",$)),i.Panel.panel?.removeEventListener("click",I),i.Panel.dismissButton?.removeEventListener("click",k),i.Global.colourFilterPlugin&&(i.Panel.colourFilterSelect.value=0,i.Panel.colourPanel.classList.remove("active"),i.Panel.colourFilterSelect.classList.remove("active"),i.Panel.content.hidden=!1);i.Panel.status.firstChild;)i.Panel.status.removeChild(i.Panel.status.firstChild);e&&i.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===m.getItem("sa11y-remember-panel")&&i.Panel.toggle.click(),i.Panel.toggle.disabled=!0},this.enabled=()=>{i.Panel.toggle.disabled=!1},this.find=(e,t,n)=>a(e,t,n),this.prepareDismissal=e=>b(e),this.sanitizeHTML=e=>l(e),this.initialize()}},Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Sa11y={})}(this,(function(e){"use strict";const t={checkRoot:"body",containerIgnore:".sa11y-ignore",contrastIgnore:'.sr-only, [role="menu"] *',outlineIgnore:"",headerIgnore:"",headerIgnoreSpan:"",headerIgnoreStrings:"",imageIgnore:"",linkIgnore:'nav *, [role="navigation"] *',linkIgnoreSpan:"",linkIgnoreStrings:"",aboutContent:"",delayCheck:0,delayCustomCheck:500,showGoodLinkButton:!0,showHinPageOutline:!1,showImageOutline:!0,editImageURLofCMS:"",relativePathImageSRC:"",relativePathImageID:"",detectSPArouting:!1,doNotRun:"",dismissAnnotations:!0,headless:!1,selectorPath:!1,shadowComponents:"",autoDetectShadowComponents:!1,panelPosition:"right",altTextMaxCharLength:250,susAltStopWords:"",linkStopWords:"",extraPlaceholderStopWords:"",headingMaxCharLength:170,URLTextMaxCharLength:40,URLAsLinkTextWarning:!0,readabilityPlugin:!0,readabilityRoot:"body",readabilityIgnore:"",contrastPlugin:!0,formLabelsPlugin:!0,linksAdvancedPlugin:!0,colourFilterPlugin:!0,customChecks:!1,checkAllHideToggles:!1,exportResultsPlugin:!1,linksToFlag:"",linksToDOI:!0,missingH1:!0,flagLongHeadings:!0,nonConsecutiveHeadingIsError:!0,badLinksQA:!0,strongItalicsQA:!0,pdfQA:!0,documentQA:!0,documentLinks:'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"], a[href^="https://sway."]',langQA:!0,blockquotesQA:!0,allCapsQA:!0,fakeHeadingsQA:!0,fakeListQA:!0,duplicateIdQA:!0,underlinedTextQA:!0,pageTitleQA:!0,subscriptQA:!0,inPageLinkQA:!0,tablesQA:!0,tablesQAmissingTH:!0,tablesQAsemanticHeadings:!0,tablesQAemptyTH:!0,tablesQAemptyTHisError:!0,embeddedContentAll:!0,embeddedContentAudio:!0,embeddedContentVideo:!0,embeddedContentDataViz:!0,embeddedContentTitles:!0,embeddedContentGeneral:!0,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, tableau, lookerstudio, powerbi, qlik"},n={langStrings:{},addI18n(e){this.langStrings=e},_(e){return this.translate(e)},sprintf(e,...t){let n=this._(e);return n=this.prepHTML(n),t&&t.length&&t.forEach((e=>{n=n.replace(/%\([a-zA-z]+\)/,e)})),n},translate(e){return this.langStrings[e]||e},prepHTML:e=>e.replaceAll(/
                                /g,'').replaceAll(/`${e} *, ${e}`));r.Container=`#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *, ${t.join(", ")}`}else r.Container="#wpadminbar *, #sa11y-colour-filters, #sa11y-colour-filters *";r.Contrast="script, style, link",e.contrastIgnore&&(r.Contrast=`${e.contrastIgnore}, ${r.Contrast}`),r.Readability='nav li, [role="navigation"] li',e.readabilityIgnore&&(r.Readability=`${e.readabilityIgnore}, ${r.Readability}`),e.headerIgnore&&(r.Headings=`${e.headerIgnore}`),e.outlineIgnore&&(r.Outline=`${e.outlineIgnore}`),r.Images='[role="presentation"]',e.imageIgnore&&(r.Images=`${e.imageIgnore}, ${r.Images}`),r.Links=".anchorjs-link",e.linkIgnore&&(r.Links=`${e.linkIgnore}, ${r.Links}`),e.linkIgnoreSpan&&(r.LinkSpan=e.linkIgnoreSpan)},Exclusions:r,initializeEmbeddedContent:function(e){if(e.videoContent){const t=e.videoContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Video=`video, ${t.join(", ")}`}else s.Video="video";if(e.audioContent){const t=e.audioContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Audio=`audio, ${t.join(", ")}`}else s.Audio="audio";if(e.dataVizContent){const t=e.dataVizContent.split(/\s*[\s,]\s*/).map((e=>`[src*='${e}']`));s.Visualization=t.join(", ")}else s.Visualization="datastudio.google.com, tableau";s.All=`${s.Video}, ${s.Audio}, ${s.Visualization}`},EmbeddedContent:s}}();function i(e,t,n){let i;"document"===t?i=document:"readability"===t?(i=o.Readability.Root,i||(i=o.Root.areaToCheck)):"root"===t?(i=o.Root.areaToCheck,i||(i=document.body)):"panel"===t?(i=o.Panel.panel,i||(i=document.body)):(i=document.querySelector(t),i||(i=document.body));const a=document.querySelectorAll("[data-sa11y-has-shadow-root]"),r=a?", [data-sa11y-has-shadow-root]":"",s=o.Exclusions.Container,l=void 0!==n?`, ${n}`:"",d=Array.from(i.querySelectorAll(`:is(${e}${r}):not(${s}${l})`));if(a.length){const t=[];if(d.forEach(((n,o)=>{n&&n.matches&&n.matches("[data-sa11y-has-shadow-root]")&&n.shadowRoot&&(t[o]=n.shadowRoot.querySelectorAll(`:is(${e}):not(${s}${l})`))})),t.length>0)for(let e=t.length-1;e>=0;e--)t[e]&&d.splice(e,1,...t[e])}return d}function a(e){if(e.getAttribute("hidden"))return!0;return"none"===getComputedStyle(e).getPropertyValue("display")}function r(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML.replaceAll('"',""").replaceAll("'","'").replaceAll("`","`")}function s(e){return e.replace(/[^\w. ]/gi,(e=>`&#${e.charCodeAt(0)};`))}function l(e){return e.textContent.replace(/[\r\n]+/g,"").replace(/\s+/g," ").trim()}function d(e){return e.replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function c(e,t){const n="noscript, script, style",o=t?`${n}, ${t}`:n,i=e.cloneNode(!0);return Array.from(i.querySelectorAll(o)).forEach((e=>{e.parentElement.removeChild(e)})),i}function p(e,t,n){let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null}function u(e){const t=e.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+n}}const g={getItem(e){try{return null===localStorage.getItem(e)?sessionStorage.getItem(e):localStorage.getItem(e)}catch(e){return!1}},setItem(e,t){try{localStorage.setItem(e,t)}catch(n){sessionStorage.setItem(e,t)}return!0},removeItem(e){try{localStorage.removeItem(e)}catch(t){sessionStorage.removeItem(e)}return!0}};function m(e){const t="data-sa11y-pulse-border";e.setAttribute(t,""),setTimeout((()=>{e.removeAttribute(t)}),2500)}function f(e){return String(e).replace(/([^0-9a-zA-Z])/g,"").substring(0,256)}function b(){const e=document.querySelector("sa11y-control-panel").shadowRoot,t=e.getElementById("panel-alert"),n=e.getElementById("panel-alert-text"),o=e.getElementById("panel-alert-preview");for(t.classList.remove("active"),o.classList.remove("panel-alert-preview");n.firstChild;)n.removeChild(n.firstChild);for(;o.firstChild;)o.removeChild(o.firstChild)}function h(e,t,n){b();const o=document.querySelector("sa11y-control-panel").shadowRoot,i=o.getElementById("panel-alert"),a=o.getElementById("panel-alert-text"),r=o.getElementById("panel-alert-preview"),s=o.getElementById("close-alert"),l=o.getElementById("skip-button");i.classList.add("active"),a.innerHTML=e;const d=n?`
                                ${n}
                                `:"";function c(){b();(l.hasAttribute("disabled")?o.getElementById("toggle"):l).focus()}t&&(r.classList.add("panel-alert-preview"),r.innerHTML=`${d}
                                ${t}
                                `),setTimeout((()=>{s.focus()}),300),s.addEventListener("click",c),i.onkeydown=e=>{"Escape"===(e||window.event).key&&i.classList.contains("active")&&c()}}function y(e,t){e.forEach((e=>{i(`[${e}]`,`${t}`).forEach((t=>{t.removeAttribute(e)}))}))}function v(e,t){i(`${e}`,`${t}`).forEach((e=>{e.parentNode.removeChild(e)}))}function x(e,t,n){setTimeout((()=>{e.scrollHeight>t.clientHeight?(t.classList.add("scrollable"),e.setAttribute("tabindex","0"),n&&(e.setAttribute("aria-label",n),e.setAttribute("role","region"))):t.classList.remove("scrollable")}),50)}function w(e){const t=e.element,n=`
                                ${r(e.htmlPath)}
                                `,o={IMG:e=>{const t=e.closest("a[href]"),o=e.alt?`alt="${s(e.alt)}"`:"alt",i=e.src,a=e.getAttribute("data-src"),r=a&&a.length>3?a:i;return i?t?``:``:n},IFRAME:e=>{const t=e.src,o=e.title?e.title:"",i=e.getAttribute("aria-label");if(t){return``}return n},AUDIO:()=>e.htmlPath,VIDEO:()=>e.htmlPath}[t.tagName];return o?o(t):n}const E=function(){const e={};const t={};return{initializeElements:function(t){e.Images=i("img","root",o.Exclusions.Images),e.Headings=i('h1, h2, h3, h4, h5, h6, [role="heading"][aria-level]',"document",o.Exclusions.Headings),e.HeadingOne=i('h1, [role="heading"][aria-level="1"]',"document",o.Exclusions.Headings),e.Links=i("a[href]","root",o.Exclusions.Links),e.Inputs=i("input, select, textarea","root",o.Exclusions.Container),e.Contrast=i("*","root",o.Exclusions.Contrast),e.Labels=i("label","root",o.Exclusions.Container),e.Readability=i("p, li","readability",o.Exclusions.Readability),e.Paragraphs=i("p","root",o.Exclusions.Container),e.Lists=i("li","root",o.Exclusions.Container),e.Spans=i("span","root",o.Exclusions.Container),e.Blockquotes=i("blockquote","root",o.Exclusions.Container),e.Tables=i('table:not([role="presentation"])',"root",o.Exclusions.Container),e.StrongItalics=i("strong, em","root",o.Exclusions.Container),e.Underlines=i("u","root",o.Exclusions.Container),e.Subscripts=i("sup, sub","root",o.Exclusions.Container),e.Language=o.Global.html.getAttribute("lang"),e.CustomErrorLinks=t.linksToFlag?i(t.linksToFlag,"root",o.Exclusions.Container):[],e.iframes=i("iframe:not(hidden), audio, video","root",o.Exclusions.Container),e.Videos=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Video))),e.Audio=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Audio))),e.Visualizations=e.iframes.filter((e=>e.matches(o.EmbeddedContent.Visualization))),e.EmbeddedContent=e.iframes.filter((e=>!e.matches(o.EmbeddedContent.All)))},Found:e,initializeAnnotations:function(){t.Array=i("sa11y-annotation","document"),t.Array.forEach(((e,t)=>{e.setAttribute("data-sa11y-position",t)}))},Annotations:t}}();const A=e=>{const t=document.createElement("style");t.setAttribute("class","sa11y-css-utilities"),t.textContent="[data-sa11y-overflow]{overflow:auto!important}[data-sa11y-clone-image-text]{display:none!important}[data-sa11y-readability-period]{clip:rect(1px,1px,1px,1px)!important;border:0!important;clip-path:inset(50%)!important;display:block!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-sa11y-error]{outline:5px solid var(--sa11y-error)!important}[data-sa11y-warning]{outline:5px solid var(--sa11y-warning)!important}[data-sa11y-good]{outline:5px solid var(--sa11y-good)!important}[data-sa11y-error-inline]{background-color:var(--sa11y-error)!important;box-shadow:0 0 0 4px var(--sa11y-error)!important;color:var(--sa11y-error-text)!important}[data-sa11y-error-inline],[data-sa11y-warning-inline]{border-color:transparent!important;border-radius:.25em!important}[data-sa11y-warning-inline]{background-color:var(--sa11y-warning)!important;box-shadow:0 0 0 4px var(--sa11y-warning)!important;color:var(--sa11y-warning-text)!important}[data-sa11y-pulse-border]{animation:pulse 2s 3;box-shadow:0;outline:5px solid var(--sa11y-focus-color)!important}[data-sa11y-pulse-border]:focus,[data-sa11y-pulse-border]:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--sa11y-focus-color)}70%{box-shadow:0 0 0 12px var(--sa11y-pulse-color)}to{box-shadow:0 0 0 5px var(--sa11y-pulse-color)}}@media (prefers-reduced-motion:reduce){[data-sa11y-pulse-border]{animation:none!important}}@media (forced-colors:active){[data-sa11y-error-inline],[data-sa11y-error],[data-sa11y-good],[data-sa11y-pulse-border],[data-sa11y-warning-inline],[data-sa11y-warning]{forced-color-adjust:none}}",e.shadowRoot.appendChild(t)};function I(e,t,n){if(!0===e){let e=window.location.href;const o=function(e,t){let n=null;return(...o)=>{window.clearTimeout(n),n=window.setTimeout((()=>{e(...o)}),t)}}((async()=>{e!==window.location.href&&("Closed"!==g.getItem("sa11y-remember-panel")&&g.getItem("sa11y-remember-panel")?(n(!1),await t()):t(),e=window.location.href)}),250);window.addEventListener("click",o),window.addEventListener("keydown",o)}}let L,k;function T(e,t,a,r){if(o.Global.dismissAnnotations){k=t=>{(async(e,t,o,a)=>{let r=JSON.parse(g.getItem("sa11y-dismissed"));const s=e.target;if(document.querySelector("sa11y-dismiss-tooltip").hidden=!1,"BUTTON"===s.tagName&&s.hasAttribute("data-sa11y-dismiss")){const e=parseInt(s.getAttribute("data-sa11y-dismiss"),10),l=t.find((t=>t.id===e));if(null===r&&(setTimeout((()=>h(n._("DISMISS_REMINDER"))),0),r=[]),l.dismiss){const e={key:l.dismiss,href:window.location.pathname},t=i(`[data-sa11y-annotation='${l.id}']`),n=t[0]?t[0].getAttribute("data-sa11y-position"):0;g.setItem("sa11y-latest-dismissed",n),g.setItem("sa11y-dismiss-item",JSON.stringify(e)),r.push(e),g.setItem("sa11y-dismissed",JSON.stringify(r)),g.removeItem("sa11y-dismiss-item"),null!==s.closest("[data-tippy-root]")&&s.closest("[data-tippy-root]").remove(),a(!1),await o()}}})(t,e,a,r)};document.querySelector("sa11y-tooltips").shadowRoot.addEventListener("click",k),o.Panel.panel.addEventListener("click",k)}L=()=>{(async(e,t,n)=>{document.querySelector("sa11y-dismiss-tooltip").hidden=!0;const i=e.filter((e=>e.href!==window.location.pathname));g.setItem("sa11y-dismissed",JSON.stringify(i)),o.Panel.dismissButton.classList.remove("active"),n(!1),await t()})(t,a,r)},o.Panel.dismissButton?.addEventListener("click",L)}var _=':root{--font-primary:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif;--font-secondary:Consolas,monaco,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--body-text:#333;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#d7d7d7;--link-primary:#004c9b;--red-text:#d30017}@media (prefers-color-scheme:dark){:root{--body-text:#dde8ff;--bg-primary:#0a2051;--bg-secondary:#072c7c;--bg-tertiary:#0041c9;--link-primary:#64b2ff;--red-text:#fe5b5f}}*{margin:0;padding:0}article,aside,nav,ol,p,pre,section,ul{margin-bottom:1rem}body{background:var(--bg-primary);font-family:var(--font-primary);font-size:1rem;line-height:1.5;margin:0 auto;max-width:70ch;overflow-wrap:break-word;overflow-x:hidden;padding:2rem;word-break:break-word}body,h1,h2,h3{color:var(--body-text)}h1,h2,h3{line-height:1;margin-bottom:8px;padding-bottom:2px;padding-top:.875rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}a{color:var(--link-primary)}a:focus,a:hover{text-decoration:none}footer,header{background:var(--bg-secondary);padding:2rem calc(50vw - 50%)}header{border-bottom:1px solid var(--bg-tertiary);margin:-2rem calc(-50vw + 50%) 2rem}footer{border-top:1px solid var(--bg-tertiary);margin:3rem calc(-50vw + 50%) -2rem;text-align:center}header>:first-child{margin-top:0;padding-top:0}header>:last-child{margin-bottom:0}code,kbd,pre,samp{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:4px;font-family:var(--font-secondary);font-size:.9rem;padding:3px 6px}pre{display:block;max-width:100%;overflow:auto;padding:1rem 1.4rem}code pre,pre code{background:inherit;border:0;color:inherit;font-size:inherit;margin:0;padding:0}code pre{display:inline}details{background:var(--bg-primary);border:2px solid var(--link-primary);border-radius:4px;padding:.6rem 1rem}summary{cursor:pointer;font-weight:700}details[open]{padding-bottom:.75rem}details[open] summary{margin-bottom:6px}details[open]>:last-child{margin-bottom:0}.two-columns{display:flex}.column{flex:1;margin-inline-end:20px}.count{max-width:220px}.column dl{width:100%}dl{padding-top:10px}dt{font-weight:700}dd{padding-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ul li{margin-bottom:.5rem}ol,ul{padding-left:2rem}li li:has(pre,img,iframe,video,audio){list-style:none;margin-top:1rem}ol li:not(li li){margin-bottom:3rem}iframe,img{max-width:50%}audio,iframe,img,video{border:0;display:block}.red-text{color:var(--red-text)}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';function S(){const e=new Date,t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),o=e.getFullYear(),i=(new Date).toLocaleString(),a=`${n}-${t}-${o}`,r=document.querySelector("head title"),s=!r||0===r.textContent.trim().length;return{date:i,numericDate:a,titleCheck:s,metaTitle:s?"":r.textContent,pageURL:window.location.href}}function P(e,t){const o=function(e,t){const o=e.filter((e=>"error"===e.type)),i=e.filter((e=>"warning"===e.type)),a={error:o.length,warning:i.length,dismiss:t.length};function s(e,t){const o={error:n._("ERRORS"),warning:n._("WARNINGS"),dismissed:n._("DISMISSED")}[t];if(!(e.length>0))return"";let i=`

                                ${o}

                                `,s="
                                  ",l="
                                ";return"dismissed"===t&&(s=`
                                ${n.sprintf("PANEL_DISMISS_BUTTON",a.dismiss)}
                                  `,l="
                                "),i+=s,e.forEach((e=>{let t="";e.element&&(t=["IMG","IFRAME","AUDIO","VIDEO"].includes(e.element.tagName)?`\n
                              • \n ${n._("PREVIEW")}:\n ${w(e)}\n
                              • \n
                              • \n ${n._("ELEMENT")}:\n
                                ${r(e.htmlPath)}
                                \n
                              • `:`\n
                              • \n ${n._("ELEMENT")}:\n
                                ${r(e.htmlPath)}
                                \n
                              • `);const o=e.cssPath?`
                              • \n ${n._("PATH")}:\n
                                ${e.cssPath}
                                \n
                              • `:"";i+=`
                              • \n

                                ${e.content.replace('

                                '," | ")}

                                \n
                                  ${t}${o}
                                \n
                              • `})),i+=l,i}const l=s(o,"error"),d=s(i,"warning"),c=s(t,"dismissed"),p=S(),u=p.titleCheck?"":`
                                ${n._("PAGE_TITLE")}
                                ${p.metaTitle}
                                `,g=0!==a.error?`
                                ${n._("ERRORS")}
                                ${a.error}
                                `:"",m=0!==a.warning?`
                                ${n._("WARNINGS")}
                                ${a.warning}
                                `:"",f=0!==a.dismiss?`
                                ${n._("DISMISSED")}
                                ${a.dismiss}
                                `:"";return`\n \n \n \n \n \n ${n._("RESULTS")}: ${p.metaTitle}\n \n \n \n
                                \n

                                ${n._("RESULTS")}

                                \n
                                \n
                                \n ${u}\n
                                URL
                                \n
                                ${p.pageURL}
                                \n
                                ${n._("DATE")}
                                \n
                                ${p.date}
                                \n
                                \n
                                \n ${g}\n ${m}\n ${f}\n
                                \n
                                \n
                                \n ${l}\n ${d}\n ${c}\n
                                \n

                                ${n.sprintf("GENERATED",'Sa11y')}

                                \n
                                \n \n \n `}(e,t),i=S(),a=new Blob([o],{type:"text/html"}),s=document.createElement("a"),l=i.titleCheck?"":`_${i.metaTitle.trim().replace(/ /g,"")}`;s.href=window.URL.createObjectURL(a),s.download=`Sa11y_${i.numericDate+l}.html`,document.body.appendChild(s),s.click(),setTimeout((()=>{document.body.removeChild(s),window.URL.revokeObjectURL(s.href)}),100)}function C(e){const t=S(),n=e.filter((e=>"warning"===e.type||"error"===e.type)).map((e=>{const{type:n,content:o,htmlPath:i,cssPath:a}=e,r=o.replaceAll(/]*>.*?<\/span>/gi,"").replaceAll(''," | ").replaceAll(/"/g,'""');const s=function(e){return e.replace(/&(#?[a-zA-Z0-9]+);/g,((e,t)=>{switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":case"#39":return"'";default:return"#"===t.charAt(0)?String.fromCharCode("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):e}}))}(String(r).replace(/<[^>]*>/g,"")),l={Title:`"${t.metaTitle}"`,URL:`"${t.pageURL}"`,Type:`"${String(n)}"`,Issue:`"${s}"`,Element:`"${i}"`};return a&&(l.Path=`"${a}"`),l})),o=Object.keys(n[0]),i=`${o.join(",")}\n${n.map((e=>o.map((t=>e[t])).join(","))).join("\n")}`,a=new Uint8Array([239,187,191]),r=new Blob([a,i],{type:"text/csv;charset=utf-8;"}),s=window.URL.createObjectURL(r),l=document.createElement("a");l.href=s,l.href=window.URL.createObjectURL(r);const d=t.titleCheck?"":`_${t.metaTitle.trim().replace(/ /g,"")}`;l.setAttribute("download",`Sa11y_${t.numericDate+d}.csv`),document.body.appendChild(l),l.click(),setTimeout((()=>{document.body.removeChild(l),window.URL.revokeObjectURL(l.href)}),100)}let O,$;var N='.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);display:block;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[hidden]{display:none!important}.header-text,.header-text-inline,h2{color:var(--sa11y-panel-primary);display:block;font-size:var(--sa11y-large-text);font-weight:600;margin-bottom:3px}.header-text-inline{display:inline-block!important}code{font-family:monospace!important}.kbd,code,kbd{background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);padding:1.6px 4.8px}.bold{font-weight:600}.red-text{color:var(--sa11y-red-text)}.red-text,.yellow-text{font-family:var(--sa11y-font-face)}.yellow-text{color:var(--sa11y-yellow-text)}.badge{background-color:var(--sa11y-panel-badge);border:1px solid transparent;border-radius:10px;color:var(--sa11y-panel-primary);display:inline;font-size:13px;font-weight:700;min-width:10px;padding:2px 3px;text-align:center;white-space:nowrap}.error-badge{background:var(--sa11y-error);color:var(--sa11y-error-text)}.warning-badge{background:var(--sa11y-yellow-text);color:var(--sa11y-panel-bg)}.close-btn{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:50%;color:var(--sa11y-panel-primary);cursor:pointer;float:var(--sa11y-float-rtl);font-size:var(--sa11y-normal-text);font-weight:400;height:32px;margin:0;position:relative;transition:all .2s ease-in-out;width:32px}.close-btn:focus,.close-btn:hover{background-color:var(--sa11y-shortcut-hover)}.close-btn:after{background:var(--sa11y-setting-switch-bg-off);bottom:-7px;content:"";left:-7px;-webkit-mask:var(--sa11y-close-btn-svg) center no-repeat;mask:var(--sa11y-close-btn-svg) center no-repeat;position:absolute;right:-7px;top:-7px}@media screen and (forced-colors:active){.close-btn:after{filter:invert(1)}}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:not(#panel-controls button):not(.switch):focus,#container select:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus,#container .switch:focus{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus:not(:focus-visible),#container [tabindex="-1"]:focus:not(:focus-visible),#container [tabindex="0"]:focus:not(:focus-visible),#container button:focus:not(:focus-visible),#container select:focus:not(:focus-visible){box-shadow:none;outline:0}#container [tabindex="-1"]:focus-visible,#container [tabindex="0"]:focus-visible,#container a:focus-visible,#container button:not(#panel-controls button):not(.switch):focus-visible,#container select:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}#container #panel-controls button:focus-visible,#container .switch:focus-visible{box-shadow:inset 0 0 0 4px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){#panel-controls button:focus{border:3px solid transparent}#container [tabindex="-1"]:focus,#container [tabindex="0"]:focus,#container a:focus,#container button:focus,#container select:focus,.close-btn:focus{outline:3px solid transparent!important}}';class R extends HTMLElement{constructor(e){super(),this.error=e}connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=":host{background:var(--sa11y-panel-bg);border-top:5px solid var(--sa11y-panel-bg-splitter);bottom:0;display:block;height:-moz-fit-content;height:fit-content;left:0;position:fixed;right:0;width:100%;z-index:999999}*{-webkit-font-smoothing:auto!important;color:var(--sa11y-panel-primary);font-family:var(--sa11y-font-face)!important;font-size:var(--sa11y-normal-text);line-height:22px!important}#dialog{margin:20px auto;max-width:900px;padding:20px}h2{font-size:var(--sa11y-large-text);margin-top:0}a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none}p{margin-top:0}.error{background:var(--sa11y-error);border:2px dashed #f08080;color:var(--sa11y-error-text);margin-bottom:0;padding:5px}"+N,e.appendChild(t);const i=document.createElement("div");i.setAttribute("id","dialog"),i.setAttribute("tabindex","-1");const a=window.location,s=`https://github.com/ryersondmp/sa11y/issues/new?title=Bug%20report&body=%23%23%20Error%20Description%0A%60%60%60javascript%0A${encodeURIComponent(this.error.stack)}%0A%60%60%60%0A%0A%23%23%20URL%0A%60${a}%60%0A%0A%23%23%20Comments%0A`;i.innerHTML=`\n \n

                                ${n._("ERROR")}

                                \n

                                ${n.sprintf("CONSOLE_ERROR_MESSAGE","https://forms.gle/sjzK9XykETaoqZv99",s)}

                                \n

                                ${r(this.error.stack)}

                                URL: ${a}

                                \n `,e.appendChild(i),setTimeout((()=>{o.Panel.toggle.style.display="none";const e=document.querySelector("sa11y-console-error");e.shadowRoot.getElementById("dialog").focus();e.shadowRoot.querySelector(".close-btn").addEventListener("click",(()=>{e.remove()}))}),0)}}class M extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent='a,button,code,div,h1,h2,kbd,label,li,ol,p,pre,span,strong,svg,ul{all:unset;box-sizing:border-box!important}:after,:before{all:unset}div{display:block}*{-webkit-font-smoothing:auto!important;font-family:var(--sa11y-font-face)!important;line-height:22px!important}label,li,ol,p,ul{font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;text-align:start;word-break:break-word}.sa11y-overflow{overflow:auto}iframe,img,video{border:0;display:block;height:auto;max-width:100%}audio{max-width:100%}#toggle{align-items:center;background:linear-gradient(0deg,#e040fb,#00bcd4);background-color:var(--sa11y-setting-switch-bg-off);background-size:150% 150%;border-radius:50%;bottom:15px;color:#fff;cursor:pointer;display:flex;height:55px;inset-inline-end:18px;justify-content:center;margin:0;overflow:visible;position:fixed;transition:all .2s ease-in-out;width:55px;z-index:2147483644}#toggle.left,#toggle.top-left{inset-inline-start:18px}#toggle.top-left,#toggle.top-right{bottom:unset;top:15px}@media screen and (forced-colors:active){#toggle{border:2px solid transparent}}#toggle svg{height:35px;width:35px}#toggle svg path{fill:var(--sa11y-panel-bg)}#toggle:focus,#toggle:hover{animation:sa11y-toggle-gradient 3s ease}#toggle:disabled:focus,#toggle:disabled:hover{animation:none}#toggle.on{background:linear-gradient(180deg,#e040fb,#00bcd4)}#toggle:disabled{background:unset;background-color:var(--sa11y-setting-switch-bg-off);cursor:not-allowed}#notification-badge{text-wrap:nowrap;align-items:center;background-color:#eb0000;border:1px solid transparent;border-radius:12px;color:#fff;display:none;font-size:13.5px;font-weight:400;height:20px;justify-content:center;min-width:20px;padding:3px;position:absolute;right:-3px;top:-5.5px}#notification-badge.notification-badge-warning{background-color:var(--sa11y-warning-hover);border:1px solid var(--sa11y-warning);color:var(--sa11y-warning-text)}#panel{background:var(--sa11y-panel-bg);border-radius:4px;bottom:25px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);inset-inline-end:42px;opacity:0;overflow:visible;position:fixed;transform:scale(0);transform-origin:100% 100%;transition:transform .2s,opacity background .2s .2s;visibility:hidden;z-index:2147483643}#panel.left,#panel.top-left{inset-inline-start:42px}#panel.top-left,#panel.top-right{bottom:unset;top:35px}#panel.active{height:auto;opacity:1;transform:scale(1);transform-origin:bottom right;transition:transform .2s,opacity .2s;visibility:visible}@media screen and (forced-colors:active){#panel{border:2px solid transparent}}#panel.active.left,[dir=rtl] #panel.active{transform-origin:bottom left}#panel.active.top-left{transform-origin:top left}#panel.active.top-right{transform-origin:top right}#panel-alert{display:none;opacity:0}#panel-alert.active{display:block;opacity:1}#panel-alert-content{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-primary);max-height:400px;overflow-y:auto;padding:15px 20px 15px 15px;position:relative}.top-left #panel-alert-content,.top-right #panel-alert-content{border:0}#panel-alert-preview .close-tooltip{display:none}#panel-alert-preview,#panel-alert-text{font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}.panel-alert-preview{background:var(--sa11y-panel-bg-secondary);border:1px dashed var(--sa11y-panel-bg-splitter);border-radius:5px;margin-top:15px;padding:10px}.element-preview{background-color:var(--sa11y-panel-badge);border-radius:3.2px;margin-bottom:10px;overflow-wrap:break-word;padding:5px}button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}button[data-sa11y-dismiss]:focus,button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}h2{display:block;font-size:var(--sa11y-large-text);margin-bottom:3px}h2,strong{font-weight:600}a:not(#outline-list a):not(.edit){border-bottom:0;color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}a:focus,a:hover{text-decoration:none!important}hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}#dismiss-button,#skip-button{background:var(--sa11y-panel-bg-secondary);border:1px solid var(--sa11y-button-outline);border-radius:50px;cursor:pointer;display:none;height:36px;margin-inline-end:8px;margin-inline-start:2px;overflow:visible;position:relative;text-align:center;transition:all .1s ease-in-out;width:36px}#dismiss-button.active,#skip-button.active{display:block}#dismiss-button:disabled,#skip-button:disabled{background:none;border:0;box-shadow:none;cursor:default}#dismiss-button:before,#skip-button:before{bottom:-5px;content:"";left:-5px;position:absolute;right:-5px;top:-5px}#dismiss-button:focus:not(:disabled),#dismiss-button:hover:not(:disabled),#skip-button:focus:not(:disabled),#skip-button:hover:not(:disabled){background-color:var(--sa11y-shortcut-hover)}#panel.left #dismiss-button,#panel.left #skip-button,#panel.top-left #dismiss-button,#panel.top-left #skip-button{margin-inline-end:2px;margin-inline-start:8px}.dismiss-icon{background:var(--sa11y-setting-switch-bg-off);display:inline-block;height:24px;margin-bottom:-4px;-webkit-mask:var(--sa11y-dismiss-icon) center no-repeat;mask:var(--sa11y-dismiss-icon) center no-repeat;width:24px}@media screen and (forced-colors:active){.dismiss-icon{filter:invert(1)}}#panel-content{align-items:center;color:var(--sa11y-panel-primary);display:flex;padding:6px}#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{height:26px;margin:0 auto;width:26px}#panel-content.errors .panel-icon{background:var(--sa11y-panel-error);margin-top:-2px;-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}#panel-content.good .panel-icon{background:var(--sa11y-good);-webkit-mask:var(--sa11y-good-svg) center no-repeat;mask:var(--sa11y-good-svg) center no-repeat}#panel-content.warnings .panel-icon{background:var(--sa11y-warning-svg-color);-webkit-mask:var(--sa11y-warning-svg) center no-repeat;mask:var(--sa11y-warning-svg) center no-repeat;transform:scaleX(var(--sa11y-icon-direction))}@media screen and (forced-colors:active){#panel-content.errors .panel-icon,#panel-content.good .panel-icon,#panel-content.warnings .panel-icon{filter:invert(1)}}#panel.left #panel-content,#panel.top-left #panel-content{flex-direction:row-reverse}#status{font-size:var(--sa11y-large-text)}#status,.panel-count{color:var(--sa11y-panel-primary)}.panel-count{background-color:var(--sa11y-panel-badge);border-radius:4px;font-size:15px;font-weight:400;margin-left:3px;margin-right:3px;padding:2px 4px}#images-panel,#outline-panel,#page-issues,#settings-panel{color:var(--sa11y-panel-primary);display:none;opacity:0}#images-panel.active,#outline-panel.active,#page-issues.active,#settings-panel.active{display:block;opacity:1}.panel-header{padding:10px 15px 0;text-align:start}#about-content{padding-top:5px}#about-content p{display:block;margin-block-end:1em}#images-content,#outline-content,#page-issues-content,#settings-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter);padding:0 15px 10px}.top-left #images-content,.top-left #outline-content,.top-left #page-issues-content,.top-left #settings-content,.top-right #images-content,.top-right #outline-content,.top-right #page-issues-content,.top-right #settings-content{border:0}#page-issues-content{max-height:160px;overflow-y:auto}#settings-content{max-height:400px;overflow-y:auto}#images-content,#outline-content{max-height:250px;overflow-y:auto}#outline-panel .outline-list-item.sa11y-red-text,#settings-panel .sa11y-red-text{color:var(--sa11y-red-text)}#outline-list{display:block;margin:0;padding:0}#outline-list a{cursor:pointer;display:block;text-decoration:none}#outline-list li{display:block;list-style-type:none;margin-bottom:3px;margin-top:0;padding:0}#outline-list li:first-child{margin-top:5px}#outline-list li a:focus,#outline-list li a:hover{background:var(--sa11y-panel-outline-hover);border-radius:5px;box-shadow:0 0 0 2px var(--sa11y-panel-outline-hover);display:block}#outline-list .outline-2{margin-inline-start:15px}#outline-list .outline-3{margin-inline-start:30px}#outline-list .outline-4{margin-inline-start:45px}#outline-list .outline-5{margin-inline-start:60px}#outline-list .outline-6{margin-inline-start:75px}#images-list{display:block;margin:0;padding:0}#images-list li{border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:block;list-style-type:none;margin:15px 0;overflow:hidden;width:100%}#images-list li:first-child{margin-top:5px}#images-list li:last-child{border:none;margin-bottom:0}#images-list li .alt{padding:2px 5px 10px}#images-list li .edit{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;padding:4px 7px;position:relative;text-decoration:none}#images-list li .edit:focus,#images-list li .edit:hover{background-color:var(--sa11y-shortcut-hover)}#images-list li .edit:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}#images-list li .badge{margin-inline-end:4px}#images-list li img{border-radius:5px;float:inline-start;margin-block-end:15px;margin-inline-end:10px;max-width:110px}#images-list li.warning .alt{color:var(--sa11y-yellow-text)}#images-list li.warning img{border:5px solid var(--sa11y-yellow-text)}#images-list li.error .alt{color:var(--sa11y-error)}#images-list li.error img{border:5px solid var(--sa11y-error)}#images-list li.good img{border:5px solid var(--sa11y-panel-badge)}.error-icon{background:var(--sa11y-error-text);-webkit-mask:var(--sa11y-error-svg) center no-repeat;mask:var(--sa11y-error-svg) center no-repeat}.error-icon,.hidden-icon{display:inline-block;height:16px;margin-bottom:-3px;width:16px}.hidden-icon{background:var(--sa11y-panel-primary);-webkit-mask:var(--sa11y-hidden-icon-svg) center no-repeat;mask:var(--sa11y-hidden-icon-svg) center no-repeat}.error-badge .hidden-icon{background:var(--sa11y-error-text)}.warning-badge .hidden-icon{background:var(--sa11y-panel-bg)}@media screen and (forced-colors:active){.hidden-icon{filter:invert(1)}}#panel-controls{border-radius:0 0 4px 4px;display:flex;overflow:hidden}#panel-controls button{background:var(--sa11y-panel-bg-secondary);background-color:var(--sa11y-panel-bg-secondary);border-bottom:1px solid var(--sa11y-panel-bg-splitter);border-inline-end:1px solid var(--sa11y-panel-bg-splitter);border-top:1px solid var(--sa11y-panel-bg-splitter);color:var(--sa11y-panel-secondary);cursor:pointer;display:block;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;line-height:0;margin:0;opacity:1;outline:0;padding:0;position:relative;text-align:center;transition:background .2s;width:100%}#panel-controls button.active,#panel-controls button:hover{background-color:var(--sa11y-shortcut-hover)}#panel-controls button.active{font-weight:500}#export-results-mode,label{color:var(--sa11y-panel-primary);display:inline-block;font-weight:400;margin:0;width:100%}label:not(#colour-filter-mode,#export-results-mode){cursor:pointer}#settings-panel #export-csv,#settings-panel #export-html{padding:0;text-align:center;width:unset}#settings-panel #export-csv span,#settings-panel #export-html span{background:var(--sa11y-panel-bg-secondary);border-radius:5px;box-shadow:inset 0 0 0 2px var(--sa11y-setting-switch-bg-off);display:block;margin:0 4px;padding:7px 9px;width:65px}#settings-panel #export-csv:focus span,#settings-panel #export-csv:focus-within span,#settings-panel #export-csv:hover span,#settings-panel #export-html:focus span,#settings-panel #export-html:focus-within span,#settings-panel #export-html:hover span{background:var(--sa11y-shortcut-hover)}#settings-panel .switch{background:none;border:0;border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:44px;margin:0;padding:7px 10px;position:relative;text-align:end;width:105px}#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{content:"";display:inline-block;height:27px;margin:0 4px 4px;vertical-align:middle;width:27px}#settings-panel .switch[aria-pressed=true]:after{background:var(--sa11y-setting-switch-bg-on);-webkit-mask:var(--sa11y-setting-switch-on-svg) center no-repeat;mask:var(--sa11y-setting-switch-on-svg) center no-repeat}#settings-panel .switch[aria-pressed=false]:after{background:var(--sa11y-setting-switch-bg-off);-webkit-mask:var(--sa11y-setting-switch-off-svg) center no-repeat;mask:var(--sa11y-setting-switch-off-svg) center no-repeat}@media screen and (forced-colors:active){#settings-panel .switch[aria-pressed=false]:after,#settings-panel .switch[aria-pressed=true]:after{filter:invert(1)}}#settings-panel #settings-options li{align-items:center;border-bottom:1px solid var(--sa11y-panel-bg-splitter);display:flex;justify-content:space-between;list-style-type:none;padding:1px 0}#settings-panel #settings-options li:last-child{border:none}#page-issues{align-items:center;color:var(--sa11y-panel-primary)}#page-issues-list{display:block;margin-top:4px}#page-issues-list li{display:block;margin:0 0 10px}#page-issues-list strong{display:block}.top-left.has-page-issues #page-issues,.top-right.has-page-issues #page-issues{border-top:1px solid var(--sa11y-panel-bg-splitter);margin-top:-1px}#panel-colour-filters{align-items:center;color:var(--sa11y-panel-primary);display:none;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;line-height:22px}#panel-colour-filters.active{display:flex}#panel-colour-filters p{padding:6px 20px 6px 6px;width:100%}#panel-colour-filters[data-colour=protanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image:linear-gradient(94deg,#786719 11%,#e0c600 36%,#e0c600 47%,#0059e3 75%,#0042aa 91%);border-image-slice:1}#panel-colour-filters[data-colour=deuteranopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image:linear-gradient(270deg,#567fdb,#a4a28d 48%,#c3ad14 69%,#a79505);border-image-slice:1}#panel-colour-filters[data-colour=tritanopia]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image:linear-gradient(270deg,#b1506f,#0696c1 35%,#f3a9ba 70%,#d91c5d 87%,#fe015c);border-image-slice:1}#panel-colour-filters[data-colour=monochromacy]{border-bottom:6px solid transparent;-o-border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image:linear-gradient(270deg,#000,#a7a7a7 50%,#000);border-image-slice:1}#panel-colour-filters[data-colour=protanopia] .panel-icon{background:var(--sa11y-panel-error)}#panel-colour-filters[data-colour=deuteranopia] .panel-icon{background:var(--sa11y-good-hover)}#panel-colour-filters[data-colour=tritanopia] .panel-icon{background:var(--sa11y-blue)}#panel-colour-filters[data-colour=monochromacy] .panel-icon{background:linear-gradient(90deg,#38a459 20%,red 50%,#0077c8 80%)}#panel-colour-filters .panel-icon{height:30px;margin-inline-end:5px;margin-inline-start:10px;-webkit-mask:var(--sa11y-low-vision-icon) center no-repeat;mask:var(--sa11y-low-vision-icon) center no-repeat;width:30px}@media screen and (forced-colors:active){#panel-colour-filters .panel-icon{forced-color-adjust:none}}.select-dropdown{align-items:center;display:flex;position:relative}.select-dropdown:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--sa11y-setting-switch-bg-off);content:" ";inset-inline-end:14px;position:absolute}#colour-filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-setting-switch-bg-off);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;font-size:var(--sa11y-normal-text);font-weight:400;height:30px;margin-inline-end:4px;padding-inline-end:25px;padding-inline-start:5px;position:relative;text-align:end;vertical-align:middle}#colour-filter-select:focus,#colour-filter-select:hover{background:var(--sa11y-shortcut-hover)}#colour-filter-select.active{box-shadow:0 0 0 2px var(--sa11y-setting-switch-bg-on)}#colour-filter-item label,#colour-filter-item select{margin-bottom:9px;margin-top:10px}#readability-panel{display:none;opacity:0}#readability-panel.active{display:block;opacity:1}.top-left #readability-content,.top-right #readability-content{border-top:1px solid var(--sa11y-panel-bg-splitter)}.left #readability-content,.right #readability-content{border-bottom:1px solid var(--sa11y-panel-bg-splitter)}#readability-content{color:var(--sa11y-panel-primary);padding:10px 15px;width:100%}#readability-details{list-style-type:none;margin:0;padding:0;white-space:normal}#readability-details li{display:inline-block;list-style-type:none;margin:0;padding-inline-end:10px}.readability-score{background-color:var(--sa11y-panel-badge);border-radius:4px;color:var(--sa11y-panel-primary);margin-inline-start:5px;padding:2px 5px}#readability-info{margin-inline-start:10px}#skip-to-page-issues{display:none}#panel.has-page-issues #skip-to-page-issues{clip:rect(0,0,0,0);background:var(--sa11y-panel-bg);border:0;border-radius:5px;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#panel.has-page-issues #skip-to-page-issues:focus{clip:auto;height:auto;margin:0;overflow:visible;padding:5px 7px;white-space:normal;width:auto;z-index:1}.hide-settings-border{border-bottom:0!important;padding:0 15px!important}.hide-settings-border li:not(#colour-filter-item){display:none!important}.hide-settings-border #about-content{display:none}.hide-settings-border.scrollable:before{all:unset}::-webkit-scrollbar{height:6px;width:7px}::-webkit-scrollbar-thumb{background-color:var(--sa11y-button-outline);border-radius:6px}*{scrollbar-color:var(--sa11y-button-outline);scrollbar-width:thin}.scrollable:before{animation:fade 1s ease-in-out;background:linear-gradient(180deg,transparent 70%,var(--sa11y-panel-scrollable) 100%);background-position:bottom;bottom:auto;content:"";height:250px;left:0;position:absolute;right:0;top:auto;transition:opacity 1s ease-in-out;width:100%;z-index:-1}#settings-content.scrollable:before{height:400px}.top-left .scrollable:before,.top-right .scrollable:before{border-radius:5px}#page-issues-content.scrollable:before{height:160px}#panel-alert.scrollable:before{height:200px}@keyframes sa11y-toggle-gradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transform:none!important;transition:none!important}}#panel{width:400px}#container:lang(en) #panel{width:305px}#container:lang(da) #panel,#container:lang(de) #panel,#container:lang(nb) #panel,#container:lang(pl) #panel,#container:lang(sv) #panel,#container:lang(zh) #panel{width:350px}#container:lang(bg) .switch:not(#export-results-item *),#container:lang(es) .switch:not(#export-results-item *){width:225px!important}#container:not(:lang(en)):not(:lang(de)) .switch{width:205px}'+N,this.shadowRoot.appendChild(e);const t="On"===g.getItem("sa11y-remember-contrast"),i="On"===g.getItem("sa11y-remember-labels"),a="On"===g.getItem("sa11y-remember-links-advanced"),r="On"===g.getItem("sa11y-remember-readability"),s=o.Global.checkAllHideToggles,{panelPosition:l}=o.Global,d=o.Global.contrastPlugin?`\n
                              • \n \n \n
                              • `:"",c=o.Global.formLabelsPlugin?`\n
                              • \n \n \n
                              • `:"",p=o.Global.linksAdvancedPlugin?`\n `:"",u=o.Readability.Plugin?`\n
                              • \n \n \n
                              • `:"",m=o.Global.colourFilterPlugin?`\n
                              • \n \n
                                \n \n
                                \n
                              • `:"",f=o.Global.colourFilterPlugin?`\n
                                \n \n

                                ${n._("COLOUR_FILTER_MESSAGE")}

                                \n
                                `:"",b=o.Global.exportResultsPlugin?`\n
                              • \n ${n._("EXPORT_RESULTS")}\n \n \n
                              • `:"",h=o.Global.aboutContent?`\n
                                \n ${o.Global.aboutContent}\n
                                `:"",y=`\n `,v=`\n
                                \n
                                \n

                                ${n._("PAGE_ISSUES")}

                                \n
                                \n
                                \n
                                  \n
                                  \n
                                  `,x=`\n
                                  \n
                                  \n

                                  ${n._("OUTLINE")}

                                  \n
                                  \n
                                  \n \n
                                  \n
                                  \n
                                  \n

                                  ${n._("LANG_READABILITY")}

                                  \n

                                  \n
                                    \n
                                    \n
                                    \n
                                    `,w=o.Global.showImageOutline?`\n
                                    \n
                                    \n

                                    ${n._("IMAGES")}

                                    \n
                                    \n
                                    \n \n
                                    \n
                                    `:"",E=`\n
                                    \n
                                    \n

                                    ${n._("SETTINGS")}

                                    \n
                                    \n
                                    \n
                                      \n ${d}\n ${c}\n ${p}\n ${u}\n
                                    • \n \n \n
                                    • \n ${b}\n ${m}\n
                                    \n ${h}\n
                                    \n
                                    `,A=`\n \n
                                    \n
                                    \n \n

                                    ${n._("ALERT_TEXT")}

                                    \n
                                    \n

                                    \n
                                    \n
                                    \n `,I=`\n
                                    \n \n \n \n
                                    \n

                                    ${n._("PANEL_HEADING")}

                                    \n

                                    \n
                                    \n
                                    `,L=``,k=o.Global.showImageOutline?'
                                    ':'
                                    ',T=`\n
                                    \n ${"left"===l?k:""}\n \n ${o.Global.showImageOutline?L:""}\n \n ${"right"===l?k:""}\n
                                    `,_=document.createElement("div");_.setAttribute("id","container"),_.setAttribute("role","region"),_.setAttribute("lang",n._("LANG_CODE")),_.setAttribute("aria-label",n._("CONTAINER_LABEL")),_.setAttribute("dir",o.Global.langDirection),_.innerHTML="top-left"===l||"top-right"===l?`\n ${y}\n
                                    \n ${I}\n ${f}\n ${T}\n ${x}\n ${w}\n ${E}\n ${A}\n ${v}\n
                                    `:`\n ${y}\n
                                    \n ${v}\n ${x}\n ${w}\n ${E}\n ${A}\n ${f}\n ${I}\n ${T}\n
                                    `,this.shadowRoot.appendChild(_),o.initializePanelSelectors()}}const D=()=>{o.Panel.outlineToggle.classList.add("active"),o.Panel.outline.classList.add("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-outline","Opened"),x(o.Panel.outlineList,o.Panel.outlineContent);i("sa11y-heading-label","root").forEach((e=>e.hidden=!1));const e=new CustomEvent("sa11y-build-heading-outline");document.dispatchEvent(e)},G=()=>{o.Panel.outline.classList.remove("active"),o.Panel.outlineToggle.classList.remove("active"),o.Panel.outlineToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-outline","Closed");i("sa11y-heading-label","root").forEach((e=>e.hidden=!0))},B=()=>{o.Panel.imagesToggle.classList.add("active"),o.Panel.images.classList.add("active"),o.Panel.imagesToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-images","Opened"),x(o.Panel.imagesList,o.Panel.imagesContent);const e=new CustomEvent("sa11y-build-image-outline");document.dispatchEvent(e)},H=()=>{o.Global.showImageOutline&&(o.Panel.imagesToggle.classList.remove("active"),o.Panel.images.classList.remove("active"),o.Panel.imagesToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-images","Closed"))},F=()=>{o.Panel.settingsToggle.classList.add("active"),o.Panel.settings.classList.add("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","true"),g.setItem("sa11y-remember-settings","Opened"),x(o.Panel.settingsContent,o.Panel.settingsContent,n._("SETTINGS"))},U=()=>{o.Panel.settings.classList.remove("active"),o.Panel.settingsToggle.classList.remove("active"),o.Panel.settingsToggle.setAttribute("aria-expanded","false"),g.setItem("sa11y-remember-settings","Closed")};function j(e,t,a){const r=()=>{const s=[];return e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedHeading:!0})})),t.forEach((e=>{const t=e.element,i=e.headingLevel,r=e.text,l=e.index,d=e.type,c=e.hidden,p=e.visibleParent,u=e.dismissedHeading,{isWithinRoot:m}=e;if(!(o.Exclusions.Outline?Array.from(document.querySelectorAll(o.Exclusions.Outline)):[]).includes(t)){const e=!0===c?'Hidden':"",o=!0===c?'class="hidden-h"':"",f=!0===a||1===a?"H":"";let b;"error"===d&&!0===m?(b=`\n
                                  • \n \n \n \n ${n._("ERROR")} ${f+i}\n ${r}\n \n
                                  • `,s.push(b)):"warning"!==d||u||!0!==m?(b=`\n
                                  • \n \n ${e} ${f+i}\n ${r}\n \n
                                  • `,s.push(b)):(b=`\n
                                  • \n \n \n \n ${n._("WARNING")} ${f+i}\n ${r}\n \n
                                  • `,s.push(b));const h=document.createElement("sa11y-heading-label"),y=document.createElement("sa11y-heading-anchor");if(h.hidden=!0,null!==p){t.insertAdjacentElement("beforeend",h);const e=p.previousElementSibling;y.setAttribute("id",`sa11y-h${l}`),e?(e.insertAdjacentElement("beforebegin",y),e.setAttribute("data-sa11y-parent",`h${l}`)):(p.parentNode.insertAdjacentElement("beforebegin",y),p.parentNode.setAttribute("data-sa11y-parent",`h${l}`))}else t.insertAdjacentElement("beforeend",h),h.insertAdjacentElement("beforebegin",y),y.setAttribute("id",`sa11y-h${l}`);const v=document.createElement("span");v.classList.add("heading-label"),v.innerHTML=`H${i}`,h.shadowRoot.appendChild(v),"Opened"===g.getItem("sa11y-remember-outline")&&(h.hidden=!1)}})),o.Panel.outlineList.innerHTML=0===s.length?`
                                  • ${n._("PANEL_NO_HEADINGS")}
                                  • `:s.join(" "),setTimeout((()=>{const e=document.querySelector("sa11y-control-panel").shadowRoot,t=Array.from(e.querySelectorAll("#outline-list a"));t.forEach(((t,a)=>{const r=e.getElementById(`sa11y-link-${a}`),s=i(`#sa11y-h${a}, [data-sa11y-parent="h${a}"]`,"document",o.Exclusions.Container),l=e=>{("keyup"===e.type&&"Enter"===e.code||"click"===e.type)&&(s.forEach((e=>{(e=>{m(e.parentElement),e.scrollIntoView({behavior:`${o.Global.scrollBehaviour}`,block:"center"})})(e)})),r.classList.contains("hidden-h")?h(`${n._("HEADING_NOT_VISIBLE_ALERT")}`):o.Panel.alert.classList.contains("active")&&b()),e.preventDefault()};r?.addEventListener("click",l,!1),r?.addEventListener("keyup",l,!1)}));let a=0;const r=e=>{if(!["ArrowUp","ArrowDown","Space"].includes(e.code))return;if("Space"===e.code)return void t[a].click();let n;t[a].setAttribute("tabindex",-1),"ArrowDown"===e.code?(n=a+1,a===t.length-1&&(n=0)):"ArrowUp"===e.code&&(n=a-1,0===a&&(n=t.length-1)),t[n].setAttribute("tabindex",0),t[n].focus(),a=n,e.preventDefault()};o.Panel.outlineList.addEventListener("focus",(()=>{t.length>0&&(o.Panel.outlineList.setAttribute("tabindex",-1),t[a].setAttribute("tabindex",0),t[a].focus()),o.Panel.outlineList.addEventListener("keydown",r)})),o.Panel.outlineList.addEventListener("blur",(()=>{o.Panel.outlineList.removeEventListener("keydown",r)}))}),0),document.removeEventListener("sa11y-build-heading-outline",r),e};"Opened"===g.getItem("sa11y-remember-outline")&&r(),document.addEventListener("sa11y-build-heading-outline",r)}function W(e,t){const i=()=>{const a=[];e.map((e=>{const n=t.find((t=>e.key.includes(t.dismiss)&&e.href===window.location.pathname));return void 0===n?"":n})).forEach((e=>{Object.assign(e,{dismissedImage:!0})})),t.forEach((e=>{const t=e.type,{dismissedImage:i}=e,s=r(e.element.alt),{src:l}=e.element,d=e.element.getAttribute("data-src"),c=d&&d.length>3?d:l,p=(e=>{let t;if(0!==o.Global.editImageURLofCMS.length){const{src:a}=e.element,r=o.Global.relativePathImageSRC?o.Global.relativePathImageSRC:window.location.host,s=a.split(r),l=s.length>1?s[1]:"",d=o.Global.relativePathImageID;let c;d.length&&e.element.classList.length&&e.element.classList.forEach((e=>{if(e.startsWith(d)){const[t]=e.match(/\d+/)||[];c=t}}));const p=r&&d.length?o.Global.editImageURLofCMS+c:o.Global.editImageURLofCMS+l;t=((i=a).includes(window.location.host)||i.startsWith(r))&&void 0!==c?`
                                    ${n._("EDIT")}
                                    `:""}var i;return t??""})(e);let u;if("error"===t){const e=0===s.length?`
                                    ${n._("MISSING")}
                                    `:`${s}`;u=`\n
                                  • \n \n
                                    \n
                                    \n \n ${n._("ERROR")}\n ${n._("ALT")}\n
                                    \n ${e}\n
                                    \n ${p}\n
                                  • `,a.push(u)}else if("warning"!==t||i){const e=0===s.length?`
                                    ${n._("DECORATIVE")}
                                    `:"";u=`\n
                                  • \n \n
                                    \n
                                    ${n._("ALT")}
                                    \n ${e} ${s}\n
                                    \n ${p}\n
                                  • `,a.push(u)}else{const e=0===s.length?`
                                    ${n._("DECORATIVE")}
                                    `:"";u=`\n
                                  • \n \n
                                    \n
                                    \n \n ${n._("WARNING")}\n ${n._("ALT")}\n
                                    \n ${e} ${s}\n
                                    \n ${p}\n
                                  • `,a.push(u)}})),o.Panel.imagesList.innerHTML=0===a.length?`
                                  • ${n._("IMAGES_NOT_FOUND")}
                                  • `:a.join(" "),document.removeEventListener("sa11y-build-image-outline",i)};"Opened"===g.getItem("sa11y-remember-images")&&i(),document.addEventListener("sa11y-build-image-outline",i)}var z="top",q="bottom",V="right",Q="left",K="auto",Y=[z,q,V,Q],X="start",Z="end",J="clippingParents",ee="viewport",te="popper",ne="reference",oe=Y.reduce((function(e,t){return e.concat([t+"-"+X,t+"-"+Z])}),[]),ie=[].concat(Y,[K]).reduce((function(e,t){return e.concat([t,t+"-"+X,t+"-"+Z])}),[]),ae=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function re(e){return e?(e.nodeName||"").toLowerCase():null}function se(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function le(e){return e instanceof se(e).Element||e instanceof Element}function de(e){return e instanceof se(e).HTMLElement||e instanceof HTMLElement}function ce(e){return"undefined"!=typeof ShadowRoot&&(e instanceof se(e).ShadowRoot||e instanceof ShadowRoot)}var pe={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];de(i)&&re(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});de(o)&&re(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function ue(e){return e.split("-")[0]}var ge=Math.max,me=Math.min,fe=Math.round;function be(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function he(){return!/^((?!chrome|android).)*safari/i.test(be())}function ye(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),i=1,a=1;t&&de(e)&&(i=e.offsetWidth>0&&fe(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&fe(o.height)/e.offsetHeight||1);var r=(le(e)?se(e):window).visualViewport,s=!he()&&n,l=(o.left+(s&&r?r.offsetLeft:0))/i,d=(o.top+(s&&r?r.offsetTop:0))/a,c=o.width/i,p=o.height/a;return{width:c,height:p,top:d,right:l+c,bottom:d+p,left:l,x:l,y:d}}function ve(e){var t=ye(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function xe(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&ce(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function we(e){return se(e).getComputedStyle(e)}function Ee(e){return["table","td","th"].indexOf(re(e))>=0}function Ae(e){return((le(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ie(e){return"html"===re(e)?e:e.assignedSlot||e.parentNode||(ce(e)?e.host:null)||Ae(e)}function Le(e){return de(e)&&"fixed"!==we(e).position?e.offsetParent:null}function ke(e){for(var t=se(e),n=Le(e);n&&Ee(n)&&"static"===we(n).position;)n=Le(n);return n&&("html"===re(n)||"body"===re(n)&&"static"===we(n).position)?t:n||function(e){var t=/firefox/i.test(be());if(/Trident/i.test(be())&&de(e)&&"fixed"===we(e).position)return null;var n=Ie(e);for(ce(n)&&(n=n.host);de(n)&&["html","body"].indexOf(re(n))<0;){var o=we(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Te(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function _e(e,t,n){return ge(e,me(t,n))}function Se(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Pe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Ce={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,i=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ue(n.placement),l=Te(s),d=[Q,V].indexOf(s)>=0?"height":"width";if(a&&r){var c=function(e,t){return Se("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Pe(e,Y))}(i.padding,n),p=ve(a),u="y"===l?z:Q,g="y"===l?q:V,m=n.rects.reference[d]+n.rects.reference[l]-r[l]-n.rects.popper[d],f=r[l]-n.rects.reference[l],b=ke(a),h=b?"y"===l?b.clientHeight||0:b.clientWidth||0:0,y=m/2-f/2,v=c[u],x=h-p[d]-c[g],w=h/2-p[d]/2+y,E=_e(v,w,x),A=l;n.modifiersData[o]=((t={})[A]=E,t.centerOffset=E-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&xe(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Oe(e){return e.split("-")[1]}var $e={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ne(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.variation,r=e.offsets,s=e.position,l=e.gpuAcceleration,d=e.adaptive,c=e.roundOffsets,p=e.isFixed,u=r.x,g=void 0===u?0:u,m=r.y,f=void 0===m?0:m,b="function"==typeof c?c({x:g,y:f}):{x:g,y:f};g=b.x,f=b.y;var h=r.hasOwnProperty("x"),y=r.hasOwnProperty("y"),v=Q,x=z,w=window;if(d){var E=ke(n),A="clientHeight",I="clientWidth";if(E===se(n)&&"static"!==we(E=Ae(n)).position&&"absolute"===s&&(A="scrollHeight",I="scrollWidth"),i===z||(i===Q||i===V)&&a===Z)x=q,f-=(p&&E===w&&w.visualViewport?w.visualViewport.height:E[A])-o.height,f*=l?1:-1;if(i===Q||(i===z||i===q)&&a===Z)v=V,g-=(p&&E===w&&w.visualViewport?w.visualViewport.width:E[I])-o.width,g*=l?1:-1}var L,k=Object.assign({position:s},d&&$e),T=!0===c?function(e,t){var n=e.x,o=e.y,i=t.devicePixelRatio||1;return{x:fe(n*i)/i||0,y:fe(o*i)/i||0}}({x:g,y:f},se(n)):{x:g,y:f};return g=T.x,f=T.y,l?Object.assign({},k,((L={})[x]=y?"0":"",L[v]=h?"0":"",L.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+f+"px)":"translate3d("+g+"px, "+f+"px, 0)",L)):Object.assign({},k,((t={})[x]=y?f+"px":"",t[v]=h?g+"px":"",t.transform="",t))}var Re={passive:!0};var Me={left:"right",right:"left",bottom:"top",top:"bottom"};function De(e){return e.replace(/left|right|bottom|top/g,(function(e){return Me[e]}))}var Ge={start:"end",end:"start"};function Be(e){return e.replace(/start|end/g,(function(e){return Ge[e]}))}function He(e){var t=se(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Fe(e){return ye(Ae(e)).left+He(e).scrollLeft}function Ue(e){var t=we(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function je(e){return["html","body","#document"].indexOf(re(e))>=0?e.ownerDocument.body:de(e)&&Ue(e)?e:je(Ie(e))}function We(e,t){var n;void 0===t&&(t=[]);var o=je(e),i=o===(null==(n=e.ownerDocument)?void 0:n.body),a=se(o),r=i?[a].concat(a.visualViewport||[],Ue(o)?o:[]):o,s=t.concat(r);return i?s:s.concat(We(Ie(r)))}function ze(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function qe(e,t,n){return t===ee?ze(function(e,t){var n=se(e),o=Ae(e),i=n.visualViewport,a=o.clientWidth,r=o.clientHeight,s=0,l=0;if(i){a=i.width,r=i.height;var d=he();(d||!d&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:a,height:r,x:s+Fe(e),y:l}}(e,n)):le(t)?function(e,t){var n=ye(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ze(function(e){var t,n=Ae(e),o=He(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=ge(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=ge(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-o.scrollLeft+Fe(e),l=-o.scrollTop;return"rtl"===we(i||n).direction&&(s+=ge(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:r,x:s,y:l}}(Ae(e)))}function Ve(e,t,n,o){var i="clippingParents"===t?function(e){var t=We(Ie(e)),n=["absolute","fixed"].indexOf(we(e).position)>=0&&de(e)?ke(e):e;return le(n)?t.filter((function(e){return le(e)&&xe(e,n)&&"body"!==re(e)})):[]}(e):[].concat(t),a=[].concat(i,[n]),r=a[0],s=a.reduce((function(t,n){var i=qe(e,n,o);return t.top=ge(i.top,t.top),t.right=me(i.right,t.right),t.bottom=me(i.bottom,t.bottom),t.left=ge(i.left,t.left),t}),qe(e,r,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Qe(e){var t,n=e.reference,o=e.element,i=e.placement,a=i?ue(i):null,r=i?Oe(i):null,s=n.x+n.width/2-o.width/2,l=n.y+n.height/2-o.height/2;switch(a){case z:t={x:s,y:n.y-o.height};break;case q:t={x:s,y:n.y+n.height};break;case V:t={x:n.x+n.width,y:l};break;case Q:t={x:n.x-o.width,y:l};break;default:t={x:n.x,y:n.y}}var d=a?Te(a):null;if(null!=d){var c="y"===d?"height":"width";switch(r){case X:t[d]=t[d]-(n[c]/2-o[c]/2);break;case Z:t[d]=t[d]+(n[c]/2-o[c]/2)}}return t}function Ke(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=void 0===o?e.placement:o,a=n.strategy,r=void 0===a?e.strategy:a,s=n.boundary,l=void 0===s?J:s,d=n.rootBoundary,c=void 0===d?ee:d,p=n.elementContext,u=void 0===p?te:p,g=n.altBoundary,m=void 0!==g&&g,f=n.padding,b=void 0===f?0:f,h=Se("number"!=typeof b?b:Pe(b,Y)),y=u===te?ne:te,v=e.rects.popper,x=e.elements[m?y:u],w=Ve(le(x)?x:x.contextElement||Ae(e.elements.popper),l,c,r),E=ye(e.elements.reference),A=Qe({reference:E,element:v,strategy:"absolute",placement:i}),I=ze(Object.assign({},v,A)),L=u===te?I:E,k={top:w.top-L.top+h.top,bottom:L.bottom-w.bottom+h.bottom,left:w.left-L.left+h.left,right:L.right-w.right+h.right},T=e.modifiersData.offset;if(u===te&&T){var _=T[i];Object.keys(k).forEach((function(e){var t=[V,q].indexOf(e)>=0?1:-1,n=[z,q].indexOf(e)>=0?"y":"x";k[e]+=_[n]*t}))}return k}function Ye(e,t){void 0===t&&(t={});var n=t,o=n.placement,i=n.boundary,a=n.rootBoundary,r=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,d=void 0===l?ie:l,c=Oe(o),p=c?s?oe:oe.filter((function(e){return Oe(e)===c})):Y,u=p.filter((function(e){return d.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(t,n){return t[n]=Ke(e,{placement:n,boundary:i,rootBoundary:a,padding:r})[ue(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var Xe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0===r||r,l=n.fallbackPlacements,d=n.padding,c=n.boundary,p=n.rootBoundary,u=n.altBoundary,g=n.flipVariations,m=void 0===g||g,f=n.allowedAutoPlacements,b=t.options.placement,h=ue(b),y=l||(h===b||!m?[De(b)]:function(e){if(ue(e)===K)return[];var t=De(e);return[Be(e),t,Be(t)]}(b)),v=[b].concat(y).reduce((function(e,n){return e.concat(ue(n)===K?Ye(t,{placement:n,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:f}):n)}),[]),x=t.rects.reference,w=t.rects.popper,E=new Map,A=!0,I=v[0],L=0;L=0,P=S?"width":"height",C=Ke(t,{placement:k,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),O=S?_?V:Q:_?q:z;x[P]>w[P]&&(O=De(O));var $=De(O),N=[];if(a&&N.push(C[T]<=0),s&&N.push(C[O]<=0,C[$]<=0),N.every((function(e){return e}))){I=k,A=!1;break}E.set(k,N)}if(A)for(var R=function(e){var t=v.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return I=t,"break"},M=m?3:1;M>0;M--){if("break"===R(M))break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ze(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Je(e){return[z,V,q,Q].some((function(t){return e[t]>=0}))}var et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.offset,a=void 0===i?[0,0]:i,r=ie.reduce((function(e,n){return e[n]=function(e,t,n){var o=ue(e),i=[Q,z].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=a[0],s=a[1];return r=r||0,s=(s||0)*i,[Q,V].indexOf(o)>=0?{x:s,y:r}:{x:r,y:s}}(n,t.rects,a),e}),{}),s=r[t.placement],l=s.x,d=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=d),t.modifiersData[o]=r}};var tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,i=n.mainAxis,a=void 0===i||i,r=n.altAxis,s=void 0!==r&&r,l=n.boundary,d=n.rootBoundary,c=n.altBoundary,p=n.padding,u=n.tether,g=void 0===u||u,m=n.tetherOffset,f=void 0===m?0:m,b=Ke(t,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=ue(t.placement),y=Oe(t.placement),v=!y,x=Te(h),w="x"===x?"y":"x",E=t.modifiersData.popperOffsets,A=t.rects.reference,I=t.rects.popper,L="function"==typeof f?f(Object.assign({},t.rects,{placement:t.placement})):f,k="number"==typeof L?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,_={x:0,y:0};if(E){if(a){var S,P="y"===x?z:Q,C="y"===x?q:V,O="y"===x?"height":"width",$=E[x],N=$+b[P],R=$-b[C],M=g?-I[O]/2:0,D=y===X?A[O]:I[O],G=y===X?-I[O]:-A[O],B=t.elements.arrow,H=g&&B?ve(B):{width:0,height:0},F=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},U=F[P],j=F[C],W=_e(0,A[O],H[O]),K=v?A[O]/2-M-W-U-k.mainAxis:D-W-U-k.mainAxis,Y=v?-A[O]/2+M+W+j+k.mainAxis:G+W+j+k.mainAxis,Z=t.elements.arrow&&ke(t.elements.arrow),J=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,ee=null!=(S=null==T?void 0:T[x])?S:0,te=$+Y-ee,ne=_e(g?me(N,$+K-ee-J):N,$,g?ge(R,te):R);E[x]=ne,_[x]=ne-$}if(s){var oe,ie="x"===x?z:Q,ae="x"===x?q:V,re=E[w],se="y"===w?"height":"width",le=re+b[ie],de=re-b[ae],ce=-1!==[z,Q].indexOf(h),pe=null!=(oe=null==T?void 0:T[w])?oe:0,fe=ce?le:re-A[se]-I[se]-pe+k.altAxis,be=ce?re+A[se]+I[se]-pe-k.altAxis:de,he=g&&ce?function(e,t,n){var o=_e(e,t,n);return o>n?n:o}(fe,re,be):_e(g?fe:le,re,g?be:de);E[w]=he,_[w]=he-re}t.modifiersData[o]=_}},requiresIfExists:["offset"]};function nt(e,t,n){void 0===n&&(n=!1);var o,i,a=de(t),r=de(t)&&function(e){var t=e.getBoundingClientRect(),n=fe(t.width)/e.offsetWidth||1,o=fe(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=Ae(t),l=ye(e,r,n),d={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==re(t)||Ue(s))&&(d=(o=t)!==se(o)&&de(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:He(o)),de(t)?((c=ye(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):s&&(c.x=Fe(s))),{x:l.left+d.scrollLeft-c.x,y:l.top+d.scrollTop-c.y,width:l.width,height:l.height}}function ot(e){var t=new Map,n=new Set,o=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&i(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),o}var it={placement:"bottom",modifiers:[],strategy:"absolute"};function at(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function bt(e,t){return"function"==typeof e?e.apply(void 0,t):e}function ht(e,t){return 0===t?e:function(o){clearTimeout(n),n=setTimeout((function(){e(o)}),t)};var n}function yt(e){return[].concat(e)}function vt(e,t){-1===e.indexOf(t)&&e.push(t)}function xt(e){return[].slice.call(e)}function wt(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function Et(){return document.createElement("div")}function At(e){return["Element","Fragment"].some((function(t){return ft(e,t)}))}function It(e){return At(e)?[e]:function(e){return ft(e,"NodeList")}(e)?xt(e):Array.isArray(e)?e:xt(document.querySelectorAll(e))}function Lt(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function kt(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function Tt(e,t,n){var o=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[o](t,n)}))}function _t(e,t){for(var n=t;n;){var o;if(e.contains(n))return!0;n=null==n.getRootNode||null==(o=n.getRootNode())?void 0:o.host}return!1}var St={isTouch:!1},Pt=0;function Ct(){St.isTouch||(St.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ot))}function Ot(){var e=performance.now();e-Pt<20&&(St.isTouch=!1,document.removeEventListener("mousemove",Ot)),Pt=e}function $t(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var Nt=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,Rt=Object.assign({appendTo:gt,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),Mt=Object.keys(Rt);function Dt(e){var t=(e.plugins||[]).reduce((function(t,n){var o,i=n.name,a=n.defaultValue;i&&(t[i]=void 0!==e[i]?e[i]:null!=(o=Rt[i])?o:a);return t}),{});return Object.assign({},e,t)}function Gt(e,t){var n=Object.assign({},t,{content:bt(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Dt(Object.assign({},Rt,{plugins:t}))):Mt).reduce((function(t,n){var o=(e.getAttribute("data-tippy-"+n)||"").trim();if(!o)return t;if("content"===n)t[n]=o;else try{t[n]=JSON.parse(o)}catch(e){t[n]=o}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},Rt.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var Bt=function(){return"innerHTML"};function Ht(e,t){e[Bt()]=t}function Ft(e){var t=Et();return!0===e?t.className=ct:(t.className=pt,At(e)?t.appendChild(e):Ht(t,e)),t}function Ut(e,t){At(t.content)?(Ht(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Ht(e,t.content):e.textContent=t.content)}function jt(e){var t=e.firstElementChild,n=xt(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(lt)})),arrow:n.find((function(e){return e.classList.contains(ct)||e.classList.contains(pt)})),backdrop:n.find((function(e){return e.classList.contains(dt)}))}}function Wt(e){var t=Et(),n=Et();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var o=Et();function i(n,o){var i=jt(t),a=i.box,r=i.content,s=i.arrow;o.theme?a.setAttribute("data-theme",o.theme):a.removeAttribute("data-theme"),"string"==typeof o.animation?a.setAttribute("data-animation",o.animation):a.removeAttribute("data-animation"),o.inertia?a.setAttribute("data-inertia",""):a.removeAttribute("data-inertia"),a.style.maxWidth="number"==typeof o.maxWidth?o.maxWidth+"px":o.maxWidth,o.role?a.setAttribute("role",o.role):a.removeAttribute("role"),n.content===o.content&&n.allowHTML===o.allowHTML||Ut(r,e.props),o.arrow?s?n.arrow!==o.arrow&&(a.removeChild(s),a.appendChild(Ft(o.arrow))):a.appendChild(Ft(o.arrow)):s&&a.removeChild(s)}return o.className=lt,o.setAttribute("data-state","hidden"),Ut(o,e.props),t.appendChild(n),n.appendChild(o),i(e.props,e.props),{popper:t,onUpdate:i}}Wt.$$tippy=!0;var zt=1,qt=[],Vt=[];function Qt(e,t){var n,o,i,a,r,s,l,d,c=Gt(e,Object.assign({},Rt,Dt(wt(t)))),p=!1,u=!1,g=!1,m=!1,f=[],b=ht(V,c.interactiveDebounce),h=zt++,y=(d=c.plugins).filter((function(e,t){return d.indexOf(e)===t})),v={id:h,reference:e,popper:Et(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:y,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){if(v.state.isDestroyed)return;$("onBeforeUpdate",[v,t]),z();var n=v.props,o=Gt(e,Object.assign({},n,wt(t),{ignoreAttributes:!0}));v.props=o,W(),n.interactiveDebounce!==o.interactiveDebounce&&(M(),b=ht(V,o.interactiveDebounce));n.triggerTarget&&!o.triggerTarget?yt(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):o.triggerTarget&&e.removeAttribute("aria-expanded");R(),O(),E&&E(n,o);v.popperInstance&&(X(),J().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));$("onAfterUpdate",[v,t])},setContent:function(e){v.setProps({content:e})},show:function(){var e=v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=St.isTouch&&!v.props.touch,i=mt(v.props.duration,0,Rt.duration);if(e||t||n||o)return;if(_().hasAttribute("disabled"))return;if($("onShow",[v],!1),!1===v.props.onShow(v))return;v.state.isVisible=!0,T()&&(w.style.visibility="visible");O(),H(),v.state.isMounted||(w.style.transition="none");if(T()){var a=P();Lt([a.box,a.content],0)}s=function(){var e;if(v.state.isVisible&&!m){if(m=!0,w.offsetHeight,w.style.transition=v.props.moveTransition,T()&&v.props.animation){var t=P(),n=t.box,o=t.content;Lt([n,o],i),kt([n,o],"visible")}N(),R(),vt(Vt,v),null==(e=v.popperInstance)||e.forceUpdate(),$("onMount",[v]),v.props.animation&&T()&&function(e,t){U(e,t)}(i,(function(){v.state.isShown=!0,$("onShown",[v])}))}},function(){var e,t=v.props.appendTo,n=_();e=v.props.interactive&&t===gt||"parent"===t?n.parentNode:bt(t,[n]);e.contains(w)||e.appendChild(w);v.state.isMounted=!0,X()}()},hide:function(){var e=!v.state.isVisible,t=v.state.isDestroyed,n=!v.state.isEnabled,o=mt(v.props.duration,1,Rt.duration);if(e||t||n)return;if($("onHide",[v],!1),!1===v.props.onHide(v))return;v.state.isVisible=!1,v.state.isShown=!1,m=!1,p=!1,T()&&(w.style.visibility="hidden");if(M(),F(),O(!0),T()){var i=P(),a=i.box,r=i.content;v.props.animation&&(Lt([a,r],o),kt([a,r],"hidden"))}N(),R(),v.props.animation?T()&&function(e,t){U(e,(function(){!v.state.isVisible&&w.parentNode&&w.parentNode.contains(w)&&t()}))}(o,v.unmount):v.unmount()},hideWithInteractivity:function(e){S().addEventListener("mousemove",b),vt(qt,b),b(e)},enable:function(){v.state.isEnabled=!0},disable:function(){v.hide(),v.state.isEnabled=!1},unmount:function(){v.state.isVisible&&v.hide();if(!v.state.isMounted)return;Z(),J().forEach((function(e){e._tippy.unmount()})),w.parentNode&&w.parentNode.removeChild(w);Vt=Vt.filter((function(e){return e!==v})),v.state.isMounted=!1,$("onHidden",[v])},destroy:function(){if(v.state.isDestroyed)return;v.clearDelayTimeouts(),v.unmount(),z(),delete e._tippy,v.state.isDestroyed=!0,$("onDestroy",[v])}};if(!c.render)return v;var x=c.render(v),w=x.popper,E=x.onUpdate;w.setAttribute("data-tippy-root",""),w.id="tippy-"+v.id,v.popper=w,e._tippy=v,w._tippy=v;var A=y.map((function(e){return e.fn(v)})),I=e.hasAttribute("aria-expanded");return W(),R(),O(),$("onCreate",[v]),c.showOnCreate&&ee(),w.addEventListener("mouseenter",(function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()})),w.addEventListener("mouseleave",(function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&S().addEventListener("mousemove",b)})),v;function L(){var e=v.props.touch;return Array.isArray(e)?e:[e,0]}function k(){return"hold"===L()[0]}function T(){var e;return!(null==(e=v.props.render)||!e.$$tippy)}function _(){return l||e}function S(){var e,t,n=_().parentNode;return n?null!=(t=yt(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document:document}function P(){return jt(w)}function C(e){return v.state.isMounted&&!v.state.isVisible||St.isTouch||a&&"focus"===a.type?0:mt(v.props.delay,e?0:1,Rt.delay)}function O(e){void 0===e&&(e=!1),w.style.pointerEvents=v.props.interactive&&!e?"":"none",w.style.zIndex=""+v.props.zIndex}function $(e,t,n){var o;(void 0===n&&(n=!0),A.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(o=v.props)[e].apply(o,t)}function N(){var t=v.props.aria;if(t.content){var n="aria-"+t.content,o=w.id;yt(v.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(v.state.isVisible)e.setAttribute(n,t?t+" "+o:o);else{var i=t&&t.replace(o,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}}))}}function R(){!I&&v.props.aria.expanded&&yt(v.props.triggerTarget||e).forEach((function(e){v.props.interactive?e.setAttribute("aria-expanded",v.state.isVisible&&e===_()?"true":"false"):e.removeAttribute("aria-expanded")}))}function M(){S().removeEventListener("mousemove",b),qt=qt.filter((function(e){return e!==b}))}function D(t){if(!St.isTouch||!g&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!v.props.interactive||!_t(w,n)){if(yt(v.props.triggerTarget||e).some((function(e){return _t(e,n)}))){if(St.isTouch)return;if(v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else $("onClickOutside",[v,t]);!0===v.props.hideOnClick&&(v.clearDelayTimeouts(),v.hide(),u=!0,setTimeout((function(){u=!1})),v.state.isMounted||F())}}}function G(){g=!0}function B(){g=!1}function H(){var e=S();e.addEventListener("mousedown",D,!0),e.addEventListener("touchend",D,ut),e.addEventListener("touchstart",B,ut),e.addEventListener("touchmove",G,ut)}function F(){var e=S();e.removeEventListener("mousedown",D,!0),e.removeEventListener("touchend",D,ut),e.removeEventListener("touchstart",B,ut),e.removeEventListener("touchmove",G,ut)}function U(e,t){var n=P().box;function o(e){e.target===n&&(Tt(n,"remove",o),t())}if(0===e)return t();Tt(n,"remove",r),Tt(n,"add",o),r=o}function j(t,n,o){void 0===o&&(o=!1),yt(v.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,o),f.push({node:e,eventType:t,handler:n,options:o})}))}function W(){var e;k()&&(j("touchstart",q,{passive:!0}),j("touchend",Q,{passive:!0})),(e=v.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(j(e,q),e){case"mouseenter":j("mouseleave",Q);break;case"focus":j(Nt?"focusout":"blur",K);break;case"focusin":j("focusout",K)}}))}function z(){f.forEach((function(e){var t=e.node,n=e.eventType,o=e.handler,i=e.options;t.removeEventListener(n,o,i)})),f=[]}function q(e){var t,n=!1;if(v.state.isEnabled&&!Y(e)&&!u){var o="focus"===(null==(t=a)?void 0:t.type);a=e,l=e.currentTarget,R(),!v.state.isVisible&&ft(e,"MouseEvent")&&qt.forEach((function(t){return t(e)})),"click"===e.type&&(v.props.trigger.indexOf("mouseenter")<0||p)&&!1!==v.props.hideOnClick&&v.state.isVisible?n=!0:ee(e),"click"===e.type&&(p=!n),n&&!o&&te(e)}}function V(e){var t=e.target,n=_().contains(t)||w.contains(t);if("mousemove"!==e.type||!n){var o=J().concat(w).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,o=t.clientY;return e.every((function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,r=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var l="bottom"===r?s.top.y:0,d="top"===r?s.bottom.y:0,c="right"===r?s.left.x:0,p="left"===r?s.right.x:0,u=t.top-o+l>a,g=o-t.bottom-d>a,m=t.left-n+c>a,f=n-t.right-p>a;return u||g||m||f}))})(o,e)&&(M(),te(e))}}function Q(e){Y(e)||v.props.trigger.indexOf("click")>=0&&p||(v.props.interactive?v.hideWithInteractivity(e):te(e))}function K(e){v.props.trigger.indexOf("focusin")<0&&e.target!==_()||v.props.interactive&&e.relatedTarget&&w.contains(e.relatedTarget)||te(e)}function Y(e){return!!St.isTouch&&k()!==e.type.indexOf("touch")>=0}function X(){Z();var t=v.props,n=t.popperOptions,o=t.placement,i=t.offset,a=t.getReferenceClientRect,r=t.moveTransition,l=T()?jt(w).arrow:null,d=a?{getBoundingClientRect:a,contextElement:a.contextElement||_()}:e,c={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=P().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}},p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!r}},c];T()&&l&&p.push({name:"arrow",options:{element:l,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),v.popperInstance=st(d,w,Object.assign({},n,{placement:o,onFirstUpdate:s,modifiers:p}))}function Z(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){return xt(w.querySelectorAll("[data-tippy-root]"))}function ee(e){v.clearDelayTimeouts(),e&&$("onTrigger",[v,e]),H();var t=C(!0),o=L(),i=o[0],a=o[1];St.isTouch&&"hold"===i&&a&&(t=a),t?n=setTimeout((function(){v.show()}),t):v.show()}function te(e){if(v.clearDelayTimeouts(),$("onUntrigger",[v,e]),v.state.isVisible){if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=C(!1);t?o=setTimeout((function(){v.state.isVisible&&v.hide()}),t):i=requestAnimationFrame((function(){v.hide()}))}}else F()}}function Kt(e,t){void 0===t&&(t={});var n=Rt.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Ct,ut),window.addEventListener("blur",$t);var o=Object.assign({},t,{plugins:n}),i=It(e).reduce((function(e,t){var n=t&&Qt(t,o);return n&&e.push(n),e}),[]);return At(e)?i[0]:i}Kt.defaultProps=Rt,Kt.setDefaultProps=function(e){Object.keys(e).forEach((function(t){Rt[t]=e[t]}))},Kt.currentInput=St,Object.assign({},pe,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),Kt.setDefaultProps({render:Wt});var Yt='a,button,code,div,h1,h2,kbd,li,ol,p,span,strong,svg,ul{all:unset;box-sizing:border-box!important}div{display:block}:after,:before{all:unset}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}@media (forced-colors:active){[data-tippy-root]{border:2px solid transparent;border-radius:5px}}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=sa11y-theme][role=tooltip]{box-sizing:border-box!important}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-animation=fade][data-state=hidden]{opacity:0}.tippy-box[data-theme~=sa11y-theme][role=tooltip][data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}[role=dialog]{word-wrap:break-word;min-width:300px;text-align:start}[role=tooltip]{min-width:185px;text-align:center}.tippy-box[data-theme~=sa11y-theme]{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-bg);border-radius:4px;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15)!important;color:var(--sa11y-panel-primary);display:block;font-family:var(--sa11y-font-face);font-size:var(--sa11y-normal-text);font-weight:400;letter-spacing:normal;line-height:22px;outline:0;padding:8px;position:relative;transition-property:transform,visibility,opacity}.tippy-box[data-theme~=sa11y-theme] code{font-family:monospace;font-size:calc(var(--sa11y-normal-text) - 1px)}.tippy-box[data-theme~=sa11y-theme] code,.tippy-box[data-theme~=sa11y-theme] kbd{-webkit-font-smoothing:auto;background-color:var(--sa11y-panel-badge);border-radius:3.2px;color:var(--sa11y-panel-primary);letter-spacing:normal;line-height:22px;padding:1.6px 4.8px}.tippy-box[data-theme~=sa11y-theme] .tippy-content{padding:5px 9px}.tippy-box[data-theme~=sa11y-theme] sub,.tippy-box[data-theme~=sa11y-theme] sup{font-size:var(--sa11y-small-text)}.tippy-box[data-theme~=sa11y-theme] ul{margin:0;margin-block-end:0;margin-block-start:0;padding:0;position:relative}.tippy-box[data-theme~=sa11y-theme] li{display:list-item;margin:5px 10px 0 20px;padding-bottom:5px}.tippy-box[data-theme~=sa11y-theme] a{color:var(--sa11y-hyperlink);cursor:pointer;text-decoration:underline}.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] a:hover{text-decoration:none}.tippy-box[data-theme~=sa11y-theme] strong{font-weight:600}.tippy-box[data-theme~=sa11y-theme] hr{background:var(--sa11y-panel-bg-splitter);border:none;height:1px;margin:10px 0;opacity:1;padding:0}.tippy-box[data-theme~=sa11y-theme] button.close-btn{margin:0}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]{background:var(--sa11y-panel-bg-secondary);border:2px solid var(--sa11y-button-outline);border-radius:5px;color:var(--sa11y-panel-primary);cursor:pointer;display:block;margin:10px 5px 5px 0;padding:4px 8px}.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:focus,.tippy-box[data-theme~=sa11y-theme] button[data-sa11y-dismiss]:hover{background:var(--sa11y-shortcut-hover)}.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--sa11y-panel-bg)}.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--sa11y-panel-bg)}@media (forced-colors:active){.tippy-box[data-theme~=sa11y-theme][data-placement^=bottom]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=right]>.tippy-arrow:before,.tippy-box[data-theme~=sa11y-theme][data-placement^=top]>.tippy-arrow:before{filter:invert(1);forced-color-adjust:none}.tippy-box[data-theme~=sa11y-theme] .tippy-arrow{z-index:-1}}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:active,.tippy-box[data-theme~=sa11y-theme] button:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] a:focus:not(:focus-visible),.tippy-box[data-theme~=sa11y-theme] button:focus:not(:focus-visible){box-shadow:none;outline:0}.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus-visible,.tippy-box[data-theme~=sa11y-theme] a:focus-visible,.tippy-box[data-theme~=sa11y-theme] button:focus-visible{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.tippy-box[data-theme~=sa11y-theme] [tabindex="-1"]:focus,.tippy-box[data-theme~=sa11y-theme] a:focus,.tippy-box[data-theme~=sa11y-theme] button:focus{outline:3px solid transparent!important}}';class Xt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Yt+N,e.appendChild(t);const i=[];E.Annotations.Array.forEach((e=>{const t=e.shadowRoot.querySelectorAll(".sa11y-btn");t&&i.push(...Array.from(t))}));const a=Kt(i,{interactive:!0,trigger:"mouseenter click",arrow:!0,offset:[0,8],delay:[0,400],theme:"sa11y-theme",placement:"auto-start",allowHTML:!0,role:"dialog",aria:{content:null,expanded:"auto"},appendTo:e,zIndex:2147483645,onShow(e){const t=e.popper;a.forEach((e=>{e!==t&&e.hide()}));e.reference.getRootNode().host.setAttribute("data-sa11y-opened","");const n=t.querySelector(".close-btn"),o=()=>{e.hide(),e.reference.focus()};n.addEventListener("click",o);const i=t=>{"Escape"===t.key&&(e.hide(),e.reference.focus())};t.addEventListener("keydown",i);const r=()=>{n.removeEventListener("click",o),t.removeEventListener("keydown",i),t.removeEventListener("hidden",r)};t.addEventListener("hidden",r)},onTrigger(e,t){"click"===t.type&&setTimeout((()=>{e.popper.querySelector(".close-btn").focus(),function(e){const t=e.querySelectorAll("a[href]:not([disabled]), button:not([disabled])"),n=t[0],o=t[t.length-1];e.addEventListener("keydown",(t=>{const i="Tab"===t.key||9===t.keyCode,a=e.getRootNode();i&&(t.shiftKey?a.activeElement===n&&(o.focus(),t.preventDefault()):a.activeElement===o&&(n.focus(),t.preventDefault()))}))}(e.popper)}),0)},onHide(e){e.popper.querySelector(".close-btn").removeEventListener("click",(()=>{e.hide()}));e.reference.getRootNode().host.removeAttribute("data-sa11y-opened")}});let r;r=-1!==navigator.userAgent.indexOf("Mac")?'Option + S':'Alt + S',Kt(o.Panel.skipButton,{content:`${n._("SHORTCUT_TOOLTIP")} »
                                    ${r}`,allowHTML:!0,delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Zt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML=Yt+N,e.appendChild(t),this.object=Kt(o.Panel.dismissButton,{delay:[500,0],offset:[0,8],trigger:"mouseenter focusin",arrow:!0,placement:"top",theme:"sa11y-theme",maxWidth:165,role:"tooltip",aria:{content:null,expanded:!1},appendTo:e,zIndex:2147483645})}}class Jt extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.innerHTML='.instance{display:block}.instance-inline{display:inline-block;text-align:end}button{border-radius:50%;box-shadow:0 0 16px 0 rgba(0,0,0,.31);cursor:pointer;display:block;padding:0;transition:all .2s ease-in-out;z-index:8888}button,button:after{height:36px;position:absolute;width:36px}button:after{content:"";left:-7px;padding:7px;top:-7px}.warning-btn{margin:20px}.error-btn,.good-btn{margin:10px}.error-btn-text,.good-btn-text,.warning-btn-text{margin:-30px 10px}.error-btn,.error-btn-text{background:50% 50% var(--sa11y-error-svg) no-repeat;background-color:var(--sa11y-error);background-size:22px;border:1px solid var(--sa11y-error)}.error-btn-text:focus,.error-btn-text:hover,.error-btn:focus,.error-btn:hover{background-color:var(--sa11y-error-hover)}.good-btn,.good-btn-text{background:50% 50% var(--sa11y-good) var(--sa11y-good-svg) no-repeat;background-color:var(--sa11y-good);background-size:20px;border:1px solid var(--sa11y-good)}.good-btn-text:focus,.good-btn-text:hover,.good-btn:focus,.good-btn:hover{background-color:var(--sa11y-good-hover)}.warning-btn,.warning-btn-text{background:50% 50% var(--sa11y-warning) var(--sa11y-warning-svg) no-repeat;background-color:var(--sa11y-warning);background-size:24px;border:1px solid var(--sa11y-warning);transform:scaleX(var(--sa11y-icon-direction))}.warning-btn-text:focus,.warning-btn-text:hover,.warning-btn:focus,.warning-btn:hover{background-color:var(--sa11y-warning-hover)}.sa11y-btn:active,.sa11y-btn:focus{box-shadow:0 0 0 5px var(--sa11y-focus-color);outline:0}@media screen and (forced-colors:active){.sa11y-btn{border:1px solid transparent!important;forced-color-adjust:none;outline:3px solid transparent!important}}'+N,e.appendChild(t)}}const en=()=>{document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=((e,t,n)=>{let o=e;for(;null!==o;){if(window.getComputedStyle(o).getPropertyValue(t)===n)return o;o=o.parentElement}return null})(e,"overflow","hidden");null!==t&&t.setAttribute("data-sa11y-overflow","")}))};class tn extends HTMLElement{connectedCallback(){this.attachShadow({mode:"open"})}}class nn extends HTMLElement{connectedCallback(){const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n span.heading-label {\n background-color: #777678;\n background-image: linear-gradient(to bottom right, #b629ce, #16aec2);\n border-radius: 5px;\n border: 1px solid #36a5c3;\n color: white;\n display: inline-block;\n font-family: var(--sa11y-font-face);\n font-weight: 500;\n font-size: 17px;\n line-height: normal;\n letter-spacing: normal;\n margin: -5px 0 0 5px;\n padding: 3px;\n position: absolute;\n text-shadow: 1px 1px black;\n -webkit-text-fill-color: white;\n word-break: keep-all;\n z-index: 200;\n }\n @media screen and (forced-colors: active) {\n span.heading-label {\n border: 2px solid transparent;\n }\n }",e.appendChild(t)}}const on=(e,t)=>{if(0===e.offsetTop){const o=e.getRootNode().host,i=p(o,"display","none"),a=parseInt(o.getAttribute("data-sa11y-annotation"),10),r=w(t.find((e=>e.id===a)));(e=>{const t=p(e.getRootNode().host,"display","none");if(null!==t){m(t.previousElementSibling||t.parentNode)}})(e);const s=e.getAttribute("data-tippy-content");if(h(`${n._("NOT_VISIBLE_ALERT")}`,s,r),(()=>{const e=document.querySelector("sa11y-tooltips").shadowRoot.querySelector("button");null!==e&&e.click()})(),i){const e=i.previousElementSibling,{parentNode:t}=i;return e?u(e).top-150:u(t).top-150}}else b(),o.Panel.skipButton.focus();return u(e).top-150};let an=-1;const rn=()=>{const e=g.getItem("sa11y-latest-dismissed");null!==e&&(an=parseInt(e,10)-1),g.removeItem("sa11y-latest-dismissed");const t=i("[data-sa11y-opened]","root");t[0]&&(an=parseInt(t[0].getAttribute("data-sa11y-position"),10))},sn=e=>{rn();const t=E.Annotations.Array;an>=t.length-1&&(an=-1);const n=t[an+1].shadowRoot.querySelector("button"),i=on(n,e);window.scrollTo({top:i,behavior:`${o.Global.scrollBehaviour}`}),0!==n.offsetTop&&(n.focus(),n.click()),an+=1},ln=e=>{if(rn(),an>0){const t=E.Annotations.Array[an-1].shadowRoot.querySelector("button"),n=on(t,e);window.scrollTo({top:n,behavior:`${o.Global.scrollBehaviour}`}),0!==t.offsetTop&&(t.focus(),t.click()),an-=1,-1===an&&(an=E.Annotations.Array.length-1)}};let dn,cn;function pn(e){dn=t=>{!function(e,t){E.Annotations.Array.length&&!o.Panel.skipButton.hasAttribute("disabled")&&(e.altKey&&"KeyS"===e.code?(e.preventDefault(),sn(t)):e.altKey&&"KeyW"===e.code&&(e.preventDefault(),ln(t)))}(t,e)},cn=()=>{sn(e)},document.addEventListener("keydown",dn),o.Panel.skipButton.addEventListener("click",cn)}const un=(e,t)=>{const n=[];return n[0]=window.getComputedStyle(e,":before").getPropertyValue("content"),n[1]=window.getComputedStyle(e,":after").getPropertyValue("content"),n[0]="none"===n[0]?"":n[0].replace(/^"(.*)"$/,"$1"),n[1]="none"===n[1]?"":n[1].replace(/^"(.*)"$/,"$1"),` ${n[0]}${t}${n[1]}`},gn=e=>{for(let t=0;t<1e3;t++){if(e.nextSibling())return e.previousNode();if(!e.parentNode())return!1}return!1},mn=(e,t=!1)=>{const n=e.getAttribute("aria-labelledby");if(!t&&n){const e=n.split(/\s+/);if(e.length>0){let t="";return e.forEach((e=>{const n=document.querySelector(`#${CSS.escape(e)}`);t+=n?`${fn(n,"",1)}`:""})),t}}const o=e.getAttribute("aria-label");return o&&o.trim().length>0?o:"noAria"},fn=(e,t,n=0)=>{const o=mn(e,n);if("noAria"!==o)return o;let i="";if(!e.children.length)return i=un(e,e.textContent),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i;const a=(r=e,s=!0,l=!0,document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:e=>s&&e.nodeType===Node.ELEMENT_NODE||l&&e.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));var r,s,l;let d=!1,c=!1,p=0,u=!0;const g="noscript, style, script",m=e.querySelectorAll(t?`${t}, ${g}`:g);for(;a.nextNode()&&u;){p+=1;if(Array.from(m).some((e=>e.contains(a.currentNode))));else if(a.currentNode.nodeType===Node.TEXT_NODE)i+=` ${a.currentNode.nodeValue}`;else if(d&&!a.currentNode.closest("a"))c===i&&(i+=d),d=!1,c=!1;else if(!a.currentNode.hasAttribute("aria-hidden")||n&&p<3){const e=mn(a.currentNode,n);if("noAria"!==e)i+=` ${e}`,gn(a)||(u=!1);else switch(a.currentNode.tagName){case"IMG":a.currentNode.hasAttribute("alt")&&(i+=a.currentNode.getAttribute("alt"));break;case"SVG":case"svg":"image"===a.currentNode.getAttribute("role")&&a.currentNode.hasAttribute("alt")&&(i+=un(a.currentNode,a.currentNode.getAttribute("alt")),gn(a)||(u=!1));break;case"A":a.currentNode.hasAttribute("title")?(d=a.currentNode.getAttribute("title"),c=i):(d=!1,c=!1),i+=un(a.currentNode,"");break;default:i+=un(a.currentNode,"")}}else gn(a)||(u=!1)}d&&!c&&(i+=` ${d}`);return i=i.replace(/[\uE000-\uF8FF]/gu,""),!i.trim()&&e.hasAttribute("title")?e.getAttribute("title"):i};function bn(e,t){return E.Found.Images.forEach((i=>{const a="noAria"===mn(i)?i.getAttribute("alt"):mn(i),r=i.closest("a[href]"),l=r?c(r,o.Exclusions.LinkSpan).textContent:"",p=t.linkIgnoreStrings?l.replace(t.linkIgnoreStrings,""):l,u=r?d(p).length:0;if("true"!==i.getAttribute("aria-hidden"))if(r&&"true"===r.getAttribute("aria-hidden")){"-1"===r.getAttribute("tabindex")||e.push({element:i,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!1,position:"beforebegin"})}else if(null===a)if(r){const t=0===u?n.sprintf("MISSING_ALT_LINK_MESSAGE"):n.sprintf("MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE");e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else e.push({element:i,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=d(s(a)),l=(e=>{const o=[null,null,null];[".png",".jpg",".jpeg",".webp",".gif",".tiff",".svg","DSC_","IMG_","Photo_","Pic_","Pexels_","AdobeStock_","ScreenShot_","Picture_","Snap_","Capture_"].forEach((t=>{const n=t.toLowerCase();e.toLowerCase().indexOf(n)>=0&&(o[0]=t)})),(t.susAltStopWords?t.susAltStopWords.split(",").map((e=>e.trim())):n._("SUSPICIOUS_ALT_STOPWORDS")).forEach((t=>{const n=e.toLowerCase().indexOf(t);n>-1&&n<6&&(o[1]=t)})),n._("PLACEHOLDER_ALT_STOPWORDS").forEach((t=>{e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(o[2]=t)}));const{extraPlaceholderStopWords:i}=t;i.length&&i.split(",").map((e=>e.trim())).forEach((t=>{const n=e.toLowerCase().indexOf(t);n>-1&&n<6&&(o[2]=t)}));return o})(o),c=i.getAttribute("aria-label")||i.getAttribute("aria-labelledby"),p=""===a||" "===a,g=i.closest("figure"),m=g?.querySelector("figcaption"),b=m?m.textContent.trim():"",h=i.getAttribute("src")?i.getAttribute("src"):i.getAttribute("srcset");if(c&&""===o)return void e.push({element:i,type:"error",content:n.sprintf("MISSING_ALT_MESSAGE"),inline:!1,position:"beforebegin"});if(p){const t=f(`DECORATIVE${h}`);if(r){const t=0===u?"error":"good",o=0===u?n.sprintf("LINK_IMAGE_NO_ALT_TEXT"):n.sprintf("LINK_IMAGE_HAS_TEXT");e.push({element:i,type:t,content:o,inline:!1,position:"beforebegin"})}else if(g){const o=m&&b.length?n.sprintf("IMAGE_FIGURE_DECORATIVE"):n.sprintf("IMAGE_DECORATIVE");e.push({element:i,type:"warning",content:o,inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:i,type:"warning",content:n.sprintf("IMAGE_DECORATIVE"),inline:!1,position:"beforebegin",dismiss:t});return}if(null!==l[0]){const t=r?n.sprintf("LINK_ALT_HAS_FILE_EXTENSION",l[0],o):n.sprintf("ALT_HAS_FILE_EXTENSION",l[0],o);e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==l[2]){const t=r?n.sprintf("LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE",o):n.sprintf("ALT_PLACEHOLDER_MESSAGE",o);e.push({element:i,type:"error",content:t,inline:!1,position:"beforebegin"})}else if(null!==l[1]){const t=f(`${h+o}`),a=r?n.sprintf("LINK_IMAGE_SUS_ALT_MESSAGE",l[1],o):n.sprintf("ALT_HAS_SUS_WORD",l[1],o);e.push({element:i,type:"warning",content:a,inline:!1,position:"beforebegin",dismiss:t})}else if(a.length>t.altTextMaxCharLength){const t=f(`${h+o+a.length}`),s=r?n.sprintf("LINK_IMAGE_LONG_ALT",a.length,o):n.sprintf("IMAGE_ALT_TOO_LONG",a.length,o);e.push({element:i,type:"warning",content:s,inline:!1,position:"beforebegin",dismiss:t})}else if(r){const t=f(`${h+o}`),a=s(d(fn(r))),l=0===u?n.sprintf("LINK_IMAGE_ALT_WARNING",o):n.sprintf("LINK_IMAGE_ALT_AND_TEXT_WARNING",o,a);e.push({element:i,type:"warning",content:l,inline:!1,position:"beforebegin",dismiss:t})}else if(g){if(!!m&&b.toLowerCase()===o.trim().toLowerCase()){const t=f(`FIGURE${h+o}`);e.push({element:i,type:"warning",content:n.sprintf("IMAGE_FIGURE_DUPLICATE_ALT",o),inline:!1,position:"beforebegin",dismiss:t})}else e.push({element:i,type:"good",content:n.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}else e.push({element:i,type:"good",content:n.sprintf("IMAGE_PASS",o),inline:!1,position:"beforebegin"})}})),e}function hn(e,t,i){let a;return E.Found.Headings.forEach(((r,l)=>{const c=fn(r,t.headerIgnoreSpan),u=s(d(t.headerIgnoreStrings?c.replace(t.headerIgnoreStrings,""):c)),g=o.Root.areaToCheck.contains(r),m=o.Root.areaToCheck.contains(r.getRootNode().host),b=g||m,h=parseInt(r.getAttribute("aria-level")||r.tagName.slice(1),10),y=u.length;let v=null,x=null;if(h-a>1&&0!==l)if(t.nonConsecutiveHeadingIsError)v=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else{x=n.sprintf("HEADING_NON_CONSECUTIVE_LEVEL",a,h);const t=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:b})}else if(0===y)if(r.querySelectorAll("img").length){const t=r.querySelector("img").getAttribute("alt");null!==t&&" "!==t&&""!==t||(v=n.sprintf("HEADING_EMPTY_WITH_IMAGE",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b}))}else v=n.sprintf("HEADING_EMPTY",h),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(0===l&&1!==h&&2!==h)v=n.sprintf("HEADING_FIRST"),e.push({element:r,type:"error",content:v,inline:!1,position:"beforebegin",isWithinRoot:b});else if(y>t.headingMaxCharLength&&t.flagLongHeadings){x=n.sprintf("HEADING_LONG",y);const t=f(`HEADING${h+u}`);e.push({element:r,type:"warning",content:x,inline:!1,position:"beforebegin",dismiss:t,isWithinRoot:b})}a=h;const w=!!((E=r).getAttribute("hidden")||0===E.offsetWidth&&0===E.offsetHeight||1===E.clientHeight&&1===E.clientWidth)||"none"===getComputedStyle(E).getPropertyValue("display");var E;const A=p(r,"display","none");if(null!==v)i.push({element:r,headingLevel:h,text:u,index:l,type:"error",hidden:w,visibleParent:A,isWithinRoot:b});else if(null!==x){const e=f(`HEADING${h+u}`);i.push({element:r,headingLevel:h,text:u,index:l,type:"warning",hidden:w,visibleParent:A,dismiss:e,isWithinRoot:b})}else null!==v&&null!==x||i.push({element:r,headingLevel:h,text:u,index:l,hidden:w,visibleParent:A,isWithinRoot:b})})),0===E.Found.HeadingOne.length&&t.missingH1&&e.push({type:"warning",content:n.sprintf("HEADING_MISSING_ONE"),dismiss:"missingH1"}),{results:e,headingOutline:i}}function yn(e,t){const i={};return E.Found.Links.forEach((a=>{const r=fn(a,o.Exclusions.LinkSpan),l=d(t.linkIgnoreStrings?r.replace(t.linkIgnoreStrings,""):r),c=(e=>{const o=[null,null,null,null];return n._("PARTIAL_ALT_STOPWORDS").forEach((t=>(e.length===t.length&&e.toLowerCase().indexOf(t)>=0&&(o[0]=t),!1))),(t.linkStopWords?t.linkStopWords.split(",").map((e=>e.trim())):n._("WARNING_ALT_STOPWORDS")).forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[1]=t),!1))),["doiorg/","dlacmorg/","linkspringercom/","pubmedncbinlmnihgov/","scholargooglecom/","ieeexploreieeeorg/","researchgatenet/publication","sciencedirectcom/science/article"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[2]=t),!1))),["http","edu/","com/","net/","org/","us/","ca/","de/","icu/","uk/","ru/","info/","top/","xyz/","tk/","cn/","ga/","cf/","nl/","io/","fr/","pe/","nz/","pt/","es/","pl/","ua/"].forEach((t=>(e.toLowerCase().indexOf(t)>=0&&(o[3]=t),!1))),o})(l.replace(/[^\w\s/]/g,"").replace(/\s+/g," ").trim()),p=1===l.length&&/[^a-zA-Z0-9]/g.test(l),u=l.match(/([<>↣↳←→↓«»↴]+)/),m=u?u[1]:null,b=a.getAttribute("href"),h="true"===a.getAttribute("aria-hidden"),y="-1"===a.getAttribute("tabindex"),v=a.querySelector(":scope [aria-labelledby], :scope [aria-label]")||a.getAttribute("aria-labelledby")||a.getAttribute("aria-label"),x=a.querySelector(":scope [aria-labelledby]")||a.getAttribute("aria-labelledby");if(a.querySelectorAll("img").length);else if(h)y||e.push({element:a,type:"error",content:n.sprintf("LINK_HIDDEN_FOCUSABLE"),inline:!0,position:"afterend"});else if(!b&&""!==b||0!==l.length)if(null!==c[0])e.push({element:a,type:"error",content:n.sprintf("LINK_STOPWORD",c[0]),inline:!0,position:"afterend"});else if(null!==c[1]||null!==m){const t=f(`LINK${l+b}`),o=m||c[1];e.push({element:a,type:"warning",content:n.sprintf("LINK_BEST_PRACTICES",o),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==c[2]&&t.linksToDOI){const t=f(`LINK${l+c[2]+b}`);l.length>8&&e.push({element:a,type:"warning",content:n.sprintf("LINK_DOI"),inline:!0,position:"beforebegin",dismiss:t})}else if(null!==c[3]&&t.URLAsLinkTextWarning){const o=f(`LINK${l+c[2]+b}`);l.length>t.URLTextMaxCharLength&&e.push({element:a,type:"warning",content:n.sprintf("LINK_URL"),inline:!0,position:"beforebegin",dismiss:o})}else if(v){if(t.showGoodLinkButton){const t=s(l);e.push({element:a,type:"good",content:n.sprintf("LINK_LABEL",t),inline:!0,position:"afterend"})}}else p&&e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});else x?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LABELLEDBY"),inline:!0,position:"afterend"}):a.children.length?e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY_LINK_NO_LABEL"),inline:!0,position:"afterend"}):e.push({element:a,type:"error",content:n.sprintf("LINK_EMPTY"),inline:!0,position:"afterend"});if(t.linksAdvancedPlugin){if("On"===g.getItem("sa11y-remember-links-advanced")||t.headless||t.checkAllHideToggles){const t=n._("NEW_WINDOW_PHRASES").some((e=>l.toLowerCase().includes(e))),o=["pdf","doc","docx","word","mp3","ppt","text","pptx","txt","exe","dmg","rtf","windows","macos","csv","xls","xlsx","mp4","mov","avi","zip"].concat(n._("FILE_TYPE_PHRASES")).some((e=>l.toLowerCase().includes(e))),r=a.matches("\n a[href$='.pdf'],\n a[href$='.doc'],\n a[href$='.docx'],\n a[href$='.zip'],\n a[href$='.mp3'],\n a[href$='.txt'],\n a[href$='.exe'],\n a[href$='.dmg'],\n a[href$='.rtf'],\n a[href$='.pptx'],\n a[href$='.ppt'],\n a[href$='.xls'],\n a[href$='.xlsx'],\n a[href$='.csv'],\n a[href$='.mp4'],\n a[href$='.mov'],\n a[href$='.avi']\n "),d=l.replace(/'|"|-|\.|\s+/g,"").toLowerCase();if(0!==d.length)if(i[d]&&!i[b]){const t=f(`LINK${d+b}`),o=s(l);e.push({element:a,type:"warning",content:n.sprintf("LINK_IDENTICAL_NAME",o),inline:!0,position:"beforebegin",dismiss:t})}else if("_blank"!==a.getAttribute("target")||r||t)if(r&&!o){const t=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:n.sprintf("FILE_TYPE_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}else i[d]=!0,i[b]=!0;else{const t=f(`LINK${d+b}`);e.push({element:a,type:"warning",content:n.sprintf("NEW_TAB_WARNING"),inline:!0,position:"beforebegin",dismiss:t})}}}})),e}const vn=e=>{if(e.startsWith("color(srgb")){const t=/srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?/,n=e.match(t);if(n&&n.length>=4){const[e,t,o,i]=n.slice(1),a=Math.min(1,parseFloat(e)),r=Math.min(1,parseFloat(t)),s=Math.min(1,parseFloat(o)),l=void 0!==i?Math.min(1,parseFloat(i)):1;return`rgba(${Math.round(255*a)}, ${Math.round(255*r)}, ${Math.round(255*s)}, ${l})`}return"invalid-format"}return e};e.Lang=n,e.Sa11y=class{constructor(e){const p={...t,...e};this.initialize=()=>{var e;(()=>{const{doNotRun:e}=p;return e.trim().length>0&&document.querySelector(e)})()||(customElements.define("sa11y-heading-label",nn),customElements.define("sa11y-heading-anchor",tn),customElements.define("sa11y-annotation",Jt),customElements.define("sa11y-tooltips",Xt),customElements.define("sa11y-dismiss-tooltip",Zt),customElements.define("sa11y-control-panel",M),customElements.define("sa11y-console-error",R),o.initializeGlobal(p),o.initializeReadability(p),o.initializeExclusions(p),o.initializeEmbeddedContent(p),e=()=>{if(p.headless)this.checkAll(),g.removeItem("sa11y-dismissed");else{const i=new M;document.body.appendChild(i),function(e,t){o.Global.contrastPlugin?o.Panel.contrastToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-contrast")?(g.setItem("sa11y-remember-contrast","Off"),o.Panel.contrastToggle.textContent=`${n._("OFF")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-contrast","On"),o.Panel.contrastToggle.textContent=`${n._("ON")}`,o.Panel.contrastToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-contrast","Off"),o.Global.formLabelsPlugin?o.Panel.labelsToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-labels")?(g.setItem("sa11y-remember-labels","Off"),o.Panel.labelsToggle.textContent=`${n._("OFF")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-labels","On"),o.Panel.labelsToggle.textContent=`${n._("ON")}`,o.Panel.labelsToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-labels","Off"),o.Global.linksAdvancedPlugin?o.Panel.linksToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-links-advanced")?(g.setItem("sa11y-remember-links-advanced","Off"),o.Panel.linksToggle.textContent=`${n._("OFF")}`,o.Panel.linksToggle.setAttribute("aria-pressed","false"),t(!1),await e()):(g.setItem("sa11y-remember-links-advanced","On"),o.Panel.linksToggle.textContent=`${n._("ON")}`,o.Panel.linksToggle.setAttribute("aria-pressed","true"),t(!1),await e())}:g.setItem("sa11y-remember-links-advanced","Off"),o.Readability.Plugin&&(o.Panel.readabilityToggle.onclick=async()=>{"On"===g.getItem("sa11y-remember-readability")?(g.setItem("sa11y-remember-readability","Off"),o.Panel.readabilityToggle.textContent=`${n._("OFF")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","false"),o.Panel.readability.classList.remove("active"),t(!1),await e()):(g.setItem("sa11y-remember-readability","On"),o.Panel.readabilityToggle.textContent=`${n._("ON")}`,o.Panel.readabilityToggle.setAttribute("aria-pressed","true"),o.Panel.readability.classList.add("active"),t(!1),await e())},"On"===g.getItem("sa11y-remember-readability")&&o.Panel.readability.classList.add("active"));const i=window.matchMedia("(prefers-color-scheme: dark)");i.matches?(o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):(o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),i.addEventListener("change",(()=>{i.matches?(o.Global.html.setAttribute("data-sa11y-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"),g.setItem("sa11y-remember-theme","")):(o.Global.html.setAttribute("data-sa11y-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false"),g.setItem("sa11y-remember-theme",""))})),o.Panel.themeToggle.onclick=async()=>{const e=g.getItem("sa11y-remember-theme");"dark"===e?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):"light"===e?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):i.matches?(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")):(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true"))};const a=g.getItem("sa11y-remember-theme");"dark"===a?(o.Global.html.setAttribute("data-sa11y-theme","dark"),g.setItem("sa11y-remember-theme","dark"),o.Panel.themeToggle.textContent=`${n._("ON")}`,o.Panel.themeToggle.setAttribute("aria-pressed","true")):"light"===a&&(o.Global.html.setAttribute("data-sa11y-theme","light"),g.setItem("sa11y-remember-theme","light"),o.Panel.themeToggle.textContent=`${n._("OFF")}`,o.Panel.themeToggle.setAttribute("aria-pressed","false")),o.Global.colourFilterPlugin&&o.Panel.colourFilterSelect.addEventListener("change",(async()=>{const i=parseInt(o.Panel.colourFilterSelect.value,10),a=["protanopia","deuteranopia","tritanopia","monochromacy"],r=[n._("RED_EYE"),n._("GREEN_EYE"),n._("BLUE_EYE"),n._("MONO_EYE")];i>=1&&i<=4?window.matchMedia("(forced-colors: active)").matches?h(n._("COLOUR_FILTER_HIGH_CONTRAST_MESSAGE")):(o.Root.areaToCheck.setAttribute("data-sa11y-filter",a[i-1]),o.Panel.colourFilterIcon.setAttribute("aria-label",r[i-1]),y(["data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow"],"document"),v(["sa11y-annotation","sa11y-tooltips","sa11y-heading-label"],"document"),o.Panel.skipButton.disabled=!0,o.Panel.pageIssues.classList.remove("active"),"left"!==o.Global.panelPosition&&"right"!==o.Global.panelPosition||o.Panel.settingsContent.classList.add("hide-settings-border"),o.Panel.colourFilterSelect.classList.add("active"),o.Panel.colourPanel.classList.add("active"),o.Panel.colourPanel.setAttribute("data-colour",a[i-1]),o.Panel.content.hidden=!0):(o.Root.areaToCheck.removeAttribute("data-sa11y-filter"),o.Panel.settingsContent.classList.remove("hide-settings-border"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.colourPanel.classList.remove("active"),o.Panel.colourPanel.removeAttribute("data-colour"),o.Panel.content.hidden=!1,t(!1),await e())}))}(this.checkAll,this.resetAll),function(){o.Panel.outlineToggle.addEventListener("click",(()=>{"true"===o.Panel.outlineToggle.getAttribute("aria-expanded")?G():(D(),U(),H()),o.Panel.outlineHeader.focus()})),"Opened"===g.getItem("sa11y-remember-outline")&&D(),o.Global.showImageOutline&&(o.Panel.imagesToggle.addEventListener("click",(()=>{"true"===o.Panel.imagesToggle.getAttribute("aria-expanded")?H():(B(),G(),U()),o.Panel.imagesHeader.focus()})),"Opened"===g.getItem("sa11y-remember-images")&&B()),o.Panel.settingsToggle.addEventListener("click",(()=>{"true"===o.Panel.settingsToggle.getAttribute("aria-expanded")?U():(F(),G(),H()),o.Panel.settingsHeader.focus()})),"Opened"===g.getItem("sa11y-remember-settings")&&F(),o.Panel.skipToPageIssues.addEventListener("click",(()=>{o.Panel.pageIssuesHeader.focus()})),x(o.Panel.pageIssuesList,o.Panel.pageIssuesContent);const e=o.Panel.panel.querySelectorAll("[role=tab]");let t=Array.from(e).findIndex((e=>e.classList.contains("active")));e.forEach((n=>{n.addEventListener("keydown",(n=>{"ArrowRight"===n.key?(n.preventDefault(),t=(t+1)%e.length,e[t].focus()):"ArrowLeft"===n.key&&(n.preventDefault(),t=(t-1+e.length)%e.length,e[t].focus())}))}))}(),function(){if(o.Global.colourFilterPlugin&&!1===o.Global.headless){const e=document.createElement("div");e.id="sa11y-colour-filters",e.setAttribute("aria-hidden","true"),e.innerHTML='\n \x3c!-- DaltonLens SVG filters to simulate color vision deficiencies --\x3e\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',document.body.appendChild(e)}}(),I(p.detectSPArouting,this.checkAll,this.resetAll),this.dismissTooltip=new Zt,document.body.appendChild(this.dismissTooltip),o.Panel.toggle.disabled=!1,setTimeout((()=>this.checkAll()),p.delayCheck),p.delayCheck>=700&&(o.Panel.toggle.disabled=!0),e=this.checkAll,t=this.resetAll,o.Panel.toggle.addEventListener("click",(n=>{"Opened"===g.getItem("sa11y-remember-panel")?(n.preventDefault(),g.setItem("sa11y-remember-panel","Closed"),o.Panel.toggle.classList.remove("on"),o.Panel.toggle.setAttribute("aria-expanded","false"),t(),0===o.Panel.notifCount.innerHTML.trim().length?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"):(n.preventDefault(),g.setItem("sa11y-remember-panel","Opened"),o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),e(),x(o.Panel.outlineList,o.Panel.outlineContent))})),"Opened"===g.getItem("sa11y-remember-panel")&&(o.Panel.toggle.classList.add("on"),o.Panel.toggle.setAttribute("aria-expanded","true"),o.Panel.panel.style.transform=""),document.onkeydown=e=>{const t=e||window.event;t.altKey&&"KeyA"===t.code&&(o.Panel.toggle.click(),o.Panel.toggle.focus())}}var e,t},"complete"===document.readyState?e():window.addEventListener("load",e))},this.checkAll=async(e=p.checkRoot,t=p.readabilityRoot)=>{try{this.results=[],this.headingOutline=[],this.imageOutline=[],this.errorCount=0,this.warningCount=0,this.customChecksRunning=!1;document.querySelector(e)||h(`${n.sprintf("ERROR_MISSING_ROOT_TARGET",e)}`),o.initializeRoot(e,t),function(e){if(e.autoDetectShadowComponents){const t="sa11y-heading-label, sa11y-heading-anchor, sa11y-annotation, sa11y-tooltips, sa11y-dismiss-tooltip, sa11y-control-panel, #sa11y-colour-filters, #sa11y-colour-filters *, script",n=document.querySelector(e.checkRoot);(n?Array.from(n.querySelectorAll(`*:not(${t})`)):Array.from(document.body.querySelectorAll(`*:not(${t})`))).forEach((e=>{e.shadowRoot&&"open"===e.shadowRoot.mode&&(e.setAttribute("data-sa11y-has-shadow-root",""),A(e))}))}else e.shadowComponents&&document.querySelectorAll(e.shadowComponents).forEach((e=>{e.setAttribute("data-sa11y-has-shadow-root",""),A(e)}))}(p),E.initializeElements(p),hn(this.results,p,this.headingOutline),yn(this.results,p),bn(this.results,p),function(e,t){if(t.contrastPlugin&&("On"===g.getItem("sa11y-remember-contrast")||t.headless||t.checkAllHideToggles)){let t={errors:[],warnings:[]};const o={parseRgb(e){let t,n,o,i,a;if(n=e.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(o=n.slice(1,4),t=i=0;i<=2;t=++i)o[t]=+o[t];o[3]=1}else if(n=e.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(o=n.slice(1,5),t=a=0;a<=3;t=++a)o[t]=+o[t];return o},relativeLuminance(e){const t=[];for(let n=0;n<3;n++){const o=e[n]/255;t.push(o<.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrastRatio(e,t){const n=o.relativeLuminance(o.parseRgb(e)),i=o.relativeLuminance(o.parseRgb(t));return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},getBackground(e){if(11===e.nodeType){const t=e.getRootNode().host.parentNode;if(null===t)return"alpha";e=t}const t=getComputedStyle(e),n=vn(t.backgroundColor),i=t.backgroundImage,a=`${o.parseRgb(n)}`.split(",");return a[3]<1&&a[3]>0?"alpha":"rgba(0, 0, 0, 0)"!==n&&"transparent"!==n&&"none"===i&&"0"!==a[3]?n:"none"!==i?"image":"HTML"===e.tagName?"rgb(255, 255, 255)":o.getBackground(e.parentNode)},check(){t={errors:[],warnings:[]};for(let e=0;ee+(3===t.nodeType?t.textContent:"")),"").trim(),m=window.getComputedStyle(n),f=m.clip.replace(/\s/g,""),b=m.getPropertyValue("clip-path"),h=parseFloat(m.width),y=parseFloat(m.height);if(1===h&&1===y&&("inset(50%)"===b||/^(rect\(0(,\s*0){3}\)|rect\(1px(,\s*1px){3}\))$/.test(f)))return;if(s.startsWith("color("))a={elem:n},t.warnings.push(a);else if("SVG"===p)e=Math.round(100*o.contrastRatio(l,u))/100,e<3&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i));else if(g.length||"INPUT"===p||"SELECT"===p||"TEXTAREA"===p){const r=n.getAttribute("type");"range"===r||"color"===r||("image"===u||"alpha"===u?(a={elem:n},t.warnings.push(a)):(e=Math.round(100*o.contrastRatio(s,u))/100,d>=18||d>=14&&c>=700?e<3&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i)):e<4.5&&(i={elem:n,ratio:`${e}:1`},t.errors.push(i))))}}}return t}};o.check(),t.errors.forEach((t=>{const o=t.elem,i=t.ratio,a=s(c(o.cloneNode(!0),"script, style").textContent);"INPUT"===o.tagName?e.push({element:o,type:"error",content:n.sprintf("CONTRAST_INPUT_ERROR",i),inline:!1,position:"beforebegin"}):e.push({element:o,type:"error",content:n.sprintf("CONTRAST_ERROR",i,a),inline:!1,position:"beforebegin"})})),t.warnings.forEach((t=>{const o=t.elem,i=c(o.cloneNode(!0),"script, style").textContent,a=f(`CONTRAST${i}`),r=s(i);e.push({element:o,type:"warning",content:n.sprintf("CONTRAST_WARNING",r),inline:!1,position:"beforebegin",dismiss:a})}))}}(this.results,p),function(e,t){t.formLabelsPlugin&&("On"===g.getItem("sa11y-remember-labels")||t.headless||t.checkAllHideToggles)&&E.Found.Inputs.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(a(t)||o&&i)return;const r=d(fn(t)),l=t.getAttribute("alt"),c=t.getAttribute("type"),p=t.getAttribute("title"),u=t.getAttribute("aria-label")||t.getAttribute("aria-labelledby");if("submit"===c||"button"===c||"hidden"===c)return;if("image"===c&&(!l||" "===l))return void(u||p||e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_IMAGE_INPUT_MESSAGE"),inline:!1,position:"beforebegin"}));if("reset"===c){const o=f(`INPUT${r}`);return void e.push({element:t,type:"warning",content:n.sprintf("LABELS_INPUT_RESET_MESSAGE"),inline:!1,position:"beforebegin",dismiss:o})}if(u||p){if(0===r.length)e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"});else{const o=f(`INPUT${r}`),i=s(r);e.push({element:t,type:"warning",content:n.sprintf("LABELS_ARIA_LABEL_INPUT_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:o})}return}const g=t.closest("label"),m=g?d(fn(g)):"";if(g&&m.length)return;const b=t.getAttribute("id");b?E.Found.Labels.some((e=>e.getAttribute("for")===b))||e.push({element:t,type:"error",content:n.sprintf("LABELS_NO_FOR_ATTRIBUTE_MESSAGE",b),inline:!1,position:"beforebegin"}):e.push({element:t,type:"error",content:n.sprintf("LABELS_MISSING_LABEL_MESSAGE"),inline:!1,position:"beforebegin"})}))}(this.results,p),function(e,t){if(t.badLinksQA&&E.Found.CustomErrorLinks.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("QA_BAD_LINK",t),inline:!0,position:"beforebegin"})})),t.strongItalicsQA&&E.Found.StrongItalics.forEach((t=>{const o=t.textContent.trim().length,i=f(t.tagName+t.textContent);o>400&&e.push({element:t.parentNode,type:"warning",content:n.sprintf("QA_BAD_ITALICS"),inline:!1,position:"beforebegin",dismiss:i})})),E.Found.Links.forEach((i=>{if(i.hasAttribute("href")){const a=i.getAttribute("href"),r=i.matches(o.Global.documentLinks),s=i.matches('a[href$=".pdf"], a[href*=".pdf?"]'),l=f(`DOCUMENT${a}`),d="button"===i.getAttribute("role"),c=0!==i.textContent.trim().length;if(t.inPageLinkQA&&(a.startsWith("#")||""===a)&&!d&&c){const t=a.substring(1);document.getElementById(t)||document.getElementById(decodeURIComponent(t))||document.getElementById(encodeURIComponent(t))||e.push({element:i,type:"error",content:n.sprintf("QA_IN_PAGE_LINK"),inline:!0,position:"beforebegin"})}t.documentQA&&r?e.push({element:i,type:"warning",content:n.sprintf("QA_DOCUMENT"),inline:!0,position:"beforebegin",dismiss:l}):t.pdfQA&&s&&e.push({element:i,type:"warning",content:n.sprintf("QA_PDF"),inline:!0,position:"beforebegin",dismiss:l})}})),t.langQA&&(!E.Found.Language||E.Found.Language.length<2)&&e.push({type:"error",content:n.sprintf("QA_PAGE_LANGUAGE")}),t.blockquotesQA&&E.Found.Blockquotes.forEach((t=>{const o=t.textContent;if(o.trim().length<25){const i=s(o),a=f(`BLOCKQUOTE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_BLOCKQUOTE_MESSAGE",i),inline:!1,position:"beforebegin",dismiss:a})}})),t.tablesQA&&E.Found.Tables.forEach((o=>{const i=o.querySelectorAll("th"),a=o.querySelectorAll("h1, h2, h3, h4, h5, h6");t.tablesQAmissingTH&&0===i.length&&e.push({element:o,type:"error",content:n.sprintf("TABLES_MISSING_HEADINGS"),inline:!1,position:"beforebegin"}),t.tablesQAsemanticHeadings&&a.length>0&&a.forEach((t=>{e.push({element:t,type:"error",content:n.sprintf("TABLES_SEMANTIC_HEADING"),inline:!1,position:"beforebegin"})})),i.forEach((i=>{if(t.tablesQAemptyTH&&0===i.textContent.trim().length){const a=t.tablesQAemptyTHisError?"error":"warning",r=f(`TABLE${o.textContent}`);e.push({element:i,type:a,content:n.sprintf("TABLES_EMPTY_HEADING"),inline:!1,position:"afterbegin",dismiss:r})}}))})),t.fakeHeadingsQA){const t='h1, h2, h3, h4, h5, h6, [role="heading"][aria-level], blockquote, table',o=o=>{const i=getComputedStyle(o).fontSize.replace("px",""),a=l(o),r=null===a.match(/[.;?!"]/),d=a.length>=4&&a.length<=120;if(i>=24&&!o.closest(t)&&d&&r){const t=s(a),i=f(`BOLD${t}`);e.push({element:o,type:"warning",content:n.sprintf("QA_FAKE_HEADING",t),inline:!1,position:"beforebegin",dismiss:i})}},i=o=>{if(/^(|)/i.test(o.innerHTML.trim())&&!o.closest(t)){const t=o.querySelector("strong, b"),i=l(t),a=null===i.match(/[.:;?!"']/);if(i.length>=3&&i.length<=120&&a){const a=c(o,"strong, bold").textContent.trim().length;if(0!==a&&a<=250)return;const r=s(i),l=f(`BOLD${r}`);e.push({element:t,type:"warning",content:n.sprintf("QA_FAKE_HEADING",r),inline:!1,position:"beforebegin",dismiss:l})}}};E.Found.Paragraphs.forEach((e=>{o(e),i(e)}))}const i=new RegExp(/(([023456789][\d\s])|(1\d))/,""),a=new RegExp(/(^[aA1αаΑ]|[^\p{Alphabetic}\s])[-\s.)]/,"u"),r=new RegExp(/\p{Extended_Pictographic}/,"u"),d=["a","A","α","Α","а","А","1"],p=/[([{#]/,u={2:"1",b:"a",B:"A","β":"α","Β":"Α","б":"а","Б":"А"},g=e=>e.replace(/^b|^B|^б|^Б|^β|^В|^2/,(e=>u[e]));let m="",b="",h=!1;if(E.Found.Paragraphs.forEach(((t,o)=>{let s=!1,c=!1;b=b||l(t).replace("(","");const u=b.substring(0,2),y=u.match(a),v=u.match(i),x=u.match(r),w=p.test(u.charAt(0));if(u.length>0&&u!==m&&!v&&(y||x||w)){const i=E.Found.Paragraphs[o+1];if(i){if(s=l(i).replace("(","").substring(0,2),d.includes(s?.toLowerCase().trim()))return;const e=g(s);y?"A "!==u&&u===e&&(c=!0):x&&!h&&e.match(r)&&(c=!0,h=!0)}if(!c){let e=t?.querySelector("br")?.nextSibling?.nodeValue;e&&(e=e.replace(/<\/?[^>]+(>|$)/g,"").trim().substring(0,2),(p.test(e.charAt(0))||u===g(e)||!h&&e.match(r))&&(c=!0))}if(c){const o=f(`LIST${t.textContent}`);e.push({element:t,type:"warning",content:n.sprintf("QA_SHOULD_BE_LIST",u),inline:!1,position:"beforebegin",dismiss:o}),m=u}else m=""}b=s?"":s})),t.allCapsQA){const t=t=>{let o="";"LI"===t.tagName?t.childNodes.forEach((e=>{3===e.nodeType&&(o+=e.textContent)})):o=l(t);const i=o.match(/([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,}[ ])([A-Z]{2,})/g);if(i&&i[0].length>10){const i=f(`UPPERCASE${o}`);e.push({element:t,type:"warning",content:n.sprintf("QA_UPPERCASE_WARNING"),inline:!1,position:"beforebegin",dismiss:i})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e)))}t.duplicateIdQA&&document.querySelectorAll("body, [data-sa11y-has-shadow-root]").forEach((t=>{const i=new Set,a=(t,o)=>{t.forEach((t=>{const{id:a}=t;0!==a.trim().length&&(a&&!i.has(a)?i.add(a):Array.from(o.querySelectorAll(`\n a[href*="${a}"],\n label[for*="${a}"],\n [aria-labelledby*="${a}"],\n [aria-controls*="${a}"],\n [aria-owns*="${a}"]`)).length>0&&e.push({element:t,type:"error",content:n.sprintf("QA_DUPLICATE_ID",a),inline:!0,position:"beforebegin"}))}))};t.shadowRoot&&a(Array.from(t.shadowRoot.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),t.shadowRoot),a(Array.from(t.querySelectorAll(`[id]:not(${o.Exclusions.Container})`)),t)}));if(t.underlinedTextQA){E.Found.Underlines.forEach((t=>{const o=f(`UNDERLINE${l(t)}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!0,position:"beforebegin",dismiss:o})}));const t=t=>{const o=getComputedStyle(t).textDecorationLine,i=l(t);if("underline"===o){const o=f(`UNDERLINE${i}`);e.push({element:t,type:"warning",content:n.sprintf("QA_TEXT_UNDERLINE_WARNING"),inline:!1,position:"beforebegin",dismiss:o})}};E.Found.Paragraphs.forEach((e=>t(e))),E.Found.Headings.forEach((e=>t(e))),E.Found.Lists.forEach((e=>t(e))),E.Found.Blockquotes.forEach((e=>t(e))),E.Found.Spans.forEach((e=>t(e)))}if(t.pageTitleQA){const t=document.querySelector("head title");t&&0!==t.textContent.trim().length||e.push({type:"error",content:n.sprintf("QA_PAGE_TITLE")})}t.subscriptQA&&E.Found.Subscripts.forEach((t=>{const o=l(t);if(o.length>=80){const i=f(t.tagName+o);e.push({element:t,type:"warning",content:n.sprintf("QA_SUBSCRIPT_WARNING"),inline:!0,position:"beforebegin",dismiss:i})}}))}(this.results,p),function(e,t){t.embeddedContentAll&&(t.embeddedContentAudio&&E.Found.Audio.forEach((t=>{const o=f(`AUDIO${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_AUDIO"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentVideo&&E.Found.Videos.forEach((t=>{const o="undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src"),i=t.querySelector("track"),a=i?.getAttribute("src");if(null===i||null===a||0===a.trim().length){const i=f(`VIDEO${o}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_VIDEO"),inline:!1,position:"beforebegin",dismiss:i})}})),t.embeddedContentDataViz&&E.Found.Visualizations.forEach((t=>{const o=f(`DATAVIZ${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_DATA_VIZ"),inline:!1,position:"beforebegin",dismiss:o})})),t.embeddedContentTitles&&E.Found.iframes.forEach((t=>{const o=a(t),i="VIDEO"===t.tagName||"AUDIO"===t.tagName,r="true"===t.getAttribute("aria-hidden"),s="-1"===t.getAttribute("tabindex");if(o||i||r&&s)return;if(s)return void e.push({element:t,type:"error",content:n.sprintf("EMBED_UNFOCUSABLE"),inline:!1,position:"beforebegin"});const l=mn(t);0===d("noAria"===l?t.getAttribute("title")||"":l).length&&e.push({element:t,type:"error",content:n.sprintf("EMBED_MISSING_TITLE"),inline:!1,position:"beforebegin"})})),t.embeddedContentGeneral&&E.Found.EmbeddedContent.forEach((t=>{const o="true"===t.getAttribute("aria-hidden"),i="-1"===t.getAttribute("tabindex");if(a(t)||o&&i)return;if("VIDEO"===t.tagName||"AUDIO"===t.tagName)return;const r=f(`IFRAME${"undefined"!==t.getAttribute("src")?t.getAttribute("src"):t.querySelector("[src]")?.getAttribute("src")}`);e.push({element:t,type:"warning",content:n.sprintf("EMBED_GENERAL_WARNING"),inline:!1,position:"beforebegin",dismiss:r})})))}(this.results,p),function(){let e;if(o.Readability.Plugin&&"On"===g.getItem("sa11y-remember-readability")){E.Found.Readability.forEach((e=>{const t=e.textContent;t.length>=120&&"."!==t.charAt(t.length-1)&&e.insertAdjacentHTML("beforeend",".")}));const t=[];for(let e=0;e{let t=e;if(t=t.toLowerCase().replace(".","").replace("\n",""),t.length<=3)return 1;t=t.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),t=t.replace(/^y/,"");const n=t.match(/[aeiouy]{1,2}/g);let o=0;return!!n&&(o=n.length),o},a=i.replace(/[.!?-]+/g," ").split(" ");let r=0;for(let e=0;e100?u=100:u<0&&(u=0);const g=u.toFixed(1),m=(r/l).toFixed(1),f=Math.round((r-(c+p))/r*100);let b;b=g>=0&&g<30?n._("LANG_VERY_DIFFICULT"):g>31&&g<49?n._("LANG_DIFFICULT"):g>50&&g<60?n._("LANG_FAIRLY_DIFFICULT"):n._("LANG_GOOD"),e={score:g,averageWordsPerSentence:m,complexWords:f,difficultyLevel:b,wordCount:r}}else if(["sv","fi","da","no","nb","nn"].includes(o.Readability.Lang)){const t=(e=>{const t=()=>e.replace(/[-'.]/gi,"").split(/[^a-zA-ZöäåÖÄÅÆæØø0-9]/g).filter(Boolean),o=t().length,i=t().filter((e=>e.length>6)).length,a=e.split(/\?|!|\.|\n/g).filter(Boolean).length,r=Math.round(o/a+100*i/o),s=(o/a).toFixed(1),l=Math.round(i/o*100);let d;return d=r>=0&&r<39?n._("LANG_GOOD"):r>40&&r<50?n._("LANG_FAIRLY_DIFFICULT"):r>51&&r<61?n._("LANG_DIFFICULT"):n._("LANG_VERY_DIFFICULT"),{score:r,difficulty:d,avgWordsPerSentence:s,complexWords:l,wordCount:o}})(i);e={score:t.score,averageWordsPerSentence:t.avgWordsPerSentence,complexWords:t.complexWords,difficultyLevel:t.difficulty,wordCount:t.wordCount}}!1===o.Global.headless&&(0===i.length?o.Panel.readabilityInfo.innerHTML=n._("READABILITY_NO_P_OR_LI_MESSAGE"):e.wordCount>30?(o.Panel.readabilityInfo.innerHTML=`${e.score} ${e.difficultyLevel}`,o.Panel.readabilityDetails.innerHTML=`\n
                                  • \n ${n._("LANG_AVG_SENTENCE")}\n ${e.averageWordsPerSentence}\n
                                  • \n
                                  • \n ${n._("LANG_COMPLEX_WORDS")}\n ${e.complexWords}%\n
                                  • \n
                                  • \n ${n._("LANG_TOTAL_WORDS")}\n ${e.wordCount}\n
                                  • `):o.Panel.readabilityInfo.textContent=n._("READABILITY_NOT_ENOUGH_CONTENT_MESSAGE"))}}(),this.imageResults=this.results.filter((e=>"IMG"===e.element?.tagName)),!0===p.customChecks?this.results:"object"==typeof p.customChecks?this.results.push(...p.customChecks):"listen"===p.customChecks&&(this.customChecksRunning=!0,this.customChecksFinished=0,document.addEventListener("sa11y-resume",(()=>{this.customChecksFinished+=1,1===this.customChecksFinished&&(this.customChecksRunning=!1,this.updateResults())})),window.setTimeout((()=>{if(!0===this.customChecksRunning)throw this.customChecksRunning=!1,this.updateResults(),Error("Sa11y: No custom checks were returned.")}),p.delayCustomCheck),window.setTimeout((()=>{const e=new CustomEvent("sa11y-custom-checks");document.dispatchEvent(e)}),0)),this.customChecksRunning||this.updateResults()}catch(e){const t=new R(e);throw document.body.appendChild(t),Error(e)}},this.updateResults=()=>{if(this.results=this.results.filter((e=>!1!==e.isWithinRoot)),this.results.forEach((e=>{const t=p.selectorPath?function(e){const t=[];let n=e;for(;n;){let e=n.localName;if(n.id){e+=`#${n.id}`,t.unshift(e);break}n.className&&(e+=`.${n.className.replace(/\s+/g,".")}`);const o=n.parentNode;if(!o)break;{const i=o.children;i.length>1&&(e+=`:nth-child(${Array.prototype.indexOf.call(i,n)+1})`),t.unshift(e)}n=n.parentNode.host||n.parentNode}return t.join(" > ")}(e.element):"",n=e.element?.outerHTML.replace(/\s{2,}/g," ").trim()||"";Object.assign(e,{htmlPath:n,cssPath:t})})),!1===p.headless){const l=function(e,t){let i=g.getItem("sa11y-dismissed");i=i?JSON.parse(i):[];const a=i.map((t=>{const n=e.find((e=>t.key.includes(e.dismiss)&&t.href===window.location.pathname));return void 0===n?"":n})),r=e.filter((e=>!a.find((t=>t.dismiss===e.dismiss)))),s=e.filter((e=>a.find((t=>t.dismiss===e.dismiss)))),l=s.length;return l>=1?(o.Panel.dismissButton.classList.add("active"),o.Panel.dismissTooltip.innerText=n.sprintf("PANEL_DISMISS_BUTTON",l),t.object.setContent(n.sprintf("PANEL_DISMISS_BUTTON",l))):o.Panel.dismissButton.classList.remove("active"),{dismissedIssues:i,updatedResults:r,dismissCount:l,dismissedResults:s}}(this.results,this.dismissTooltip,this.checkAll,this.resetAll);this.results=l.updatedResults,this.dismissed=l.dismissedIssues;const d=function(e,t,n){let o=t,i=n;return e.forEach(((t,n)=>{const a=e[n].type;"error"===a?o+=1:"warning"===a&&(i+=1)})),{error:o,warning:i}}(this.results,this.errorCount,this.warningCount);if(function(e,t){const i=e+t;0===i?(o.Panel.notifCount.innerText="",o.Panel.notifText.innerText="",o.Panel.notifBadge.style.display="none"):t>0&&0===e?(o.Panel.notifBadge.classList.add("notification-badge-warning"),o.Panel.notifCount.innerText=`${t}`,o.Panel.notifText.innerText=`${n._("PANEL_ICON_WARNINGS")}`):(o.Panel.notifBadge.classList.remove("notification-badge-warning"),o.Panel.notifCount.innerText=`${i}`,o.Panel.notifText.innerText=n._("PANEL_ICON_TOTAL")),"Opened"===g.getItem("sa11y-remember-panel")||0===i?o.Panel.notifBadge.style.display="none":o.Panel.notifBadge.style.display="flex"}(d.error,d.warning),"Opened"===g.getItem("sa11y-remember-panel")){this.results.forEach(((e,t)=>{Object.assign(e,{id:t}),function(e,t,i,a=!1,s,l,d,c){const p=["error","warning","good"];if(-1===p.indexOf(t))throw Error(`Invalid type [${t}] for annotation`);[t].forEach((t=>{if("error"===t&&void 0!==e){const t=a?"data-sa11y-error-inline":"data-sa11y-error";e.setAttribute(t,l)}else if("warning"===t&&void 0!==e){const t=a?"data-sa11y-warning-inline":"data-sa11y-warning";e.setAttribute(t,l)}}));const u={[p[0]]:n._("ERROR"),[p[1]]:n._("WARNING"),[p[2]]:n._("GOOD")},g=!0===c&&"warning"===t&&void 0!==d?``:"",m=document.createElement("sa11y-annotation");m.setAttribute("data-sa11y-annotation",l);const f=document.createElement("div"),b=document.createElement("li");void 0===e?(o.Panel.pageIssues.classList.add("active"),o.Panel.panel.classList.add("has-page-issues"),b.innerHTML=`${u[t]} ${i}${g}`,o.Panel.pageIssuesList.insertAdjacentElement("afterbegin",b)):(f.classList.add(a?"instance-inline":"instance"),f.innerHTML=`\n \n \n

                                    ${u[t]}

                                    \n ${r(i)}\n ${g}\n "\n >`,(e.closest("a, button")||e).insertAdjacentElement(s,m),m.shadowRoot.appendChild(f))}(e.element,e.type,e.content,e.inline,e.position,e.id,e.dismiss,p.dismissAnnotations)})),E.initializeAnnotations();const c=new Xt;document.body.appendChild(c),T(this.results,this.dismissed,this.checkAll,this.resetAll),j(this.dismissed,this.headingOutline,p.showHinPageOutline),p.showImageOutline&&W(this.dismissed,this.imageResults),i=l.dismissCount,a=d.error,s=d.warning,o.Panel.skipButton.disabled=!1,o.Panel.panel.classList.add("active"),o.Global.html.setAttribute("data-sa11y-active","true"),o.Panel.skipButton.classList.add("active"),a>0&&s>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${n._("ERRORS")} ${a} ${n._("WARNINGS")} ${s}`):a>0?(o.Panel.content.setAttribute("class","errors"),o.Panel.status.innerHTML=`${n._("ERRORS")} ${a}`):s>0?(o.Panel.content.setAttribute("class","warnings"),o.Panel.status.innerHTML=`${n._("WARNINGS")} ${s}`):i>0?(o.Panel.status.innerHTML=`${n._("DISMISSED")} ${i}`,o.Panel.skipButton.classList.remove("active")):(o.Panel.content.setAttribute("class","good"),o.Panel.status.innerHTML=`${n._("PANEL_STATUS_NONE")}`),0===document.querySelectorAll("sa11y-annotation").length&&(o.Panel.skipButton.disabled=!0),pn(this.results),p.exportResultsPlugin&&(e=this.results,t=l.dismissedResults,o.Global.exportResultsPlugin&&(O=()=>{P(e,t)},$=()=>{C(e)},o.Panel.exportHTML.addEventListener("click",O),o.Panel.exportCSV.addEventListener("click",$))),en(),document.querySelectorAll("sa11y-annotation").forEach((e=>{const t=e.nextElementSibling;null!==t&&"SA11Y-ANNOTATION"===t.tagName&&customElements.get("sa11y-annotation")&&t.shadowRoot.querySelector("button").setAttribute("style","margin: -5px -15px !important;")}))}o.Panel.toggle.disabled=!1}var e,t,i,a,s;const l=new CustomEvent("sa11y-check-complete",{detail:{results:this.results,page:window.location.pathname}});document.dispatchEvent(l)},this.resetAll=(e=!0)=>{for(o.Global.html.removeAttribute("data-sa11y-active"),v(["sa11y-annotation","sa11y-heading-label","sa11y-heading-anchor","sa11y-tooltips","[data-sa11y-readability-period]","[data-sa11y-clone-image-text]",".sa11y-css-utilities"],"document"),y(["data-sa11y-parent","data-sa11y-error","data-sa11y-warning","data-sa11y-good","data-sa11y-error-inline","data-sa11y-warning-inline","data-sa11y-overflow","data-sa11y-pulse-border","data-sa11y-filter","data-sa11y-has-shadow-root"],"document"),o.Panel.outlineList.innerHTML="",p.showImageOutline&&(o.Panel.imagesList.innerHTML=""),o.Panel.pageIssuesList.innerHTML="",o.Panel.readabilityInfo.innerHTML="",o.Panel.readabilityDetails.innerHTML="",o.Panel.panel.classList.remove("has-page-issues"),o.Panel.pageIssues.classList.remove("active"),b(),document.removeEventListener("keydown",dn),o.Panel.skipButton.removeEventListener("click",cn),o.Global.exportResultsPlugin&&(o.Panel.exportHTML.removeEventListener("click",O),o.Panel.exportCSV.removeEventListener("click",$)),o.Panel.panel?.removeEventListener("click",k),o.Panel.dismissButton?.removeEventListener("click",L),o.Global.colourFilterPlugin&&(o.Panel.colourFilterSelect.value=0,o.Panel.colourPanel.classList.remove("active"),o.Panel.colourFilterSelect.classList.remove("active"),o.Panel.content.hidden=!1);o.Panel.status.firstChild;)o.Panel.status.removeChild(o.Panel.status.firstChild);document.querySelectorAll("[data-sa11y-has-shadow-root]").forEach((e=>{e.removeAttribute("data-sa11y-has-shadow-root")})),e&&o.Panel.panel.classList.remove("active")},this.disabled=()=>{"Opened"===g.getItem("sa11y-remember-panel")&&o.Panel.toggle.click(),o.Panel.toggle.disabled=!0},this.enabled=()=>{o.Panel.toggle.disabled=!1},this.find=(e,t,n)=>i(e,t,n),this.prepareDismissal=e=>f(e),this.sanitizeHTML=e=>s(e),this.initialize()}},Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/docs/demo/en/traveling-root.html b/docs/demo/en/traveling-root.html index 5847e8f3..8690f57e 100644 --- a/docs/demo/en/traveling-root.html +++ b/docs/demo/en/traveling-root.html @@ -12,7 +12,6 @@ -
                                    -

                                    Sa11y (Random) Unit Tests

                                    +

                                    Sa11y (Random) Unit Tests

                                    +

                                    This uses color-mix.

                                    +

                                    This uses color().

                                    +

                                    This uses hsl

                                    +

                                    testing

                                    A blank slate for testing.

                                    +

                                    Lorem ipsum dolor sit, amet consectetur adipisicing elit. Repellat porro doloribus magnam nobis nisi! Officia + earum reiciendis sequi cum voluptate cupiditate eaque asperiores quos, non voluptatum id mollitia, voluptatibus + sit!

                                    + +

                                    Lorem ipsum dolor sit amet consectetur, adipisicing elit. Animi repellendus vero excepturi veritatis debitis + laborum ipsa nam ea dolorum? Architecto earum deserunt, magnam hic adipisci porro quo optio quibusdam laboriosam. + Not an actual document and this is still a PDF Another PDF document. +

                                    + + An image of Michael Scott saying: Why are you the way that you are? + + Untitled design - Test + + placeholder + + +
                                    + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam tempora accusantium doloribus perspiciatis? Ex voluptates labore ullam dolorem aliquid voluptatum, quos voluptatem explicabo minima molestiae praesentium deserunt odit sequi ipsa. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam tempora accusantium doloribus perspiciatis? Ex voluptates labore ullam dolorem aliquid voluptatum, quos voluptatem explicabo minima molestiae praesentium deserunt odit sequi ipsa. +
                                    + Dwight Shrute +
                                    + + Michael Scott: why are you the way you are? +
                                    +
                                    Test
                                    + + +

                                    Relative image

                                    +
                                    + Not michael scott.
                                    +
                                    + +
                                    +
                                    diff --git a/test/pages/unit-tests.html b/test/pages/unit-tests.html index 45d91e41..f7e6ff81 100644 --- a/test/pages/unit-tests.html +++ b/test/pages/unit-tests.html @@ -124,11 +124,16 @@

                                    Image has alt text

                                    Large mountains of sand in the Namibian desert. -

                                    Alt text has suspicious stop word

                                    +

                                    Alt text has suspicious stop word in the beginning

                                    An image of a bird.
                                    +

                                    Alt text has suspicious stop word towards the end

                                    +
                                    + A black and white image of a bird. +
                                    +

                                    Decorative image

                                    @@ -353,7 +358,7 @@

                                    Linked image with aria-hidden, negative tabindex, and alt

                                    Image's alt supplied via aria-label

                                    - +

                                    Image with empty aria-label=""

                                    @@ -744,7 +749,7 @@

                                    PDF link with trailing characters

                                    Documents

                                    diff --git a/test/unit-tests.spec.js b/test/unit-tests.spec.js index 4b6b750b..14d5ef5a 100644 --- a/test/unit-tests.spec.js +++ b/test/unit-tests.spec.js @@ -276,6 +276,13 @@ test.describe('Sa11y Unit Tests', () => { expect(issue).toBe(true); }); + test('Alt text has suspicious stop word in the end', async () => { + const issue = await checkTooltip( + page, 'pass-alt-text-has-suspicious-stop-word-end', 'Good', + ); + expect(issue).toBe(true); + }); + test('Decorative image', async () => { const issue = await checkTooltip( page, 'warning-image-is-decorative', 'Image is marked as decorative', @@ -495,7 +502,7 @@ test.describe('Sa11y Unit Tests', () => { test('Image has alt supplied via aria-label', async () => { const issue = await checkTooltip( - page, 'pass-alt-via-aria-label', 'Alt text: A big square', + page, 'pass-alt-via-aria-label', 'A square box rectangle thing.', ); expect(issue).toBe(true); }); @@ -523,7 +530,7 @@ test.describe('Sa11y Unit Tests', () => { test('Image with valid aria-labelledby as alt', async () => { const issue = await checkTooltip( - page, 'pass-image-valid-aria-labelledby', 'Alt text: about apples', + page, 'pass-image-valid-aria-labelledby', ' about apples', ); expect(issue).toBe(true); });