HomeEducationA Weblog Put up With Each HTML Aspect Receive US

A Weblog Put up With Each HTML Aspect Receive US

A Blog Post With Every HTML Element

After studying just a little bit extra about internet accessibility final yr I had been exploring among the much less widespread HTML components, and making modifications to this web site, like wrapping the textual content of the posts on this weblog in <article> tags and including a <essential> tag within the web site’s format templates (this web site is constructed utilizing Eleventy).

I had beforehand carried out some work to ensure that <determine> and <figcaption> components had been layed out properly for photographs with related captions, and I had been impressed with varied Recurser’s implementation of footnotes or sidenotes, and have been pondering it could be fascinating to see what different fascinating layouts had been potential with simply HTML.

I might, ingredient by ingredient, proceed so as to add help (largely by making CSS updates for every ingredient to slot in with the remainder of my model decisions) as I got here throughout particular wants for them, however not one to shrink back from an exhaustive exploration, I made a decision to put in writing this publish and try to make use of each ingredient.

A objective of the publish, was to keep away from delaying different future posts with CSS updates on a beforehand unused ingredient, however in actuality it took a yr and a half to make all of the updates for simply this publish! I’m utilizing the MDN Web Docs list of HTML elements as a reference which has greater than 100 tags divided into just a few classes, which I can even use on this publish. Most of the tags like <html> don’t make sense to incorporate within the textual content of a weblog publish, however in the event you’re viewing this publish on patrickweaver.internet, then each one of many components is used someplace on this web page.

The Components

Essential Root

I didn’t should make any modifications to the <html> tag for this publish, however one factor I don’t at all times keep in mind to incorporate is the lang property (on this case lang="en").

Doc Metadata

I wasn’t conversant in the <base> tag earlier than penning this publish, although I’ve now added one with relative hyperlinks to my format templates. This precipitated just a few points with issues like native growth, and relative hyperlinks, although they had been simply resolved. The remainder of the metadata tags are acquainted and had been already right here.

Sectioning Root

Just like the Doc metadata tags, within the format, although it was fascinating to learn the documentation and study attributes, like onbeforeprint that gives performance I’ve used extra hacky strategies to perform beforehand, and onblur, whose major utility appears to be annoying popups.

Content material Sectioning

Headers and Doc Group

Once I first appeared on the listing I assumed that <handle> could be designed solely for mailing addresses, however was stunned to see that it may be used for e-mail addresses, and even hyperlinks. I up to date the e-mail handle on the About web page of web site web site, however I’ll add an <handle> beneath additionally:

E mail Patrick:

good [email protected]

As I discussed above, I up to date the weblog publish web page template to make use of the <article> tag, however studying the documentation, I’m now questioning if it could match on each web page of the positioning.

I’m now utilizing <apart> components, which characterize, a portion of a doc whose content material is barely not directly associated to the doc’s essential content material, to wrap round my footnotes on the backside of this web page (although I’ll attempt to model them as sidenotes sooner or later). The present design of this web site doesn’t have a <footer>, however I’ve added one to this weblog publish, and whereas I had a <header> ingredient on the web page header beforehand, I now know that multiple is appropriate so there’s one across the header part of every weblog posts as nicely.

Heading components

As a part of the model replace and cleanup of this web site that impressed this publish I noticed I used to be typically utilizing headers with incorrect hierarchy, which I cleaned up. Although I by no means reached 6 ranges of headers, the closest I obtained was <h3> in among the weblog posts with a number of sections and subsections.

Easy methods to use prime degree headings

It’s a little bit unclear the way to use <h1> tags in a publish like this from simply the MDN documentation. This tip from the W3C suggests completely different implementations for pages with standalone, or assortment content material, which might make it tough to make use of the identical templates and types for various pages on this web site.

How I made a decision to deal with it

Earlier than penning this publish I had up to date the positioning to make use of <h1> for the identify of the positioning (my identify) on the prime, <h2> for the part identify, for this web page, “Weblog”, and <h3> for the title of what could be the <article> on a web page. Nonetheless, after studying the documentation and the tip above, I made a decision to replace the hierarchy and use <h1> for various issues on completely different pages, and use lessons for types, which might be extra in step with the separation of issues of HTML and CSS (which implies this paragraph is beneath an <h6>).

