Kattava opas vedä ja pudota -toimintojen saavutettavuuteen kaikille käyttäjille. Opi parhaat käytännöt, ARIA-attribuutit ja vaihtoehtoiset ratkaisut.
Vedä ja pudota: Interaktiivisten elementtien saavutettavuuden hallinta
Vedä ja pudota -käyttöliittymät ovat tehokkaita työkaluja intuitiivisten ja mukaansatempaavien käyttökokemusten luomiseen. Ne voivat kuitenkin asettaa merkittäviä saavutettavuushaasteita vammaisille käyttäjille, erityisesti niille, jotka käyttävät näppäimistöä tai ruudunlukuohjelmia. Tämä opas tarjoaa kattavan yleiskatsauksen siitä, miten suunnitella ja toteuttaa saavutettavia vedä ja pudota -toimintoja, varmistaen, että kaikki käyttäjät voivat hyötyä tästä dynaamisesta ominaisuudesta.
Saavutettavuushaasteiden ymmärtäminen
Perinteiset vedä ja pudota -toteutukset nojaavat usein vahvasti hiiren käyttöön, mikä tekee niistä luonnostaan saavuttamattomia käyttäjille, jotka eivät voi käyttää hiirtä. Yleisiä saavutettavuusesteitä ovat:
- Näppäimistötuen puute: Näppäimistöä käyttävät käyttäjät eivät välttämättä pysty aloittamaan, suorittamaan tai päättämään vedä ja pudota -toimintoja.
- Ruudunlukuohjelmien yhteensopimattomuus: Ruudunlukuohjelmat eivät välttämättä ilmoita oikein raahattavien elementtien tilaa tai kohdealueita, jolloin käyttäjät eivät ole tietoisia vuorovaikutusmahdollisuuksista.
- Riittämättömät visuaaliset vihjeet: Visuaaliset vihjeet, jotka osoittavat raahattavat elementit ja pudotusalueet, eivät välttämättä ole riittäviä heikkonäköisille tai kognitiivisista rajoitteista kärsiville käyttäjille.
- Kognitiivinen kuormitus: Vedä ja pudota -toimintojen ymmärtämiseen ja suorittamiseen vaadittava henkinen ponnistus voi olla liiallinen käyttäjille, joilla on kognitiivisia rajoitteita.
ARIA-attribuutit: Avain saavutettavaan vedä ja pudota -toimintoon
Accessible Rich Internet Applications (ARIA) -attribuuteilla on keskeinen rooli vedä ja pudota -toimintojen saavutettavuudessa. Nämä attribuutit tarjoavat semanttista tietoa avustaville teknologioille, mikä mahdollistaa niiden välittää tarkasti interaktiivisten elementtien tilan ja tarkoituksen.
Keskeiset ARIA-attribuutit
aria-grabbed
: Ilmaisee, raahataanko elementtiä parhaillaan. Mahdolliset arvot ovattrue
taifalse
. Aseta arvoksitrue
, kun elementtiin on tartuttu, jafalse
, kun ei ole. Esimerkki:<li aria-grabbed="false">Raahattava kohde</li>
aria-dropeffect
: Määrittää vedä ja pudota -toiminnon tyypin, joka voidaan suorittaa pudotuskohteelle. Mahdollisia arvoja ovat:none
: Pudotuskohde ei hyväksy raahattua elementtiä.copy
: Kopio raahatusta elementistä lisätään pudotuskohteeseen.move
: Raahattu elementti siirretään pudotuskohteeseen.link
: Linkki raahattuun elementtiin luodaan pudotuskohteeseen.execute
: Raahattu elementti käynnistää toiminnon, kun se pudotetaan pudotuskohteeseen.
<div aria-dropeffect="move">Pudotusalue</div>
aria-live
: Käytetään ilmoittamaan muutoksista käyttäjälle. Yleisiä arvoja ovatpolite
,assertive
jaoff
. Harkitse tämän käyttöä pudotusalueilla ilmoittamaan, kun kohde on pudotettu.
Esimerkkitoteutus (JavaScript)
Tämä yksinkertaistettu esimerkki näyttää, kuinka ARIA-attribuutteja ja JavaScriptiä käytetään perusmuotoisen saavutettavan vedä ja pudota -toiminnon luomiseen.
// Raahattava elementti
const draggable = document.getElementById('draggable');
draggable.setAttribute('aria-grabbed', 'false');
draggable.addEventListener('mousedown', () => {
draggable.setAttribute('aria-grabbed', 'true');
// Lisää visuaalinen merkki siitä, että sitä raahataan
});
draggable.addEventListener('mouseup', () => {
draggable.setAttribute('aria-grabbed', 'false');
// Poista visuaalinen merkki
});
// Pudotusalue
const dropzone = document.getElementById('dropzone');
dropzone.setAttribute('aria-dropeffect', 'move');
dropzone.addEventListener('mouseup', () => {
if (draggable.getAttribute('aria-grabbed') === 'true') {
dropzone.appendChild(draggable);
draggable.setAttribute('aria-grabbed', 'false');
// Ilmoita ruudunlukuohjelmalle
dropzone.setAttribute('aria-live', 'polite');
dropzone.textContent = 'Kohde pudotettu!';
setTimeout(() => {dropzone.setAttribute('aria-live', 'off'); dropzone.textContent = 'Pudotusalue';}, 2000);
}
});
Näppäimistösaavutettavuus: Vaihtoehtoisen syöttötavan tarjoaminen
Näppäimistösaavutettavuuden varmistaminen on ratkaisevan tärkeää käyttäjille, jotka eivät voi käyttää hiirtä. Tämä tarkoittaa näppäimistövastineiden tarjoamista kaikille vedä ja pudota -toiminnoille.
Toteutusstrategiat
- Sarkainjärjestys: Varmista, että kaikki raahattavat elementit ja pudotusalueet ovat sarkainjärjestyksessä. Käytä
tabindex
-attribuuttia kohdennusjärjestyksen hallintaan. - Näppäinyhdistelmät: Määritä pikanäppäimet vedä ja pudota -toimintojen aloittamiseen, siirtämiseen ja päättämiseen. Yleisiä näppäinyhdistelmiä ovat:
- Välilyönti: Elementin valitsemiseen tai siihen tarttumiseen.
- Nuolinäppäimet: Valitun elementin siirtämiseen.
- Enter: Elementin pudottamiseen sillä hetkellä kohdennetulle pudotusalueelle.
- Visuaaliset kohdennusilmaisimet: Tarjoa selkeät ja näkyvät kohdennusilmaisimet kaikille interaktiivisille elementeille auttaaksesi käyttäjiä seuraamaan sijaintiaan.
Esimerkki: Näppäimistöllä saavutettava listan uudelleenjärjestely
Kuvittele tilanne, jossa käyttäjien on järjestettävä listan kohteita uudelleen. Näppäimistöllä saavutettava toteutus voisi sisältää seuraavat vaiheet:
- Käyttäjä siirtyy sarkaimella listan kohteeseen.
- Käyttäjä painaa välilyöntiä valitakseen kohteen.
- Käyttäjä painaa ylä- tai alanuolinäppäimiä siirtääkseen kohdetta listassa.
- Käyttäjä painaa Enter-näppäintä pudottaakseen kohteen uuteen paikkaansa.
Ruudunlukuohjelmien yhteensopivuus: Auditiivisen palautteen antaminen
Ruudunlukuohjelmat käyttävät semanttista tietoa välittääkseen interaktiivisten elementtien tilan ja tarkoituksen näkövammaisille käyttäjille. Ruudunlukuohjelmien yhteensopivuuden varmistamiseksi on olennaista:
- Käytä ARIA-attribuutteja oikein: Kuten yllä on kuvattu, ARIA-attribuutit tarjoavat tarvittavan semanttisen tiedon, jotta ruudunlukuohjelmat ymmärtävät vedä ja pudota -toiminnon.
- Tarjoa kuvailevat nimikkeet: Käytä
aria-label
- taiaria-labelledby
-attribuutteja antaaksesi kuvailevat nimikkeet raahattaville elementeille ja pudotusalueille. - Ilmoita tilanmuutoksista: Käytä
aria-live
-alueita ilmoittamaan vedä ja pudota -toiminnon tilan muutoksista, kuten kun elementtiin tartutaan, sitä siirretään tai se pudotetaan. - Tarjoa vaihtoehtoinen teksti: Tarjoa kaikille visuaalisille vihjeille vastaava vaihtoehtoinen teksti, jonka ruudunlukuohjelmat voivat lukea.
Esimerkki: Ruudunlukuohjelman ilmoitus
Kun käyttäjä tarttuu raahattavaan elementtiin, ruudunlukuohjelma saattaa ilmoittaa: "Raahattava kohde, tartuttu, siirrä nuolinäppäimillä, pudota enter-näppäimellä." Kun käyttäjä pudottaa elementin, ruudunlukuohjelma saattaa ilmoittaa: "Kohde pudotettu pudotusalueelle."
Vaihtoehtoiset ratkaisut: Kun vedä ja pudota ei ole paras valinta
Vaikka vedä ja pudota voi olla tehokas vuorovaikutustekniikka, se ei aina ole saavutettavin tai sopivin ratkaisu. Joissakin tapauksissa vaihtoehtoiset ratkaisut voivat olla sopivampia:
- Listan uudelleenjärjestely painikkeilla: Tarjoa painikkeet kohteiden siirtämiseksi ylös tai alas listassa. Tämä lähestymistapa on luonnostaan näppäimistöllä saavutettava ja helppo ymmärtää.
- Valitse ja siirrä -toiminnot: Salli käyttäjien valita kohde ja sitten valita sille kohde pudotusvalikosta tai listasta.
- Lajiteltavat taulukot: Tarjoa datataulukoille lajiteltavia sarakkeita, joiden avulla käyttäjät voivat järjestellä tietoja eri kriteerien perusteella.
- Progressiivinen paljastaminen: Sen sijaan, että paljastaisit lisätietoa vetämällä ja pudottamalla, käytä progressiivisen paljastamisen tekniikoita, kuten laajennettavia osioita tai modaalisia dialogeja.
Testaus ja validointi
Perusteellinen testaus on välttämätöntä sen varmistamiseksi, että vedä ja pudota -toteutuksesi on todella saavutettava. Tähän sisältyy:
- Näppäimistötestaus: Varmista, että kaikki vedä ja pudota -toiminnot voidaan suorittaa pelkällä näppäimistöllä.
- Ruudunlukuohjelmatestaus: Käytä ruudunlukuohjelmaa käyttöliittymän selaamiseen ja varmista, että kaikki olennainen tieto ilmoitetaan oikein.
- Automaattinen saavutettavuustestaus: Käytä automaattisia saavutettavuustestaus-työkaluja mahdollisten saavutettavuusongelmien tunnistamiseen.
- Käyttäjätestaus: Suorita käyttäjätestausta vammaisten henkilöiden kanssa kerätäksesi palautetta ja tunnistaaksesi parannuskohteita.
Parhaat käytännöt saavutettavalle vedä ja pudota -toiminnolle
Tässä on joitakin parhaita käytäntöjä, jotka kannattaa pitää mielessä suunniteltaessa ja toteutettaessa saavutettavia vedä ja pudota -toimintoja:
- Priorisoi näppäimistösaavutettavuus: Tarjoa aina näppäimistöllä käytettävä vaihtoehto hiirellä tehtävälle vedä ja pudota -toiminnolle.
- Käytä ARIA-attribuutteja semanttisesti: Käytä ARIA-attribuutteja oikein tarjotaksesi semanttista tietoa avustaville teknologioille.
- Tarjoa selkeät visuaaliset vihjeet: Käytä selkeitä ja näkyviä visuaalisia vihjeitä osoittamaan raahattavat elementit ja pudotusalueet.
- Ilmoita tilanmuutoksista: Käytä
aria-live
-alueita ilmoittamaan vedä ja pudota -toiminnon tilan muutoksista. - Harkitse vaihtoehtoisia ratkaisuja: Arvioi, onko vedä ja pudota sopivin vuorovaikutustekniikka juuri sinun käyttötapaukseesi.
- Testaa perusteellisesti: Suorita perusteellinen testaus vammaisten käyttäjien kanssa varmistaaksesi, että toteutuksesi on todella saavutettava.
- Tarjoa ohjeet: Anna selkeät ja ytimekkäät ohjeet vedä ja pudota -ominaisuuden käyttöön, mukaan lukien näppäimistönavigointiohjeet.
- Kohdennuksen hallinta: Hallitse kohdennusta asianmukaisesti vedä ja pudota -toimintojen aikana varmistaaksesi, että käyttäjät pysyvät orientoituneina käyttöliittymässä. Varmista esimerkiksi vedä ja pudota -toiminnon päätyttyä, että kohdennus palaa loogiseen paikkaan, kuten seuraavaan listan elementtiin, tai pysyy pudotusalueella, jos käyttäjä todennäköisesti on vuorovaikutuksessa pudotetun kohteen kanssa.
- Kumoa/Tee uudelleen -toiminnallisuus: Toteuta kumoa/tee uudelleen -mekanismi, erityisesti kriittisissä toiminnoissa. Tämä antaa käyttäjille mahdollisuuden korjata helposti vetämisen ja pudottamisen aikana tehdyt virheet, mikä tarjoaa turvaverkon ja vähentää turhautumista.
Globaalit näkökohdat
Saavutettavuus on globaali huolenaihe. Kun suunnittelet vedä ja pudota -käyttöliittymiä, ota huomioon seuraavat globaalit tekijät:
- Kielituki: Varmista, että kaikki tekstit ja nimikkeet on käännetty oikein useille kielille.
- Kulttuuriset tavat: Ole tietoinen kulttuurisista tavoista, jotka voivat vaikuttaa siihen, miten käyttäjät ovat vuorovaikutuksessa käyttöliittymän kanssa. Esimerkiksi kirjoitussuunta (vasemmalta oikealle vs. oikealta vasemmalle) voi vaikuttaa raahauslähteiden ja -kohteiden visuaaliseen asetteluun.
- Avustavien teknologioiden saatavuus: Pidä mielessä, että avustavien teknologioiden saatavuus ja käyttö voivat vaihdella eri alueilla.
- Säännösten noudattaminen: Ole tietoinen saavutettavuusmääräyksistä eri maissa, kuten WCAG (Web Content Accessibility Guidelines), EN 301 549 (eurooppalainen standardi ICT-tuotteiden ja -palveluiden saavutettavuusvaatimuksille) ja Section 508 (Yhdysvaltain saavutettavuuslaki).
Yhteenveto
Noudattamalla näitä ohjeita voit luoda vedä ja pudota -toimintoja, jotka ovat saavutettavia kaikille käyttäjille heidän kyvyistään riippumatta. Muista, että saavutettavuus ei ole vain tekninen vaatimus; se on osallistavan suunnittelun perusperiaate. Priorisoimalla saavutettavuuden voit luoda osallistavamman ja käyttäjäystävällisemmän verkon kaikille.
Tämä opas tarjoaa lähtökohdan saavutettavan vedä ja pudota -toiminnon ymmärtämiseen ja toteuttamiseen. Opi jatkuvasti ja mukauta käytäntöjäsi saavutettavuusstandardien ja -teknologioiden kehittyessä.