Same-name controls retain exact identity
3 steps · References
Same-name controls retain exact identity
NATIVE ENGINES. OBSERVABLE BEHAVIOR.
Explore 305 reproducible HTML, CSS, and JavaScript fixtures with executable browser commands and explicit assertions.
3 steps · References
Same-name controls retain exact identity
4 steps · References
Moving the same node preserves its reference
4 steps · References
Renaming the same node preserves its reference
6 steps · References
An identical clone cannot inherit a detached reference
6 steps · References
Removing one duplicate cannot redirect its reference
6 steps · References
Replacing and reversing duplicates invalidates old references
4 steps · References
Find installs the reference mapping used by the next action
4 steps · References
Unknown reference fails and a valid selector still works
2 steps · Selectors
Target by attribute selector
2 steps · Selectors
Target by escaped selector
2 steps · Selectors
Target by combinator selector
2 steps · Selectors
Target by compound selector
3 steps · Selectors
Invalid CSS selector reports an error without damaging the page
1 steps · Snapshots
h1 has the documented snapshot role
1 steps · Snapshots
h2 has the documented snapshot role
1 steps · Snapshots
h3 has the documented snapshot role
1 steps · Snapshots
h4 has the documented snapshot role
1 steps · Snapshots
h5 has the documented snapshot role
1 steps · Snapshots
h6 has the documented snapshot role
1 steps · Snapshots
button has the documented snapshot role
1 steps · Snapshots
textarea has the documented snapshot role
1 steps · Snapshots
Accessible name: label-for
1 steps · Snapshots
Accessible name: label-wrap
1 steps · Snapshots
Accessible name: placeholder
1 steps · Snapshots
Accessible name: title
1 steps · Snapshots
Accessible name: aria-label
1 steps · Snapshots
Accessible name: labelledby
1 steps · Snapshots
Accessible name: labelledby-list
1 steps · Snapshots
Accessible name: empty-label-fallback
1 steps · Snapshots
Accessible name: name-precedence
1 steps · Snapshots
Preserve nested-text
1 steps · Snapshots
Preserve bare-text
1 steps · Snapshots
Preserve unicode
1 steps · Snapshots
Preserve whitespace
1 steps · Snapshots
A link-only list item is represented once
1 steps · Snapshots
Scoped snapshots exclude neighboring content
1 steps · Snapshots
Image alt supplies the image-only link name
3 steps · Snapshots
ARIA-hidden controls are omitted but remain DOM-addressable
1 steps · Boundaries
Snapshot default limit with 0 controls
1 steps · Boundaries
Snapshot default limit with 1 controls
1 steps · Boundaries
Snapshot default limit with 999 controls
1 steps · Boundaries
Snapshot default limit with 1000 controls
1 steps · Boundaries
Snapshot default limit with 1001 controls
1 steps · Boundaries
Explicit snapshot max=0
1 steps · Boundaries
Explicit snapshot max=1
1 steps · Boundaries
Explicit snapshot max=3
1 steps · Boundaries
name truncation at 79 characters
1 steps · Boundaries
name truncation at 80 characters
1 steps · Boundaries
name truncation at 81 characters
1 steps · Boundaries
text truncation at 199 characters
1 steps · Boundaries
text truncation at 200 characters
1 steps · Boundaries
text truncation at 201 characters
1 steps · Snapshots
Text snapshots escape names and preserve link destinations
1 steps · Selectors
Find regex anchors match an individual name field
2 steps · Selectors
Invalid regular expression is bounded and recoverable
6 steps · Extraction
Attribute reads distinguish DOM attributes from live values
5 steps · Inputs
Fill text: ''
5 steps · Inputs
Fill text: 'replacement'
5 steps · Inputs
Fill text: ' héllo 日本語 🎉 مرحبا '
5 steps · Inputs
Fill search: 'query'
5 steps · Inputs
Fill tel: '+1 555 0100'
5 steps · Inputs
Fill password: 'p@ss-秘密'
5 steps · Inputs
Fill email: 'qa@example.test'
5 steps · Inputs
Fill email: 'invalid'
5 steps · Inputs
Fill url: 'https://example.test/a?q=1'
5 steps · Inputs
Fill url: 'invalid'
5 steps · Inputs
Fill number: '0'
5 steps · Inputs
Fill number: '-12'
5 steps · Inputs
Fill number: '1.5'
5 steps · Inputs
Fill number: '1e3'
5 steps · Inputs
Fill range: '0'
5 steps · Inputs
Fill range: '50'
5 steps · Inputs
Fill range: '100'
5 steps · Inputs
Fill date: '2024-02-29'
5 steps · Inputs
Fill month: '2026-10'
5 steps · Inputs
Fill week: '2026-W44'
5 steps · Inputs
Fill time: '13:45'
5 steps · Inputs
Fill datetime-local: '2026-10-28T13:45'
5 steps · Inputs
Fill color: '#336699'
2 steps · Inputs
Replace textarea contents
2 steps · Inputs
Replace contenteditable contents
2 steps · Inputs
Replace empty-contenteditable contents
2 steps · Inputs
Replace plaintext contents
3 steps · Keyboard
Type ascii text with per-character events
3 steps · Keyboard
Type emoji text with per-character events
3 steps · Keyboard
Type combining text with per-character events
3 steps · Keyboard
Type empty text with per-character events
3 steps · Keyboard
Type plus text with per-character events
3 steps · Inputs
Reject a disabled control
3 steps · Inputs
Reject a disabled fieldset
3 steps · Inputs
First legend control remains enabled in a disabled fieldset
2 steps · Inputs
Readonly input should resist editing
2 steps · Inputs
A noneditable paragraph rejects fill
2 steps · Forms
A form batch stops at its first failed field
3 steps · Forms
Required validation prevents submission
4 steps · Forms
Enter submits valid form once, including hidden fields
4 steps · Forms
Reset restores initial value and checked state
3 steps · Forms
An external form-associated input participates in submission
3 steps · Selects
Select by value
3 steps · Selects
Select by text
3 steps · Selects
Select by case
2 steps · Selects
Multiselect accepts a mixture of values and text
4 steps · Selects
Missing multiselect option leaves state and events untouched
3 steps · Selects
Empty array clears a multiselect
2 steps · Selects
Option naming compatibility: label-override
2 steps · Selects
Option naming compatibility: nbsp
2 steps · Selects
Option naming compatibility: zero-width
2 steps · Selects
Option values remain case-sensitive
2 steps · Selects
Empty-string option values are selectable
6 steps · Checkboxes
Check and uncheck are idempotent
2 steps · Checkboxes
Radio selection only changes its own group
2 steps · Checkboxes
Canceled checkbox activation reports actual state
2 steps · Checkboxes
Visible label activates its hidden native checkbox
3 steps · Checkboxes
Clicking a custom ARIA checkbox changes application state
2 steps · Hit testing
Reject unreachable target: display-none
2 steps · Hit testing
Reject unreachable target: hidden
2 steps · Hit testing
Reject unreachable target: ancestor-hidden
2 steps · Hit testing
Reject unreachable target: outside
2 steps · Hit testing
Reject unreachable target: pointer-none
2 steps · Hit testing
Activate target with opacity-zero
2 steps · Hit testing
Activate target with transformed
2 steps · Hit testing
Activate target with below-fold
2 steps · Hit testing
Activate target with contents
2 steps · Hit testing
Activate target with rtl
2 steps · Hit testing
Activate target with vertical
3 steps · CSS layout
Target identity in flex layout
3 steps · CSS layout
Target identity in grid layout
3 steps · CSS layout
Target identity in table layout
3 steps · CSS layout
Target identity in inline-block layout
3 steps · CSS layout
Target identity in flow-root layout
2 steps · CSS layout
Target identity with float
2 steps · CSS layout
Target identity with columns
2 steps · CSS layout
Target identity with logical
2 steps · CSS layout
Target identity with custom-property
2 steps · CSS layout
Target identity with content-visibility
5 steps · Hit testing
Transparent pointer-active overlay blocks the target
2 steps · Hit testing
Pointer-inactive overlay allows the target click
2 steps · Hit testing
Force explicitly bypasses an overlay
4 steps · Hit testing
Waiting click completes once an overlay is released
3 steps · Hit testing
Nested containers scroll to the intended target
2 steps · Hit testing
CSS can override the hidden attribute rendering
4 steps · Hit testing
Opening details reveals its control
3 steps · Hit testing
A descendant can override inherited hidden visibility
2 steps · Hit testing
A shadow descendant receives hits inside its button
2 steps · Hit testing
Inert background rejects interactive actions
4 steps · Hit testing
A coordinate click on an icon bubbles to its button once
2 steps · Hit testing
SVG stroke remains interactive with zero geometric height
3 steps · Events
Click produces one activation and ordered mouse events
2 steps · Events
Capture, target, and bubble listeners fire in order
2 steps · Events
Stopped propagation does not activate the parent
2 steps · Keyboard
Keyboard modifiers: Control+k
2 steps · Keyboard
Keyboard modifiers: Shift+A
2 steps · Keyboard
Keyboard modifiers: Alt+x
2 steps · Keyboard
Keyboard modifiers: Meta+k
2 steps · Keyboard
Canceled printable press does not insert text
2 steps · Keyboard
Canceled keydown should suppress typed insertion
3 steps · Keyboard
Typing with a middle caret follows native editing semantics
3 steps · Keyboard
Backspace removes the preceding character
2 steps · Events
Synthetic hover opens a JavaScript menu
3 steps · Events
Bruster dispatches DOM hover events; it does not move the OS pointer or emulate CSS :hover.
4 steps · Drag and drop
HTML5 drag transfers one exact payload
2 steps · Drag and drop
Canceling dragstart should prevent the drop
2 steps · Drag and drop
Capability probe for native pointer capture and movement; Bruster currently promises HTML5 drag events.
4 steps · Uploads
Upload single
4 steps · Uploads
Upload multiple
4 steps · Uploads
Upload hidden
4 steps · Uploads
Upload empty-file
4 steps · Uploads
Upload unicode-name
2 steps · Uploads
Uploaded binary contents are byte-for-byte intact
4 steps · Uploads
Upload replaces and clears the file list
3 steps · Uploads
Missing files report errors without losing the previous upload
4 steps · Composed trees
Selectors and refs reach open shadow roots
1 steps · Composed trees
Host-scoped snapshot includes its own shadow root
2 steps · Composed trees
Traverse 1 nested open shadow roots
2 steps · Composed trees
Traverse 5 nested open shadow roots
2 steps · Composed trees
Traverse 20 nested open shadow roots
2 steps · Composed trees
Closed shadow contents stay outside selector traversal
3 steps · Composed trees
Slotted controls remain actionable without duplicate discovery
7 steps · Composed trees
Same-origin frame controls work through selector and reference
10 steps · Composed trees
Frame replacement invalidates child references
7 steps · Composed trees
Removing a frame invalidates references inside its document
2 steps · Composed trees
Frame descendant rectangles use the top-level viewport
3 steps · Composed trees
Cross-origin child is inaccessible while parent remains usable
1 steps · Composed trees
Opaque sandbox frame does not leak into traversal
4 steps · Rendering
Responsive breakpoint at viewport 480
4 steps · Rendering
Responsive breakpoint at viewport 960
3 steps · Rendering
Container queries respond to their container width
1 steps · Screenshots
Screenshot pixels contain the current viewport content
4 steps · Screenshots
Native capture reflects a canvas update
2 steps · Screenshots
A clip contains the intended element pixels
1 steps · Screenshots
Windows explicitly rejects screenshot clipping
3 steps · Screenshots
Full-page capture includes the lower page and restores viewport
2 steps · Rendering
Image readiness includes successful decoding
2 steps · Rendering
Broken image has zero natural width and useful alt text
3 steps · Rendering
MathML remains visible and surrounding controls work
2 steps · Rendering
Media elements expose stable poster and playback state
4 steps · Rendering
Dark and light set the documented page color scheme
2 steps · Boundaries
Reject viewport 0×640
2 steps · Boundaries
Reject viewport 960×0
2 steps · Boundaries
Reject viewport 16001×1
6 steps · Frameworks
react controlled input survives a rerender
6 steps · Frameworks
vue controlled input survives a rerender
6 steps · Frameworks
svelte controlled input survives a rerender
5 steps · Workflows
Search selects the correct item despite duplicate names
7 steps · Workflows
Visible login fields receive values while hidden decoys stay untouched
9 steps · Workflows
Canceling a modal edit preserves the record
5 steps · Workflows
Recycled DOM nodes are rediscovered after virtual scrolling
5 steps · Waiting
Wait for an explicitly released attached element
5 steps · Waiting
Wait for an explicitly released visible element
5 steps · Waiting
Attached and visible are distinct states
4 steps · Waiting
Hidden wait resolves after element removal
3 steps · Waiting
A detached reference must not satisfy attached
7 steps · Waiting
Text present and text gone follow explicit page transitions
2 steps · Waiting
A missing condition times out and leaves the session usable
1 steps · Waiting
Explicit zero-duration wait completes immediately
3 steps · Async JavaScript
Wait for a promise DOM update
3 steps · Async JavaScript
Wait for a microtask DOM update
3 steps · Async JavaScript
Wait for a timer DOM update
3 steps · Async JavaScript
Wait for a animation DOM update
3 steps · Async JavaScript
Wait for a observer DOM update
4 steps · Timeouts
Expired running promise produces only one reply
2 steps · Timeouts
A zero-deadline operation never executes
4 steps · Timeouts
Operation expiring behind navigation never runs afterward
4 steps · Navigation
Hash navigation keeps the document and updates URL
5 steps · Navigation
Same-URL history restores the correct state object
4 steps · Navigation
PushState and back expose the correct URL and document
3 steps · Navigation
Repeated same-URL navigation loads a fresh document
3 steps · Navigation
Canceled link navigation does not stall later calls
3 steps · Navigation
Reload discards document-local mutations
3 steps · Navigation
HTTP redirects return the final URL
4 steps · Navigation
DOM navigation completes before a controlled slow image
5 steps · Navigation
Load navigation waits for a gated subresource
3 steps · Navigation
A connection failure is followed by successful navigation
4 steps · Tabs
New tab is ready without changing the current tab
5 steps · Tabs
Switching tabs changes the default command target
5 steps · Tabs
Closing a tab answers its pending work
3 steps · Tabs
Closing the last tab fails without closing the session
4 steps · Tabs
A blank-target link creates exactly one tab
3 steps · Tabs
Init script executes before the first page script in a new tab
4 steps · Launch options
Configured user agent reaches initial and subsequent tabs
3 steps · Network
Fetch accepts a string input
3 steps · Network
Fetch accepts a request input
3 steps · Network
Fetch accepts a url input
2 steps · Network
HTTP 200 remains a response rather than a transport error
2 steps · Network
HTTP 204 remains a response rather than a transport error
2 steps · Network
HTTP 404 remains a response rather than a transport error
2 steps · Network
HTTP 500 remains a response rather than a transport error
4 steps · Network
Request headers reach the server and response headers remain inspectable
1 steps · Network
POST body and method reach the HTTP fixture exactly
2 steps · Network
XHR text response is preserved by instrumentation
2 steps · Network
XHR json response is preserved by instrumentation
2 steps · Network
XHR arraybuffer response is preserved by instrumentation
2 steps · Network
Aborted fetch records failure and permits later requests
4 steps · Network
ASCII response body prefix at 16383 characters
4 steps · Network
ASCII response body prefix at 16384 characters
4 steps · Network
ASCII response body prefix at 16385 characters
4 steps · Network
Clearing request logs resets entries and indexes
6 steps · Network
Network idle cannot complete while a gated request is pending
1 steps · Network
A second origin supports explicitly permitted CORS
2 steps · Network
A denied cross-origin request fails without breaking same-origin requests
5 steps · Storage
Native cookie setting is visible in the page and other tabs
2 steps · Storage
Server-set cookies reach the native cookie API
3 steps · Storage
Same-named cookies on distinct paths remain distinguishable
4 steps · Storage
Local storage is shared while new-tab session storage is independent
4 steps · Storage
Different ports isolate local storage
4 steps · Profiles
Named profile preserves local storage across process restart
4 steps · Profiles
Profile-free process restart discards local storage
2 steps · Storage
IndexedDB writes are readable after their transaction commits
1 steps · Workers
Dedicated worker communication survives page instrumentation
2 steps · Workers
Service worker registration is scoped and explicitly removable
1 steps · Evaluation
JavaScript return serialization: number
1 steps · Evaluation
JavaScript return serialization: string
1 steps · Evaluation
JavaScript return serialization: boolean
1 steps · Evaluation
JavaScript return serialization: null
1 steps · Evaluation
JavaScript return serialization: undefined
1 steps · Evaluation
JavaScript return serialization: array
1 steps · Evaluation
JavaScript return serialization: object
1 steps · Evaluation
JavaScript return serialization: promise
2 steps · Evaluation
Recover after JavaScript throw
2 steps · Evaluation
Recover after JavaScript syntax
2 steps · Evaluation
Recover after JavaScript rejection
2 steps · Evaluation
Cyclic result uses a JSON-safe fallback
3 steps · Evaluation
Replacing page JSON.stringify cannot corrupt replies
5 steps · Console
Console captures level log
5 steps · Console
Console captures level info
5 steps · Console
Console captures level warn
5 steps · Console
Console captures level error
5 steps · Console
Console captures level debug
3 steps · Boundaries
Console entry truncation at 999 characters
3 steps · Boundaries
Console entry truncation at 1000 characters
3 steps · Boundaries
Console entry truncation at 1001 characters
4 steps · Console
Unhandled promise rejection reaches console diagnostics
3 steps · Console
Error diagnostics retain the message when the stack only contains frames
4 steps · Dialogs
Confirm returns true
4 steps · Dialogs
Confirm returns false
3 steps · Dialogs
Prompt response: text
3 steps · Dialogs
Prompt response: cancel
3 steps · Dialogs
Prompt response: empty
4 steps · Dialogs
Alert emits a record and subsequent code runs
3 steps · Dialogs
Beforeunload cannot block navigation
3 steps · Stress
Extract and interact with 5000 controls
3 steps · Stress
Extract and interact with 10000 controls
3 steps · Stress
Console collection stays bounded after 501 messages
2 steps · Stress
A large Unicode result survives protocol framing
25 steps · Stress
Repeated tab creation and closure returns to one tab