Progressive Enhancement Example (no-JS fallback)
Browser Actions Enhancement Intermediate Nice to TryHands-on
Interactive Sandbox
Try this
- Open page
- Interact control
- 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
- Open page
- Interact control
- 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