Someday between once I began this experiment in early 2022 and once I printed it in Summer time 2023 <hgroup> and <search> had been added to the MDN documentation (which I notice will not be the official spec). I’ve added an <hgroup> across the heading of this part, with a subtitle <p> ingredient. <search> is a semantic ingredient that signifies that an enter can be utilized for search, not for search outcomes (aside from fast outcomes that populate inside a kind ). Whereas a <search> ingredient that accommodates a <kind> works with out HTML on an internet site that may generate search outcomes on a server, as a result of this web site is statically generated the instance beneath requires JavaScript. I haven’t seen a <search> ingredient anyplace else, neither MDN’s header search, or use it in 2023.

This search performance will solely be interactive when JavaScript is enabled.

The <essential> ingredient was one of many preliminary curiosities that led me down the trail of studying about and implementing each ingredient, although it wasn’t till I learn by the MDN listing that I added a <nav> ingredient across the menu on the prime of this web page. I’ve added <part> components to this publish, however I’m undecided how typically I’ll use them elsewhere. One purpose is that it makes it more durable to combine and match HTML and markdown with visually clear nesting within the document where I am writing this post.

Textual content Content material

I had beforehand used <blockquote> for embedding tweets into weblog posts, however for this publish I made a decision so as to add types for standalone quotes. I didn’t know concerning the <blockquote> cite property or <cite> ingredient till studying the docs extra carefully:


A URL that designates a supply doc or message for the knowledge quoted. This attribute is meant to level to info explaining the context or the reference for the quote.

MDN on <blockquote>

<dd>, <dl>, and <dt> are components that, after discovering out about them when first wanting into extra obscure HTML components, I used to be very stunned to haven’t recognized about sooner. Though, it’s unclear from the documentation whether or not lists just like the hyperlinks on the present model of my portfolio web page ought to use <dl> (I’m presently utilizing <ul>). I’m curious how <ol> and <ul> turned a part of nearly each “Intro to HTML” class, however <dl> is comparatively obscure. It’s additionally unusual that <ol> and <ul> have default margins, however for <dl> the margin is on <dd>.

HTML listing components

Description listing
Ordered listing
Unordered listing

<div> has acquired a nasty popularity on the trendy internet on account of overuse, so I used to be stunned to be utilizing comparatively few <div> components, although as soon as I began utilizing components that I wished to model collectively, I ended up with round 20. It exhibits how pointless most <div>s most likely are, although this web site has minimal generic “sections”.

Among the many first extra obscure components that I added to this web site had been <figcaption> and <determine>. I used to be including some weblog posts that had initially been printed on Medium, and wished so as to add captions beneath photographs in a web-semantically appropriate approach. Although after studying the documentation, which says <determine> can be utilized for, picture, illustration, diagram, code snippet, and so forth., I noticed that there are a whole lot of locations the place I presently have code blocks that I may very well be utilizing them.

I’ve at all times preferred <hr> components rather a lot, however I’m by no means positive when to make use of them. The documentation says, Whereas it might nonetheless be displayed as a horizontal rule in visible browsers, this ingredient is now outlined in semantic phrases, moderately than presentational phrases, so in the event you want to draw a horizontal line, you need to achieve this utilizing applicable CSS which made me revisit the <hr> types on this web site and I made a decision to incorporate an emoji in an hr:after rule, although I ought to examine how that works on a display reader.

The gadgets within the (inline styled) lists of components on this web page are after all <li> components, although I had by no means appeared on the documentation till now. It’s fascinating that the identical <li> ingredient is utilized in each <ol> and <ul> lists, with quirks like The worth attribute has no which means for unordered lists, however will not be used to wrap the <dt> and <dd> components in a <dl>.

I had not encountered <menu> earlier than penning this publish, and I used to be initially stunned that it survived to HTML 5 (whereas <menuitem> didn’t) as a result of trendy browsers deal with it as primarily a <ul>. Researching additional on Wikipedia I learn:

MENU existed in HTML Tags, and was standardized in HTML 2.0; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict; then redefined in HTML5, however eliminated in HTML 5.2,

and now I don’t know what to assume, however right here’s a <menu>:

