PageSourceSearch

https://hochsauerlandwasser.de/typo3temp/assets/compressed/readabl…d66325f5cec806bc57a18ebe0-min.js?1791040292

js hochsauerlandwasser.de collected 2026-10-04 04:08:52 UTC 13,018 bytes, 61 lines download raw bytes

1/*!
2 * EXT:easyaccess – Barrierefreiheit des Readabler-Overlays
3 * Prüfbericht hochsauerlandwasser.de vom 30.09.2026, Befunde B02–B05
4 *
5 * Setzt auf dem von Readabler 1.7 erzeugten Markup auf; die Herstellerdatei
6 * readabler.js bleibt unverändert (Updates bleiben möglich).
7 *
8 * B02  Geschlossenes Panel: inert, nicht per Tab erreichbar, nicht im Barrierebaum
9 *      (zusätzlich visibility:hidden in readabler-a11y.css)
10 * B03  Panel als modaler Dialog mit Namen (aria-labelledby), Auslöser mit
11 *      aria-expanded/aria-controls, Kopf/Fuß ohne Landmarken, Profile als Schalter
12 *      (role=switch), Optionen mit aria-pressed, Bereiche als Gruppen statt role=dialog
13 * B05  Fokus beim Öffnen in das Panel, Tab bleibt im Panel, Esc schließt,
14 *      Fokus kehrt zum Auslöser zurück; Auslöser am Anfang der Tab-Reihenfolge
15 * 2.4.3 Minus-/Plus-Schaltflächen in sichtbarer Reihenfolge
16 * 3.2.2 Link-Navigator wechselt die Seite erst nach Bestätigung (Schaltfläche/Enter)
17 */
18(function(){'use strict';var SIDEBAR_ID='mdp-readabler-sidebar';var TRIGGER_ID='mdp-readabler-trigger-button';var TITLE_ID='mdp-readabler-popup-title';var OPEN_CLASS=/\bmdp-readabler-(?:off-canvas|aside)-is-open-/;var FOCUSABLE='a[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), '+'select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';var lang=(document.documentElement.getAttribute('lang')||'de').slice(0,2).toLowerCase();var T=lang==='de'?{panel:'Einstellungen zur Barrierefreiheit',close:'Einstellungen zur Barrierefreiheit schließen',increase:'%s erhöhen',decrease:'%s verringern',linkGo:'Link öffnen',voiceIcons:{'clear-input':'Symbol: Löschtaste mit Kreuz','close':'Symbol: Kreuz','collapse':'Symbol: Pfeil nach unten','enter':'Symbol: Eingabetaste','exit':'Symbol: Kreuz im Kreis','expand':'Symbol: Pfeil nach oben','go-to-bottom':'Symbol: Pfeil nach unten im Rahmen','go-to-top':'Symbol: Pfeil nach oben im Rahmen','help':'Symbol: Info-Zeichen im Kreis','hide-help':'Symbol: durchgestrichenes Info-Zeichen','hide-numbers':'Symbol: durchgestrichene Sprechblase','number':'Symbol: Ziffer 1 im Kästchen','reload':'Symbol: kreisförmiger Pfeil','scroll-down':'Symbol: Kreis mit Pfeil nach unten','scroll-left':'Symbol: Kreis mit Pfeil nach links','scroll-right':'Symbol: Kreis mit Pfeil nach rechts','scroll-up':'Symbol: Kreis mit Pfeil nach oben','show-numbers':'Symbol: Sprechblase','stop':'Symbol: Quadrat im Kreis','tab-back':'Symbol: Pfeil nach links zu einem Strich','tab':'Symbol: Pfeil nach rechts zu einem Strich'},colors:{maroon:'Kastanienbraun',red:'Rot',orange:'Orange',yellow:'Gelb',olive:'Olivgrün',green:'Grün',purple:'Violett',fuchsia:'Magenta',lime:'Hellgrün',teal:'Blaugrün',aqua:'Türkis',blue:'Blau',navy:'Marineblau',black:'Schwarz',white:'Weiß'}}:{panel:'Accessibility settings',close:'Close accessibility settings',increase:'Increase %s',decrease:'Decrease %s',linkGo:'Open link',voiceIcons:{'clear-input':'Icon: backspace key with a cross','close':'Icon: cross','collapse':'Icon: arrow pointing down','enter':'Icon: return key','exit':'Icon: cross in a circle','expand':'Icon: arrow pointing up','go-to-bottom':'Icon: downward arrow in a frame','go-to-top':'Icon: upward arrow in a frame','help':'Icon: info sign in a circle','hide-help':'Icon: crossed-out info sign','hide-numbers':'Icon: crossed-out speech bubble','number':'Icon: number 1 in a box','reload':'Icon: circular arrow','scroll-down':'Icon: circle with arrow pointing down','scroll-left':'Icon: circle with arrow pointing left','scroll-right':'Icon: circle with arrow pointing right','scroll-up':'Icon: circle with arrow pointing up','show-numbers':'Icon: speech bubble','stop':'Icon: square in a circle','tab-back':'Icon: arrow pointing left to a bar','tab':'Icon: arrow pointing right to a bar'},colors:{}};var sidebar=null;var trigger=null;var title=null;var isOpen=!1;var returnFocus=null;function ensureId(el,id){if(!el.id){el.id=id}
19return el.id}
20function text(el){return el?el.textContent.replace(/\s+/g,' ').trim():''}
21function focusables(){return Array.prototype.filter.call(sidebar.querySelectorAll(FOCUSABLE),function(el){return el.getClientRects().length>0&&window.getComputedStyle(el).visibility!=='hidden'})}
22function enhanceTrigger(){trigger=document.getElementById(TRIGGER_ID);if(!trigger){return}
23trigger.setAttribute('type','button');trigger.setAttribute('aria-label',T.panel);trigger.setAttribute('aria-haspopup','dialog');trigger.setAttribute('aria-controls',SIDEBAR_ID);trigger.setAttribute('aria-expanded','false');trigger.querySelectorAll('svg, img').forEach(function(icon){icon.removeAttribute('aria-label');icon.removeAttribute('role');if(icon.tagName.toLowerCase()==='img'){icon.setAttribute('alt','')}else{icon.setAttribute('aria-hidden','true');icon.setAttribute('focusable','false')}});var box=trigger.closest('.mdp-readabler-trigger-button-box');if(box&&box.parentNode===document.body&&document.body.firstElementChild!==box){document.body.insertBefore(box,document.body.firstElementChild)}}
24function enhanceSidebar(){sidebar.setAttribute('role','dialog');sidebar.setAttribute('aria-modal','true');sidebar.removeAttribute('aria-label');sidebar.removeAttribute('data-i18next-aria-label');title=sidebar.querySelector('#mdp-readabler-popup-header h1, #mdp-readabler-popup-header h2, #mdp-readabler-popup-header h3, #mdp-readabler-popup-header h4');if(title){ensureId(title,TITLE_ID);title.setAttribute('tabindex','-1');sidebar.setAttribute('aria-labelledby',title.id)}else{sidebar.setAttribute('aria-label',T.panel)}
25sidebar.querySelectorAll('header, footer').forEach(function(el){el.setAttribute('role','none')});sidebar.querySelectorAll('button:not([type])').forEach(function(button){button.setAttribute('type','button')});var close=document.getElementById('mdp-readabler-popup-close');if(close){close.setAttribute('aria-label',T.close);close.removeAttribute('data-i18next-aria-label')}
26enhanceProfiles();enhanceSpinners();enhanceToggles();enhancePalettes();enhanceUsefulLinks();sidebar.querySelectorAll('[role="dialog"]').forEach(function(el){el.setAttribute('role','group')});syncStates()}
27function enhanceProfiles(){sidebar.querySelectorAll('.mdp-readabler-accessibility-profile-item').forEach(function(item){item.setAttribute('role','switch');item.setAttribute('tabindex','0');var name=item.querySelector('.mdp-readabler-profile-title');if(name){item.setAttribute('aria-labelledby',ensureId(name,item.id+'-title'))}
28var short=item.querySelector('.mdp-readabler-profile-short');if(short){item.setAttribute('aria-describedby',ensureId(short,item.id+'-short'))}
29item.querySelectorAll('input[type="checkbox"]').forEach(function(checkbox){checkbox.setAttribute('tabindex','-1');checkbox.setAttribute('aria-hidden','true');checkbox.disabled=!0})})}
30function enhanceSpinners(){sidebar.querySelectorAll('.mdp-readabler-spinner-box').forEach(function(box){var label=box.querySelector('.mdp-readabler-title');var name=text(label);box.setAttribute('role','group');if(label){box.setAttribute('aria-labelledby',ensureId(label,box.id+'-title'))}
31var plus=box.querySelector('.mdp-readabler-plus');var minus=box.querySelector('.mdp-readabler-minus');var value=box.querySelector('.mdp-readabler-value');
31[plus,minus].forEach(function(button){if(button){button.removeAttribute('role');button.removeAttribute('tabindex');button.removeAttribute('data-i18next-aria-label')}});if(plus&&name){plus.setAttribute('aria-label',T.increase.replace('%s',name))}
32if(minus&&name){minus.setAttribute('aria-label',T.decrease.replace('%s',name))}
33if(plus&&minus&&plus.parentNode===minus.parentNode){plus.parentNode.insertBefore(minus,plus.parentNode.firstChild);plus.parentNode.appendChild(plus)}
34if(value){value.setAttribute('aria-live','polite');value.setAttribute('aria-atomic','true')}})}
35function enhanceToggles(){sidebar.querySelectorAll('.mdp-readabler-toggle-box').forEach(function(box){box.setAttribute('role','button');box.setAttribute('tabindex','0');box.querySelectorAll('.mdp-readabler-icon').forEach(function(icon){icon.setAttribute('aria-hidden','true')})})}
36function enhancePalettes(){sidebar.querySelectorAll('.mdp-readabler-palette-box').forEach(function(box){var label=box.querySelector('.mdp-readabler-title');var group=box.querySelector('.mdp-readabler-color-box')||box;group.setAttribute('role','group');if(label){group.setAttribute('aria-labelledby',ensureId(label,box.id+'-title'))}
37box.querySelectorAll('.mdp-readabler-color').forEach(function(color){var key=(color.getAttribute('data-color')||'').toLowerCase();var name=T.colors[key]||key.charAt(0).toUpperCase()+key.slice(1);color.setAttribute('aria-label',name);color.removeAttribute('data-i18next-aria-label');color.setAttribute('title',name)})})}
38function enhanceUsefulLinks(){var select=sidebar.querySelector('#mdp-readabler-useful-links');if(!select||select.getAttribute('data-a11y')==='1'){return}
39select.setAttribute('data-a11y','1');sidebar.addEventListener('change',function(event){if(event.target===select){event.stopPropagation()}},!0);var go=document.createElement('button');go.type='button';go.className='mdp-readabler-useful-links-go';go.textContent=T.linkGo;go.addEventListener('click',function(){if(select.value&&select.value!=='mdp-default'){window.location.href=select.value}});select.addEventListener('keydown',function(event){if(event.key==='Enter'){event.preventDefault();go.click()}});select.parentNode.insertBefore(go,select.nextSibling)}
40function syncStates(){sidebar.querySelectorAll('.mdp-readabler-accessibility-profile-item').forEach(function(item){item.setAttribute('aria-checked',item.classList.contains('mdp-active')?'true':'false')});sidebar.querySelectorAll('.mdp-readabler-toggle-box, .mdp-readabler-color').forEach(function(el){el.setAttribute('aria-pressed',el.classList.contains('mdp-active')?'true':'false')})}
41function setClosedState(){sidebar.inert=!0;sidebar.setAttribute('aria-hidden','true')}
42function onBodyClassChange(){var open=OPEN_CLASS.test(document.body.className);if(open===isOpen){return}
43isOpen=open;if(trigger){trigger.setAttribute('aria-expanded',open?'true':'false')}
44if(open){var active=document.activeElement;returnFocus=active&&active!==document.body&&!sidebar.contains(active)?active:trigger;sidebar.inert=!1;sidebar.removeAttribute('aria-hidden');focusInto(0)}else{var active2=document.activeElement;var focusWasInside=!active2||active2===document.body||sidebar.contains(active2);setClosedState();if(focusWasInside){var back=returnFocus&&document.body.contains(returnFocus)?returnFocus:trigger;if(back){back.focus({preventScroll:!0})}}}}
45function focusInto(attempt){window.setTimeout(function(){if(!isOpen){return}
46var target=title||focusables()[0];if(!target){return}
47target.focus({preventScroll:!0});if(document.activeElement!==target&&attempt<5){focusInto(attempt+1)}},attempt?80:30)}
48function closePanel(){var close=document.getElementById('mdp-readabler-popup-close');if(close){close.click()}else if(trigger){trigger.click()}}
49function onKeydown(event){if(!isOpen){return}
50if(event.key==='Escape'||event.key==='Esc'){event.preventDefault();closePanel();return}
51if(event.key!=='Tab'){return}
52var items=focusables();if(!items.length){return}
53var first=items[0];var last=items[items.length-1];var active=document.activeElement;if(!sidebar.contains(active)){event.preventDefault();(event.shiftKey?last:first).focus()}else if(event.shiftKey&&(active===first||active===title)){event.preventDefault();last.focus()}else if(!event.shiftKey&&active===last){event.preventDefault();first.focus()}}
54function labelVoiceIcons(){var icons=document.querySelectorAll('.mdp-readabler-voice-navigation-icon img');Array.prototype.forEach.call(icons,function(img){var key=(img.getAttribute('src')||'').split('/').pop().replace(/\.svg(?:[?#].*)?$/,'');if(T.voiceIcons[key]&&img.getAttribute('alt')!==T.voiceIcons[key]){img.setAttribute('alt',T.voiceIcons[key])}})}
55function setup(){sidebar=document.getElementById(SIDEBAR_ID);if(!sidebar||sidebar.getAttribute('data-a11y')==='1'){return!!sidebar}
56sidebar.setAttribute('data-a11y','1');enhanceTrigger();enhanceSidebar();labelVoiceIcons();isOpen=OPEN_CLASS.test(document.body.className);if(!isOpen){setClosedState()}
57if(trigger){trigger.setAttribute('aria-expanded',isOpen?'true':'false')}
58new MutationObserver(onBodyClassChange).observe(document.body,{attributes:!0,attributeFilter:['class']});new MutationObserver(syncStates).observe(sidebar,{attributes:!0,attributeFilter:['class'],subtree:!0});new MutationObserver(labelVoiceIcons).observe(document.body,{childList:!0});document.addEventListener('keydown',onKeydown,!0);return!0}
59function waitForReadabler(){if(setup()){return}
60var observer=new MutationObserver(function(){if(setup()){observer.disconnect()}});observer.observe(document.body,{childList:!0});window.setTimeout(function(){observer.disconnect()},30000)}
61if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',waitForReadabler)}else{waitForReadabler()}})()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.