Ch. 5 · HTML & CSS

HTML Progressive Enhancement and Reliable Navigation

HTML Progressive Enhancement and Reliable Navigation. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readadvancedupdated Oct 3, 2026

Useful core content and navigation should work before JavaScript enhances interaction. This improves resilience when scripts fail or arrive slowly.

Before you start

You should be comfortable with semantic HTML, CSS selectors and browser developer tools. Reproduce the scenario in a small page before adding framework code. Inspect both visual appearance and keyboard or accessibility behavior; a correct screenshot alone is not sufficient evidence.

The practical goal is to reason through this situation: A search result is a real link even when client-side filtering improves discovery. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: Define the usable baseline

Articles, headings and navigation should arrive as meaningful HTML without requiring client code.

Step 2: Enhance existing controls

Use real pagination links, then add filtering or smoother interactions on top of that baseline.

Step 3: Test failure modes

Disable JavaScript or block an optional script. Core reading and navigation should still work; unavailable tools should be explained.

Worked scenario

A search result is a real link even when client-side filtering improves discovery.

An article card links directly to its article URL. Client filtering can hide or reorder cards, but it is not responsible for making the link navigable. Static pagination exposes later articles even if the filtering catalog fails to load. This separates essential access from an optional convenience feature.

Common mistake

Putting all article content behind script execution can leave users with an empty page.

Verify the behavior

Browse articles and later pages with JavaScript disabled, then fail the catalog request with scripts enabled and check recoverable feedback.

Interview exercise

Test an article without JavaScript.

Answer and reasoning

Confirm text, headings and navigation remain available, while clearly identifying which optional practice features require scripting.

Continue learning

Compare the scenario with the HTML and CSS interview questions and test your understanding with the HTML and CSS MCQs. For terminology and implementation details, consult the reference material.

More in HTML & CSS

read ✓HTML & CSS · easy

CSS aspect-ratio and Layout Stability

Reserve space for media with aspect-ratio, combine it with object-fit, and avoid the layout shift the old padding hack caused.

~2 min readread →
read ✓HTML & CSS · hard

The CSS :has() Selector

Style a parent based on its children with :has(), handle form states, and use it without hurting performance.

~2 min readread →
read ✓HTML & CSS · hard

CSS Cascade Layers

Control the cascade order with @layer, keep specificity low, and understand how unlayered styles fit in.

~2 min readread →
esc