Patobulinti kelių žingsnių formos prieinamumą naudojant „Aria-Live“

Patobulinti kelių žingsnių formos prieinamumą naudojant „Aria-Live“
Patobulinti kelių žingsnių formos prieinamumą naudojant „Aria-Live“

Padaryti daugiapak

Sukurti vientisą ir prieinamą kelių žingsnių formą labai svarbu užtikrinti įtraukiančią vartotojo patirtį. Kūrėjai dažnai susiduria su iššūkiais, kaip informuoti ekrano skaitytojų vartotojus, kai jie naršo dinamiškai keičiant veiksmus. Vienas pagrindinis sprendimas yra svertas Aria-Live Regions Paskelbti žingsnių pokyčius, tačiau įgyvendinimo metodas gali turėti didelę įtaką prieinamumui. 🎯

Įsivaizduokite, kad vartotojas pasikliauja ekrano skaitytuvu, kad užpildytų formą, padalytą į kelis veiksmus. Jei žingsnio perėjimas nebus paskelbtas tinkamai, jie gali jaustis pasimetę, nežinantys savo progreso. Štai kodėl būtina pasirinkti tinkamą „Aria-Live“ turinio atnaujinimo metodą. Ar atnaujinimas turėtų įvykti šaknies lygyje, ar kiekvienas žingsnis turėtų turėti savo gyvą regioną? 🤔

Šiame straipsnyje mes išnagrinėsime geriausią įgyvendinimo praktiką Aria-Live Žingsnių rodikliai „JavaScript“ varomose kelių žingsnių formose. Palyginsime du įprastus metodus: dinamiškai atnaujinti vieną gyvą regioną šaknyje ir įterpti gyvus regionus kiekvieno žingsnio šablone. Kiekvienas požiūris turi savo stipriąsias puses ir kompromisus.

Pabaigoje turėsite aiškesnį supratimą apie veiksmingiausią būdą, kaip užtikrinti prieinamą ir sklandžios formos patirtį visiems vartotojams. Pasinerkime į detales ir pažiūrėkime, kuris požiūris veikia geriausiai! 🚀

Komanda Naudojimo pavyzdys
aria-live="polite" Naudojamas pranešti ekrano skaitytojams apie dinaminio turinio atnaujinimus, nenutraukiant dabartinės vartotojo veiklos.
<template> Apibrėžia daugkartinio naudojimo HTML bloką, kuris lieka neaktyvus, kol įterptas į DOM per „JavaScript“.
document.getElementById("elementID").classList.add("hidden") Prideda CSS klasę, kad dinamiškai paslėptų konkretų elementą, naudingą formoje pereinant.
document.getElementById("elementID").innerHTML = template.innerHTML Įšvirkškite šablono elemento turinį į kitą elementą, veiksmingai pateikdamas žingsnį dinamiškai.
document.getElementById("step-announcer").textContent Atnaujina tiesioginį regioną su nauju tekstu, kad paskelbtų dabartinį veiksmą, pagerindamas prieinamumą.
classList.remove("hidden") Pašalina CSS klasę, kuri slepia elementą, todėl kitas formos žingsnis tampa matomas.
alert("Form submitted!") Parodomas iššokantis pranešimas, kad patvirtintų formos pateikimą, siūlantį pagrindinį būdą teikti vartotojo atsiliepimus.
onclick="nextStep(1)" Priskirkite mygtuko „JavaScript“ funkciją, leidžiančią vartotojams dinamiškai progresuoti per formos veiksmus.
viewport meta tag Užtikrina, kad forma reaguoja skirtingais ekrano dydžiais, kontroliuojant pradinį puslapio mastelio keitimo lygį.
loadStep(1); Automatiškai įkelia pirmąjį formos žingsnį, kai puslapis inicijuojamas, pagerindamas vartotojo patirtį.

Užtikrinti prieinamumą daugialypėje formose su „Aria-Live“

