<!DOCTYPE html>
<link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#specially-focusable">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="default-samples">
<a></a>
<a href=""></a>
<button></button>
<input type="hidden">
<input type="button">
<select><option>abc</option></select>
<textarea></textarea>
<summary id="summary-out"></summary>
<details open><summary id="summary-first"></summary><summary id="summary-second"></summary></details>
<div contenteditable="true"></div>
<iframe></iframe>
</div>
<script>
const defaultList = [
  ['a', false],
  ['a[href]', true],
  ['button', true],
  ['input[type="hidden"]', false],
  ['input[type="button"]', true],
  ['select', true],
  ['textarea', true],
  ['#summary-out', false],
  ['#summary-first', true],
  ['#summary-second', false],
  ['[contenteditable]', true],
  ['iframe', true],
];
for (entry of defaultList) {
  test(() => {
    var element = document.querySelector('#default-samples ' + entry[0]);
    element.focus();
    if (entry[1])
      assert_equals(document.activeElement, element);
    else
      assert_not_equals(document.activeElement, element);
  }, entry[0] + ' should ' + (entry[1] ? '' : 'not ') + 'be focusable by default.');
}
</script>

<div id="tabindex-0">
<a tabindex="0"></a>
<summary tabindex="0" id="summary-out-tabindex0"></summary>
<details open><summary id="summary-first"></summary><summary tabindex="0" id="summary-second-tabindex0"></summary></details>
</div>
<script>
for (element of document.querySelectorAll('#tabindex-0 [tabindex]')) {
  var elementDesc = element.tagName;
  if (element.id)
    elementDesc += '#' + element.id;
  test(() => {
    element.focus();
    assert_equals(document.activeElement, element);
  }, elementDesc + ' with tabindex=0 should be focusable.');
}
</script>
</body>
