# a11y/main-landmark

Every page has exactly one <main> landmark. Reglen a11y/main-landmark kører i page-scope med severity 'error' og indgår i tilgængelighed-domænet sammen med 7 andre kontrakter i frameworket.

## Hvorfor main-landmark findes

The <main> landmark lets screen-reader users jump straight to content and tells AI agents where the content (vs. chrome) lives. Gold standard: exactly one <main> per page wrapping the primary content. This also scopes the framework's own content analysis (word counts, duplicate detection).

## Sådan håndhæves main-landmark

Reglen main-landmark evalueres på hver enkelt renderet HTML-side for sig, så et fund altid kan føres tilbage til én konkret side og én konkret rettelse i data eller template. Fejler en side, får agenten en finding, hvor fix-instruktionen for main-landmark er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på main-landmark fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

## Test og fixtures

Som alle kontrakter i frameworket har a11y/main-landmark en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består main-landmark sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

- [a11y/viewport](https://pseo.mikkelkrogsholm.dk/regler/a11y/viewport/)
- [a11y/accessible-names](https://pseo.mikkelkrogsholm.dk/regler/a11y/accessible-names/)
- [a11y/skip-link](https://pseo.mikkelkrogsholm.dk/regler/a11y/skip-link/)
