Web site Developer I Advertising I Social Media Advertising I Content material Creators I Branding Creators I Administration I System Answer
On this article, Louis Lazaris describes and demonstrates some fascinating HTML attributes that you could be or could not have heard of and maybe discover helpful sufficient to personally use in one in all your initiatives.
In January, Madison Kanna requested her Twitter followers:
What are the languages/tech you’re excited to study or study extra deeply this 12 months?
mine: typescript, subsequent.js, react, graphql, solidity, node
— Madison Kanna (@Madisonkanna) January 3, 2022
My reply was simple: HTML. And I wasn’t being sarcastic or mocking within the least. Certain, I just about know which tags to make use of during which situations and the right way to hold my HTML principally semantic and accessible.
However there’s a complete bunch of lesser-used attributes that I used to be positive I’d forgotten about, and possibly a complete bunch of attributes I didn’t even know existed. This put up is the results of my analysis, and I hope you’ll discover a few of these helpful to you, as you construct HTML pages within the coming months.
The enterkeyhint
Attribute For Digital Keyboards
The enterkeyhint
attribute is a world attribute that may be utilized to kind controls or components which have contenteditable
set to true
. This attribute assists customers on cell units that use a digital on-screen keyboard.
<enter kind="textual content" enterkeyhint="completed">
enterkeyhint
accepts one in all seven attainable values that can decide what the person sees on his ‘enter’ key:
enter
,completed
,go
,subsequent
,earlier
,search
,ship
.
You’ll be able to see how these “hints” might be helpful for the person. Is the person progressing via a collection of actions? Are they submitting information? Are they saving a setting? Relying on what they’re doing, you may customise the trace to match your app’s wants.
You’ll be able to do that one out by visiting the CodePen demo beneath on a cell gadget.
See the Pen [Using the enterkeyhint Attribute [forked]](https://codepen.io/smashingmag/pen/bGadMyz) by Louis Lazaris.
On my iOS gadget, the textual content for the enter key adjustments together with the colour of the important thing, relying on the worth, as you may see within the screenshots beneath. This would possibly fluctuate, relying on the person’s gadget.


And simply to emphasise, this attribute doesn’t settle for customized values; the worth must be one of many seven proven above. An unrecognized worth will simply default to regardless of the gadget’s default textual content is for the enter key.
The title
Attribute On Stylesheets
This one was model new to me when doing analysis for this text and could be probably the most fascinating one on this checklist. As a little bit of background, in case you didn’t know, Firefox has an choice that lets you choose which fashion sheet you need to use when viewing a web page. Usually, this function shows two choices: “Fundamental Web page Model” and “No Model”, as proven within the picture beneath on my Home windows machine.

This allows you to shortly check how a web page will look when types are disabled, and it additionally lets you view the web page with any alternate stylesheets.
The alternate stylesheet function is enabled with two attributes: The title
attribute and rel=alternate
utilized to a <hyperlink>
component, as proven within the code beneath:
<hyperlink href="https://smashingmagazine.com/2022/03/html-attributes-you-never-use/main.css" rel="stylesheet" title="Default">
<hyperlink href="distinction.css" rel="alternate stylesheet" title="Excessive Distinction">
<hyperlink href="readable.css" rel="alternate stylesheet" title="Readable">
On this case, my “default” types will apply routinely, however the alternate stylesheets will solely apply if I choose them utilizing Firefox’s “Web page Model” choice. You’ll be able to check out the above instance by visiting the next CodePen, utilizing Firefox or one other appropriate browser:
See the Pen [Alternate Stylesheets Using rel title Attributes [forked]](https://codepen.io/smashingmag/pen/ExojRgm) by Louis Lazaris.
The screenshot beneath exhibits the stylesheet choices in Firefox:

As talked about, this function works in Firefox, however I wasn’t in a position to get it to work in any Chromium-based browser. MDN’s article on alternate stylesheets says it may be enabled in different browsers utilizing an extension, however I couldn’t discover an energetic extension that does this.
The cite
Attribute For The <blockquote>
And <q>
Components
I’m positive you utilize the <blockquote>
component fairly usually. You should utilize it plainly with out an attribute, however you even have the choice to make use of the cite
attribute. Right here’s an instance that quotes the MDN article that describes utilizing cite
on <blockquote>
:
<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote#attr-cite">
A URL that designates a supply doc or message for the knowledge quoted. This attribute is meant to level to data explaining the context or the reference for the quote.
</blockquote>
Since my blockquote above is from the MDN article that explains what cite
does, I’ve set the URL that factors to the web page because the cite
worth.
You’ll be able to see how that is helpful, as a result of it wraps up the quote and the supply of the quote in a single component. However notice this additional clarification within the HTML spec:
Consumer brokers could enable customers to comply with such quotation hyperlinks, however they’re primarily supposed for personal use (e.g., by server-side scripts accumulating statistics a few web site’s use of quotations), not for readers.
And naturally, the identical ideas apply to make use of of cite
on the <q>
component, which is used for inline quotations.
Attributes For Customized Ordered Lists
Ordered lists utilizing the <ol>
component are used usually. Some lesser recognized options that help you customise the behaviour of the numbering that seems in such an inventory are:
- the
reversed
attribute, to quantity the gadgets in reverse order (excessive to low as an alternative of the default low to excessive); - the
begin
attribute, to outline what quantity to start out from; - the
kind
attribute, to outline whether or not to make use of numbers, letters, or Roman numerals; - the
worth
attribute, to specify a customized quantity on a selected checklist merchandise.
As you may see, ordered lists are much more versatile with plain HTML than you would possibly usually be accustomed to.
The reversed
attribute is an fascinating one, as a result of it doesn’t really reverse the contents of the checklist itself; it solely reverses the numbers subsequent to every checklist merchandise.
<ol reversed>
<li>Record merchandise...</li>
<li>Record merchandise...</li>
<li>Record merchandise...</li>
</ol>
The CodePen demo beneath provides some JavaScript, so you may interactively toggle the reversed
attribute.
See the Pen [Reverse Ordered Lists with HTML [forked]](https://codepen.io/smashingmag/pen/jOYPKxW) by Louis Lazaris.
Discover, that the checklist itself stays the identical, however the numbers change. Maintain that in thoughts should you’re searching for a strategy to reverse the contents. That’s one thing you’ll do with JavaScript, CSS, or instantly within the HTML supply.
Above, I additionally talked about three different attributes. Let’s incorporate these into the checklist to see how they can be utilized:
<ol reversed begin="20" kind="1">
<li>Typee: A Peep at Polynesian Life (1846)</li>
<li>Omoo: A Narrative of Adventures within the South Seas (1847)</li>
<li>Mardi: and a Voyage Thither (1849)</li>
<li>Redburn: His First Voyage (1849)</li>
<li worth="100">White-Jacket; or, The World in a Man-of-Conflict (1850)</li>
<li>Moby-Dick; or, The Whale (1851)</li>
<li>Pierre; or, The Ambiguities (1852)</li>
<li>Isle of the Cross (1853 unpublished, and now misplaced)</li>
</ol>
Word, the kind
and begin
attributes which were added in addition to the worth
attribute on a person checklist merchandise. The kind
attribute accepts one of many 5 single-character values (a
, A
, i
, I
, 1
) representing the numbering kind.
Strive it utilizing the next interactive demo:
See the Pen [Reverse Ordered Lists with start, type, and value Attributes [forked]](https://codepen.io/smashingmag/pen/RwxPqgN) by Louis Lazaris.
Use the radio buttons to pick one of many 5 values for the kind
attribute. Then attempt reversing the checklist utilizing the Toggle Reversed
button. As you may see, there’s a ton of prospects past the default behaviour of ordered lists!
The obtain
Attribute For The <a>
Ingredient
As ubiquitous as hyperlinks are on the internet, it’s all the time good to have an attribute that makes hyperlinks much more highly effective. The obtain
attribute was added to the spec a lot of years in the past, and it lets you specify that when a hyperlink is clicked, it must be downloaded quite than visited.
<a href="https://smashingmagazine.com/example.pdf" obtain>Obtain File</a>
With no worth, the obtain
attribute forces the linked web page to be downloaded. Alternatively, you may present a worth which the browser makes use of because the prompt file title for the downloaded useful resource.
<a href="https://smashingmagazine.com/example.pdf" obtain="my-download.pdf">Obtain File</a>
As a bonus trick involving this attribute, you may mix this function with some JavaScript to create a approach for the person to obtain content material they create themselves. I lined it somewhat bit beforehand on this put up, and you’ll attempt it out through the use of the demo beneath.
See the Pen [The download Attribute Combined with a Data URI + JavaScript to Let the User Download Custom HTML [forked]](https://codepen.io/smashingmag/pen/abEOQyQ) by Louis Lazaris.
The decoding
Attribute For The <img>
Ingredient
That is one other one which was model new to me when researching this text — and it appears to be pretty new within the spec. Including the decoding
attribute to a picture component offers a picture decoding trace to the browser.
<img src="https://smashingmagazine.com/images/example.png" alt="Instance" decoding="async">
This attribute is just like utilizing the async
attribute on scripts. The time it takes to load the picture doesn’t change, however the method during which its “decoded” (and thus its content material turns into seen within the viewport) is decided by the decoding
attribute.
Values are:
sync
Decode the picture synchronously, which is mostly how browsers do it.async
Decode the picture asynchronously to keep away from delaying presentation of different content material.auto
The default which permits the browser to make use of its personal built-in technique of decoding.
For those who’re curious in regards to the idea of decoding photos, the spec has a very good clarification that’s not too troublesome to comply with.
The loading
Attribute For The <iframe>
Ingredient
As you in all probability already know, picture components can now embrace a loading
attribute that places lazy loading into the browser as a function, one thing we’ve been doing for years with JavaScript options. However don’t neglect that the loading
attribute will also be used on <iframe>
components:
<iframe src="https://smashingmagazine.com/page.html" width="300" peak="250" loading="lazy">
As with photos, the loading
attribute accepts both a worth of keen
(the default browser behaviour) or lazy
, which defers loading of the iframe’s contents till the iframe is about to enter the viewport. The one down-side to this attribute is the truth that its use on iframes shouldn’t be supported in Firefox (although, Firefox does help loading
on photos).
The kind
Attribute for Type Fields
Usually, you’re going to nest your kind inputs and controls inside a <kind>
component. But when your app or structure requires one thing somewhat completely different, you’ve the choice to place a kind enter wherever you need and affiliate it with any <kind>
component — even one which’s not the component’s dad or mum.
<kind id="myForm" motion="/kind.php">
<enter id="title">
<button kind="submit">
</kind>
<enter kind="e-mail" kind="myForm">
As you may see above, the e-mail <enter>
that’s outdoors the shape has the kind
attribute set to myForm
, which is ready to the identical worth because the id
of the shape. You’ll be able to affiliate a kind management (together with the submit
button) with any kind in a doc through the use of this attribute and the shape’s id.
You’ll be able to do that out utilizing this demo web page. The shape submits utilizing a GET request, so you may see the values submitted within the URL’s question string. On that web page, the “feedback” field is outdoors the <kind>
component.
The one criticism I’ve with this attribute is that it in all probability ought to have been given a extra distinctive title, perhaps one thing like “formowner”. Nonetheless, it’s a helpful one to recollect, ought to your design or structure require a parent-less kind subject.
The cite
And datetime
Attributes For Deletions/Insertions
I’ve already talked about cite
when coping with blockquotes, however this attribute will also be used with deletions and insertions marked up with the <del>
and <ins>
components. Moreover, each components can embrace a datetime
attribute.
<del
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>Firefox does not help CSS's customary <code>look</code> property, so you may solely use it prefixed.</del>
<ins
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>The <code>look</code> property, beforehand solely obtainable prefixed in Firefox, can now be utilized in all fashionable browers unprefixed.</ins>
For every component, right here’s what the 2 attributes characterize:
cite
A URL pointing to a useful resource that explains why the content material was deleted or inserted.datetime
Date that the deletion or insertion was made.
In my case, I’m utilizing the instance of some textual content, describing a CSS property that required a vendor prefix in Firefox. This could be an previous weblog put up. As soon as the prefixes have been eliminated, I may delete
the previous textual content and insert
the brand new textual content utilizing the <del>
and <ins>
components. I can then use the cite
attribute to reference the bug report the place the issue was resolved.
The label
Attribute for the <optgroup>
Ingredient
Lastly, this final one is a little bit of a golden oldie, however as a result of it doesn’t get used too usually, perhaps you didn’t even understand it existed. This one is a mix of a component together with an attribute.
When you’ve got an extended checklist of things included within the choices for a <choose>
drop-down, you may group the choices into seen classes utilizing the <optgroup>
component together with its related label
attribute:
<choose>
<choice>--Your Favorite Animal--</choice>
<optgroup label="Birds">
<choice>Blue Jay</choice>
<choice>Cardinal</choice>
<choice>Hummingbird</choice>
</optgroup>
<optgroup label="Sea Creatures">
<choice>Shark</choice>
<choice>Clownfish</choice>
<choice>Whale</choice>
</optgroup>
<optgroup label="Mammals">
<choice>Lion</choice>
<choice>Squirrel</choice>
<choice>Quokka</choice>
</optgroup>
</choose>
You’ll be able to check out an instance through the use of the next CodePen:
See the Pen [Using the label Attribute with optgroup Elements [forked]](https://codepen.io/smashingmag/pen/xxpGQjB) by Louis Lazaris.
Discover, every <optgroup>
has a label
attribute that defines a heading for every group — however the headings can’t be chosen. As a bonus tip, you can even use the disabled
attribute on an <optgroup>
to disable all of the choices in that part of the <choose>
drop-down.
The imagesizes
and imagesrcset
Attributes for Preloading Responsive Pictures
That is one other pair of attributes that have been new to me when researching this text, and each of them are comparatively new within the spec as effectively.
Each of those attributes might be outlined together with rel=preload
and as
on the <hyperlink>
component, as follows:
<hyperlink rel="preload"
as="picture"
imagesrcset="https://smashingmagazine.com/images/example-480.png 480w,
https://smashingmagazine.com/images/example-800.png 800w,
https://smashingmagazine.com/images/example.png 2000w"
imagesizes="(max-width: 600px) 480px,
(max-width: 1000px) 800px,
1000px"
src="https://smashingmagazine.com/2022/03/html-attributes-you-never-use/images/example.png"
alt="Instance Picture">
Use of rel=preload
right here informs the browser that we would like the indicated assets to load in precedence, in order that they’re not blocked by issues like scripts and stylesheets. The as
attribute specifies the kind of content material requested.
You’ll be able to preload common photos through the use of the href
attribute together with preload
and as
. However on high of that, you should utilize the imagesrcset
and imagesizes
attributes, as I’ve completed within the code above.
This lets you preload the right picture, relying on the scale of the viewport or different media options you’ve specified within the imagesizes
attribute.
Honorable Mentions
Along with the attributes I’ve already described and demonstrated intimately, there are some others you would possibly need to look into that I’ll simply point out briefly right here:
- The
crossorigin
attribute which may apply to a number of components, together with<audio>
,<img>
,<hyperlink>
,<script>
, and<video>
, offering help for cross-origin useful resource sharing (CORS); - The
title
attribute for<dfn>
and<abbr>
; - The brand new
disablepictureinpicture
attribute for the<video>
component; - The
integrity
attribute for scripts, which helps the browser confirm that the useful resource hasn’t been improperly manipulated; - The
disabled
attribute for the<fieldset>
component, to simply disable a number of kind components concurrently; - The
a number of
attribute for e-mail and file inputs.
For those who’ve used any of the attributes talked about on this article, or if you understand of one other HTML function that you just’ve personally benefited from utilizing in one in all your initiatives, be happy to let me know within the feedback.

(vf, yk, il)