<!-- DO NOT EDIT. This file has been generated. Source:
    ../tools/build-compute-kind-widget-fallback-props.py
-->
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width maybe disables native appearance for checkbox-input</title>
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#appearance-disabling-properties">
<link rel="help" href="https://html.spec.whatwg.org/#widgets">
<meta name="assert" content="appropriate widget is used when props includes border-bottom-width.">
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
    #container { width: 500px; }
    /* NOTE: This rule is only used in the search-text-input tests: */
    #container > #search-text-input { appearance: textfield; }
    /* NOTE: This rule is only used in the select-menulist-button tests: */
    #container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>

<div id="container">
    <input id="checkbox-input" type="checkbox">
</div>

<script>
// Set author-level CSS that matches UA style, but don't use the 'revert' value.
const elements = document.querySelectorAll('#container > *');
const props = "border-bottom-width".split(",");
for (const el of elements) {
  for (const prop of props) {
    el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop));
  }
}
</script>
