Beim Messen des Datenvolumens nach dem Bildumbau fiel etwas anderes auf: Der Layout-Sprung auf der Startseite lag bei 0,99. Die Bilder waren es nicht -- ein Hintergrundbild liegt `position: fixed` und bewegt gar nichts. Die Meldung sagte es selbst, man musste nur hinsehen: ALLES sprang um denselben Betrag (295->301, 144->150, 685->692, 605->611). Wenn die ganze Seite gleichmaessig nach unten rutscht, waechst etwas ueber ihr. Gemessen: Leiste vor dem Skript 67 px, danach 71. Der Sicht-Umschalter kommt erst, wenn die Personenliste geladen ist, und ist mit 42 px das hoechste Teil in der Reihe. Vier Pixel -- man sieht sie kaum und merkt sie doch: Wer beim Laden schon zielt, klickt daneben. Die Loesung ist keine reservierte Hoehe auf Verdacht, sondern die Hoehe, die die Zeile ohnehin haben muss: `min-height: 44px`. Das ist das Mindestmass fuer ein Fingerziel (WCAG 2.5.8) und gilt hier sowieso fuer jedes Teil. Damit ist die Zeile immer so hoch wie ihr groesstes zulaessiges Element -- unabhaengig davon, ob dieses gerade schon da ist oder erst kommt. Ergebnis: 0,99 auf 0,60, und die Zahl der Seiten ueber dem Zielwert von zwoelf auf sechs. Datenvolumen unveraendert in Ordnung trotz der groesseren Bilder -- der Browser holt je Seite nur eine Stufe. Und der offene Punkt von vorhin ist geklaert: pruef-browser laeuft gruen durch, alle vier Maschinen (Chromium, Firefox, WebKit, WebKit auf dem iPhone), 64 Seitenaufrufe, 15898 Elemente. Der eine rote Punkt im Gesamtlauf war eine Zeitueberschreitung unter Dauerlast -- erkennbar daran, dass ZWEI Pruefungen gar nicht gelaufen waren und die Datei die doppelte Zeit brauchte. Eine gesunkene Anzahl ist ein eigener Befund. Co-Authored-By: Claude Opus 5 <[email protected]>
87 lines
3.8 KiB
HTML
87 lines
3.8 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||
<title>Calls & Protokolle · Creator Workspace</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<meta name="theme-color" content="#0674b9" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609070141" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609070141" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070141" />
|
||
<link rel="stylesheet" href="assets/css/calls.css?v=202609070141" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
|
||
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
|
||
Pseudo-Elements -- body hat nur ::before und ::after. -->
|
||
<div class="schleier" aria-hidden="true"></div>
|
||
|
||
<header class="kopfleiste">
|
||
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
|
||
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M14.5 5.5 8 12l6.5 6.5" />
|
||
</svg>
|
||
<span class="zurueck-knopf__text">Zurück</span>
|
||
</button>
|
||
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator Workspace</a> · Calls</span></p>
|
||
<div class="kopfleiste__rechts">
|
||
<span class="wer" id="wer">…</span>
|
||
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="inhalt inhalt--breit">
|
||
|
||
<section class="kopf-zeile">
|
||
<div>
|
||
<p class="marke">Gespräche</p>
|
||
<h1 class="titel">Calls & Protokolle</h1>
|
||
<p class="unterzeile">
|
||
Jeder Call endet mit klaren To-dos – die landen direkt im Aufgabenbrett,
|
||
nicht in einem Dokument, das niemand mehr öffnet.
|
||
</p>
|
||
</div>
|
||
<a class="knopf knopf--klein" href="kalender.html">Call planen</a>
|
||
</section>
|
||
|
||
<!-- Wo die Calls stattfinden. Einmal festgelegt, steht der Knopf
|
||
„Call beitreten" danach an JEDEM Gespräch – niemand muss mehr bei
|
||
jedem Termin einen Link eintippen, und die Frage „wo führe ich den
|
||
Call?" ist beantwortet, bevor sie jemand stellt. -->
|
||
<section class="call-raum" id="call-raum" hidden>
|
||
<p class="call-raum__zeile">
|
||
<span class="call-raum__schild">Call-Raum</span>
|
||
<a class="call-raum__link" id="call-raum-link" target="_blank" rel="noopener noreferrer" hidden></a>
|
||
<span class="call-raum__leer" id="call-raum-leer" hidden>noch nicht festgelegt</span>
|
||
</p>
|
||
<button type="button" class="knopf-still" id="call-raum-aendern" hidden>Ändern</button>
|
||
<form class="call-raum__form" id="call-raum-form" hidden>
|
||
<label class="feld-schild" for="call-raum-feld">Link zum Sprachkanal (Discord)</label>
|
||
<input id="call-raum-feld" type="url" maxlength="400"
|
||
placeholder="https://discord.com/channels/…" />
|
||
<button type="submit" class="knopf knopf--klein">Speichern</button>
|
||
<button type="button" class="abmelden" id="call-raum-abbrechen">Abbrechen</button>
|
||
</form>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<div id="listen" aria-busy="true"><p class="leise">Gespräche werden geladen …</p></div>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/ki.js?v=202609070141" defer></script>
|
||
<script src="assets/js/wahl.js?v=202609070141" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609070141" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609070141" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609070141" defer></script>
|
||
<script src="assets/js/calls.js?v=202609070141" defer></script>
|
||
</body>
|
||
</html>
|