File: inert-attribute-overriding.html

package info (click to toggle)
firefox 145.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,528 kB
  • sloc: cpp: 7,594,999; javascript: 6,459,658; ansic: 3,752,909; python: 1,403,455; xml: 629,809; asm: 438,679; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (39 lines) | stat: -rw-r--r-- 1,703 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html>
<link rel="author" href="mailto:masonf@chromium.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12049">
<link rel="help" href="https://github.com/whatwg/html/pull/10956">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>

<div id="buttons">
    <button data-expect="normal">normal button</button>
    <button data-expect="inert" inert>just inert</button>
    <button data-expect="inert" inert style="interactivity: auto">interactivity: auto</button>
    <button data-expect="inert" inert style="all: initial">all: initial</button>
</div>

<script>
async function clickOn(element) {
  // Because the button is disabled, we need to click at its coordinates.
  let rect = element.getBoundingClientRect();
  let actions = new test_driver.Actions();
  await actions
      .pointerMove(Math.round(rect.x + rect.width / 2), Math.round(rect.y + rect.height / 2), {})
      .pointerDown({button: actions.ButtonType.LEFT})
      .pointerUp({button: actions.ButtonType.LEFT})
      .send();
}
document.querySelectorAll('#buttons>*').forEach(button => {
  const expectInert = button.dataset.expect === 'inert';
  button.removeAttribute('data-expect');
  promise_test(async (t) => {
    let clicked = false;
    button.addEventListener('click',() => (clicked = true),{signal: t.get_signal()});
    await clickOn(button);
    assert_equals(clicked, !expectInert);
  }, `Expect ${button.outerHTML} to be ${expectInert ? 'inert' : 'non-inert'}`);
});
</script>