<ol> and <ul> are among the HTML components I utilized in my earliest internet pages, and extra lately I attempt to use <ul> with CSS in locations which can be semantically lists, however may not be styled like a conventional listing.

I used to be stunned to not discover extra steering on utilizing <p> tags on the MDN docs, one thing I’m wondering typically when including non lengthy kind textual content to an internet site is, “is that this actually a paragraph?” However, it looks as if so far as HTML is worried, if it’s not a heading, then most likely!

Earlier than studying the documentation I had actually solely thought-about utilizing <pre> tags together with <code> tags for code blocks, however the instance used on MDN is used to indicate how <pre> can show significant whitespace for issues like:

  ┃┃╱╲ in
  ┃╱╱╲╲ this
  ▔▏┗┛▕▔ we
write semantic HTML
  ╱╱┏┳┓╭╮┏┳┓ ╲╲

Inline Textual content Semantics

As with different quite common tags I used to be curious to get to the documentation for <a> to see if there was something I used to be unaware of, or had been utilizing incorrectly. I used to be stunned to find that <a href="#">hyperlink</a> hyperlinks to the highest of the web page after years as simply utilizing it as a placeholder once I didn’t know the URL but.

<abbr> appears prone to be the least used tag, particularly as a result of the MDN documentation doesn’t make a terrific case for it the aim of this ingredient is only for the comfort of the creator.

The excellence between <b> and <robust>, because the docs have it, will not be what I had beforehand thought (that <robust> was the HTML5 alternative for <b>). I feel the excellence is extra nuanced and overlapping than the technical nature of the documentation is de facto capable of convey. The way in which I’ll most likely clarify it to different folks sooner or later is that, for probably the most half, you need to use <b> for single phrases (or compound phrases), and <robust> for complete sentences or phrases. That is extra a rule of thumb and bypasses the precise distinction. The documentation reads:

The <robust> ingredient is for content material that’s of better significance, whereas the <b> ingredient is used to attract consideration to textual content with out indicating that it’s extra vital.

MDN on “<b> vs. <strong>

However I can’t consider many situations the place I might wish to draw consideration to a phrase, the place that phrase will not be extra vital than different phrases. The advice appears to be from a actuality the place, for probably the most half, all phrases are of equal significance, however deserve completely different quantities of consideration, which doesn’t appear quite common.

I’ll most likely consider <b> any further because the HTML tag with the same impact because the citation marks used for “emphasis” you may see on signage that may trigger intergenerational confusion.

<bdi> is a tag for an idea that I hadn’t thought-about till now, textual content whose course may (or may not) differ from the course of the encircling textual content. The examples on the documentation are all names, however might stand in for any consumer inputted textual content. Sooner or later I’ll most likely attempt to wrap any tags, like those managed by the enter beneath, which may comprise arbitrary consumer inputted unicode characters in a <bdi> tag simply to be secure.

Hi there,     , thanks for studying!

This kind will solely be interactive when JavaScript is enabled.

<bdo> I’ll most likely use much less actually because I don’t work with RTL languages typically, however it’s nonetheless good to know the way to deal with small quantities of RTL textual content, like this hyperlink to the web page for HTML on the Farsi Wikipedia: اچ‌تی‌ام‌ال.

<br> is fascinating to me, as a result of for a time (a very long time in the past) it appeared to be as misused as <div> has been lately, however, as CSS has gotten extra sturdy that’s most likely much less typically the case; although I’m wondering whether it is nonetheless taught early in HTML lessons. It’s fascinating that the instance use case within the docs is poetry as a result of it makes me surprise how the gray space between a paragraph and a standalone line was thought-about in creating the HTML spec. It additionally looks as if a <pre> tag may be a greater slot in some circumstances.

<cite> and <q> are fascinating as a result of they attempt to add HTML semantic components for which means that can be conveyed by seen punctuation in most languages. It’s the sort of redundancy that underscores repetitiousness of working with computer systems (the default model for cite makes use of italics whereas q provides citation marks not within the textual content.).

I’ve clearly used many <code> components on this publish up to now, however studying the documentation made me ponder whether the lately launched Markdown help in Google Docs makes use of <code> for textual content, however on inspecting the HTML of a Doc, I remembered that <canvas> is used to render the doc now.

