Das Internet gibt es schon sehr lange, und im Laufe der Zeit haben sich unsere Vorstellungen vom Webdesign verändert. Viele alte Techniken und Arbeitsweisen wurden durch neuere und bessere Alternativen ersetzt, und wir sagen, dass sie veraltet sind.
Veraltet. Das ist ein Wort, das wir oft verwenden und sehen. Aber haben Sie schon einmal darüber nachgedacht, was es in der Praxis bedeutet? Was sind einige Beispiele für veraltete Webelemente und warum verwenden wir sie nicht mehr?
Was ist Veraltung?
Im alltäglichen Sprachgebrauch bedeutet „etwas veralten lassen“, Missbilligung dafür auszudrücken. Sie könnten zum Beispiel geneigt sein, eine Nachricht, die Ihnen nicht gefällt, zu veralten lassen.
Wenn wir jedoch in einem technischen Sinne sprechen, bedeutet Veraltung die Entmutigung der Verwendung eines alten Features. Oft bleibt die alte Funktion aus Gründen der Abwärtskompatibilität funktionsfähig (damit Legacy-Projekte nicht brechen). Im Wesentlichen bedeutet dies, dass Sie technisch gesehen Dinge immer noch auf die Legacy-Art tun können. Es wird wahrscheinlich immer noch funktionieren, aber vielleicht ist es besser, den neuen Weg zu gehen.
Ein weiteres häufiges Szenario ist, dass technische Elemente als Vorstufe zu ihrer zukünftigen Entfernung veraltet werden (was wir manchmal als „Auslaufenlassen“ eines Features bezeichnen). Dies gibt allen Zeit, vom alten Arbeitsweg auf das neue System umzusteigen, bevor der Übergang stattfindet. Wenn Sie WordPress verfolgen, haben sie dies kürzlich mit ihrem radikal neuen Gutenberg-Editor getan. Sie haben ihn veröffentlicht, aber eine Option beibehalten, um zum „klassischen“ Editor zurückzukehren, damit die Benutzer Zeit zum Übergang hatten. Eines Tages wird der „klassische“ Editor wahrscheinlich entfernt, und Gutenberg ist die einzige Option für die Bearbeitung von Beiträgen. Mit anderen Worten, WordPress lässt den „klassischen“ Editor auslaufen.
Das ist nur ein Beispiel. Wir können uns auch HTML-Features ansehen, die einst wesentliche Bestandteile waren, aber irgendwann veraltet sind.
Warum werden HTML-Elemente veraltet?
Im Laufe der Jahre hat sich unsere Denkweise über HTML weiterentwickelt. Ursprünglich war es eine Allzweck-Markup-Sprache zur Anzeige und Gestaltung von Inhalten im Internet.
Im Laufe der Zeit, als externe Stylesheets immer wichtiger wurden, begann es mehr Sinn zu machen, die Webentwicklung anders zu betrachten – als eine Trennung der Zuständigkeiten, bei der HTML den Inhalt einer Seite definiert und CSS für die Darstellung zuständig ist.
Diese Trennung von Stil und Inhalt bietet zahlreiche Vorteile
- Vermeidung von Duplizierung: Das Wiederholen von Code für jede Instanz von rotem Text auf einer Seite ist unhandlich und ineffizient, wenn Sie stattdessen eine einzige CSS-Klasse haben können, die alles auf einmal behandelt.
- Einfache Verwaltung: Da die gesamte Präsentation von einem zentralen Stylesheet gesteuert wird, können Sie mit geringem Aufwand seitenweite Änderungen vornehmen.
- Lesbarkeit: Beim Betrachten des Quellcodes einer Website ist es viel einfacher, den Code zu verstehen, der sauber in separate Dateien für Inhalt und Stil aufgeteilt wurde.
- Caching: Die überwiegende Mehrheit der Websites hat ein konsistentes Styling über alle Seiten hinweg. Warum also den Browser diese Stildefinitionen immer wieder herunterladen lassen? Das Platzieren des Präsentationscodes in einem dedizierten Stylesheet ermöglicht Caching und Wiederverwendung, um Bandbreite zu sparen.
- Entwicklerspezialisierung: Große Website-Projekte können mehrere Designer und Entwickler beschäftigen, die jeweils über ihre individuellen Fachgebiete verfügen. Einem CSS-Spezialisten zu erlauben, an seinem Teil des Projekts in seinen eigenen separaten Dateien zu arbeiten, kann für alle Beteiligten viel einfacher sein.
- Benutzeroptionen: Die Trennung von Styling und Inhalt kann es dem Entwickler ermöglichen, dem Endbenutzer einfach Anzeigeoptionen anzubieten (der immer beliebtere „Nachtmodus“ ist ein gutes Beispiel dafür) oder verschiedene Anzeigemodi für Barrierefreiheit.
- Responsivität und Geräteunabhängigkeit: Die Trennung von Code für Inhalt und visuelle Darstellung erleichtert den Aufbau von Websites, die auf verschiedenen Bildschirmauflösungen sehr unterschiedlich angezeigt werden.
Allerdings gab es in den frühen Tagen von HTML eine beträchtliche Menge an Markup, das dazu diente, das Aussehen der Seite direkt neben dem Inhalt zu steuern. Möglicherweise sehen Sie Code wie diesen:
<center><font face="verdana" color="#2400D3">Hello world!</font></center>
...all dies ist nun aufgrund der oben genannten Trennung der Zuständigkeiten veraltet.
Welche HTML-Elemente sind jetzt veraltet?
Ab der Veröffentlichung von HTML5 wird die Verwendung der folgenden Elemente nicht mehr empfohlen
<acronym>(verwenden Sie stattdessen<abbr>)<applet>(verwenden Sie<object>)<basefont>(verwenden Sie CSS-Schriftarteigenschaften wiefont-size,font-familyusw.)<big>(verwenden Sie CSSfont-size)<center>(verwenden Sie CSStext-align)<dir>(verwenden Sie<ul>)<font>(verwenden Sie CSS-Schriftarteigenschaften)<frame>(verwenden Sie<iframe>)<frameset>(nicht mehr benötigt)<isindex>(nicht mehr benötigt)<noframes>(nicht mehr benötigt)<s>(verwenden Sietext-decoration: line-throughin CSS)<strike>(verwenden Sietext-decoration: line-throughin CSS)<tt>(verwenden Sie<code>)
Es gibt auch eine lange Liste veralteter Attribute, darunter viele Elemente, die weiterhin gültig sind (wie das Attribut align, das von vielen Elementen verwendet wird). Das W3C bietet die vollständige Liste veralteter Attribute.
Warum verwenden wir Tabellen nicht mehr für Layouts?
Bevor CSS weit verbreitet war, war es üblich, Website-Layouts mit dem <table>-Element zu erstellen. Während das <table>-Element nicht veraltet ist, wird die Verwendung für Layouts dringend abgeraten. Tatsächlich sind fast alle HTML-Tabellenattribute, die für Layouts verwendet wurden, veraltet, wie z. B. cellpadding, bgcolor und width.
Einst schienen Tabellen eine gute Möglichkeit zu sein, eine Webseite zu gestalten. Wir konnten Zeilen und Spalten beliebig groß machen, was bedeutete, dass wir alles hineinpacken konnten. Header, Navigation, Footer... alles Mögliche!
Das würde eine Menge Website-Code erstellen, der so aussah
<table border="0" cellpadding="0" cellspacing="0" width="720">
<tr>
<td colspan="10"><img name="logobar" src="logobar.jpg" width="720" height="69" border="0" alt="Logo"></td>
</tr>
<tr>
<td rowspan="2" colspan="5"><img name="something" src="something.jpg" width="495" height="19" border="0" alt="A picture of something"></td>
<td>Blah blah blah!</td>
<td colspan="3">
<tr>
<!-- and so on -->
</table>
Es gibt zahlreiche Probleme mit diesem Ansatz
- Komplizierte Layouts enden oft mit Tabellen, die in andere Tabellen verschachtelt sind, was zu einem Kopfschmerzen verursachenden Code-Chaos führt. Schauen Sie sich nur den Quellcode eines beliebigen E-Mail-Newsletters an.
- Die Zugänglichkeit ist problematisch, da Bildschirmlesegeräte bei übermäßiger Tabellennutzung leicht verwirrt werden.
- Tabellen sind langsam zu rendern, da der Browser wartet, bis die gesamte Tabelle heruntergeladen ist, bevor sie auf dem Bildschirm angezeigt wird.
- Responsives und mobilfreundliches Layout ist mit einem tabellenbasierten Layout sehr schwer zu erstellen. Wir haben immer noch keine Patentlösung für responsive Tabellen gefunden (obwohl viele clevere Ideen existieren).
Um das Thema Trennung von Inhalt und Darstellung fortzusetzen, ist CSS ein viel effizienterer Weg, um das visuelle Layout zu erstellen, ohne den Code des Haupt-HTML-Dokuments zu überladen.
Also, wann sollten wir <table> verwenden? Eigentlich tabellarische Daten, natürlich! Wenn Sie eine Liste von Baseballergebnissen, Statistiken oder etwas Ähnliches anzeigen müssen, ist <table> Ihr Freund.
Warum verwenden wir noch und -Tags?
„Einen Moment mal“, könnten Sie sagen. „Wie kommt es, dass fette und kursive HTML-Tags immer noch als in Ordnung gelten? Sind das nicht Formen der visuellen Gestaltung, die mit CSS gehandhabt werden sollten?“
Das ist eine gute Frage, und eine, die schwer zu beantworten scheint, wenn wir bedenken, dass andere Tags wie <center> und <s> veraltet sind. Was ist hier los?
Die kurze und einfache Antwort ist, dass <b> und <i> wahrscheinlich veraltet worden wären, wenn sie nicht so weit verbreitet und nützlich wären. CSS-Alternativen erscheinen im Vergleich etwas umständlich.
<style>
.emphasis { font-weight:bold }
</style>
This is a <span class="emphasis">bold</span> word!
This is a <span style="font-weight:bold">bold</span> word!
This is a <b>bold</b> word!
Die lange Antwort ist, dass diesen Tags jetzt eine semantische Bedeutung zugewiesen wurde, was ihnen einen Wert über die reine visuelle Darstellung hinaus verleiht und es Designern ermöglicht, sie zu verwenden, um zusätzliche Informationen über den von ihnen umschlossenen Text zu vermitteln.
Dies ist wichtig, da es Bildschirmlesegeräten und Suchmaschinen-Crawlern hilft, den Zweck des Inhalts besser zu verstehen, der in diesen Tags umschlossen ist. Wir könnten ein Wort kursiv schreiben, aus verschiedenen Gründen, wie z. B. zur Hervorhebung, zum Aufrufen des Titels eines kreativen Werks, zum Verweis auf einen wissenschaftlichen Namen usw. Woher weiß ein Bildschirmlesegerät, ob es dem Wort eine gesprochene Betonung geben soll oder nicht?
<b> und <i> haben Begleiter, darunter <strong>, <em> und <cite>. Gemeinsam machen diese Tags den Bedeutungszusammenhang von Text klarer.
<b>dient dazu, Text hervorzuheben, ohne ihm zusätzliche Bedeutung zu verleihen. Es wird verwendet, wenn wir etwas hervorheben möchten, ohne die Betonung des Textes zu ändern, wenn er von einem Bildschirmlesegerät gelesen wird, oder ohne zusätzliche Gewichtung oder Bedeutung für Suchmaschinen hinzuzufügen.<strong>ist wie<b>, signalisiert aber die Wichtigkeit von etwas. Es ist dasselbe, als würde man die Betonung der Stimme ändern, wenn man einem bestimmten Wort Betonung verleiht.<i>kursiviert Text, ohne ihm zusätzliche Bedeutung oder Betonung zu verleihen. Es ist perfekt, um etwas auszuformulieren, das normalerweise kursiv ist, wie der wissenschaftliche Name eines Tieres.<em>ist wie<i>, insofern als es Text kursiviert, aber zusätzliche Betonung verleiht (daher der Tag-Name), ohne zusätzliche Bedeutung im Kontext hinzuzufügen. („Ich bin sicher, dass ich nicht vergessen habe, die Katze zu füttern“).<cite>verwenden wir, um uns auf den Titel eines kreativen Werks zu beziehen, sagen wir einen Film wie Das Schweigen der Lämmer. Auf diese Weise wird Text formatiert, beeinflusst aber nicht die Art und Weise, wie der Satz laut gelesen würde.
Im Allgemeinen gilt die Regel, dass <b> und <i> nur als letztes Mittel verwendet werden sollten, wenn Sie nichts Passenderes für Ihre Bedürfnisse finden. Diese semantische Bedeutung ermöglicht es <b> und <i>, weiterhin einen Platz in unserer modernen Palette von HTML-Elementen zu haben und die Veraltung zu überleben, die andere, ähnliche Stil-Tags ereilt hat.
In einem verwandten Zusammenhang war der <u>-Tag – der Unterstreichungs-Tag – einst veraltet, wurde aber seit HTML5 wieder eingeführt, da er einige semantische Verwendungen hat (z. B. zur Kennzeichnung von Rechtschreibfehlern).
Es gibt viele andere HTML-Elemente, die Inhalten Stil verleihen können, aber hauptsächlich dazu dienen, Inhalten semantische Bedeutung zu verleihen. Mandy Michael hat einen hervorragenden Beitrag, der sich damit befasst und wie sie verwendet werden können (und sogar kombiniert!), um die semantischste Auszeichnung zu erzielen.
Untote HTML-Attribute
Einige veraltete Elemente werden heute noch weit verbreitet im Web verwendet. Sie funktionieren ja immer noch – sie werden nur nicht mehr empfohlen.
Das liegt manchmal daran, dass sich noch nicht herumgesprochen hat, dass die Sache, die man seit Ewigkeiten benutzt, nicht mehr so gemacht wird. Manchmal liegt es auch daran, dass Leute keinen überzeugenden Grund sehen, etwas zu ändern, das perfekt funktioniert. Hey, CSS-Tricks verwendet aus bestimmten Gründen immer noch das Teletype-Element.
Ein solches untotes HTML-Relikt ist das `align`-Attribut in ansonsten gültigen Tags, insbesondere bei Bildern. Möglicherweise sehen Sie ``-Tags mit einem `border`-Attribut, obwohl dieses Attribut längst veraltet ist. CSS ist natürlich die bevorzugte und moderne Methode für diese Art von Stilpräsentation.
Auf dem Laufenden zu bleiben, was Veralterung angeht, ist der Schlüssel für jeden Webentwickler. Sicherzustellen, dass Ihr Code den aktuellen Empfehlungen folgt und gleichzeitig Legacy-Elemente vermeidet, ist eine wesentliche bewährte Methode. Es stellt nicht nur sicher, dass Ihre Website langfristig funktioniert, sondern auch, dass sie mit dem Web der Zukunft gut zusammenspielt.
Fragen? Posten Sie einen Kommentar! Sie können mich auch bei Angle Studios finden, wo ich arbeite.
Vielleicht könnte das
del-Tag eine gute moderne Alternative zusundstrikesein? Es bietet auch mehr Bedeutung zusammen mit den Attributencitationunddatetime.https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del
Sie haben unterschiedliche Bedeutungen. Die Elemente
insunddelstellen Bearbeitungen des Dokuments dar (https://html.spec.whatwg.org/multipage/edits.html#edits). Es gibt jedoch Fälle, in denen „alte“ Informationen zusammen mit den „neuen“ ausgegeben werden müssen, die keine Bearbeitungen sind (z. B. der reguläre Preis neben dem reduzierten Preis). Für diese Fälle wäre dasdel-Element ungeeignet.Was ist mit
<del>anstelle von<strike>?Das
<i>-Tag wird jetzt für Symbole verwendet.Es wurde definitiv für Symbole verwendet, da es früher keine semantische Bedeutung hatte, aber das hat sich geändert. Es wird verwendet, um Inhalte zu formulieren, die zur besseren Lesbarkeit visuell von anderen Inhalten abgesetzt werden müssen.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i
Obwohl ich sicher bin, dass die meisten CSS Tricks-Stammgäste dies wissen, ist es wahrscheinlich erwähnenswert, dass
<i>heutzutage oft (falsch?) für Icon-Fonts verwendet wird.Außerdem, findet jemand, dass der Ersatz von
<acronym>durch<abbr>etwas seltsam ist. Ich frage mich, was die semantische Begründung hinter diesem Schritt war (oder ist es ein Insider-Witz?)Es scheint ein wenig seltsam. Ich frage mich, ob der Begriff „Akronym“ zu spezifisch war und die Verschiebung zu „Abkürzung“ die Semantik für mehr Möglichkeiten verkürzter Inhalte öffnete.
Warum werden einige CSS-Eigenschaften nicht veraltet?
Ich denke, das Wort "halb veraltet" trifft es real. Was ist zum Beispiel mit den HTML-Teilen einer E-Mail?
Danke für diesen Artikel. Ich denke, viele der diskutierten Dinge wurden bereits vor 15 Jahren besprochen, als ältere Webentwickler die damals neuen WC-Empfehlungen übernahmen. Deshalb habe ich 2003 angefangen, „strong“ statt „b“ in all meinen Webprojekten zu verwenden und die von Ihnen genannten verworfen. Hier sind wir im Jahr 2020 und entdecken die semantische Bedeutung dieser alten Elemente neu? Traurig, das ist der Fluch der Technologie... wir lesen oder lernen nicht von dem, was ältere Techniker entdeckt haben, und sind gezwungen, sie immer wieder neu zu entdecken. Genau deshalb ging HTML5 rückwärts, während XHTML 1.1 uns in ein saubereres, wiederverwendbares Web führte, in dem wir unsere eigenen Elemente schreiben konnten. Das wurde weggeschmissen, damit Kinder zu HTML4-Konzepten und ECMAScripted-APIs zurückkehren können. Ich glaube, wir sind dazu verdammt, dieselben Fehler zu wiederholen, was den einfachen Prozess der Anzeige einer einfachen HTML-Seite heute komplizierter macht als vor 20 Jahren.
XHTML1.x hat uns nirgendwohin gebracht. Es war im Grunde nichts weiter als eine Umformulierung der gleichen HTML4-Semantik in der XML-Syntax, und die potenziellen Vorteile von XML funktionierten für das Web nicht wirklich, da das Web eine unvorhersehbare Umgebung war (und immer noch ist), in der die XML-Konformität aus Tausenden von Gründen gebrochen werden konnte, von Netzwerkunterbrechungen bis hin zu Eingriffen von Drittanbietersoftware (z. B. einige persönliche Firewalls ersetzten Werbebanner durch XML-inkompatible HTML-Kommentare). Das Ersetzen des XHTML1.x-Dokumenttyps durch einen benutzerdefinierten, der benutzerdefinierte Elemente definiert usw., machte es automatisch zu einer benutzerdefinierten XML-Anwendung und nicht zu XHTML1. Auf der anderen Seite können Sie in HTML5 tatsächlich Ihre eigenen benutzerdefinierten Elemente definieren:)
Sowohl der WHATWG Living Standard als auch die W3C HTML5.2 Recommendation (die letzte, bevor das W3C die Pflege seines eigenen Zweigs des HTML-Standards einstellte) listen das
<s>-Element unter den aktiven textuellen Elementen auf und sagen nichts über seine Veraltung. Ist es versehentlich im Artikel erschienen?Das
-Element ist nicht veraltet.https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-s-element
<b>dient dazu, Text hervorzuheben, ohne ihm zusätzliche Bedeutung zu verleihen. Es wird verwendet, wenn wir etwas hervorheben möchten, ohne die Betonung des Textes zu ändern, wenn er von einem Bildschirmlesegerät gelesen wird, oder ohne zusätzliche Gewichtung oder Bedeutung für Suchmaschinen hinzuzufügen.Warum lenken Sie also die Aufmerksamkeit auf den Text? Welche Bedeutung hat er? Und... warum sollte ein Nutzer von Bildschirmlesegeräten nicht wissen, dass Sie die Aufmerksamkeit darauf lenken?
Wenn nur die
<strong>-Elemente für die meisten tatsächlichen Bildschirmlesegeräte überhaupt eine Bedeutung hätten... https://www.brucelawson.co.uk/2018/screenreader-support-for-text-level-semantics/Hallo
Hmm, wie Google sagte:
<b>oder<strong/>könnten ohne Unterschied für das Google-Ranking verwendet werden https://www.youtube.com/watch?v=awto_wCeOJ4Es sieht also so aus, als ob sie dank ihrer Unterstützung in den meisten CMS existieren : (
Ich bin überrascht, dass
<hr>nicht auf dieser Liste steht.