Progressive Enhancement Example (no-JS fallback)

Browser Actions Enhancement Intermediate Nice to Try

Hands-on

Interactive Sandbox

Static partial

Try this

  1. Open page
  2. Interact control
  3. Read result

Assert this

  • Visible elements
  • Text matches
  • Button state toggles

Browser Actions / Enhancement

Progressive Enhancement Example (no-JS fallback)

Automation drill for progressive enhancement example (no-js fallback).

Intermediate Nice to Try
Waiting for input

Patterns to explore

  • data-test-id hooks
  • Enhancement states
  • Feedback slot

Learning & behavior

User flow

  1. Open page
  2. Interact control
  3. Read result

Learning objectives

  • Pick solid locators
  • Time waits
  • Assert state

Suggested assertions

  • Visible elements
  • Text matches
  • Button state toggles

Selector tips

Good

  • [data-test-id='progressive-enhancement-example-no-js-fallback-primary']
  • [data-test-id='progressive-enhancement-example-no-js-fallback-secondary']
  • [data-test-id='progressive-enhancement-example-no-js-fallback-action']
  • [aria-label='Progressive Enhancement Example (no-JS fallback)']
  • getByRole('button', { name: 'Enhancement' })

Fallback

  • section.progressive-enhancement-example-no-js-fallback-container :nth-of-type(1)
  • .card.progressive_enhancement_example_no_js_fallback button:nth-of-type(1)
  • form.progressive-enhancement-example-no-js-fallback-form .field-group:nth-child(1)

Avoid

  • .mt-4.mb-2.flex.items-center > input:nth-child(1)
  • .css-1a2b3c4
  • div[class*='temp-'][class*='hover']

Notes

  • Some parts delay render
  • Icon buttons need aria-label
  • Layout classes may shift
No next example