';
+document.body.appendChild(trigger);document.body.appendChild(panel);var close=panel.querySelector('.mf-a11y-close');function paint(){panel.querySelectorAll('[data-a11y]').forEach(function(b){var id=b.dataset.a11y,on=id==='font'?state.font>100:id==='motion'?!state.motion:id==='reset'?false:!!state[id];b.setAttribute('aria-pressed',on);if(id==='font')b.querySelector('small').textContent=state.font+' %';});}
+function hide(){panel.hidden=true;trigger.setAttribute('aria-expanded','false');trigger.focus();}function show(){panel.hidden=false;trigger.setAttribute('aria-expanded','true');paint();close.focus();}trigger.addEventListener('click',function(){panel.hidden?show():hide();});close.addEventListener('click',hide);window.addEventListener('keydown',function(e){if(e.key==='Escape'&&!panel.hidden)hide();});panel.addEventListener('click',function(e){var b=e.target.closest('[data-a11y]');if(!b)return;var id=b.dataset.a11y;if(id==='reset')state=Object.assign({},defaults);else if(id==='font')state.font=levels[(levels.indexOf(state.font)+1)%levels.length];else if(id==='motion')state.motion=!state.motion;else state[id]=!state[id];apply();paint();});paint();}
+if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init();})();
diff --git a/src/main/resources/static/js/theme.js b/src/main/resources/static/js/theme.js
index 5717777..9792d0e 100644
--- a/src/main/resources/static/js/theme.js
+++ b/src/main/resources/static/js/theme.js
@@ -24,6 +24,20 @@
timerScript.setAttribute('data-fluxtimer', '');
document.head.appendChild(timerScript);
}
+ if (!document.querySelector('link[data-accessibility]')) {
+ var accessibilityCss = document.createElement('link');
+ accessibilityCss.rel = 'stylesheet';
+ accessibilityCss.href = '/css/accessibility.css?v=1';
+ accessibilityCss.setAttribute('data-accessibility', '');
+ document.head.appendChild(accessibilityCss);
+ }
+ if (!document.querySelector('script[data-accessibility]')) {
+ var accessibilityScript = document.createElement('script');
+ accessibilityScript.src = '/js/accessibility.js?v=1';
+ accessibilityScript.defer = true;
+ accessibilityScript.setAttribute('data-accessibility', '');
+ document.head.appendChild(accessibilityScript);
+ }
var SUN = '';
var MOON = '';
diff --git a/src/main/resources/templates/legal/datenschutz.html b/src/main/resources/templates/legal/datenschutz.html
index 1ed5817..0870902 100644
--- a/src/main/resources/templates/legal/datenschutz.html
+++ b/src/main/resources/templates/legal/datenschutz.html
@@ -87,10 +87,11 @@
im Rahmen von Tests zurückgesetzt werden.
-
6a. Lokale Einstellungen und FluxTimer
+
6a. Lokale Einstellungen, Barrierefreiheit und FluxTimer
- Theme-Auswahl und FluxTimer-Einstellungen werden ausschließlich im lokalen Browserspeicher
- (localStorage) des verwendeten Geräts abgelegt. Dazu gehören Aktivierungsstatus,
+ Theme-Auswahl, Barrierefreiheitsoptionen und FluxTimer-Einstellungen werden ausschließlich im
+ lokalen Browserspeicher (localStorage) des verwendeten Geräts abgelegt. Dazu gehören
+ gewählte Textgröße, Kontrast-, Farb-, Schrift-, Bewegungs- und Cursorhilfen sowie Aktivierungsstatus,
Intervall, ausgewählte Erinnerungsarten, optionaler eigener Erinnerungstext sowie der nächste
und letzte Auslösezeitpunkt. Diese Angaben werden nicht an den Mindflux-Server übertragen und
können durch Löschen der Website-Daten im Browser entfernt werden. Browser-Benachrichtigungen