Kuriant a Kelių žingsnių forma, būtina užtikrinti prieinamumą visiems vartotojams, įskaitant tuos, kurie pasikliauja ekrano skaitytojais, yra būtina. Aukščiau sukurtuose scenarijuose tai išspręsta naudojant Aria-Live Regionai, skirti dinamiškai atnaujinti vartotojus apie jų pažangą. Pirmajame metode naudojamas vienas „Aria-Live“ elementas šaknies lygyje, atnaujindamas jo turinį „JavaScript“, kai vartotojas pereina į kitą žingsnį. Šis metodas užtikrina, kad pokyčiai būtų paskelbti nuosekliai, išvengiant atleidimo gyvuose regionuose, išlaikant sklandų patirtį.

Antrasis metodas įterpia „Aria-Live“ tiesiai į kiekvieną šabloną, užtikrinant, kad kiekvienas žingsnis turėtų pranešti, kai rodomas. Šis metodas yra naudingas, kai veiksmuose yra skirtingos kontekstinės informacijos, kurią reikia nedelsiant perduoti. Pavyzdžiui, jei formos žingsnis apima asmeninės informacijos įvedimą, tiesioginiame pranešime gali būti konkrečių patarimų, tokių kaip „2 žingsnis: Įveskite savo el. Paštą“. Tai suteikia daugiau struktūrizuotų atnaujinimų, tačiau reikia kruopščiai įgyvendinti, kad būtų išvengta persidengiančių pranešimų.

Abu metodai apima DOM manipuliavimą naudojant „JavaScript“ funkcijas. „NextStep“ () Funkcija slepia dabartinį žingsnį ir atskleidžia kitą, tuo pačiu dinamiškai atnaujindama gyvą regioną. Naudojimas classlist.add („paslėptas“) ir classlist.remove („paslėptas“) Užtikrina sklandžius perėjimus be nereikalingų pakartotinio ryšio. Be to, šablono metodas pasitelkia document.getElementByID („elementID“). Innerhtml Norėdami dinamiškai sušvirkšti atitinkamą žingsnį, padarydami formą modulinę ir prižiūrimą.

Norėdami naudoti realaus pasaulio tinkamumą, apsvarstykite galimybę silpną vartotoją užpildyti darbo paraiškos formą. Neturėdami tinkamų „Aria-Live“ atnaujinimų, jie galbūt nesuvokia, kad jie pateko į kitą skyrių, sukeldami painiavą. Teisingas įgyvendinimas užtikrina, kad jie išgirs „3 žingsnį: patvirtinkite savo duomenis“, kai tik pasirodys naujas turinys. Efektyviai struktūrizuodami „Aria-Live“, kūrėjai sukuria vientisą patirtį, kuri pagerina įsitraukimą ir patogumą. 🚀

„Aria-Live“ įdiegimas daugiapakopėms formoms „JavaScript“

„Frontend“ įgyvendinimas naudojant „JavaScript“ ir HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Accessible Multi-Step Form</title>
  <style>
    .hidden { display: none; }
  </style>
</head>
<body>
  <div aria-live="polite" id="step-announcer">Step 1 of 3</div>
  <div id="form-container">
    <div class="step" id="step1">
      <p>Step 1: Enter your name</p>
      <input type="text" id="name">
      <button onclick="nextStep(1)">Next</button>
    </div>
    <div class="step hidden" id="step2">
      <p>Step 2: Enter your email</p>
      <input type="email" id="email">
      <button onclick="nextStep(2)">Next</button>
    </div>
    <div class="step hidden" id="step3">
      <p>Step 3: Confirm your details</p>
      <button onclick="submitForm()">Submit</button>
    </div>
  </div>
  <script>
    function nextStep(current) {
      document.getElementById(`step${current}`).classList.add("hidden");
      document.getElementById(`step${current + 1}`).classList.remove("hidden");
      document.getElementById("step-announcer").textContent = `Step ${current + 1} of 3`;
    }
    function submitForm() {
      alert("Form submitted!");
    }
  </script>
</body>
</html>

Kiekvieno žingsnio šablono viduje

„Frontend“ įgyvendinimas naudojant „JavaScript“ ir