Sometimes the MDN documentation examples are tough to mentally translate to real-world use circumstances. <knowledge> is one in every of these, the place the one examples present a <knowledge> ingredient with a worth property with product IDs wrapped round product names In that case the IDs appear both, consumer going through, wherein case it could most likely be higher to show them to the consumer, or non consumer going through, wherein case, I’m undecided who the “knowledge” is for. Apparently, <knowledge> doesn’t appear to look within the W3C HTML5 specification.

<dfn> is one other unusual ingredient as a result of it looks as if it’s misnamed, because it wraps, not the definition of a time period, however as a substitute that time period inside the definition. It does only seem to have been part of the never officially adopted HTML 2.0 proposal, and it exemplifies the tutorial nature of the early internet. The HTML Tags: Past, Present, Proposed web page on defines HTML 2.0 as There by no means was an HTML 2.0 normal, however these all formed browser growth within the late twentieth century with references to a number of RFC paperwork.

<em> and <i> convey up related utilization questions as <b> and <robust>, however in my view with much more nuance, particularly, because the documentation notes, with different extra particular tags like <cite> that additionally by default italicize textual content in most browsers. The rule of thumb from above additionally for probably the most half suits right here, <em> for single phrases, and <i> for sentences or phrases, although the examples within the documentation appear to largely use <i> for drawing consideration to potential confusion, as in, The phrase the is an article.

<kbd> is one other tag that makes me surprise concerning the conceptual boundaries of the utilization of the tag. It’s supposed for specifying keys on a pc keyboard, for instance: to kind the < character used for (the non escaped) model of the tags on this publish, I press Shift + , (the types right here on <kbd> are utilized by customized CSS). However I’m curious if it could even be applicable to place a <kbd> round one thing like Proper click on (on this case I used <i> as a substitute).

<mark> is fascinating as a result of it suggests a 2-way authoring internet that was initially envisioned, however failed to come back to fruition, with utilization notes like, Consider this like utilizing a highlighter pen in a e-book to mark passages that you simply discover of curiosity. The yellow right here is the default model in all main browsers.

<rp>, <rt>, and <ruby> all relate to rendering “ruby” or “agate” fonts, that are the smallest legible textual content utilized in print. They’re utilized in HTML to, present pronunciation, translation, or transliteration info for East Asian typography. As a result of I don’t learn any East Asian languages, I’ll use the identical instance because the MDN docs do beneath. Apparently, <rp> is used to cover parentheses characters, that are included within the supply. It’s stunning to me that there’s a component to cover these characters in a really uncommon occasion, however we nonetheless depend on CSS to hide content visually (however nonetheless present it to display readers).


<s> is the strikethrough ingredient, which needs to be used to point textual content that isn’t correct or related, however was beforehand. Together with <menu> it’s one in every of two components (or according to MDN 3 with <u>) that had been deprecated in HTML 4.01, and un-deprecated and redefined in HTML5. The redefinition modifications using the tag from presentational, which ought to now be achieved with CSS, to related to the context of the textual content. Nonetheless, some display readers don’t announce the strikethrough, which appears probably complicated. I’ve added the CSS really helpful by the MDN docs to my web site, so the strikethrough needs to be introduced right here.

  • HTML 3.0: <s> is used for presentation
  • HTML 5: <s> is used for eliminated textual content

<samp> is one other ingredient I wasn’t conscious of earlier than studying the MDN docs. It’s used for rendering the output of a pc program, which I had beforehand simply used <code> for (I simply up to date my Raspberry Pi weblog publish to make use of <samp>). One other instance is beneath:

A “Hi there, World” program in JavaScript:

console.log("Hi there, World")

Hi there, World

<small> is used to render smaller textual content, which is one thing I might often have carried out with CSS. The MDN docs don’t present a lot readability about which technique to make use of: Authors are inspired to make use of their greatest judgement when figuring out whether or not to make use of <small> or CSS.. I’ll most likely proceed to make use of CSS for probably the most half because the impact appears to be presentational for probably the most half.

<span> is a really acquainted ingredient, however studying the documentation made me surprise for the primary time why HTML and CSS enable contradictory ingredient types like a

<div model="show: inline" />

or a <span model="show: block" />. Although the <div> breaks the mother or father <p> tag, whereas the <span> doesn’t.

