HTML 5

Transcription

HTML 5
HTML 5
Max Beckers
Universität Osnabrück
Inhaltsverzeichnis
1. Einleitung.................................................................................................................................................. 2
2. Geschichte................................................................................................................................................ 3
3. Die Idee...................................................................................................................................................... 4
4. Veränderungen..........................................................................................................................................
4.1 Neue Elemente..................................................................................................................................
4.2 Neu definierte Elemente....................................................................................................................
4.3 Neue Attribute....................................................................................................................................
4.4 Doctype..............................................................................................................................................
4.5 Entfernte Elemente............................................................................................................................
4.6 Entfernte Attribute..............................................................................................................................
5
5
8
8
9
9
10
5. Verbesserungen........................................................................................................................................ 11
6. HTML5 heute............................................................................................................................................. 12
7. Schlusswort.............................................................................................................................................. 13
8. Quellen...................................................................................................................................................... 14
1. Einleitung
2
1. Einleitung
Das Internet ist ständig in Bewegung. Täglich entstehen viele neue Websites. Dank Tim Berners-Lee, der
Erfinder von HTML, Begründer des WWW(World Wide Web) und Vorsitzender des W3C (World Wide Web
Consortium) ist es überhaupt möglich, dass dies auf eine recht einfache Art und Weise zu gestalten ist. HTML
ist vor allem dafür entworfen worden, wissenschaftliche Dokumente zu präsentieren. Es ist die meist verbreitetste
Sprache zum erstellen von Websites. Sie wird von Entwicklern von Websites verwendet. HTML hat seinen
weltweiten Erfolg der leichten Verwendbarkeit und den logischen und einprägsamen gewählten Vokabeln zu
verdanken. Um HTML aber wirklich zu Verstehen sollte man sich beispielsweise auch mit DOM Core und DOM
Events auskennen. Auch hilfreich ist es, wenn man mit der Verwendung vom HTTP, Javascript, XML und/oder
CSS vertraut ist, aber nicht notwendig um HTML anwenden zu können.
Derzeitig verwendet man HTML4, welches schon vor circa einem Jahrzehnt entwickelt wurde. Doch da es so
viel im Einsatz ist hat Berners-Lee auch nicht ganz unrecht, wenn er sagt: „Es ist notwendig HTML inkrementell
weiterzuentwickeln.“ Und somit sind etliche Entwickler schon in Teilen seit 2003 dabei die nächste große
Überarbeitung der Hypertext Markup Language (HTML) zu entwickeln, die in ein paar Jahren HTML4 ablösen
wird.
2. Geschichte
3
2. Geschichte
HTML5 soll HTML4 ersetzen, dass bereits seit 1997 genutzt wird. Die Entwicklung der neuen HTML-Version
sieht wie folgt aus:
• 2003: „XForms Basic“-Vorschlag von Ian Hickson (Entwickler von Browsertests)
• Frühjahr 2004: Gründung der WHATWG (Web Hypertext Application Technology Working Group, bestehend
aus Browser-Herstellern wie Mozilla, Apple und Opera)
• Juni 2004: Die WHATWG veröffentlicht einen ersten Vorschlag für HTML5 unter dem Namen Web Applications
1.0.
• 2004: „XForms-Basic“ wird in „Web Forms“ umbenannt und von der WHATWG übernommen.
• 2005: Erste Arbeitsentwürfe für Web Applications 1.0.
• Oktober 2006: wird zu der WHATWG von der W3C eine Arbeitsgruppe gegründet, die beginnt eine Sprache
zu entwickeln die sich zwar an der klassischen HTML-Syntax orientiert, aber auch als XML-Formulierung
verwendet werden kann.
• Frühjahr 2007: W3C und WATHWG beschließen HTML5 auf Web Applications 1.0 aufzubauen.
• 2007: Es wird sich darauf geeinigt, dass W3C die Copyrigths bekommt. Beide Arbeitsgruppen arbeiten jetzt
zusammen.
• Januar 2008: W3C veröffentlicht den ersten Arbeitsentwurf.
• Februar 2009: Die W3C macht „Web Forms(2.0)“ zu einem offiziellen Teil von HTML5.
• Derzeit erwartetes Jahr der Fertigstellung: 2012
Aber selbst wenn HTML5 im Jahr 2012 formell fertiggestellt sein sollte, so hängt es dann von den
Browser-Herstellern ab, wann HTML5 wirklich benutzt werden kann. Hier ist es den Entwicklern sehr wichtig,
dass es zwei Implementationen gibt. Einige Neuheiten von HTML5 sind allerdings schon jetzt in den aktuellen
Versionen der Browser enthalten.
3. Die Idee
4
3. Die Idee
Die eigentliche Idee von HTML5 ist es nicht nur ein Update von HTML4 zu machen. HTML 5 ist eine Sprache,
die in angepasster HTML- sowie XML-Syntax geschrieben werden kann. Dennoch entsteht eine Syntax, die
entsprechend mit HTML 4 und XHTML 1 kompatibel ist. Es ist von enormer Bedeutung, dass bestehende
Websites nicht sofort nach Einführung von HTML 5 in HTML5 umgeschrieben werden müssen, sondern auch
erst nach der Einführung von HTML 5 kann mit der Umstellung begonnen werden.
HTML bis einschließlich HTML4 ist eine SGML(Standard Generalized Markup Language)-Anwendung. Allerdings
verfügen selbst die modernen Webbrowser über keinen „echten“ SGML-Parser. Ein Parser ist ein Prüfprogramm,
das die Struktur eines Dokumentes gegen eine Dokumenttypdefinition (DTD) abprüft und so sicherstellt, dass
das Dokument den Regeln der DTD entspricht und fehlerfrei von Programmen verarbeitet werden kann. Falls
das Programm auf einen Fehler trifft, so wird dieser ausgegeben. In der DTD steht also beispielsweise drin,
welche Elemente erlaubt sind und welches Element welche Attribute hat und ob diese optional oder
vorgeschrieben sind.
Zurück zu den Webbrowsern, welche aber einen HTML-Parser besitzen. Deshalb können bestimmte syntaktische
SGML-Regeln in HTML nicht angewendet werden. Weshalb HTML5 jetzt versucht nicht mehr auf SGML zu
basieren, sondern es wird eine eigene HTML-Syntax definiert. Diese wird sich zwar an der klassischen
HTML-Syntax orientieren, aber beispielsweise die Fehlerbehandlung wird neu definiert werden. Hierbei wird
versucht sich möglichst an vorhandene Implementierungen der Browser zu orientieren, damit die Syntax
rückwärtskompatibel bleibt, also beispielsweise HTML4 weiterhin läuft. So werden zwar auch die Browser noch
einige Neuerungen vornehmen müssen, aber rein theoretisch (praktisch nicht, da ja die Implementierung ja
noch fehlt) könnten einige HTML5-Befehle schon heute von den aktuellen Browsern verarbeitet werden.
4. Veränderungen
5
4. Veränderungen
Bevor ich nun auf die Neuerungen im Einzelnen eingehe möchte ich kurz beschreiben, was sich allgemein
geändert hat erst einmal im Hinblick darauf, was sich unter HTML5 besser oder auch einfach einfacher darstellen
lässt. HTML5 hat sich insgesamt in vielen Bereichen erneuert. Besonders die Funktionen für multimediale
Inhalte hat sich um einiges spezifiziert und auch vereinfacht. In HTML5 ist es auch deutlich einfacher Formulare
zu erstellen, da die Entwickler auch hier eine Notwendigkeit für eine Verbesserung gesehen haben. Auch um
es für den Programmierer noch übersichtlicher zu machen haben sich die Entwickler Mühe gegeben, eine noch
deutlichere und klarere Struktur einzuführen. Dies kann man schon daran sehr gut erkennen, wenn man sich
einmal die Neuerungen anschaut, also das was unter HTML5 komplett neu ist und dann im Vergleich dazu,
was es unter HTML5 nicht mehr gibt.
Zunächst werde ich jetzt einmal aufzeigen, was unter HTML 5 alles neu ist. Anschließend alles was man unter
HTML5 nicht mehr zur Verfügung hat, was sich aber in HTML5 auf eine andere Art und Weise mindestens
genau so gut darstellen lässt.
4.1 Neue Elemente
In den folgenden Abschnitten werden Elemente beschrieben, die es unter den Vorgängern noch nicht gab. Die
meisten Neuheiten sind hier im Bereich der Seiteneinteilung oder Seitengestaltung und auch im multimedialen
Bereich. Es wird also deutlich vereinfacht, Audio- und Video-Datein in eine Website mit einzubinden.
• header
Mit diesem Element wird ein Kopfbereich für einen Abschnitt definiert. In dem Kopfbereich steht die
Überschrift. Neben der eigentlichen Überschrift kann dieser zum Beispiel auch die Version des folgenden
Textes enthalten. Die einzelnen Informationen im Kopfbereich müssen selbst definiert werden.
Beispiel:
1 <header>
2
<h1>Titel</h1>
3
<h2>Untertitel</h2>
4 </header>
• footer
Mit diesem Element wird die Fußzeile für einen Abschnitt oder eine Seite definiert. Die Fußzeile gibt
weitergehende Auskünfte über den Text wie zum Beispiel den Autor oder Informationen über die Webseite
wie zum Beispiel das Impressum. Hier findet aber zum Beispiel auch das „Kleingedruckte“ oft seinen Platz
was ja eigentlich dazu da ist, dass es übersehen wird, was weit unten auf einer Webseite öfter der Fall ist.
• article
Mit „article“ wird ein Textabschnitt definiert, der im direkten Zusammenhang mit den Vorfahrelementen
steht. Beispiele dafür sind Nachrichtenartikel oder auch Forenbeiträge.
• section
Damit wird ein Abschnitt mit thematisch zusammenhängenden Inhalt definiert. Dieser Abschnitt kann auch
gleichzeitig einen Kopf- und Fußbereich enthalten.
• aside
Mit „aside“ wird ein Abschnitt beschrieben, der zwar nicht zu dem eigentlichen Artikel gehört aber thematisch
schon dazu passt. Beispielsweise könnten es Quell- oder Querverweise für einen Nachrichtenartikel sein.
• nav
4. Veränderungen
6
Mit diesem Element wir ein Navigationsbereich in einem Dokument erstellt. So Beispielsweise das Menü
auf einer Webseite. Dieser kann sowohl interne als auch externe Links enthalten.
• dialog
Dieses Element ist zur Kennzeichnung eines Dialoges in einem HTML-Dokument. In diesem Zusammenhang
gibt es die neuen Elemente „dd“ und „dt“. Diese beiden Elemente formatieren den Dialog dann um einen
Dialog übersichtlich zu gestalten ohne dass man noch groß formatieren muss. Mit dt werden die Personen
markiert, die an dem Dialog teilnehmen. Mit dd wird dementsprechend dann gekennzeichnet und formatiert,
was die einzelnen Personen sprechen oder schreiben. Dialog kann beispielsweise für Gespräche, Chats,
Interviews, Drehbücher und vieles mehr eingesetzt werden.
Beispiel:
1 <dialog>
2
<dt>Reporter</dt>
3
<dd>Was sagen sie dazu?</dd>
4
<dt>Gesprächspartner</dt>
5
<dd>Ähm...ja also ich finde das gut!</dd>
6
...
7 </dialog>
http://www-lehre.inf.uos.de/~maxbecke/dia.html
• audio und video
Wie der Name schon vermuten lässt sind diese beiden Elemente zum einbetten von Audio- bzw.Videodatein.
HTML5 soll verschiedene Schnittstellen zur Verfügung stellen, um die Wiedergabe dieser Dateien steuern
zu können. Video kann man die Attribute src, poster, autobuffer, autoplay, loop, controls, width und height
zuweisen. Audio src, autobuffer, autoplay, loop und controls.
Beispiel:
1 <video src="Quelle" poster="Bild" controls>
2
<a href="Quelle">Film herunterladen</a>
3 </video>
http://www-lehre.inf.uos.de/~maxbecke/vid.html
Der in dem Beispiel eingesetzte Link kann auch durch einen beliebigen anderen Text ersetzt oder auch
weggelassen werden. Alles was zwischen <video> und </video> steht wird nämlich nur angezeigt, wenn
der Browser aus welchen Gründen auch immer das Video nicht darstellen kann. Es sei denn man verwendet
hier das neue source-Element, aber dazu in dem entsprechenden Abschnitt Näheres.
• embed
Dieses Element ist schon aus HTML4 bekannt. In HTML4 wurden damit Audio- und Videodatein eingebunden.
Unter HTML5 sollen mit „embed“ externe Anwendungen und interaktive Inhalte eingebunden werden. So
werden zum Beispiel Flash-Animationen weiterhin mit embed in das HTML-Dokument eingebettet.
• canvas
Das Canvas-Element, was übersetzt Leinwand heißt, und das beschreibt auch schon ziemlich gut, was
man damit machen kann. Von dezenten optischen Extras bis hin zu kompletten eigenen
Programmoberflächen kann man damit einiges anstellen und alles was man dafür braucht, ist ein klein
wenig Ahnung von HTML und Javascript. Von einfachen Formen die man bildlich darstellt, wie zum Beispiel
Rechtecke, über Texte schreiben und Spielgrafiken darstellen bis hin zu Bildbearbeitung ist hier so einiges
möglich. Das Canvas-Element ist standartmäßig auf 300x150 Pixel gesetzt, kann durch die beiden Attribute
width ung heigth aber beliebig verändert werden. Das Canvas ist aufgebaut wie ein Koordinatensystem
wobei der Nullpunkt oben links in der Ecke ist.
Noch ist das Canvas nur zweidimensional, aber es ist schon in Planung, dass es das auch irgendwann in
3d geben wird. Also mit dem Canvas wird bald so einiges möglich sein, was jetzt noch gar nicht oder nur
sehr schwer umzusetzen ist.
Beispiel:
4. Veränderungen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
7
...<head>...<script>
function drawCanvas(){
var canvas = document.getElementById('canvas1');
if(canvas.getContext){
var context = canvas.getContext('2d');
context.fillStyle = "rgb(255, 0, 255)";
context.fillRect(0, 0, canvas.width, canvas.height);
}
}
</script>...</head>
<body onload=„drawCanvas()“>
...
<canvas id=„canvas1“ width=„300“ heigth=„200“>
</canvas>
http://www-lehre.inf.uos.de/~maxbecke/bsp.html
• time
Hiermit soll es möglich sein, einen interaktiven Kalender zu erzeugen oder Daten und Uhrzeiten darzustellen.
• source
Für ein Medienelement unterschiedlicher Art können mit diesem Element unterschiedliche Quellen angegeben
werden. Damit soll z.B. dem Browser geholfen werden, das passende Plugin/externe Programm zur
Darstellung zu finden.
Beispiel:
1 <audio autoplay loop>
2
<source src=„Quelle 1“ type=„audio/mpeg“>
3
<source src=„Quelle 2“ type=„audio/ogg“>
4 </audio>
• progress
Die Bezeichnung kommt aus dem Englischen und heißt „Fortschritt“. Diese Aufgabe soll das Element auch
erfüllen. Es dient zu einer Fortschrittsanzeige bei der Ausführung von bestimmten Aufgaben - wie z.B. bei
einer mehrseitigen Umfrage.
• m
Dieses Element hebt u.a. den Text hervor, der von einer Suchmaschine gefunden wurde und sichtbar
markiert wird. Damit hat der Benutzer bzw. der Browser die Möglichkeit, den Text schneller zu finden.
Anderweitig hervorgehobene Texte wie z. B. durch <b> spielen hier keine Rolle.
• meter
Damit wird z. B. angezeigt, wie gut ein Suchergebnis zum eingegebenen Suchbegriff ist oder die Einschätzung
eines Produktes im Vergleich zur besten Bewertung.
• mark
Dieses Element kennzeichnet eine Reihe von markierten Texten.
• details
Hier werden dem Benutzer einige zusätzliche Informationen bereitgestellt, die dieser nach Bedarf aufrufen
kann.
• datalist
Kann mit Hilfe des für input neuen Attribut list dazu verwendet werden, Comboboxen zu erstellen.
• keygen
4. Veränderungen
8
Das keygen-Element ist wie der Name schon sagt dazu da, Schlüssel zu generieren. Zum Beispiel für den
Login auf Websites.
• output
Dieses Element ist beispielsweise zum Ausgegeben von irgendwelchen Ergebnissen, wenn eine Berechnung
durchgeführt wurde.
4.2 Neu definierte Elemente
In den folgenden Abschnitten werden Elemente beschrieben, die von ihren Entwicklern neu definiert worden
sind, die ihrer Anwendung entsprechen sind und den Sinn der Elemente dem Nutzer verdeutlichen sollen. Am
praktischen Einsatz dieser Elemente wird sich kaum etwas bis gar nichts ändern. Die Elemente können also
weiterhin verwendet werden wie immer nur jetzt ist anhand der Definitionen verständlicher gemacht worden,
was diese Elemente bezwecken sollen. Vor allem weil sie meist auch nur in dem Kontext verwendet werden
wie sie in den neuen Definitionen beschrieben werden.
• i
Bisher erzeugte das Element einen kursiv (= schräg) geschriebenen Text. Jetzt sollen damit Texte markiert
werden, die im Normalfall kursiv dargestellt werden sollen - z. B. Gedanken, Titel usw.
• b
Früher hat dieses Element einen Textabschnitt "fett" markiert. Mit HTML5 soll mit diesem Element ein
Abschnitt hervorgehoben werden, der aber keine wichtigere Bedeutung als der gesamte Text hat. Bestimmte
Schlüsselwörter oder Produktbezeichnungen sind zwei Beispiele dafür.
• em
Damit wird weiterhin Text markiert, der hervorgehoben werden soll. Allerdings verstärkt sich der Effekt des
Elementes dadurch, wenn es verschachtelt angewendet wird.
• hr
Bisher erzeugte dieses Element eine waagerechte Linie. In HTML5 hat sich daran nichts geändert, jedoch
symbolisiert die Linie zusätzlich einen thematischen Umbruch zwischen einzelnen Textabschnitten.
• small
Bisher wurde damit ein Text pauschal kleiner als die normale Schriftgröße formatiert. In HTML5 soll damit
das „Kleingedruckte“ wie Geschäftsbedingungen, Urheberrechtshinweise oder Einschränkungen in der
rechtlichen Handhabung ausgezeichnet werden.
• strong
Die bisherige Aufgabe dieses Elementes wird in HTML5 durch das „em“-Element übernommen. Jetzt stellt
dieses Element die besondere Wichtigkeit des damit gekennzeichneten Textabschnittes da.
4.3 Neue Attribute
Auch im Hinblick auf die Attribute hat man sich einige Gedanken gemacht, was sich vereinfachen lässt und
was es eventuell auch noch gar nicht gab. Im folgenden werde ich einige neue Attribute vorstellen:
• Neue Werte für den Input
Eine besonders große Neuerung sind die vielen neuen type-Werte für den Input. Und zwar hat man hier
um sowohl dem Programmierer als auch dem Anwender mit folgenden neuen Attributen so einiges
vereinfacht: color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url und
week. Dadurch dass man jetzt einem Input einem bestimmten Typ zuweisen kann und HTML5 dann
4. Veränderungen
9
selbständig dafür sorgt, dass beispielsweise bei Date auch nur ein Datum eingegeben wird, muss hier keine
extra Fehlerbehandlung mit Hilfe von Javascript durchgeführt werden, weil die Browser das selbst überprüfen.
Des weiteren hat man dem Input noch autocomplete, list , min/max (minimale/maximale Anzahl von
Zeichen),multiple und pattern hinzugefügt, um die Eingabe noch weiter spezifizieren zu können.
In einem Formular möchte man manchmal auch einige Eingabefelder zu Pflichtfeldern machen. Auch dafür
gibt es jetzt ein neues Attribut: required (funktioniert nur wenn der Input nicht hidden ist).
• autofocus
Ein weiteres neues Attribut ist autofocus auf button, input (sofern nicht hidden), select und textarea, um
den Fokus auf Formularelemente zu legen. Somit kann man wenn man autofocus zum Beispiel auf button
legt gleich indem man „Return/Enter“ drückt den Button aktivieren.
• sizes
Sizes ist ein neues Attribut für das link-Element um Icon-Größen angeben zu können.
• form
Dieses Attribut ist um die Formularelemente button, fieldset, input, output, select und textarea, die auch
außerhalb von Formularen stehen stehen können mit Formularen zu assoziieren.
• disabled
Man kann ein fieldset auf disabled setzen, um einen ganzen Formularabschnitt zu deaktivieren.
• async
Das Attribut asynic auf script ist dazu entworfen, um das Laden und Ausführen von Skripten steuern zu
können.
4.4 Doctype
Wie auch schon die älteren Versionen von HTML benötigt auch das HTML5 Dokument einen Doctype. Allerdings
waren die Doctypes früher immer recht lang. Dies hing damit zusammen, dass HTML SGML benötigte und der
Verweis auf eine DTD machte den Doctype dann immer sehr lang und schwer zu merken. Dies ändert sich
unter HTML5 grundlegend. Da HTML ja nicht mehr auf SGML baut braucht man auch keinen Verweis mehr
auf irgendeine DTD. Der Doctype sieht daher recht übersichtlich aus und ist auch um einiges besser zu merken:
<!DOCTYPE html>. Mit diesem Befehl wissen die Browser, dass hier ein HTLM-Dokument kommt und können
dies dann entsprechend verarbeiten.
4.5 Entfernte Elemente
Es wurden einige Elemente entfernt, die größtenteils veraltet sind und daher nur sehr selten verwendet werden
oder die unter HTML5 unnötig sind, weil sie nicht mehr benötigt werden oder aber von anderen Elementen mit
übernommen werden.
• acronym
Das Element acronym wurde entfernt, da abbr die Aufgaben von acronym einfach mit übernimmt, weil beide
dazu da sind, Abkürzungen zu markieren (z.b. <ABBR TITLE="United Nations">U.N.</ABBR> )
• Einige präsentationsbezogene Elemente
Die Elemente basefont, font, big, center, tt, strike, u, s zum formatieren von Präsentationen wird es in
HTML5 nicht mehr geben.
• noscript
Noscript wird nicht mehr benötigt, da dies nur für Probleme mit den Parsern da war, da HTML5 nun nicht
mehr auf SGML basiert hat sich das Problem von selbst gelöst.
4. Veränderungen
10
• frame, frameset, noframe
Die Elemente hat man entfernt, da es Probleme mit der Bedienbarkeit und der Barrierefreiheit gab. Deshalb
wird es unter HTML5 nur noch IFrames geben. Diese werden auch jetzt schon zum größten Teil verwendet,
von daher wird es in diesem Bereich keine große neue Umstellung geben. Denn eigentlich alle Websites,
die mit Frames arbeiten, verwenden IFrames und es werden auch keine neuen Websites (die Frames
verwenden) mehr mit den normalen Frames programmiert.
4.6 Entfernte Attribute
Es sind auch einige Attribute entfernt worden. Ich habe mal einige wichtige Attribute herausgesucht, die jetzt
nicht mehr verwendet werden können.
• name
auf img, also zum benennen eines Bildes, gibt es nicht mehr.
• abbr
kann jetzt nicht mehr bei th und td verwendet werden.
• bgcolor
auf body, table, td, th, und tr wurde entfernt.
• algin
zum Ausrichten von caption, col, colgroup, div, h1, h2, h3, h4, h5, h6, hr, iframe, img, input, legend, object,
p, table, tbody, td, tfoot, th, thead und tr wurde ebenfalls entfernt.
• frameborder
wurde auch nicht übernommen, da in HTML5 nur noch iframes verwendet werden.
• Für den body
wurden alink, link, text und vlink und background entfernt.
5. Verbesserungen
11
5. Verbesserungen
Also was sich mit Sicherheit sagen lässt, ist dass der Doctype deutlich angenehmer und besser zu merken
geworden ist. Aber wenn das alles wäre was sich für den Programmierer verbessert hätte, dann bräuchte man
kein HTML5 schreiben. Obwohl natürlich die Veränderung, die dahinter steht nicht zu verachten ist. Es ist nicht
so, dass man einfach nur die Adresse weglässt, sondern das hängt damit zusammen, dass man nicht mehr
auf SGML baut. Aber was für den Programmierer von besonderer Bedeutung ist, dass der Programmcode
durch die Neuerungen um Einiges übersichtlicher geworden ist. Und einen übersichtlichen, gut strukturierten
Programmcode kann man viel besser bearbeiten und es kann auch schneller ein Fehler erkannt werden. Denn
Fehler passieren immer und diese in einem unübersichtlichen Programmcode zu suchen macht keinen Spaß.
Dann haben sich die Elemente zu Seiteneinteilung vereinfacht, so dass auch für einen noch nicht so geübten
Programmierer sofort klar ist, wo er sich befindet. So weiß man wenn man eine Überschrift erstellen muss
sofort man braucht <header> und muss nicht erst noch die <div id=„header“> schreiben. Die neuen
Bezeichnungen sind also selbsterklärend. Dies gilt natürlich auch für die anderen Elemente zur Seiteneinteilung.
Wobei natürlich zu bemerken ist, dass das zwar jetzt eine gute Neuerung ist und einem auch die entsprechende
CSS-Datei jeweils um ein Zeichen verkürzt, da man jetzt einfach die Raute vor #header weglässt und dann so
das Element definiert.
Dann ist durch die entsprechenden Attribute und Elemente die Ein- und Ausgabe vereinfacht worden, dadurch
dass die Eingabe beispielsweise durch die neuen Attribute so vereinfacht wurde dass man einfach als type='date'
einfügt und jetzt können nur noch Daten eingegeben werden. In Opera 9 wird das Eingabefeld in Kombination
mit dem Attribut „date“ beispielsweise gleich zu einer Kombobox, wo man dann das entsprechende Element
auswählen kann. Oder auch die Fehlerbehandlung muss jetzt nicht noch in Javascript dazugeschrieben werden,
sondern die wird gleich von den Browsern mit übernommen. Auch durch das Anpassen von einigen Definitionen
an das, für was die Elemente auch jetzt schon eingesetzt werden macht diese Elemente auch besser, da sie
jetzt auch zu dem verwendet werden, was die Definition vorschreibt für was sie zu verwenden sind.
6. HTML5 heute
12
6. HTML5 heute
Das ist natürlich eine der interessantesten Fragen für einen Programmierer. Kann ich heute schon meine
Website in HTML5 schreiben? Doch die Antwort ist etwas schwieriger als man zunächst denken würde. Es ist
nämlich in gewissem Sinne schon möglich auch einige Teile in HTML5 zu schreiben. Denn einige
HTML5-Elemente werden auch schon von den aktuellen Versionen unserer Browser unterstützt. So können
beispielsweise schon die Elemente zu Seiteneinteilung, also <header>,<nav>, und <article> verwendet werden.
Aber alle Elemente sind nicht verwendbar, da ein Teil auch noch gar nicht komplett fertig entwickelt und
implementiert ist.
Auch die neuen Inputs können so verwendet werden. Wenn ein Browser zum Beispiel für ein <input type="date">
eine Zeitpicker-Funktion zur Verfügung stellt ist das gut, aber wenn der Browser als Fallback für unbekannte
Input-Typen type="text" verwendet (wie das das bei den meisten aktuellen Browsern der Fall ist), dann geht
das auch.
Aber einige Browser unterstützen HTML5 stärker, andere sind da noch nicht so weit. Am weitesten sind in
diesem Bereich auf jeden Fall Google Chrome und Safari 4. Bei diesen beiden Browsern sind auch schon
Elemente wie beispielsweise video, audio oder auch canvas benutzbar. Aber auch hier kann es bei Attributen
noch zu Problemen kommen. Auch Opera oder Monzilla geben sich Mühe da mitzuhalten, hier bekommt man
aber noch deutlich mehr Probleme im Umgang mit HTML5. Ganz weit abgeschlagen im Bereich HTML5 ist der
InternetExplorer wo es auch in näherer Zukunft noch keine HTML5-Unterstützung geben wird.
Für den InternetExplorer gibt es allerdings eine Möglichkeit diesem die Elemente sozusagen beizubringen.
Jetzt stellt sich natürlich die Frage wie man das denn macht. Also gehen wir mal davon aus wir würden gerne
das „section“-Element einsetzen. Das wäre dann mit folgendem Javascript zu verwirklichen:
1 document.createElement('section');
Wenn man nicht nur einzelne Elemente mit einbinden möchte, sondern alle dann kann man es sich auch etwas
vereinfachen und muss nicht jedes einzeln „erstellen“, sondern kann mit dem folgenden Skript alle gleichzeitig
einbinden:
1 <!--[if IE]>
2
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
<![endif]-->
Aber natürlich hat dieser Trick auch einen Haken: Wenn Javascript deaktiviert ist, dann sind die betroffenen
Elemente auch unbrauchbar, weil die jetzt durch Javascript in die Website eingebunden werden. Somit ist dies
zwar in manchen Fällen vielleicht eine gute Übergangslösung, aber mit Sicherheit nichts von Dauer. Also heißt
es jetzt warten, bis endlich 2012 ist und alle Elemente frei verwendet werden können.
Allerdings hat Youtube als Beispiel schon einmal eine Seite in HTML5 ins Internet gestellt:
http://www.youtube.com/html5
7. Schlusswort
13
7. Schlusswort
Im Prinzip spricht also nichts gegen den Einsatz von HTML5, auch heute schon, man muss sich halt nur
überlegen wie viel HTML5 man einsetzt möchte. Was man aber auf jeden Fall gut machen kann ist, dass man
die Elemente verwendet, die es unter HTML4 auch schon gab und die nur in ihrer Definition verändert wurden.
Der einfache Doctype ist auch ein Beispiel für einen echten Bonus ohne Haken. Was man auf jeden Fall gut
machen kann ist normales XHTML zu schreiben und dann einfach den neuen Doctype darüber zu setzen.
Außerdem sollte man sich überlegen wenn man interessiert daran ist, welchen Browser man dann verwendet,
da wir ja im vorherigen Abschnitt gesehen haben, dass es nicht ganz egal ist, welchen Browser man verwendet,
sondern dass man schon einen von den nehmen sollte, der etwas mehr HTML5 beherrscht wie zum Beispiel
Google Chrome. Auch sollte man überlegen, wenn man eine Webseite in HTML5 ins Netz stellt ob das schon
Sinnvoll ist, da man dann ja auch sicherstellen sollte, dass die Benutzer der Webseite auch einen Webbrowser
benutzen sollten, der die Webseite dann auch anzeigen kann. Denn es bringt einem ja nichts, wenn man zwar
eine Seite in HTML5 online hat, aber kaum einer der Benutzer überhaupt was mit der Seite anfangen kann,
da die meisten nur ein weißes Bild oder so etwas sehen können.
8. Quellen
8. Quellen
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
http://de.wikipedia.org/wiki/HTML5
http://dev.w3.org/
http://www.peterkroener.de/
http://www.whatwg.org/
http://www.html-world.de/
http://www.alistapart.com/articles/previewofhtml5
https://developer.mozilla.org/
http://webkit.org/blog/140/html5-media-support/
http://www.w3schools.com/
http://www.webmasterpro.de/
http://9elements.com/
http://www.golem.de/
http://szenesprachenwiki.de/
http://meiert.com/de/
http://www.webkrauts.de/
http://www.slideshare.net/
http://carsonified.com/
http://maettig.com/
http://www.designmadeingermany.de/
http://www.teialehrbuch.de/
http://powerbook.blogger.de/
http://www.html-5.de/
http://codecandies.de/
http://html5demos.com/
http://www.bluishcoder.co.nz/
http://www.zeit.de/
http://createordie.de/
http://martin.podhovnik.at/
http://www.jonasjohn.de/
14