Huomasin, että W3C:n validaattori on alkanut valittaa asiasta, josta se ei ole ennen sanonut mistään.
Nyt yhtäkkiä W3C:n validaattori antoi seuraavat virheet:
http://validator.w3.org/check?uri=[osoite poistettu]
Validator.nu ei moisesta valita: http://html5.validator.nu/?doc=[osoite poistettu]
Eräältä sivulta (http://lists.whatwg.org/htdig.cgi/help-whatwg.org/2007-December.txt) löytyi tieto, jonka mukaan input-elementit eivät saa olla suoraan form-elementin lapsia, vaan niiden on oltava block-tason elementin sisällä, joka voi puolestaan olla form-elementin sisällä.
Otin neuvosta vaarin ja laitoin input elementit div-elementin sisälle – ei auttanut. Kokeilin myös p- ja fieldset-elementtejä ja sama tulos.
Onko kellään tietoa, mistä voisi kiikastaa?
Input-elementille ei sallita attribuuttia role.
Role- ja aria-attribuuttien oikeaoppisesta käytöstä:
http://www.w3.org/html/wg/drafts/html/master/
Heti auttoi, kun poistin role-attribuutin. En tiennytkään, että yksi attribuutti voi sotkea asian näin pahasti. Virheilmoituksissa ei ollut pientäkään mainintaa role-attribuutista.
Jotenkin kuvittelin, että role="search" olisi tarkoitettu nimenomaan hakukentälle, mutta se onkin näköjaan tarkoitettu hakulomakkeelle.
No nyt opin tämänkin asian. Pitää tosiaan opiskella noiden role-attribuuttien oikea käyttötapa muutenkin.
Niin no, en minäkään tuota välttämättä olisi nähnyt suoraan katsomalla, mutta noudatin debuggaamisen tärkeintä sääntöä: lue aina virheilmoitukset.
Line 151, Column 92: Attribute placeholder not allowed on element input at this point. … <input type="text" name="k" placeholder="Haku" maxlength="80" role="search"> Attributes for element input: Global attributes accept when type is file alt when type is image autocomplete when type is text, search, url, tel, e-mail, password, datetime, date, month, week, time, datetime-local, number, range, or color autofocus checked when type is checkbox or radio dirname when type is text or search disabled form formaction when type is submit or image formenctype when type is submit or image formmethod when type is submit or image formnovalidate when type is submit or image formtarget when type is submit or image height when type is image list when type is text, search, url, tel, e-mail, datetime, date, month, week, time, datetime-local, number, range, or color max when type is datetime, date, month, week, time, datetime-local, number, or range maxlength when type is text, search, url, tel, e-mail, or password min when type is datetime, date, month, week, time, datetime-local, number, or range multiple when type is email or file name pattern when type is text, search, url, tel, e-mail, or password placeholder when type is text, search, url, tel, e-mail, password, or number readonly when type is text, search, url, tel, e-mail, password, datetime, date, month, week, time, datetime-local, or number required when type is text, search, url, tel, e-mail, password, datetime, date, month, week, time, datetime-local, number, checkbox, radio, or file size when type is text, search, url, tel, e-mail, or password src when type is image step when type is datetime, date, month, week, time, datetime-local, number, or range type value when type is not file or image width when type is image
The Alchemist kirjoitti:
Input-elementille ei sallita attribuuttia role.
Se on sallittu kaikille elementeille:
http://www.w3.org/TR/html5/dom.html#aria-role-attribute
Tässä on ilmeisesti kyse validaattorin bugista. Valitettavasti validaattorien kehitys on hiukan liian luovaa eli aika usein tulee ”korjauksia”, joiden mukana on pahojakin virheitä. Tehkää bugiraportti jos jaksatte, ohjeet löytyvät validaattorin sivuilta. Veikkaisin että tämä havaitaan muutenkin viikon kuluessa ja korjataan melko pian.
lainaus:
Authors may use the ARIA role and aria-* attributes on HTML elements, in accordance with the requirements described in the ARIA specifications, except where these conflict with the strong native semantics described below.
Suoraan linkkaamaasi lukua edeltävästä luvusta. Olin tästä ymmärtävinäni, ettei input-elementin kanssa voi käyttää role-attribuuttia, koska type-attribuutti määrittää tällaisen "strong native semantics" -merkityksen valmiiksi. Toisin sanoen role-attribuutti olisi vähintäänkin redundantti. Joka tapauksessa quoteamastani validatorin virheilmoituksesta selviää, ettei validator hyväksy role-attribuuttia kyseiselle elementille.
The Alchemist kirjoitti:
Olin tästä ymmärtävinäni, ettei input-elementin kanssa voi käyttää role-attribuuttia, koska type-attribuutti määrittää tällaisen "strong native semantics" -merkityksen valmiiksi.
Olit ymmärtänyt väärin. Sääntö, jonka mukaan role-määrite ei saa olla ristiriidassa natiivin semantiikan kanssa, ei kiellä tämän määritteen käyttöä.
lainaus:
Joka tapauksessa quoteamastani validatorin virheilmoituksesta selviää, ettei validator hyväksy role-attribuuttia kyseiselle elementille.
Se on selvää. Jokseenkin yhtä selvää on, että tämä on validaattorin bugi ja että se lisäksi raportoi virheen väärin: se valittaa type-, placeholder- ja maxlength-määritteestä, vaikka se yrittää (virheellisesti) sanoa, että virhe olisi role-määritteessä.
Ajattelinkin, että joku bugi on kyseessä, sillä ei tuo virheilmoitus liity mitenkään siihen, että role-attribuutti input-elementissä ei olisi sallittu.
Joka tapauksessa poistin tuon role-attribuutin ja vaihdoin type-attribuutin arvoksi ”search”. Se hyvältä ratkaisulta, vaikka validaattorissa on ilmeisesti bugi.
Yucca kirjoitti:
Veikkaisin että tämä havaitaan muutenkin viikon kuluessa ja korjataan melko pian.
Taidan olla optimisti, sillä bugien käsittely näyttää olevan hitaampaa kuin muistin. No, tein bugiraportin:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22846
Aihe on jo aika vanha, joten et voi enää vastata siihen.