Kiinnostaisi kuulla, millaisia muutoksia tekisitte HTML:ään, jos ei tarvitsisi välittää taaksepäin yhteensopivuudesta. Oletetaan kuitenkin, ettei HTML:n tilalle suunniteltaisi uutta kieltä.
Tekisin ainakin tällaiset muutokset:
1) Muuttaisin tapaa, jolla kuvan vaihtoehtoinen teksti merkitään. Alt
-attribuutin sijasta vaihtoehtoinen teksti sijoitettaisiin img
-elementin sisälle:
<img src="kuva.png" alt="Lorem ipsum..."> <!-- Ei näin, --> <img src="kuva.png">Lorem ipsum...</img> <!-- vaan näin! -->
2) Yhtenäistäisin tavan, jolla ulkoiset CSS- ja JavaScript-tiedostot liitetään dokumenttiin:
<style src="tyylit.css" /> <script src="yleinen.js" /> <!-- Tägit on suljettu itensä sisällä, jottei väritys rikkoudu. -->
Tai sitten molemmat liitettäisiin link
-elementin avulla:
<link rel="styles" src="tyylit.css"> <!-- `stylesheet` muotoon `styles` --> <link rel="script" src="yleinen.js"> <!-- Attribuutti `href` vaihdettaisiin `src`-attribuuttiin, ellei ole perusteltua käyttää juuri `href`-attribuuttia -->
3) Mm. tyhjät iframe
- ja script
-elementit eivät tarvitsisi lopputägiä:
<iframe src="//www.youtube-nocookie.com/embed/...">
<img src="kuva.png">Lorem ipsum...</img>
MIKSI NÄIN? Tuo standardin mukainen tapa on paljon selkeämpi ja monipuolisempi. Attributit ovat tarkoituksella attribuutteja ja lopputägit on mun mielestä selkeitä, koska tällöin näkee milloin elementti sulkeutuu. Html-dokumentin rakenne on tällöin aina sama tägistä riippumatta.
Poistaisin n. 90% tageista ja jättäisin jäljelle vain tavan ilmaista kaikkein yksinkertaisimmat mahdolliset kuva-, teksti-, ääni- ja canvas-asettelut. 8)
Lebe80 kirjoitti:
<img src="kuva.png">Lorem ipsum...</img>MIKSI NÄIN? Tuo standardin mukainen tapa on paljon selkeämpi ja monipuolisempi. Attributit ovat tarkoituksella attribuutteja ja lopputägit on mun mielestä selkeitä, koska tällöin näkee milloin elementti sulkeutuu. Html-dokumentin rakenne on tällöin aina sama tägistä riippumatta.
Kun kuvan vaihtoehtoinen teksti on attribuutissa, ei siinä voi käyttää tägejä. Iframe-elementin voisi toki sulkea itsensä sisällä, mikä on yhtä selkeää kuin lopputägin käyttäminen:
<iframe src="//www.youtube-nocookie.com/embed/..." />
HTML5 kirjoitti:
Lebe80 kirjoitti:
<img src="kuva.png">Lorem ipsum...</img>MIKSI NÄIN? Tuo standardin mukainen tapa on paljon selkeämpi ja monipuolisempi. Attributit ovat tarkoituksella attribuutteja ja lopputägit on mun mielestä selkeitä, koska tällöin näkee milloin elementti sulkeutuu. Html-dokumentin rakenne on tällöin aina sama tägistä riippumatta.
Kun kuvan vaihtoehtoinen teksti on attribuutissa, ei siinä voi käyttää tägejä.
Mutta miksi ihmeessä alt-tekstissä pitäisi käyttää tägejä?! Selkeästi toinen meistä ei nyt tajua alt-attribuutin käyttötarkoitusta.
Lebe80 kirjoitti:
– –
Mutta miksi ihmeessä alt-tekstissä pitäisi käyttää tägejä?! Selkeästi toinen meistä ei nyt tajua alt-attribuutin käyttötarkoitusta.
On yksi tapaus: Kentässä on muunkielistä tekstiä, joka halutaan merkitä lang
-attribuutin avulla, esim. näin:
<img src="kuva.png">Neque porro quisquam est <span lang="en">Content Security Policy</span> qui dolorem ipsum quia.</img>
Nyt näytönlukija voi hyödyntää kielenmerkkausta ja ääntää englanninkielisen osuuden oikein.
Jonkinlaisen ratkaisun tähän tuo longdesc
-attribuutti.
Esimerkiksi video- ja object-tageillakin on fallback-ratkaisunsa nestattuina elementteinä, joten niihin nähden img-tagin attribuuttiin perustuva ratkaisu ei ole koherentti.
Mahdollisuus määritellä omia tageja olisi hyvä. Esimerkiksi
<span class="hassu">Moikka!</span>
olisi paremmin
<hassu>Moikka!</hassu>
Mikäs sen estää?
Antti Laaksonen kirjoitti:
Mahdollisuus määritellä omia tageja olisi hyvä.
Tämähän on ollut mahdollista jo pitkään XHTML:n myötä. Tosin hyöty on useimmille aika rajallinen, koska todellisen toiminnallisuuden tai semantiikan toteuttaminen noille omille tageille on usein hyvin työlästä ja/tai kallista.
Käytännössä, jos pelkkä css-tyylittely ja itse tehdyt js-tominnot riittävät, mikään ei estä tekemästä noita omia tageja jo nyt myös "perus htmlläkin". Se tosin tekee dokumentista epävalidin
Antti Laaksonen kirjoitti:
Mahdollisuus määritellä omia tageja olisi hyvä. – –
HTML5:ssä voi määritellä omia elementtejä. (http://www.html5rocks.com/en/tutorials/
Vaatimuksena on, että elementin nimessä pitää olla yhdysmerkki (-). Tämä ilmeisesti siksi, että validaattori voi näin erottaa omat elementit epävalideista elementeistä. (http://stackoverflow.com/questions/9845011/are-custom-elements-valid-html5)
Uudet selaimet kyllä osaa käsitellä custom tagejä ilman erillistä domiin rekisteröintiäkin. jopa IE. Validaattori on asia erikseen.
jsfiddle
groovyb kirjoitti:
Uudet selaimet kyllä osaa käsitellä custom tagejä ilman erillistä domiin rekisteröintiäkin. jopa IE. Validaattori on asia erikseen.
jsfiddle
Niin. Validaattorillekin riittää, kun nimessä on yhdysmerkki; rekisteröinti ei ole välttämätöntä.
Olen käsittänyt, että rekisteröinnistä voi olla hyötyä JavaSciptissä. Oma elementti voi esimerkiksi periä jonkin standardielementin ominaisuudet, mitä voi hyödyntää ohjelmoinnissaan.
Jos saisi tehdä uudelleen html:n niin kaikkein ensimmäiseksi tekisin standardin sellaiseksi, että selaimet oikeasti alkaisivat noudattaa sitä - KAIKKI. Ja vielä samalla tavalla. Ja muutenkin voisi keskittyä selainpuolen yhteensopivuuteen. Lisäksi sillisalaatti mahdollisuus pois - eli kaikki vanhat standardit roskalaatikkoon ja niitä vain ei enää tuettaisi. Kaikki yhdellä tavalla. Netti vain uusiksi kokonaan.
Spectrum kirjoitti:
Jos saisi tehdä uudelleen html:n niin kaikkein ensimmäiseksi tekisin standardin sellaiseksi, että selaimet oikeasti alkaisivat noudattaa sitä - KAIKKI.
Tää ei nyt varsinaisesti ole HTML:n ominaisuus, vaan selainten..
Lebe80 kirjoitti:
Mutta miksi ihmeessä alt-tekstissä pitäisi käyttää tägejä?! Selkeästi toinen meistä ei nyt tajua alt-attribuutin käyttötarkoitusta.
Olen samaa mieltä, mutta todennäköisesti eri mieltä kanssasi siitä, kumpi teistä ei ymmärrä.
Alt-määritteen määritelty tarkoitus on esittää vaihtoehtoinen sisältö tilanteissa, joissa selain (tms.) ei esitä kuvaa. Miksi tämä sisältö mielivaltaisesti rajattaisiin pelkäksi tekstiksi?
Lisäys:
HTML5 kirjoitti:
Kiinnostaisi kuulla, millaisia muutoksia tekisitte HTML:ään, jos ei tarvitsisi välittää taaksepäin yhteensopivuudesta. Oletetaan kuitenkin, ettei HTML:n tilalle suunniteltaisi uutta kieltä.
XHTML 2.0 oli vähän tuonsuuntainen aktiviteetti, mutta se päätyi umpikujaan, luultavasti lähinnä siksi, että yhteensopivuuden paineet ovat liian suuret.
lainaus:
Tekisin ainakin tällaiset muutokset:
1) Muuttaisin tapaa, jolla kuvan vaihtoehtoinen teksti merkitään.
Alt
-attribuutin sijasta vaihtoehtoinen teksti sijoitettaisiinimg
-elementin sisälle:
Ajatus olisi hyvin looginen, ja datan (kuten vaihtoehtotekstin) sijoittaminen määritteeseen eli attribuuttiin on yleistettyjen merkkauskielten periaatteiden vastaista. Määritteiden on tarkoitus kuvata elementin ominaisuuksia, ei sisältää sen sisältöä.
Img-elementistä tuli mikä tuli, koska Netscape teki sen (vauhdikkaasti) kuten teki ja oli aikansa johtava selain. Shipping code wins. Periaatesuunnittelua sen takana ei ollut nimeksikään.
HTML 4:ssä käyttöön otettu, aluksi surkeasti toteutettu object-elementti rakentuuu esittämällesi periaatteelle. Sitä voi myös käyttää kuvan esittämiseen niin, että vaihtoehtosisältö on ”rikasta tekstiä”, yleisesti HTML-sisältöä. Eri asia on, miten hyvin tämä käytännössä toimii.
lainaus:
2) Yhtenäistäisin tavan, jolla ulkoiset CSS- ja JavaScript-tiedostot liitetään dokumenttiin:
Olisi sinänsä loogista, mutta ei kovin tärkeää.
lainaus:
3) Mm. tyhjät
iframe
- jascript
-elementit eivät tarvitsisi lopputägiä:<iframe src="//www.youtube-nocookie.com/embed/...">
HTML5 jo määrittelee, ettei iframe-elementin sisällöllä ole merkitystä, mutta syntaksi on silti vanhalla kannalla. Tällainen näyttää tietysti hyvin epäloogiselta, jos kieltä tarkastellaan sellaisena kuin se nyt on määritelty, ilman historiaa.
Eri asia on, miten looginen HTML5:n upotuselementtien (img, object, embed, iframe, audio, video) viidakko on. Siinä on samaa adhockeryn makua kuin img-elementissä: määritellään elementti hoitamaan tietty homma miettimättä mitään teorioita ja kasataan siihen määritteitä sitä mukaa kuin tuntuu tarpeelliselta.
Jatkan vielä vähän tästä aiheesta.
Ottaisin HTML:n syntaksin pohjaksi XML:n. Kaikki elementit pitäisi siis sulkea, ja minkä tahansa tyhjän elementin voisi sulkea itsensä sisällä. Attribuuttien arvot tulisi aina kirjoittaa lainaus- tai heittomerkkien sisään.
Määritteen arvon saisi kuitenkin jättää kokonaan pois, jos se on tyhjä:
<input name="foo" required/>
XML-tyyliset nimiavaruudet mahdollistaisivat omien elementtien ja määritteiden käytön:
<html c:="http://..."> <!-- ... --> <c:hassu>Moikka!</c:hassu> <!-- ... --> </html>
Kunpa XHTML lopulta korvaisi HTML:n!
Aihe on jo aika vanha, joten et voi enää vastata siihen.