My favourite colour is Chuck Norris red ๐
by Declan Chidlow Setting the colour of text on a webpage is usually a simple affair involving whipping it out the good ol' CSS color property. But th [...]
a collection of dev rss feeds - blogroll
Posts
by Declan Chidlow Setting the colour of text on a webpage is usually a simple affair involving whipping it out the good ol' CSS color property. But th [...]
by Scott Jehl A couple years back, I was in a window seat on a flight from Amsterdam to New York. The weather was gray and drizzly as the plane took o [...]
by Alan Dalton Dive into marking up books Books are the best Christmas presents, especially for us web geeks. (I hope youโll find a Web Accessibility [...]
by Marco Bretschneider Can you remember the day you first learnt about ARIA? Maybe the first fact you learnt about ARIA was the first rule โDon't use [...]
by Maureen Holland Donโt get me wrong. You can keep it if you like it. But you donโt need it. A class selector can allow us to visually show or hide c [...]
by Corina Murg With the right CSS makeup and a click event, almost anything can pretend to be a button. In accessibility work, we spot these fakes and [...]
by Kristin Rohleder Imagine youโre reading a book that seems perfect for cozy winter evenings. But as soon as you turn the page, you suddenly find you [...]
by Anastasiia Batarei Today, Iโd like to talk about the experience of browsing websites where content is fully or partially in a language different fr [...]
by Julia Undeutsch Since I started to create content in Japanese, I also wanted to learn about traditional setups, like having Japanese text flow from [...]
by Evan Hahn In short: put <meta http-equiv="refresh" content="1"> in your <head> element to refresh your page every second. This is a makeshift "hot [...]
by Felix Hessenberger It was on a cold February evening. I had been working on a client project, building an order item listโnothing out of the ordina [...]
by Vadim Makeev Itโs getting dark early in Berlin in the winter. Itโs not even close to evening, but my OS and all apps have already switched to dark [...]
by Jens Oliver Meiert Consider the following HTML document: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 1996-01//EN"> <html> <head> <title></title> [...]
by Lรฉonie Watson Can you give me the HTML for an accessible button please? It was a simple enough question. Or it would have been, had I been asking a [...]
by Weston Thayer An accessible name is how UI components are identified to assistive tech. Having a good accessible name is important. If not, negativ [...]
by Matthias Zรถchling figure{margin-bottom:2.4rem}figure img{aspect-ratio:4;border: 6px solid #000}figcaption,sup,.highlight,section:has(#resources) sp [...]
by Bramus figcaption { font-size: 0.8em; text-align: center; } Viewports units on mobile have been a problem for a long time. Using 100v [...]
by John Allsopp A single line of CSS can enable slick multi-page transitions for web applications (and web sites for those who maintain there's a diff [...]
by Kilian Valkhof Focus is where the user is on your website. It's what makes it possible to navigate your site with the keyboard or other assistive t [...]
by Rian Rietveld It's a common pattern to use a logo in the header as a link to the homepage. Fun fact: the alt text of the image inside a link, will [...]
Bad code <button type="button" onclick="window.open('https://example.com/other-page')">Link target description</button> Issues and how to fix them A b [...]
The good intentions were there but in the HTML and Accessibility world, less is sometimes more. Bad code <label for="textinput">First name</label> <in [...]
by Lara Aigmรผller โHTML is easy.โ, โFrontend development is easier than backend development.โ, โUpdating the UI should be a simple task once the backe [...]
by Cristian Diaz Disclosure widgets are one of the most common component patterns you can find on the web. It consists of a button that can hide or sh [...]
by Andrea de Souza ARIA stands for Accessible Rich Internet Applications. It is a set of roles and attributes that makes web page elements accessible [...]
by Halvor William Sanden People donโt need call-to-action buttons. Interface elements made to get attention and herd people towards clicks increase co [...]
by Jan Hellbusch Should we use tooltips to convey information? Hints and descriptions are often included on web pages through tooltips โ but not every [...]
by Stefania Mellai Semantic and accessible HTML serves as a powerful tool, enhancing not only human interaction but also the efficiency of software sy [...]
by Vadim Makeev HTML semantics isย aย nice idea, but does itย really make aย difference? Thereโs aย huge gap between HTML specโs good intentions and what b [...]
by Winnie Bosibori Lists are one of the fundamental semantic HTML configurations that, when implemented appropriately can enhance accessibility. HTML [...]
by Ida Franceen I don't like how the screen reader pronounces these numbers and I've been experimenting with different kinds of markup to get it to re [...]
by Thomas A. Powell As a well-seasoned web developer, a clear euphemism for my age, I reminisce about the early days of markup through the haze of str [...]
by Alistair Shepherd Carefully observing websites in the wild As the murderous tortoises start to converge on Ryลซjiโs hideout, th [...]
by Mayank You've probably heard statements along the lines of "HTML is already accessible by default" or "You don't need to reinvent this perfectly fi [...]
by David Luhr When I started writing unit tests and following a test-driven development (TDD) workflow, I was stoked with the immediate feedback and c [...]
by Ahmad El-Alfy The hidden attribute allows us to hide HTML elements from the page. When it was introduced, it worked in a very simple way: it set th [...]
by Steve Frenzel Foreword This template is opinionated and intended as a starting point for those who want to define how accessibility is dealt with i [...]
by Egor Kloos (aka dutchcelt) Web Components. The discussion seems to pop up more than it used to. Web Components Will Outlive Your JavaScript Framewo [...]
by Phil Nash The <input> element is the most fascinating element in HTML. Most elements behave the same way regardless of their attributes, the type a [...]
by Saptak S Various HTTP headers are sent between the user and the server of a website in the request-response cycle. Some of these HTTP response head [...]
by Chris Ferdinandi Web Components are a collection of technologies that you can use to create reusable custom elements, with built-in interactivity, [...]
by Jason Cranford Teague Timeline of HTML from 1990โ2024 Note: HTML standards are developed first in browsers, so the version might have already [...]
by Daniela Kubesch In the fast-paced world of web development, it's easy to get caught up in the latest frameworks, libraries and cutting-edge technol [...]
by Alexander Muzenhardt Consider a scenario where you have a login form containing two input fields with corresponding labels, alongside a submit and [...]
by Kilian Valkhof Hello, my dear friend of RSS! This post contains interactive demos. You may want to read it on the website. Please don't feel antago [...]
by Vasilis van Gemert Recently when I gave a coding assignmentโโโan art directed web page about a fontโโโa student asked: does it have to be semantic [...]
Want to trigger an action? Use a button element. Theyโre great. Want to also prevent form submission when someone clicks that button? Put down the Jav [...]
While what we mean is usually very clear to us, others may decode our messages differently from what we intended. This is especially true on the web, [...]
When it comes to adding images on the web, you need to consider how to make them accessible and understandable to everyone. Which means you need to in [...]
The rel attribute has the potential to take the Internet to the next levelโฆ and yet, we usually forget about it. Imagine a city where people guided th [...]
HTML is such a lovely language. Browsers will almost always display something for you, no matter what you put in the HTML document. Heck, you could om [...]
Do you know of color-scheme yet? If not, I bet you still think you do. It will certainly look familiar, as prefers-color-scheme has been around for lo [...]
Adding an image with HTML is pretty easy, itโs just a simple tag, after all, right? <img src="path/to/image.jpg" /> But when you start taking into con [...]
Reading HTMHell, you might be aware that progressive enhancement is a thing. To sum things up, it's a way to make sure anyone gets a viable version of [...]
HTML is a beautiful programming language. It comes with many out-of-the-box accessibility benefitsโit conveys semantic meaning to assistive technology [...]
With the current Y2K fashion trend and JLo being back together with Ben Affleck, the 2000s are having a revival this year. Many brands are jumping ont [...]
In this article: Hello, Website Builders! A little history What is a table? Who benefits from tables? What does a table look like? What does a table s [...]
Today, I want to look at a proposed HTML feature that may end up replacing a lot of <div>s-based custom input components: <selectmenu>. CSS is awesom [...]
Motivation When thinking of HTML-related security bugs, people often think of script injection attacks, which is also known as Cross-Site Scripting (X [...]
When it comes to building out forms, it sometimes seems like there are at once both too few field types and too many. This is especially true when it [...]
As developers, validation of user input is one of the first things we are taught. So, for example, we may think it would be a good idea to put some re [...]
While browsing Mastodon late one night, I came across this excellent blog post called HTML is all you need to make a website. It describes a few websi [...]
Summary Introduction What is SEO ? Web quality with Opquast SEO-related Opquast rules Conclusion Introduction โ Colleagues sometimes ask me: โHey Alex [...]
If I had a dollar for every time I've had to tell someone to remove an aria-label from an interactive control that has actual visible text, I could ha [...]
Getting performance data from real users can transform assumptions about how a user experiences a site into objective, actionable information. In the [...]
The <meter> element is a little known and rarely used semantic element. It's a non-interactive form element that renders as a partially filled horizon [...]
Heading elements (h1 through to h6) are used to give structure to the content of your page. They're important for SEO, make your pages more readable a [...]
At some point of developing a website, there might come a time where we need to progressively enhance using JavaScript. There are few different option [...]
In web development, writing semantic HTML is important for accessibility, and also provides some nice side effects such as supporting browser "reader" [...]
Soon enough in your career as a web developer, you encounter the situation where a designer hands over a wonderful web design in all its large-screen [...]
Bad code <button display="flex" role="button"> <svg role="img" viewBox="0 0 13 13" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="15p [...]
Bad code <a href="/contact" aria-label="If you find that you need additional assistance in navigating or accessing the content of this website, ple [...]
Bad code <p> โข HTML <br> โข CSS <br> โข JavaScript </p> Issues and how to fix them Use <p> for paragraphs, not lists. The standard way for cre [...]
Bad code <section> <aside> <div> <section> <header> <a href="/"> <img src="logo.svg" alt="Logo"> < [...]
Bad code <h1 aria-busy="true" aria-live="polite" role="alert" class="sr-only"> Done </h1> Issues and how to fix them The element is used for communi [...]
Context: Visually a list of links. Bad code <h6>Popular Cities</h6> <div> <h6 class="footerLinks">Amsterdam</h6> <h6 class="footerLinks">Rotterd [...]
The second HTMHell special focuses on another highly controversial pattern in front-end development: ๐ฅ the burger button. ๐ฅ The burger button and hi [...]
Note: We've removed most classes to improve readability. Bad code <a tabindex="0" type="button" href="/signup" role="link"> <span class="focus" ta [...]
Bad code <input type="text" placeholder="First name"> Issues and how to fix them Every form input element needs a label. When screen reader users acce [...]
Bad code <article> <div> <div class="sr-only">Image</div> <img src="/feature-teaser.png" alt="Feature teaser" /> </div> </article> <div> [...]
Context: A link to another page. Bad code <div>About us</div> <div onClick="location.href='about.html'"> About us </div> <div data-page="aboutus" da [...]
Context: A button that expands and collapses a section of text. Bad code <button class="panel-heading" tabindex="0" href="#collapse0" aria-expanded="t [...]
This first HTMHell special inspects one of the most complicated and most controversial patterns in front-end development: ๐ฅ the close button. ๐ฅ In m [...]
Context: A simple page that displays the availability of a product. Bad code <h1>Product Status</h1> <h2>Is the product available?</h2> <div> <h3> [...]
Context: The main navigation of a personal website. Bad code <div class="nav"> <div> <div>about</div> <div>thoughts</div> </div> </div> Is [...]
Context: A list of linked cards, each with heading, image, and teaser text. Bad code <section> <section> <h2>Overview</h2> <figure class="ca [...]
Context: A list of images that link to detail pages. Bad code <a tabindex="0"> <div alt="Browser Wars: The Last Engine" aria-label="Browser Wars: Th [...]
Bad code Letters are wrapped in divs to animate each letter with JavaScript. <h3> <div style="display: block; text-align: start; position: relative; [...]
Bad code <a type="button" class="button" href="/signup" tabindex="-1">Sign up</a> Issues and how to fix them The type attribute has no effect on the s [...]
Bad code <input type="checkbox" id="accept" required> <label for="accept"> <a href="/legal"> I accept the confidentiality policy and dataโฆ </a> </la [...]
Bad code <form role="form"> <h2>Poll title</h2> <div id="pollQuestion">Is this accessible?</div> <div name="pollGroup" role="radiogroup"> <d [...]
Bad code <span class="nav-toggle"> โฐ Menu </span> Issues and how to fix them A screen reader may announce this as trigram for heaven menu, because โฐ i [...]
Bad code <section id="page-top"> <section data-section-id="page-top" style="display: none;"></section> </section> <main> <section id="main-content [...]
Bad code <body> <header>โฆ</header> <main>โฆ</main> <footer>โฆ</footer> <div class="cookie_consent modal"> <p>We use cookiesโฆ</p> <div c [...]
Bad code <a href="#" onclick="modal.open()">Login</a> Issues and how to fix them If the a element has an href attribute, it represents a link to anoth [...]
Bad code <table> <tr id="body"> <td id="body"> <table id="body"> <tr id="body_row"> <td id="body_left">โฆ</td> [...]
Bad code <a href="javascript:void(1)" onClick='window.location="index.html"'>Link</a> Issues and how to fix them Links won't work, if JavaScript fails [...]
Bad code <a href="#form" role="button" aria-haspopup="true"> Register </a> Issues and how to fix them Itโs a link to a form at [...]
Bad code <a href="https://example.com"> <button>Example</button> </a> Issues and how to fix them By nesting a button inside of a link, youโre sendin [...]
Bad code <img src="/images/edit.gif" onclick="openEditDialog(123)"> <img src="/images/delete.gif" onclick="openDeleteDialog(123)"> Issues and how to f [...]
Bad code <div tabindex="-1"> <div role="button"> <svg width="28" height="24"> โฆ </svg> </div> </div> Issues and how to fix them Setting button [...]
Bad code <button role="link" title="Name of website" tabindex="0"> <img alt="Name of website" src="logo.jpg" title="Name of website"> </button> Issu [...]