Gå til innhold

Accessibility (tidl. Bobby), linker/knappe og JS


Anbefalte innlegg

Bobby er overtatt av Watchfire, men en kan fortsatt få validert websidene der for accessibility. Det prøver jeg, men sliter med noe som for meg ser ut til å være hårkløveri. Min lille kode

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
 <meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
 <meta name="author" content="Codename_Paragon">
 <meta name="description"
content="A standalone JavaScript test">
 <meta name="keywords"
content="standalone, download, javascript, JavaScript">
 <title>Test</title>

<script type="text/javascript" language="JavaScript1.2">
function jstest() {
 alert("Test")
}
</script>


</head>
<body>

<h1>The JavaScript Test</h1>



<input accesskey="c" name="Compile" value="Start Compiling the Form" onclick="jstest()" type="button"><br>
<a href="#" onclick="jstest()">Engage</a>.

</body>
</html>

Som en ser over, starter jeg en lite JavaScript-funksjon ved å klikke på en knapp, evt en link under. Istedet for å klikkem har jeg lagt inn en accesskey, slik at accessibility (som det heter på nyere norsk) sikres gjenom tastaturet som et alternativ.

 

Dette aksepterer ikke validatoren, og hoster opp en melding på knappen og på linken om at

Make sure event handlers do not require use of a mouse

 

For event handlers that do more than just change the presentation of an element, such as change color when the mouse moves over an item, consider the following:

 

    * Use application-level event triggers rather than user interaction-level triggers. In HTML 4.0, application-level event attributes are "onfocus", "onblur" (the opposite of "onfocus"), and "onselect". These events are triggered when something happens on the page regardless of how the user causes it to happen. For example, an "onfocus" event occurs when a control receives the focus, whether that is done by clicking the mouse or by using the keyboard. By contrast, device-dependent events only occur when a particular device is in use. A "onmousedown" event, which also can give a control the focus, is only triggered by a mouse action, and other means of giving focus to the control will not be responded to

    * If you must use device-dependent attributes, provide redundant input mechanisms; for example, specify two handlers for the same element, both of which have the same code associated with them:

 

 

Hva er rette fremgangsmåte?

Lenke til kommentar
Videoannonse
Annonse

Ja, det fungerer med onfocus(), men det betyr at du aktiverer denne bare du bruker TAB til du kommer til knappen. Aller helst vil jeg at brukere skal gjøre en normal ting for å aktivere skriptet, jeg tviler på at noen forventer at skriptet kjøres bare en fokuserer.

 

Acceskey er en tilleggsfunksjon, accesskey="c" gjør at det kjøres når du trykker ALT-C.

 

Jeg er glad for alle gode forslag.

Lenke til kommentar

Tviler dette er relevant for JS-delen, problemet ligger i helheten, pakket innn med HTML. NB:

- JS er debugget og kjører uten advarsler i JS-debuggervinduet

- HTML er godkjent av W3C-validatoren

- CSS er også godkjent av validatoren

Det eneste som er problemet er accessibility i Bobby-scan.

 

Jeg kikket på onKeyDown, men da blir ting ganske hårete, hadde håpet å unngå det ble mer komplisert enn det allerede er.

 

Jeg har lagt ned mye arbeide i å få akseptert Bobby-scan, koden (både HTML og JS) er svulmet voldsomt opp, men gevinsten er minimal. Nå sliter jeg med endel slike ting som det over, men skal det bli mer komplisert, må jeg vurdere å avskrive det hele.

Endret av Codename_Paragon
Lenke til kommentar

Bobby-validatoren er bare en maskin, som sannsynligvis peker på feil som ikke kommer til å skje i den praktiske hverdagen. Derfor ville ikke jeg tatt dette for tungt.

 

Jeg har likevel noen irrelevante kommentarer til HTML-koden, som du kanskje kan finne nyttig:

 

1. I den doctypen du har øverst i dokumentet er det ikke oppgitt en URI til DTDen. Dette fører til at Internet Explorer ikke klarer å finne ut hvilken HTML-versjon du bruker, og nettleseren går i quirk-modus. Bruk <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> i stedet.

 

2. <a href="#" onclick="jstest()">Engage</a> er misbruk av lenker, siden href-attributten er tom. Bruk heller et span-element, som du styler vha. CSS.

Lenke til kommentar

Jeg hadde håpet jeg kunne få en OK fra Bobby, men det aner meg at resultatet ikke står i forhold til innsatsen. Prosjektet spiller i Mozilla, Firefox, Opera og Internet Explorer. Det tok litt tid, men ingenting i forhold til å berolige Bobby.

 

Doctype-kommentaren er interessant. Jeg skrev rammeverket med editoren i Mozilla, hadde trodd den skulle være i henhold til standardene. Mozilla bruker Transitional, tror da at URIen blir

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

Enig i kommentaren om misbruk av lenker, det var et kjapt hack for å vise jeg hadde testet linker i tillegg til knapper. Denne forsvinner når siden er klar.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...