{# Ein sortierbarer Spaltenkopf — dieselbe Bedienung wie im Immotool (Vorgabe des Auftraggebers, 04.09.2026: «Tabellenkopf angleichen Immotool mit Sortierung, Aussehen etc.»). **Dreistufig, wie dort**: unsortiert → aufsteigend → absteigend → zurück zur Vorgabe. Das Immotool schaltet den Zustand mit `onSort`; hier ist jede Stufe eine Adresse, denn das Portal ist skriptfrei (A8). Der Kopf ist damit ein Verweis, kein Knopf — und die Sortierung steht in der Adresse, ist also ein Lesezeichen und ein Weg zurück. **Das Zeichen sagt, was gilt, und das Wort sagt, was es bedeutet.** Die drei Pfeile sind wortgleich mit `ChevronUp`, `ChevronDown` und `ChevronsUpDown` aus dem Immotool; sie stehen `aria-hidden`, weil die Aussage in `aria-sort` an der Zelle steht — das ist die Angabe, die Vorleseprogramme dafür kennen, und sie sagt es in ihren eigenen Worten. **`aria-sort` hat das Immotool NICHT** (nachgesehen in `data-table.tsx`, 04.09.2026). Es hier wegzulassen wäre die falsche Art von Angleichung: Das Portal bedient Laien ohne zweite Quelle, und ein Kopf, der nur farblich sagt, wonach sortiert ist, sagt es für einen Screenreader gar nicht. Erwartet: `wort`, `feld`, `jetzt` (die geltende Sortierung), `adresse` (eine Funktion, die zu einem Sortierwert die Adresse baut) und `vorgabe_ab` — wahr, wenn dieses Feld in der Vorgabe schon absteigend sortiert ist (das Datum). #} {% import "bausteine/symbol.html" as s %} {%- macro kopf(wort, feld, jetzt, adresse, vorgabe_ab=false) -%} {#- Welche Stufe gilt gerade, und welche kommt beim Klick. Die Vorgabe ist «Datum, neueste zuerst» und steht NICHT in der Adresse. Für das Datum heisst die zweite Stufe darum `datum-auf` und die dritte wieder nichts; für jedes andere Feld ist die erste Stufe aufsteigend (`titel`), die zweite absteigend (`titel-ab`), die dritte nichts. -#} {%- set auf = feld if not vorgabe_ab else feld ~ '-auf' -%} {%- set ab = feld ~ '-ab' if not vorgabe_ab else '' -%} {%- if jetzt == auf %}{% set richtung = 'aufsteigend' %}{% set weiter = ab %} {%- elif jetzt == ab and ab %}{% set richtung = 'absteigend' %}{% set weiter = '' %} {%- elif vorgabe_ab and not jetzt %}{% set richtung = 'absteigend' %}{% set weiter = auf %} {%- else %}{% set richtung = '' %}{% set weiter = auf %}{% endif -%} {{ wort }}{% if richtung == 'aufsteigend' %}{{ s.symbol("hoch", 12) }}{% elif richtung == 'absteigend' %}{{ s.symbol("runter", 12) }}{% else %}{{ s.symbol("beides", 12) }}{% endif %} {%- endmacro -%}