Sicht-Umschalter: ein Auge statt des Wortes "SICHT"
Filipe zu dem Feld in der Kopfleiste: "das soll viel besser aussehen
viel geiler aber nicht so eine scheisse."
Er hatte recht. Da stand ein Etikett mit dem Wort SICHT und daneben ein
Auswahlfeld -- ein Formular, das in die Kopfleiste gerutscht war. Drei
Aenderungen:
* DAS AUGE ersetzt das Wort. Es sagt dasselbe in einem Zeichen und
laesst dem NAMEN den Platz, um den es eigentlich geht. Fuer
Vorleseprogramme bleibt die Beschriftung erhalten, nur unsichtbar --
sie ersatzlos zu loeschen haette das Feld unbeschriftet gelassen.
* "Meine Sicht" statt "Alles (meine Sicht)". Der Zusatz erklaerte
nichts und machte den Knopf so breit, dass am Handy nichts anderes
mehr danebenpasste.
* EIN KREUZ statt "zurueck zu mir". Der Satz brauchte mehr Platz als
der Name daneben, und was ein Kreuz an einer aktiven Auswahl tut,
weiss jeder. Die Worte bleiben im aria-label und im Titel.
DIE EIGENTLICHE VERBESSERUNG ist aber die Hierarchie: Im Normalfall
ist der Umschalter still (graues Auge, ruhiger Rand). Sobald eine
FREMDE Sicht laeuft, traegt er ganz Farbe -- nicht nur ein
Zusatzknopf am Rand.
Das ist der gefaehrlichste Zustand dieser Funktion: Wer sie vergisst,
sieht am naechsten Tag drei Aufgaben statt dreissig und haelt das fuer
den Bestand. Ein Zustand, der Schaden anrichtet, muss lauter sein als
einer, der nichts tut.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -911,13 +911,35 @@
|
||||
const feld = el('div', 'sicht');
|
||||
feld.id = 'sicht-wahl';
|
||||
|
||||
/* EIN AUGE STATT DES WORTES "SICHT" (06.09.2026).
|
||||
|
||||
Vorher stand da ein Etikett mit dem Wort SICHT und daneben ein
|
||||
Auswahlfeld -- ein Formular, das in die Kopfleiste gerutscht war.
|
||||
Das Auge sagt dasselbe in einem Zeichen und laesst dem Namen den
|
||||
Platz, um den es geht.
|
||||
|
||||
aria-hidden, weil der Knopf daneben bereits sagt, was er tut --
|
||||
ein Vorleseprogramm soll nicht "Grafik, Auge" davor lesen. */
|
||||
const auge = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||
auge.setAttribute('class', 'sicht__auge');
|
||||
auge.setAttribute('viewBox', '0 0 24 24');
|
||||
auge.setAttribute('aria-hidden', 'true');
|
||||
auge.innerHTML = '<path d="M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z"/>'
|
||||
+ '<circle cx="12" cy="12" r="3.2"/>';
|
||||
feld.append(auge);
|
||||
|
||||
/* Fuer Vorleseprogramme bleibt die Beschriftung erhalten -- sie ist
|
||||
nur nicht mehr zu sehen. */
|
||||
const schild = el('label', 'sicht__schild', 'Sicht');
|
||||
schild.setAttribute('for', 'sicht-feld');
|
||||
feld.append(schild);
|
||||
|
||||
const s = el('select', 'sicht__feld');
|
||||
s.id = 'sicht-feld';
|
||||
s.append(new Option('Alles (meine Sicht)', ''));
|
||||
/* "Meine Sicht" statt "Alles (meine Sicht)". Der Zusatz erklaerte
|
||||
nichts und machte den Knopf so breit, dass am Handy nichts anderes
|
||||
mehr danebenpasste. */
|
||||
s.append(new Option('Meine Sicht', ''));
|
||||
for (const [rolle, name] of ROLLE_GRUPPE) {
|
||||
const drin = personen.filter((p) => p.rolle === rolle && p.id !== ich.id && p.aktiv !== false);
|
||||
if (!drin.length) continue;
|
||||
@@ -949,8 +971,18 @@
|
||||
und haelt das fuer den Bestand. */
|
||||
if (aktiv) {
|
||||
feld.dataset.fremd = 'ja';
|
||||
const zurueck = el('button', 'sicht__weg', 'zurück zu mir');
|
||||
/* EIN KREUZ STATT "zurueck zu mir". Der Satz brauchte mehr Platz
|
||||
als der Name daneben, und was ein Kreuz an einer aktiven
|
||||
Auswahl tut, weiss jeder. Die Worte bleiben im aria-label. */
|
||||
const zurueck = el('button', 'sicht__weg');
|
||||
zurueck.type = 'button';
|
||||
zurueck.setAttribute('aria-label', 'Zurück zu meiner eigenen Sicht');
|
||||
zurueck.title = 'Zurück zu meiner eigenen Sicht';
|
||||
const kreuz = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||
kreuz.setAttribute('viewBox', '0 0 24 24');
|
||||
kreuz.setAttribute('aria-hidden', 'true');
|
||||
kreuz.innerHTML = '<path d="M7 7l10 10M17 7L7 17"/>';
|
||||
zurueck.append(kreuz);
|
||||
zurueck.addEventListener('click', () => { schreiben(0); location.reload(); });
|
||||
feld.append(zurueck);
|
||||
document.body.dataset.fremdeSicht = 'ja';
|
||||
|
||||
Reference in New Issue
Block a user