<sub> (used for footnotes right here) and <sup> (used within the equation beneath) are extra components I most likely have used the CSS implementations of beforehand (although it’s applicable for presentation solely tremendous or subscript.)

<time> looks as if a useful ingredient for creating semantic HTML, however even Google doesn’t appear to make use of it in search results. I’ve up to date the dates on my weblog posts to make use of it.

<u> has most likely my favourite quote from the MDN docs, More often than not, you really don’t wish to use <u>. Their strongest suggestion appears to be indicating spellling errors.

<var> is a strategy to point out semantically {that a} string is a variable for both math or programming. For instance, rendering the pythagorean theorem makes use of each <var> and <sup>: a2 + b2 = c2.

<wbr> was additionally a brand new ingredient till now, nevertheless it solves an issue I’ve hit many occasions earlier than, breaking lengthy “phrases” at sure factors, particularly URLs. If I put a <wbr> ingredient at clear break factors on this URL: https://www.patrickweaver.internet/pages/averylengthyurlwith outanypunctuationhowevernonethelessmadeupofphrases/ then it should break at clear factors at completely different display widths, which is is extra readable in comparison with the identical hyperlink with out the <wbr> components:

Although together with hyphen characters within the URL additionally creates clear breakpoints in trendy browsers. I did should wrap the URL above in a particular scrollable <p> to stop it from breaking the format of the remainder of the web page.

Picture and Multimedia

<space> and <map> are components that I hadn’t been conversant in beforehand, although I had made just a few picture map kind web sites within the days earlier than CSS 3. It looks as if a sign of how seldom they’re used nowadays that the instruments for debugging the boundaries of <space> components are exhausting to make use of. One <space> border at a time will show whereas utilizing tab focus, however styling the weather doesn’t work (except there’s a show hack I couldn’t determine). It’s additionally considerably unusual that <space> is actually an <a> with a form.

Right here’s a <map> (with <space>s on every tag linking to MDN) of a handwritten HTML doc I made for June third’s HTML Day Freewrite in SF.

HTML taghead tagtitle tagtitle closing taghead closing tagbody tagbody closing taghtml tag

<audio> is without doubt one of the traditional multimedia HTML 5 tags so I’ve used it earlier than, however fascinated with it now, it’s stunning I don’t see them extra typically within the 2020s. I might guess that there are than I believed, for instance, the Bandcamp participant makes use of a hidden <audio> ingredient although the UI is a customized mixture of <a> and <div>s inside a <desk> oddly sufficient.

A recording of me studying the paragraph above. (Excuse my scratchy late evening voice)

<img> is after all one of many first components I used, however I used to be curious what properties may very well be used with it that I may not have heard of. srcset, used for specifying a number of sizes of the identical picture to load at completely different display resolutions, was a kind of. I’ve created a demo beneath, which fits towards the spirit of srcset.

The picture beneath has 3 photographs supplied to its srcset property:

  1. A yellow background and a monospace font that’s 300 pixels large and will render when the web page is lower than 520 pixels large
  2. A blue background and a serifed font that ought to render when the web page is between 520 and 800 pixels large
  3. A inexperienced background and a script font that ought to render when the web page is larger than 800 pixels large.

A demo of the srcset property of the HTML <img> tag that loads different images at different sizes

I’ve examined it, and it does work, nevertheless it takes a whole lot of forethought to just be sure you will be capable to load the right picture. Issues just like the browser’s cache, and scaled shows will change the habits. If you wish to see the impact you’ll most likely have to load the web page in a personal window on a non scaled or “retina” show.

It’s fascinating that whereas each <audio> and <video> are much less broadly used than <img> even after their introduction in HTML 5, the distribution of movies on-line appears to be centralized, totally on YouTube, whereas audio is extra decentralized, with folks serving particular person information when distributing issues like podcasts, although the audio participant that’s typically used will not be on the net.

A display recording of my dev setup whereas writing the paragraph above.
Choose beneath to regulate if the video above is proven in a <video>, <embed>, or <object> ingredient:

The embedded video components will solely be toggleable when JavaScript is enabled.

