Forbedre tilgjengelighet (WCAG 2.2 AA) på alle sider

- Øk kontrast på slider-labels fra 0.45 til 0.6 opasitet (1.4.3)
- Legg til :focus-visible-stiler på slidere, kort og lenker (2.4.7)
- Legg til skip-link «Hopp til hovedinnhold» på alle sider (2.4.1)
- Knytt form-labels til inputs med for-attributt (1.3.1)
- Legg til role="img" og aria-label på alle chart-canvas (4.1.2)
- Legg til aria-live="polite" på slider-verdivisninger (4.1.3)
- Merk dekorative elementer med aria-hidden="true" (1.3.1)
- Legg til @media (prefers-reduced-motion: reduce) (2.3.3)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2026-03-25 20:53:44 +01:00
commit c6b70e1e5d
9 changed files with 147 additions and 76 deletions

View file

@ -23,50 +23,51 @@
</script>
</head>
<body>
<a href="#main" class="skip-link">Hopp til hovedinnhold</a>
<header>
<p class="eyebrow">Lik innsats. Ulikt utgangspunkt.</p>
<h1>Arvens<br><em>forsprang</em></h1>
<p class="lead">Person A starter fra null. Person B arver en sum. Begge sparer likt — men gapet lukkes aldri. Se hvordan arv forsterkes over tid.</p>
<div class="stamp">Fødselslotteriet</div>
<div class="stamp" aria-hidden="true">Fødselslotteriet</div>
</header>
<div class="small-diff-banner">
<span class="sd-icon"></span>
<span class="sd-icon" aria-hidden="true"></span>
<span>Pass på å velge rike foreldre. En arv på <strong id="banner-arv">500 000 kr</strong> vokser til over <strong id="banner-gap"></strong><strong id="banner-aar">30</strong> år — uten at B løfter en finger.</span>
</div>
<main>
<main id="main">
<div class="controls-card">
<h2>Sjekk selv</h2>
<div class="controls-grid">
<div class="control-group">
<label>Arvebeløp (B mottar)</label>
<label for="inheritance">Arvebeløp (B mottar)</label>
<div class="val-row">
<input type="range" id="inheritance" min="100000" max="3000000" step="50000" value="500000">
<span class="val-display" id="inheritance-out">500 000 kr</span>
<span class="val-display" aria-live="polite" id="inheritance-out">500 000 kr</span>
</div>
</div>
<div class="control-group">
<label>Månedlig sparing (begge)</label>
<label for="monthly">Månedlig sparing (begge)</label>
<div class="val-row">
<input type="range" id="monthly" min="1000" max="20000" step="500" value="3000">
<span class="val-display" id="monthly-out">3 000 kr</span>
<span class="val-display" aria-live="polite" id="monthly-out">3 000 kr</span>
</div>
</div>
<div class="control-group">
<label>Årlig avkastning (%)</label>
<label for="rate">Årlig avkastning (%)</label>
<div class="val-row">
<input type="range" id="rate" min="1" max="12" step="0.5" value="7">
<span class="val-display" id="rate-out">7,0 %</span>
<span class="val-display" aria-live="polite" id="rate-out">7,0 %</span>
</div>
</div>
<div class="control-group">
<label>Antall år</label>
<label for="yrs">Antall år</label>
<div class="val-row">
<input type="range" id="yrs" min="5" max="40" step="1" value="30">
<span class="val-display" id="yrs-out">30 år</span>
<span class="val-display" aria-live="polite" id="yrs-out">30 år</span>
</div>
</div>
</div>
@ -107,7 +108,7 @@
<span><span class="swatch" style="background:#c0392b;"></span>Person B</span>
</div>
</div>
<div class="chart-wrap h-240"><canvas id="chart1"></canvas></div>
<div class="chart-wrap h-240"><canvas id="chart1" role="img" aria-label="Diagram: Formue over tid"></canvas></div>
</div>
<!-- Diagram 2: Absolutt forskjell -->
@ -121,7 +122,7 @@
<span><span class="swatch" style="background:#4a3a8a;"></span>Gap (arv × (1+r)ⁿ)</span>
</div>
</div>
<div class="chart-wrap h-200"><canvas id="chart2"></canvas></div>
<div class="chart-wrap h-200"><canvas id="chart2" role="img" aria-label="Diagram: Absolutt forskjell"></canvas></div>
</div>
<div class="insight" id="insight"></div>
@ -137,7 +138,7 @@
<span><span class="swatch" style="background:#b5620a;"></span>Arv-andel (%)</span>
</div>
</div>
<div class="chart-wrap h-200"><canvas id="chart3"></canvas></div>
<div class="chart-wrap h-200"><canvas id="chart3" role="img" aria-label="Diagram: Arvens andel av Bs formue"></canvas></div>
</div>
<!-- Forklaring -->