<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/selectors-4/#enableddisabled">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="container">
<button id="button_enabled"></button>
<button id="button_disabled" disabled></button>
<input id="input_enabled">
<input id="input_disabled" disabled>
<select id="select_enabled"></select>
<select id="select_disabled" disabled></select>
<textarea id="textarea_enabled"></textarea>
<textarea id="textarea_disabled" disabled></textarea>
<span id="incapable"></span>
</div>

<script>
test(() => {
  const container = document.querySelector('#container');
  const matched = container.querySelectorAll(':enabled');
  for (let element of matched) {
    assert_true(element.id.endsWith('_enabled'), element.id);
  }
}, ':enabeld should match to enabled controls');

test(() => {
  const container = document.querySelector('#container');
  const matched = container.querySelectorAll(':disabled');
  for (let element of matched) {
    assert_true(element.id.endsWith('_disabled'), element.id);
  }
}, ':disabled should match to enabled controls');

test(() => {
  const container = document.querySelector('#container');
  const matched = container.querySelectorAll(':not(:enabled)');
  for (let element of matched) {
    assert_true(element.id.endsWith('_disabled') || element.id == 'incapable', element.id);
  }
}, ':not(:enabeld) should match to disabled controls and non-controls');

test(() => {
  const container = document.querySelector('#container');
  const matched = container.querySelectorAll(':not(:disabled)');
  for (let element of matched) {
    assert_true(element.id.endsWith('_enabled') || element.id == 'incapable', element.id);
  }
}, ':not(:disabled) should match to enabled controls and non-controls');
</script>
</body>