One purpose for this can be that there are nonetheless some quirks with <video> components. For instance, there’s a <figcaption> accompanying the video above, however once I initially tried creating the ingredient with a self closing tag it didn’t render. Additionally, as I’m penning this, Safari doesn’t help the video in any respect, seemingly due to the event server I’m utilizing not supporting the “Vary” request header. I’m curious to seek out out whether or not the hosted model of the positioning (on GitHub pages) will help enjoying the video in Safari. I believed that I might need the same situation with <observe>, however that simply turned out to be me not establishing my Eleventy construct appropriately for .vtt information.

Embedded Content material

It’s considerably stunning that <embed> and <object> haven’t been deprecated since most of their makes use of have been outdated by particular tags like <video> and <iframe>. Perhaps finally they are going to be, or they are going to simply dwell on within the identify of backwards compatibility.

Talking of <iframe> it’s additionally fascinating that the very 90s identify “iframe” (“inline body”, not “iPod Body” or one thing, and I used to be stunned to be taught does render show: inline) has survived whereas <body> was deprecated in HTML 5. I believed that <iframe> may be a strategy to drive the <img> srcset instance above to render the smaller photographs on a excessive DPI show, however even at 150px large on my gadget the big picture nonetheless renders:

An embed of a web page with simply the srcset instance from above at 150px large.

<image> is a tag that’s, with <supply> really supposed for format methods just like the srcset experiment I attempted above, rendering completely different variations of a picture in several conditions. The picture beneath ought to present an icon of a pc when used with a mouse/trackpad, or an icon of a telephone when used with a contact display (utilizing the pointer media question to find out), and will fall again to a picture of a crimson circle with a line by it when neither media question is acceptable. The responsive design developer instruments in your browser ought to trick it, although curiously, not when inspecting a component.

an icon of a computer when used with a mouse/trackpad, an icon of a phone when used with a touch screen, or an image of a red circle with a line through otherwise

<portal> is without doubt one of the extra mysterious sounding components, and appears supposed for the iPad-style hyperlink previews that I’ve seen carried out on some web sites on hover, but also come with SPA-like performance benefits. It sadly remains to be an experimental function and isn’t (as of 2023) enabled by default in any browsers. It appears that evidently it used to be an available experimental flag in Chrome, however right this moment in 2023 it isn’t obtainable at chrome://flags. I’ll embody one beneath in case it really works for future readers! I did attempt it in an very outdated Chromium model I nonetheless had put in. <portal> doesn’t appear to be a part of the HTML 5 Spec, I’m undecided why it’s included within the MDN documentation.

A <portal> ingredient that ought to show the “Hyperlinks” web page on patrickweaver.internet, if the function is ever carried out in browsers.

SVG and MathML

That is an fascinating part of the documentation as a result of it pairs one of the ubiquitous components with one of the obscure. <svg> components are all over the place, particularly that instruments like Figma and Sketch have made them simple to prototype and export. Pairing them with <math> within the documentation evokes a extra artisanal, hand-crafted <svg> that’s comparatively unusual nowadays. I’ve gone hand-crafted right here and drawn some <svg> circles.

An svg that exhibits overlapping circles every with a distinct coloration of the rainbow.

<math> can be a wrapper ingredient for different non HTML components from the MathML namespace, so I suppose I don’t have to incorporate each potential little one ingredient right here. I’ll keep on with one thing easy: 2+2=5


I did a deep dive into <canvas>, particularly drawing crisp lines in 2020 whereas I used to be at Recurse Center. One factor I wasn’t conversant in earlier than studying the MDN docs although, was that there’s a most dimension for a <canvas> ingredient in every browser (although all trendy browsers it’s about 32 thousand pixels in every dimension). Under is a re-implementation of <marquee> with <canvas> and <script> (and <noscript>).

The <marquee> like animation above will solely be render when JavaScript is enabled.

There have been a whole lot of tags that I anticipated to really feel just a little outdated once I began this publish, however <script> wasn’t one in every of them, however now that I’ve written many of the publish, and have created just a few <script> tags, I’m realizing how little I exploit them now. For many of the code that I write, although most of it’s JavaScript, all the “scripting” will get put into on <script> tag by construct instruments and it finally ends up feeling extra like boilerplate than a “markup” tag.

