| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta name="viewport" content="width=device-width, minimum-scale=1.0"> | |
| <title>Page with text input</title> | |
| <style> | |
| div { | |
| margin-top: 8px; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <!-- method=dialog prevents the form from navigating the page --> | |
| <form id="form" method="dialog"> | |
| <input type="text" name="input" id="input"> | |
| <input type="text" name="input2" id="input2" aria-label="test-input"> | |
| <input type="text" name="input3" id="input3" aria-label="disabled-input" disabled> | |
| <input type="submit" id="submit"> | |
| </form> | |
| <script> | |
| let input_event_log = []; | |
| let log_handler = e => { | |
| input_event_log.push({ type: e.type, time: e.timeStamp }); | |
| }; | |
| document.getElementById('input').addEventListener('change', log_handler); | |
| document.getElementById('input').addEventListener('input', log_handler); | |
| document.getElementById('input').addEventListener('keydown', log_handler); | |
| document.getElementById('input').addEventListener('keyup', log_handler); | |
| document.getElementById('submit').addEventListener('click', log_handler); | |
| // Filtering out unexpected 'change' events. Change events depend on focus | |
| // which causes browser_tests to flake. | |
| function getStableEvents() { | |
| return input_event_log.filter((event, index, arr) => { | |
| return event.type !== 'change'; | |
| }); | |
| } | |
| function getStableEventLog() { | |
| return getStableEvents().map(event => event.type).join(','); | |
| } | |
| function getStableEventLogTimes() { | |
| return getStableEvents().map(event => event.time); | |
| } | |
| </script> | |
| <div> | |
| This input calls preventDefault on all key events. | |
| <input type="text" id="keyHandlingInput" aria-label="key-handling-input"> | |
| <script> | |
| document.getElementById('keyHandlingInput') | |
| .addEventListener('keydown', e => { | |
| e.target.value += e.key; | |
| e.preventDefault(); | |
| }); | |
| document.getElementById('keyHandlingInput') | |
| .addEventListener('keypress', e => e.preventDefault()); | |
| document.getElementById('keyHandlingInput') | |
| .addEventListener('keyup', e => e.preventDefault()); | |
| </script> | |
| </div> | |
| <div> | |
| This input is disabled and initially offscreen | |
| <input type="text" | |
| style="position: absolute; top: 200vh" | |
| id="offscreen-disabled-input" | |
| aria-label="offscreen_disabled_input" disabled> | |
| </div> | |
| </body> | |
| </html> |