Accessibility / Analysis / Interaction State Fuzzer

The Interaction State Fuzzer bookmarklet tests common ARIA widget patterns for proper keyboard and interaction behaviors. Opens dialogs and tests Escape key to close, navigates menus with arrow keys and tests Escape, clicks aria-expanded toggles and verifies state changes, and reports any patterns that don't respond correctly. Displays an alert with any issues found (e.g., "Dialog did not close on Escape", "Toggle did not change aria-expanded"). Useful for automated testing of widget interaction patterns. Role, Value.

WCAG SC 2.1.1: KeyboardWCAG SC 4.1.2: Name
Run Interaction State Fuzzer

Test run or drag to
bookmarklets bar to install

javascript:%21function()%7B%22use%20strict%22%3Btry%7Bconst%20e%3D%5B%5D%3B%5B...document.querySelectorAll(%27%5Brole%3D%22dialog%22%5D%2Cdialog%27)%5D.forEach(o%3D%3E%7Bif(%211%3D%3D%3Do.open%26%26o.showModal)try%7Bo.showModal()%7Dcatch%7B%7Dconst%20t%3Do.open%7C%7C%22none%22%21%3D%3DgetComputedStyle(o).display%3Bo.dispatchEvent(new%20KeyboardEvent(%22keydown%22%2C%7Bkey%3A%22Escape%22%2Cbubbles%3A%210%7D))%3Bconst%20n%3Do.open%7C%7C%22none%22%21%3D%3DgetComputedStyle(o).display%3Bif(t%26%26n%26%26e.push(%22Dialog%20did%20not%20close%20on%20Escape%22)%2Co.close)try%7Bo.close()%7Dcatch%7B%7D%7D)%3B%5B...document.querySelectorAll(%27%5Brole%3D%22menu%22%5D%2C%5Brole%3D%22menubar%22%5D%27)%5D.forEach(e%3D%3E%7Bconst%20o%3D%5B...e.querySelectorAll(%27%5Brole%5E%3D%22menuitem%22%5D%27)%5D%3Bo.length%26%26(o%5B0%5D.focus()%2Co%5B0%5D.dispatchEvent(new%20KeyboardEvent(%22keydown%22%2C%7Bkey%3A%22ArrowDown%22%2Cbubbles%3A%210%7D))%2Co%5B0%5D.dispatchEvent(new%20KeyboardEvent(%22keydown%22%2C%7Bkey%3A%22Escape%22%2Cbubbles%3A%210%7D)))%7D)%3B%5B...document.querySelectorAll(%22%5Baria-expanded%5D%22)%5D.forEach(o%3D%3E%7Bconst%20t%3Do.getAttribute(%22aria-expanded%22)%3Bo.click()%3Bt%3D%3D%3Do.getAttribute(%22aria-expanded%22)%26%26e.push(%22Toggle%20did%20not%20change%20aria-expanded%22)%7D)%2Calert(e.length%3Fe.join(%22%5Cn%22)%3A%22No%20issues%20found%20in%20quick%20pass%22)%2Cconsole.log(%22%5CnSource%3A%20https%3A%2F%2Fgithub.com%2Falejandrogiga98%2FA11y-Bookmarklets%5CnBookmarklet%20name%3A%20Interaction%20state%20fuzzer%5CnAuthor%3A%20alejandrogiga98%5CnLicense%3A%20MIT%20License%5Cn%22)%7Dcatch(e)%7Balert(%22Bookmarklet%20Error%3A%20%22%2Be.message)%7D%7D()%3B
← Back to all bookmarklets