Alternatively, for many of the interactive web sites I’ve made, I’ve hardly ever included a <noscript> tag aside from these minified and compiled single web page apps the place the consumer would seemingly get a clean web page if it weren’t for the <noscript> tag (and even then, most likely much less typically than I ought to have, although I’ve made positive to incorporate one with each <script> tag right here).

Demarcating Edits

One other set of components I had by no means come throughout earlier than studying the MDN documentation, <del> and <ins> appear to be supposed for creating a phrase processor. Studying about them led to yet one more spherical of, “I’m wondering if these are utilized in rendering Google Docs? .”

Desk Content material

It’s not a brand new perception that <desk> components had been overused for format functions on the early internet, however an irony that I’m solely realizing now’s that lately, as the online has gotten increasingly populated by knowledge, that <desk> components have grow to be hardly ever used, most likely largely on account of their clunky default design, however most likely additionally as a result of one essential objective of making an online UI for the information that’s in any other case most likely saved in database tables, is to create a completely different view of the identical knowledge.

I don’t have any tabular knowledge as that is an solely doc based mostly weblog publish, however beneath I’ve added a desk with some customized CSS and “knowledge” on emoji that’s seemingly solely correct for the Apple emoji set in 2023. I wasn’t conversant in <col> and <colgroup> earlier than, however I don’t know that there are numerous circumstances the place I might use them moderately than a extra customized, non <desk> design.

A desk with a customized CSS
Emoji with leaves
Emoji with fruit
Emoji with slices


I’ve often used <kind> and it’s related components when submitting the shape would redirect to a brand new web page, not for in-page consumer interplay, however both is legitimate. I might guess the shape components are most likely crucial for accessibility so I’ll seemingly confer with the documentation each time implementing one sooner or later.

Your emoji:

Interactive Components

The <particulars> and <abstract> mixture might be the commonest, “You don’t want JavaScript to…” ingredient (one other popular blog publish making this level prompted me to lastly end this one). Making this type of develop/collapse interactive view was one of many first issues I used JavaScript for (it was most likely jQuery). I keep in mind it being considerably complicated on the time (2006?), so it’s humorous to me to see it really easy with only a couple HTML tags.

Hypothesis about <particulars>

I do surprise if <particulars> and <abstract> had been being thought-about for the HTML spec right this moment, if they might be withdrawn in favor of the same impact utilizing CSS.

I wasn’t conscious of the HTML solely <dialog> earlier than utilizing it right here. It requires JavaScript to be helpful past simply its stylistic influence, nevertheless it’s an fascinating strategy to create interactions which can be extra customized than alert(), however nonetheless easy, as a result of whereas alert() is styled by the browser <dialog> will be styled with CSS.

Guess who?!

Internet Elements

Internet elements had been on a (lengthy) listing of “issues I ought to be taught extra about” for some time, so I used to be glad to get to this part of the MDN documentation. I used to be stunned that JavaScript (and Class syntax at that) was essential to get internet elements to render, however after studying extra concerning the Shadow DOM, it is sensible, as a result of HTML has no in-built strategy to encapsulate types, although it does appear to be considerably related conceptually to <iframe> components.

