--- id: 614796cb8086be482d60e0ac title: Step 46 challengeType: 0 dashedName: step-46 --- # --description-- Per quanto riguarda l'accessibilità visiva, il contrasto tra gli elementi è un fattore chiave. Ad esempio, il contrasto tra il testo e lo sfondo di un titolo dovrebbe essere almeno 4.5:1. Cambia il colore del testo di tutti gli elementi di ancoraggio dentro gli elementi della lista in modo che abbia un rapporto di contrasto di almeno 7:1. # --hints-- Dovresti usare il selettore `li > a`. ```js assert.exists(new __helpers.CSSHelp(document).getStyle('li > a')); ``` Dovresti dare all'elemento `a` una proprietà `color`. ```js assert.notEmpty(new __helpers.CSSHelp(document).getStyle('li > a')?.color); ``` Dovresti dare alla proprietà `color` un contrasto con lo sfondo di almeno 7:1. _Suggerimento: userei `#dfdfe2`_ ```js function luminance(r, g, b) { const a = [r, g, b].map((v) => { v /= 255; return v <= 0.03928 ? v / 12.92 : Math.pow( (v + 0.055) / 1.055, 2.4 ); }); return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722; } function contrast(rgb1, rgb2) { const lum1 = luminance(rgb1[0], rgb1[1], rgb1[2]); const lum2 = luminance(rgb2[0], rgb2[1], rgb2[2]); const brightest = Math.max(lum1, lum2); const darkest = Math.min(lum1, lum2); return (brightest + 0.05) / (darkest + 0.05); } const backgroundColour = [27, 27, 50]; for (let elem of document.querySelectorAll('li > a')) { const a = getComputedStyle(elem)?.color; const rgbA = a?.match(/(\d+),\s(\d+),\s(\d+)/); const aColour = [rgbA[1], rgbA[2], rgbA[3]]; assert.isAtLeast(contrast(backgroundColour, aColour), 7); } ``` # --seed-- ## --seed-contents-- ```html Accessibility Quiz

HTML/CSS Quiz

Student Info

HTML

1

The legend element represents a caption for the content of its parent fieldset element

2

A label element nesting an input element is required to have a for attribute with the same value as the input's id

CSS

``` ```css body { background: #f5f6f7; color: #1b1b32; font-family: Helvetica; margin: 0; } header { width: 100%; height: 50px; background-color: #1b1b32; display: flex; } #logo { width: max(100px, 18vw); background-color: #0a0a23; aspect-ratio: 35 / 4; padding: 0.4rem; } h1 { color: #f1be32; font-size: min(5vw, 1.2em); } nav { width: 50%; max-width: 300px; height: 50px; } nav > ul { display: flex; justify-content: space-evenly; } nav > ul > li { color: #dfdfe2; margin: 0 0.2rem; padding: 0.2rem; display: block; } --fcc-editable-region-- --fcc-editable-region-- h1, h2 { font-family: Verdana, Tahoma; } h2 { border-bottom: 4px solid #dfdfe2; } p::before { content: "Question #"; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } ```