Articles
No titles are available yet.
Shift Left Until Failure Becomes Impossible
Why stronger types make Playwright more valuable, not less—and how to move every guarantee to the earliest layer capable of establishing it.
ARIA roles are for more than screen readers
ARIA describes roles, names and states to assistive technology. Native HTML and explicit keyboard behaviour remain essential.
Attribute selectors are powerful but can be brittle
Use attributes to style meaningful states, and understand how selector combinations affect specificity.
CSS variables bring consistency and flexibility
Custom properties make shared design values explicit and allow them to vary with context.
Every HTML element has a purpose; use them wisely
Choose elements for their meaning and built-in behaviour before deciding how they should look.
Good headings create effortless flow and clarity
Build a logical heading hierarchy, then choose a type scale that supports readable content.
HTML forms are not just inputs; they are interactions
Design forms around clear labels, useful instructions and recoverable errors.
HTML is for structure, CSS is for style, JavaScript is for interaction
Separate content, presentation and behaviour while preserving the browser's native capabilities.
HTML5 introduced semantics; embrace them
Use structural HTML elements to communicate the organisation of a page.
Semantics shape meaning
Meaningful HTML communicates the purpose of content to browsers, readers and assistive technology.
The cascade can be tamed, not ignored
Understand the cascade before reaching for stronger selectors or important declarations.
Without accessibility, beauty is useless
An effective visual design lets people read, navigate and operate the interface in different ways.