I’ve used internet elements beneath to create a desk of contents for this publish beneath, although I’m not making one of the best use of them. One factor I couldn’t shortly determine the way to do, when in comparison with elements from frontend frameworks, is go in properties which can be themselves used as properties of components within the little one template, so within the listing beneath I’ve to go a full <a> ingredient into every little one (which renders the <li>), to have the ability to set the right href property. Sometime after ending this publish I’ll learn extra about internet elements and possibly determine one thing I’m lacking now.

  • Finish of Checklist

  • Out of date and Deprecated Components

    There are after all just a few deprecated HTML components, so why not embody them right here on the finish.

    Everybody’s favourite is after all,


    Hi there!

    Most of the components, like <massive>, <acronym>, <font> (used above), <nobr> and <strike> are examples of format associated performance that has been moved to CSS moderately than have HTML deal with it. The slender field beneath has an instance of <nobr>:

    This sentence is wrapped in a <nobr>.

    This sentence is wrapped in a <p>.

    This sentence is wrapped in a <p> with model="white-space: nowrap;".

    There are another unusual ones as nicely although. I couldn’t implement <content material> and <shadow> right here as a result of they had been by no means absolutely carried out a part of the online elements spec. I’ll add some beneath anyway although.

    <shadow> and <content material> components (that received’t render).

    And <dir> is a really webserver model of <ul> for itemizing directories. Since my Eleventy static web site generator does use directories right here’s an inventory:

  • /weblog
  • /css
  • /photographs
  • /notes
  • /pages
  • /portfolio
  • A few of deprecated components received’t render with out some additional work, for instance <body> and <frameset> are designed for use as a substitute of a <physique>, for I suppose some sort of collage internet web page made up of different pages. I’ve sarcastically solely been in a position to make use of them inside an <iframe> beneath.

    An embed of a web page with <frameset> and <body> components that itself embeds the Hyperlinks web page of this web site.

    I anticipated that <picture> wouldn’t work because the MDN documentation says:

    This doesn’t seem to have been a part of any formal specification. It was talked about in HTML+ Dialogue Doc – Dave Raggett, November 8, 1993 (Part 5.9 – Photos), however was not a part of the primary revision of HyperText Markup Language Specification – 2.0 in 1994.

    However it does appear to work in some browsers in 2023, although this may be only a fallback for potential confusion with <img>.

    An icon of a fax machine

    One of many extra fascinating browser compatibility tales of the deprecated components is <menuitem>, which supposedly was partially supported in Firefox versions 8 – 84, however I couldn’t get an example to work in any of the older variations I put in domestically (even with enhancing about:config). The examples suggest that the <menu> (of kind=context) and little one <menuitem> components shouldn’t render till the ingredient whose contextmenu property is true clicked, however as you may see beneath, the gadgets at all times render:

    It’s stunning that <noembed>, primarily a <noscript> model fallback, was deprecated whereas <embed> was saved within the spec. Right here’s my <embed> from above, however this time with a <noembed> little one. There’s additionally <noframes> which I included above with the <body> ingredient.

    An embed of a display recording of my dev setup whereas writing the paragraph above.
    An <embed> with a <noembed> tag little one.

    It’s unclear why <param> ever existed as a substitute of simply utilizing attributes on the <object> ingredient. Once I began this weblog publish it was listed in the “Embedding Content” section, however by the point I completed it was deprecated. Right here is one beneath:

    An <object> with a <param> tag little one.

    <plaintext> is one other bizarre one, and notable among the many deprecated components in that it really works. It’s one other one I’m going to should wrap in an <iframe> as a result of in any other case the remainder of the web page could be rendered because the supply code:

    An embed of a web page with a <plaintext> ingredient.

    Nonetheless, <xmp> and <tt>, utilized in the same approach, have closing tags

    <span id="xmp-element"><br> to allow them to be used right here for displaying supply code<br> </span> or textual content in a monospace font
    as it could be proven on a teletype
    with out an <iframe>.

    A number of of the deprecated components have simply been changed by newer additions to the spec. <rb> and <rtc> had been used for displaying pronunciation of East Asian characters, nevertheless it looks as if the spec was simplified. Right here is the instance from MDN:


    Different Components

    I consulted just a few different lists of HTML tags after realizing that the <!-- remark --> tag wasn’t in my listing from MDN (there’s one beneath this paragraph)

    An older list from MDN in 2013 has components like <blink>, and for accessibility causes, nearly all browsers presently ignore this ingredient. I’ll add one hidden beneath if you’ll find a really outdated browser that helps it:

    I’m in a <blink> tag (however most likely not blinking).

    Additionally on the listing is <spacer>, which doesn’t work in trendy browsers and,

    would now be carried out

    with CSS.

    Then there’s others like <bgsound> (2013 docs) that appears to have by no means been carried out (besides possibly in Netscape?), however alludes to a imaginative and prescient for a way more multimedia enabled internet paperwork, and <isindex> (2013 docs) which looks as if it’s from a world the place JavaScript doesn’t exist.

    One other try at <xmp>, <tt>, <code> was


    I’m stunned it appears to nonetheless work!

    And naturally <applet>, however I’m not even going to attempt with that one.


    Written between and .

    #Weblog #Put up #HTML #Aspect

    Continue to the category


    Please enter your comment!
    Please enter your name here

    - Advertisment -spot_img

    Most Popular

    Recent Comments