{"version":3,"file":"index.mjs","sources":["../src/lib/aria-roles.ts","../src/lib/util.ts","../src/tags/li.ts","../src/get-acc-name.ts","../src/get-elements.ts","../src/get-required-attributes.ts","../src/lib/html.ts","../src/tags/aside.ts","../src/tags/footer.ts","../src/tags/header.ts","../src/tags/input.ts","../src/tags/select.ts","../src/tags/svg.ts","../src/tags/td.ts","../src/tags/th.ts","../src/get-role.ts","../src/lib/aria-attributes.ts","../src/get-supported-attributes.ts","../src/get-supported-roles.ts","../src/is-interactive.ts","../src/is-name-required.ts"],"sourcesContent":["import type {\n  AbstractRole,\n  ARIAAttribute,\n  ARIARole,\n  DigitalPublishingRole,\n  DocumentStructureRole,\n  GraphicsRole,\n  LandmarkRole,\n  LiveRegionRole,\n  VirtualElement,\n  WidgetRole,\n  WindowRole,\n} from '../types.js';\n\nexport type RoleType =\n  | 'abstract'\n  | 'widget'\n  | 'document'\n  | 'landmark'\n  | 'liveregion'\n  | 'window'\n  | 'graphics'\n  | 'digitalpublishing';\n\n// note: all fields required to be monomorphic\nexport interface RoleData {\n  /**\n   * A list of roles which are allowed on an accessibility child (simplified as \"child\") of the element with this role.\n   * @see https://w3c.github.io/aria/#mustContain\n   */\n  allowedChildRoles: ARIARole[];\n  /**\n   * The DOM descendants are presentational.\n   * @see https://w3c.github.io/aria/#childrenArePresentational\n   */\n  childrenPresentational: boolean;\n  /**\n   * Default values for role supported ARIA attributes (if any)\n   * @see https://www.w3.org/TR/wai-aria-1.3/#implictValueForRole\n   *\n   * OR\n   *\n   * Fallback values for role required ARIA attributes (if any)\n   * @see https://www.w3.org/TR/wai-aria-1.3/#document-handling_author-errors_states-properties\n   *\n   * ARIA attribute defaults independent of role constraints are not exposed here.\n   */\n  defaultAttributeValues: Record<string, boolean | number | string>;\n  /** Which HTML elements inherit this role, if any (note: attributes may be necessary) */\n  elements: VirtualElement[];\n  name: ARIARole;\n  /**\n   * @see https://w3c.github.io/aria/#namefromauthor\n   * @see https://w3c.github.io/aria/#namefromcontent\n   * @see https://w3c.github.io/aria/#namefromprohibited\n   */\n  nameFrom: 'author' | 'authorAndContents' | 'contents' | 'prohibited';\n  /** Role that require an accessible name. */\n  nameRequired: boolean;\n  /**\n   * aria-* attributes that are explicitly prohibited for this role, and are considered an error if set.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#prohibitedattributes\n   */\n  prohibited: ARIAAttribute[];\n  /**\n   * If given, states that this role can only exist within this container\n   * @see https://www.w3.org/TR/wai-aria-1.3/#scope\n   */\n  requiredParentRoles: ARIARole[];\n  /**\n   * aria-* attributes that MUST be set for this role.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#requiredState\n   */\n  required: ARIAAttribute[];\n  superclasses: (ARIARole | AbstractRole)[]; // ignores abstract roles\n  subclasses: (ARIARole | AbstractRole)[]; // ignores abstract roles\n  /**\n   * aria-* attributes that MAY be set for this role.\n   * Note: this includes required attributes, supported attributes, and inherited attributes from superclass role types.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#supportedState\n   * @see https://www.w3.org/TR/wai-aria-1.3/#inheritedattributes\n   */\n  supported: ARIAAttribute[];\n  type: RoleType[];\n}\n\nexport const widgetRoles: Record<WidgetRole, RoleData> = {\n  /** An input that allows for user-triggered actions when clicked or pressed. See related link. */\n  button: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'button' }],\n    name: 'button',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-pressed', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable input that has three possible values: true, false, or mixed. */\n  checkbox: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'checkbox' } }],\n    name: 'checkbox',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: ['switch'],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An input that controls another element, such as a listbox or grid, that can dynamically pop up to help the user set the value of the input. */\n  combobox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-haspopup': 'listbox',\n      'aria-expanded': false,\n    },\n    elements: [{ tagName: 'select' }],\n    name: 'combobox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    // Note: aria-controls isn’t required by ARIA 1.3, but AAM requires aria-controls for most implementations of comboboxes\n    // @see https://www.w3.org/TR/html-aam-1.0/#el-input-textetc-autocomplete\n    required: ['aria-controls', 'aria-expanded'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A composite widget containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys. */\n  grid: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table', attributes: { role: 'grid' } }],\n    name: 'grid',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['treegrid'],\n    superclasses: ['composite', 'table'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A cell in a grid or treegrid. */\n  gridcell: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [\n      { tagName: 'td', attributes: { role: 'gridcell' } },\n      { tagName: 'th', attributes: { role: 'gridcell' } },\n    ],\n    name: 'gridcell',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: ['columnheader', 'rowheader'],\n    superclasses: ['cell', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related button. */\n  link: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'a' }, { tagName: 'area' }],\n    name: 'link',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-backlink', 'doc-biblioref', 'doc-glossref', 'doc-noteref'],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A widget that allows the user to select one or more items from a list of choices. See related combobox and list. */\n  listbox: {\n    allowedChildRoles: ['group', 'option'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [{ tagName: 'select', attributes: { multiple: true } }],\n    name: 'listbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of widget that offers a list of choices to the user. */\n  menu: {\n    allowedChildRoles: ['group', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'separator'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [],\n    name: 'menu',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['menubar'],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A presentation of menu that usually remains visible and is usually presented horizontally. */\n  menubar: {\n    allowedChildRoles: ['group', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'separator'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [],\n    name: 'menubar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['menu'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An option in a set of choices contained by a menu or menubar. */\n  menuitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'menuitem',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: ['menuitemcheckbox', 'menuitemradio'],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A menuitem with a checkable state whose possible values are true, false, or mixed. */\n  menuitemcheckbox: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [],\n    name: 'menuitemcheckbox',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: [],\n    superclasses: ['menuitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable menuitem in a set of elements with the same role, only one of which can be checked at a time. */\n  menuitemradio: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [],\n    name: 'menuitemradio',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: [],\n    superclasses: ['menuitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An item in a listbox. */\n  option: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'option' }],\n    name: 'option',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['listbox', 'group'],\n    subclasses: ['treeitem'],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An element that displays the progress status for tasks that take a long time. */\n  progressbar: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n    },\n    elements: [{ tagName: 'progress' }],\n    name: 'progressbar',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable input in a group of elements with the same role, only one of which can be checked at a time. */\n  radio: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'radio' } }],\n    name: 'radio',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A group of radio buttons. */\n  radiogroup: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'radiogroup',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A row of cells in a tabular container. */\n  row: {\n    allowedChildRoles: ['cell', 'columnheader', 'gridcell', 'rowheader'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'tr' }],\n    name: 'row',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['grid', 'table', 'treegrid', 'rowgroup'],\n    subclasses: [],\n    superclasses: ['group', 'widget'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document', 'widget'],\n  },\n  /** A graphical object that controls the scrolling of content within a viewing area, regardless of whether the content is fully displayed within the viewing area. */\n  scrollbar: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [],\n    name: 'scrollbar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: ['aria-controls', 'aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of textbox intended for specifying search criteria. See related textbox and search. */\n  searchbox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'search' } }],\n    name: 'searchbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['textbox'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiline', 'aria-owns', 'aria-placeholder', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A divider that separates and distinguishes sections of content or groups of menuitems. */\n  separator: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [{ tagName: 'hr' }],\n    name: 'separator',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [], // aria-valuenow (if focusable)\n    requiredParentRoles: [],\n    subclasses: ['doc-pagebreak'],\n    superclasses: ['structure', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget', 'document'],\n  },\n  /** An input where the user selects a value from within a given range. */\n  slider: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'range' } }],\n    name: 'slider',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input', 'range'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A form of range that expects the user to select from among discrete choices. */\n  spinbutton: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'number' } }],\n    name: 'spinbutton',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['composite', 'input', 'range'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of checkbox that represents on/off values, as opposed to checked/unchecked values. See related checkbox. */\n  switch: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'checkbox', role: 'switch' } }],\n    name: 'switch',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['checkbox'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A grouping label providing a mechanism for selecting the tab content that is to be rendered to the user. */\n  tab: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-selected': false,\n    },\n    elements: [{ tagName: 'button', attributes: { type: 'button', role: 'tab' } }],\n    name: 'tab',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['tablist'],\n    subclasses: [],\n    superclasses: ['sectionhead', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A list of tab elements, which are references to tabpanel elements. */\n  tablist: {\n    allowedChildRoles: ['tab'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'tablist' } },\n      { tagName: 'ol', attributes: { role: 'tablist' } },\n      { tagName: 'ul', attributes: { role: 'tablist' } },\n    ],\n    name: 'tablist',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['composite'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A container for the resources associated with a tab, where each tab is contained in a tablist. */\n  tabpanel: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'tabpanel',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of input that allows free-form text as its value. */\n  textbox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'text' } }],\n    name: 'textbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['searchbox'],\n    superclasses: ['input'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiline', 'aria-owns', 'aria-placeholder', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A widget that allows the user to select one or more items from a hierarchically organized collection. */\n  tree: {\n    allowedChildRoles: ['group', 'treeitem'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'tree' } },\n      { tagName: 'ol', attributes: { role: 'tree' } },\n      { tagName: 'ul', attributes: { role: 'tree' } },\n    ],\n    name: 'tree',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['treegrid'],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A grid whose rows can be expanded and collapsed in the same manner as for a tree. */\n  treegrid: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table', attributes: { role: 'treegrid' } }],\n    name: 'treegrid',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['grid', 'tree'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An item in a tree. */\n  treeitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'treeitem',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['tree', 'group'],\n    subclasses: [],\n    superclasses: ['listitem', 'option'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n};\n\nexport const documentRoles: Record<DocumentStructureRole, RoleData> = {\n  /** A structure containing one or more focusable elements requiring user input, such as keyboard or gesture events, that do not follow a standard interaction pattern supported by a widget role. */\n  application: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'application',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section of a page that consists of a composition that forms an independent part of a document, page, or site. */\n  article: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'article' }],\n    name: 'article',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['comment'],\n    superclasses: ['document'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section of content that is quoted from another source. */\n  blockquote: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'blockquote' }],\n    name: 'blockquote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Visible content that names, or describes a figure, grid, group, radiogroup, table or treegrid. */\n  caption: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'caption' }, { tagName: 'figcaption' }],\n    name: 'caption',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: ['figure', 'grid', 'group', 'radiogroup', 'table', 'treegrid'],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell in a tabular container. See related gridcell. */\n  cell: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'td' }],\n    name: 'cell',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: ['columnheader', 'gridcell', 'rowheader'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section whose content represents a fragment of computer code. */\n  code: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'code' }],\n    name: 'code',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell containing header information for a column. */\n  columnheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'th', attributes: { scope: 'col' } }],\n    name: 'columnheader',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: [],\n    superclasses: ['cell', 'gridcell', 'sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-sort'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A comment contains content expressing reaction to other content. */\n  comment: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'comment',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['article'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A definition of a term or concept. See related term. */\n  definition: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'definition',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A deletion represents content that is marked as removed, content that is being suggested for removal, or content that is no longer relevant in the context of its accompanying content. See related insertion. */\n  deletion: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'del' }],\n    name: 'deletion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /**\n   * A list of references to members of a group, such as a static table of contents.\n   * @deprecated in ARIA 1.2\n   */\n  directory: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'directory',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['list'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element containing content that assistive technology users might want to browse in a reading mode. */\n  document: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'html' }],\n    name: 'document',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['article', 'graphics-document'],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more emphasized characters. See related strong. */\n  emphasis: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'em' }],\n    name: 'emphasis',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A scrollable list of articles where scrolling might cause articles to be added to or removed from either end of the list. */\n  feed: {\n    allowedChildRoles: ['article'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'feed',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['list'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A perceivable section of content that typically contains a graphical document, images, media player, code snippets, or example text. The parts of a figure MAY be user-navigable. */\n  figure: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'figure' }],\n    name: 'figure',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-example'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A nameless container element that has no semantic meaning on its own. */\n  generic: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'b' }, { tagName: 'div' }, { tagName: 'i' }, { tagName: 'pre' }, { tagName: 'q' }, { tagName: 'samp' }, { tagName: 'small' }, { tagName: 'span' }, { tagName: 'u' }], // biome-ignore format: long list\n    name: 'generic',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-brailleroledescription', 'aria-label', 'aria-labelledby', 'aria-roledescription'], // biome-ignore format: long list\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects that is not intended to be included in a page summary or table of contents by assistive technologies. */\n  group: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'fieldset' }, { tagName: 'address' }, { tagName: 'details' },  { tagName: 'hgroup' }, { tagName: 'optgroup' }], // biome-ignore format: long list\n    name: 'group',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['graphics-object', 'row', 'select', 'toolbar'],\n    superclasses: ['section'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A heading for a section of the page. */\n  heading: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-level': 2,\n    },\n    elements: [{ tagName: 'h1' }, { tagName: 'h2' }, { tagName: 'h3' }, { tagName: 'h4' }, { tagName: 'h5' }, { tagName: 'h6' }], // biome-ignore format: long list\n    name: 'heading',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-level'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A container for a collection of elements that form an image. See synonym image. */\n  image: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'img' }],\n    name: 'image',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-cover', 'graphics-symbol'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Synonym of image. */\n  img: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'img' }],\n    name: 'img',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-cover', 'graphics-symbol'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An insertion contains content that is marked as added or content that is being suggested for addition. See related deletion. */\n  insertion: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'ins' }],\n    name: 'insertion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section containing listitem elements. See related listbox. */\n  list: {\n    allowedChildRoles: ['listitem'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'ul' }, { tagName: 'ol' }, { tagName: 'menu' }],\n    name: 'list',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['directory', 'feed'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A single item in a list or directory. */\n  listitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'li' }],\n    name: 'listitem',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['directory', 'list'],\n    subclasses: ['doc-biblioentry', 'doc-endnote', 'treeitem'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Content which is marked or highlighted for reference or notation purposes, due to the content's relevance in the enclosing context. */\n  mark: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'mark' }],\n    name: 'mark',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Content that represents a mathematical expression. */\n  math: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'math' }],\n    name: 'math',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element that represents a scalar measurement within a known range, or a fractional value. See related progressbar. */\n  meter: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-valuemin': 0,\n      'aria-valuemax': 100,\n      // A value matching the implicit or explicitly set aria-valuemin.\n      // 'aria-valuenow': TBD\n    },\n    elements: [],\n    name: 'meter',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element whose implicit native role semantics will not be mapped to the accessibility API. See synonym presentation. */\n  none: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'none',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section whose content represents additional information or parenthetical context to the primary content it supplements. */\n  note: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'note',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-notice', 'doc-tip'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A paragraph of content. */\n  paragraph: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'p' }],\n    name: 'paragraph',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Synonym of none */\n  presentation: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'presentation',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A row of cells in a tabular container. */\n  row: widgetRoles.row,\n  /** A structure containing one or more row elements in a tabular container. */\n  rowgroup: {\n    allowedChildRoles: ['row'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'tbody' }, { tagName: 'tfoot' }, { tagName: 'thead' }],\n    name: 'rowgroup',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['grid', 'table', 'treegrid'],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell containing header information for a row. */\n  rowheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'th', attributes: { scope: 'row' } }],\n    name: 'rowheader',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: [],\n    superclasses: ['cell', 'gridcell', 'sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-sort'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects and information representing information about its closest ancestral content group. */\n  sectionfooter: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'sectionfooter',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects and information that represents a collection of introductory items for the element's closest ancestral content group. */\n  sectionheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'sectionheader',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A divider that separates and distinguishes sections of content or groups of menuitems. */\n  separator: widgetRoles.separator,\n  /** Content that is important, serious, or urgent. See related emphasis. */\n  strong: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'strong' }],\n    name: 'strong',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more subscripted characters. See related superscript. */\n  subscript: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'sub' }],\n    name: 'subscript',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A single proposed change to content. */\n  suggestion: {\n    allowedChildRoles: ['insertion', 'deletion'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'suggestion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more superscripted characters. See related superscript. */\n  superscript: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'sup' }],\n    name: 'superscript',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section containing data arranged in rows and columns. See related grid. */\n  table: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table' }],\n    name: 'table',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['grid'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A word or phrase with an optional corresponding definition. See related definition. */\n  term: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'dfn' }, { tagName: 'dt' }],\n    name: 'term',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element that represents a specific point in time. */\n  time: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'time' }],\n    name: 'time',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A collection of commonly used function buttons or controls represented in compact visual form. */\n  toolbar: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'toolbar' } },\n      { tagName: 'ol', attributes: { role: 'toolbar' } },\n      { tagName: 'ul', attributes: { role: 'toolbar' } },\n    ],\n    name: 'toolbar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['group'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A contextual popup that displays a description for an element. */\n  tooltip: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'tooltip',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n};\n\nexport const landmarkRoles: Record<LandmarkRole, RoleData> = {\n  /** A landmark that contains mostly site-oriented content, rather than page-specific content. */\n  banner: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'header' }],\n    name: 'banner',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark that is designed to be complementary to the main content that it is a sibling to, or a direct descendant of. The contents of a complementary landmark would be expected to remain meaningful if it were to be separated from the main content it is relevant to. */\n  complementary: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'aside' }],\n    name: 'complementary',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark that contains information about the parent document. */\n  contentinfo: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'footer' }],\n    name: 'contentinfo',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark region that contains a collection of items and objects that, as a whole, combine to create a form. See related search. */\n  form: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'form' }],\n    name: 'form',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing the main content of a document. */\n  main: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'main' }],\n    name: 'main',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing a collection of navigational elements (usually links) for navigating the document or related documents. */\n  navigation: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'nav' }],\n    name: 'navigation',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-index', 'doc-pagelist', 'doc-toc'],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology. */\n  region: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'section' }],\n    name: 'region',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark region that contains a collection of items and objects that, as a whole, combine to create a search facility. See related form and searchbox. */\n  search: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'search' }],\n    name: 'search',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n};\n\nexport const liveRegionRoles: Record<LiveRegionRole, RoleData> = {\n  /** A type of live region with important, and usually time-sensitive, information. See related alertdialog and status. */\n  alert: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'assertive',\n      'aria-atomic': true,\n    },\n    elements: [],\n    name: 'alert',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['alertdialog'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region where new information is added in meaningful order and old information can disappear. See related marquee. */\n  log: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'polite',\n    },\n    elements: [],\n    name: 'log',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region where non-essential information changes frequently. See related log. */\n  marquee: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'marquee',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region whose content is advisory information for the user but is not important enough to justify an alert, often but not necessarily presented as a status bar. */\n  status: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'polite',\n      'aria-atomic': true,\n    },\n    elements: [{ tagName: 'output' }],\n    name: 'status',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['timer'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point. */\n  timer: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'off',\n    },\n    elements: [],\n    name: 'timer',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['status'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n};\n\nexport const windowRoles: Record<WindowRole, RoleData> = {\n  /** A type of dialog that contains an alert message, where initial focus goes to an element within the dialog. See related alert and dialog. */\n  alertdialog: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'alertdialog',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['alert', 'dialog'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-modal', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['window'],\n  },\n  /** A dialog is a descendant window of the primary window of a web application. For HTML pages, the primary application window is the entire web document, i.e., the body element. */\n  dialog: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'dialog' }],\n    name: 'dialog',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['alertdialog'],\n    superclasses: ['window'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-modal', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['window'],\n  },\n};\n\n// graphics extensions from https://www.w3.org/TR/graphics-aam-1.0/\nexport const graphicsRoles: Record<GraphicsRole, RoleData> = {\n  /** A type of document in which the visual appearance or layout of content conveys meaning. */\n  'graphics-document': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'svg', attributes: { role: 'graphics-document document' } }],\n    name: 'graphics-document',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['document'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n  'graphics-object': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'g', attributes: { role: 'graphics-object' } }],\n    name: 'graphics-object',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['group'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n  'graphics-symbol': {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'svg', attributes: { role: 'graphics-symbol img' } }],\n    name: 'graphics-symbol',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['image', 'img'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n};\n\n// digital publishing extensions from https://www.w3.org/TR/dpub-aam-1.1/\nexport const digitalPublishingRoles: Record<DigitalPublishingRole, RoleData> = {\n  /** A short summary of the principal ideas, concepts, and conclusions of the work, or of a section or excerpt within it. */\n  'doc-abstract': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-abstract',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section or statement that acknowledges significant contributions by persons, organizations, governments, and other entities to the realization of the work. */\n  'doc-acknowledgments': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-acknowledgments',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A closing statement from the author or a person of importance, typically providing insight into how the content came to be written, its significance, or related events that have transpired since its timeline. */\n  'doc-afterword': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-afterword',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of supplemental information located after the primary content that informs the content but is not central to it. */\n  'doc-appendix': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-appendix',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A link that allows the user to return to a related location in the content (e.g., from a footnote to its reference or from a glossary definition to where a term is used). */\n  'doc-backlink': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-backlink',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /**\n   * A single reference to an external source in a bibliography. A biblioentry typically provides more detailed information than its reference(s) in the content (e.g., full title, author(s), publisher, publication date, etc.).\n   * @deprecated [Deprecated in DPUB-ARIA 1.1]\n   */\n  'doc-biblioentry': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-biblioentry',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['listitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect',  'aria-flowto', 'aria-grabbed', 'aria-hidden',   'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A list of external references cited in the work, which may be to print or digital sources. */\n  'doc-bibliography': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-bibliography',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a bibliography entry. */\n  'doc-biblioref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-biblioref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A major thematic section of content in a work. */\n  'doc-chapter': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-chapter',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A short section of production notes particular to the edition (e.g., describing the typeface used), often located at the end of a work. */\n  'doc-colophon': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-colophon',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A concluding section or statement that summarizes the work or wraps up the narrative. */\n  'doc-conclusion': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-conclusion',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An image that sets the mood or tone for the work and typically includes the title and author. */\n  'doc-cover': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-cover',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['image', 'img'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An acknowledgment of the source of integrated content from third-party sources, such as photos. Typically identifies the creator, copyright, and any restrictions on reuse. */\n  'doc-credit': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-credit',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A collection of credits. */\n  'doc-credits': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-credits',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An inscription at the front of the work, typically addressed in tribute to one or more persons close to the author. */\n  'doc-dedication': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-dedication',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /**\n   * One of a collection of notes that occur at the end of a work, or a section within it, that provides additional context to a referenced passage of text.\n   * @deprecated [Deprecated in DPUB-ARIA 1.1]\n   */\n  'doc-endnote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-endnote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['listitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A collection of notes at the end of a work or a section within it. */\n  'doc-endnotes': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-endnotes',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A quotation set at the start of the work or a section that establishes the theme or sets the mood. */\n  'doc-epigraph': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-epigraph',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A concluding section of narrative that wraps up or comments on the actions and events of the work, typically from a future perspective. */\n  'doc-epilogue': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-epilogue',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A set of corrections discovered after initial publication of the work, sometimes referred to as corrigenda. */\n  'doc-errata': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-errata',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An illustration of a key concept of the work, such as a code listing, case study or problem. */\n  'doc-example': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-example',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['figure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Ancillary information, such as a citation or commentary, that provides additional context to a referenced passage of text. */\n  'doc-footnote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-footnote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that precedes the work, typically not written by the author of the work. */\n  'doc-foreword': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-foreword',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A brief dictionary of new, uncommon, or specialized terms used in the content. */\n  'doc-glossary': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-glossary',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a glossary definition. */\n  'doc-glossref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-glossref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides a detailed list of links to key subjects, names and other important topics covered in the work. */\n  'doc-index': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-index',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A preliminary section that typically introduces the scope or nature of the work. */\n  'doc-introduction': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-introduction',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a footnote or endnote, typically appearing as a superscripted number or symbol in the main body of text. */\n  'doc-noteref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-noteref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Notifies the user of consequences that might arise from an action or event. Examples include warnings, cautions and dangers. */\n  'doc-notice': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-notice',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['note'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A separator denoting the position before which a break occurs between two contiguous pages in a statically paginated version of the content. */\n  'doc-pagebreak': {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagebreak',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['separator'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of text appearing at the bottom of a page that provides context about the current work and location within it. The page footer is distinct from the body text and normally follows a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number.  */\n  'doc-pagefooter': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagefooter',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of text appearing at the top of a page that provides context about the current work and location within it. The page header is distinct from the body text and normally follows a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number.  */\n  'doc-pageheader': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pageheader',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides a list of links to the page breaks in the content. */\n  'doc-pagelist': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagelist',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A major structural division in a work that contains a set of related sections dealing with a particular subject, narrative arc, or similar encapsulated theme. */\n  'doc-part': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-part',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that precedes the work, typically written by the author of the work. */\n  'doc-preface': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-preface',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that sets the background to a work, typically part of the narrative. */\n  'doc-prologue': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-prologue',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A distinctively placed or highlighted quotation from the current content designed to draw attention to a topic or highlight a key point. */\n  'doc-pullquote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pullquote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of content structured as a series of questions and answers, such as an interview or list of frequently asked questions. */\n  'doc-qna': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-qna',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An explanatory or alternate title for the work, or a section or component within it. */\n  'doc-subtitle': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-subtitle',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Helpful information that clarifies some aspect of the content or assists in its comprehension. */\n  'doc-tip': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-tip',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['note'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides an ordered list of links to the major sectional headings in the content. A table of contents may cover an entire work, or only a smaller section of it.  */\n  'doc-toc': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-toc',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n};\n\n// Note: this would throw a type error if we missed any!\nexport const roles: Record<ARIARole, RoleData> = {\n  ...widgetRoles,\n  ...documentRoles,\n  ...landmarkRoles,\n  ...liveRegionRoles,\n  ...windowRoles,\n  ...graphicsRoles,\n  ...digitalPublishingRoles,\n};\n\nexport const ALL_ROLES = Object.keys(roles).sort((a, b) => a.localeCompare(b)) as ARIARole[];\nexport const NO_ROLES: ARIARole[] = []; // explicitly no roles are allowed\n","import type {\n  ARIAAttribute,\n  ARIARole,\n  LandmarkRole,\n  NameProhibitedAttributes,\n  TagName,\n  VirtualAncestorList,\n  VirtualElement,\n} from '../types.js';\nimport { landmarkRoles } from './aria-roles.js';\n\n/** Parse a list of roles, e.g. role=\"graphics-symbol img\" */\nexport function parseTokenList(tokenList: string): string[] {\n  return tokenList.toLocaleLowerCase().split(' ').filter(Boolean);\n}\n\n/**\n * Get the first matching value in a tokenlist\n *\n * Note: according to the spec, `role` can not only be a list of\n * spring-separated values; it can contain fallbacks the browser may not\n * understand. According to spec, an arbitrary role is to be ignored, so we take\n * the first match (if any), or `undefined`.\n * @see\n */\nexport function firstMatchingToken<T>(tokenList: string, validValues: T[]): T | undefined {\n  return parseTokenList(tokenList).find((value) => validValues.includes(value as T)) as T | undefined;\n}\n\nexport function getTagName(element: Element | VirtualElement): TagName {\n  // JSDOM bug: feDropShadow gets converted to fedropshadow. Since this library is often used in JSDOM contexts, we should handle this at runtime, cheaply\n  if (element.tagName === 'fedropshadow') {\n    return 'feDropShadow';\n  }\n\n  // note: HTML is case-insensitive, but SVG is not. Browsers will normalize case-insensitive\n  // names to UPPERCASE (e.g. `BUTTON`), and leave SVG in its original camelCase format.\n  const caseInsensitive = /^[A-Z]/.test(element.tagName);\n  return (caseInsensitive ? element.tagName.toLowerCase() : element.tagName) as TagName;\n}\n\n/**\n * Get attribute from any type of element. Optimized for performance.\n */\nexport function attr(element: Element | VirtualElement, attribute: string): string | null {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return (element as Element).getAttribute(attribute) ?? null;\n  }\n  const { attributes = {} } = element as VirtualElement;\n  return attribute in attributes ? String(attributes[attribute]) : null;\n}\n\nexport const NAME_PROHIBITED_ATTRIBUTES = new Set<string>([\n  'aria-braillelabel',\n  'aria-label',\n  'aria-labelledby',\n] satisfies NameProhibitedAttributes[]);\n\nconst LANDMARK_ROLES = Object.keys(landmarkRoles) as LandmarkRole[];\nconst LANDMARK_ELEMENTS: TagName[] = ['article', 'aside', 'main', 'nav', 'section'];\nconst LANDMARK_CSS_SELECTOR = LANDMARK_ROLES.map((role) => `[role=${role}]`)\n  .concat(...LANDMARK_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\n/** Logic shared by <header> and <footer> when determining role */\nexport function hasLandmarkParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(LANDMARK_CSS_SELECTOR);\n  }\n  return !!ancestors?.some(\n    (el) => LANDMARK_ELEMENTS.includes(el.tagName) || LANDMARK_ROLES.includes(attr(el, 'role') as LandmarkRole),\n  );\n}\n\n/** Used to calculate some host language labels */\nconst LIST_ELEMENTS: TagName[] = ['ul', 'ol', 'menu'];\nconst LIST_ROLES: ARIARole[] = ['list'];\nconst LIST_CSS_SELECTOR = LIST_ROLES.map((role) => `[role=${role}]`)\n  .concat(...LIST_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\nexport function hasListParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(LIST_CSS_SELECTOR);\n  }\n  // special behavior: outside the DOM, if we’re testing a list-like element, assume it’s within a list\n  if (ancestors?.length !== 0 && getTagName(element) === 'li') {\n    return true;\n  }\n  return !!ancestors?.some(\n    (el) => LIST_ELEMENTS.includes(el.tagName) || (LIST_ROLES as string[]).includes(attr(el, 'role') as string),\n  );\n}\n\nconst GRID_ROLES: ARIARole[] = ['grid', 'treegrid'];\nconst GRID_CSS_SELECTOR = GRID_ROLES.map((role) => `[role=${role}]`).join(',');\n\n/** Logic shared by <td> and <th> when determining role */\nexport function hasGridParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(GRID_CSS_SELECTOR);\n  }\n  return !!ancestors?.some((el) => GRID_ROLES.includes(attr(el, 'role')! as (typeof GRID_ROLES)[number]));\n}\n\nexport interface RemoveProhibitedOptions<P extends ARIAAttribute[]> {\n  nameProhibited?: boolean;\n  prohibited?: P;\n}\n\nexport function hasTableParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest('table,[role=table]');\n  }\n  // special behavior: outside the DOM, if we’re testing a table-like element, assume it’s within a table\n  if (\n    ancestors?.length !== 0 &&\n    ['tbody', 'thead', 'tfoot', 'tr', 'td', 'th', 'col', 'colgroup', 'rowgroup'].includes(getTagName(element))\n  ) {\n    return true;\n  }\n  return !!ancestors?.some((el) => el.tagName === 'table' || attr(el, 'role') === 'table');\n}\n\nconst SECTIONING_CONTENT_ROLES: ARIARole[] = ['article', 'complementary', 'navigation', 'region'];\nconst SECTIONING_CONTENT_ELEMENTS: TagName[] = ['article', 'aside', 'nav', 'section'];\nconst SECTIONING_CONTENT_CSS_SELECTOR = SECTIONING_CONTENT_ROLES.map((role) => `[role=${role}]`)\n  .concat(...SECTIONING_CONTENT_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\n/**\n * Has sectioning content parent\n * @see https://html.spec.whatwg.org/multipage/dom.html#sectioning-content\n */\nexport function hasSectioningContentParent(\n  element: Element | VirtualElement,\n  ancestors?: VirtualAncestorList,\n): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(SECTIONING_CONTENT_CSS_SELECTOR);\n  }\n  return !!ancestors?.some(\n    (el) =>\n      SECTIONING_CONTENT_ELEMENTS.includes(el.tagName) ||\n      (SECTIONING_CONTENT_ROLES as string[]).includes(attr(el, 'role') as string),\n  );\n}\n\n/** Remove prohibited aria-* attributes from a list */\nexport function removeProhibited<T extends ARIAAttribute[], P extends ARIAAttribute[]>(\n  attributeList: T,\n  options?: RemoveProhibitedOptions<P>,\n): Exclude<T, keyof P> {\n  if (!options || (!options.nameProhibited && !options.prohibited)) {\n    return attributeList as Exclude<T, keyof P>;\n  }\n  return attributeList.filter((attr) => {\n    const isProhibited =\n      (options.nameProhibited && NAME_PROHIBITED_ATTRIBUTES.has(attr)) || options.prohibited?.includes(attr);\n    return !isProhibited;\n  }) as Exclude<T, keyof P>;\n}\n\n/** Inject new items into an array */\nexport function concatDedupeAndSort<T extends string>(list: T[], newItems: T[]): T[] {\n  const newList = [...new Set([...list, ...newItems])];\n  newList.sort((a, b) => a.localeCompare(b));\n  return newList;\n}\n\n/** Is this element disabled? */\nexport function isDisabled(element: Element | VirtualElement): boolean {\n  const disabled = String(attr(element, 'disabled'));\n  if (disabled === '' || disabled === 'true') {\n    return true;\n  }\n  const ariaDisabled = String(attr(element, 'aria-disabled'));\n  return ariaDisabled === '' || ariaDisabled === 'true';\n}\n\n/**\n * Is a given element hidden?\n * @see https://w3c.github.io/accname/#dfn-hidden\n */\nexport function isHidden(element: Element | VirtualElement): boolean {\n  // Note: <div aria-hidden> will yield \"\", so equate that with \"true\"\n  if (['true', ''].includes(attr(element, 'aria-hidden') as string)) {\n    return true;\n  }\n\n  // Check if the element is hidden by CSS\n  // https://w3c.github.io/accname/#computation-steps\n  if (!('getComputedStyle' in globalThis) || typeof Element === 'undefined' || !(element instanceof Element)) {\n    return false;\n  }\n  const style = globalThis.getComputedStyle(element);\n  return (\n    style.display === 'none' ||\n    style.visibility === 'hidden' ||\n    style.visibility === 'collapse' ||\n    style.contentVisibility === 'hidden'\n    // Note: opacity: 0 is NOT hidden\n  );\n}\n\n/** Get CSS `content` */\nexport function getCSSContent(\n  element: Element | VirtualElement,\n  pseudoElt?: '::before' | '::after' | '::marker',\n): string | undefined {\n  if (!('getComputedStyle' in globalThis) || typeof Element === 'undefined' || !(element instanceof Element))\n    return undefined;\n  const styles = globalThis.getComputedStyle(element, pseudoElt);\n  let content = styles.getPropertyValue('content');\n\n  // remove default/fallback placeholders\n  if (\n    !content ||\n    ((pseudoElt === '::before' || pseudoElt === '::after') && content === 'none') ||\n    (pseudoElt === '::marker' && (content === 'normal' || styles.display !== 'list-item')) // \"list-item\" needed to support ::marker, otherwise it’s ignored\n  ) {\n    return undefined;\n  }\n\n  // remove surrounding quotes (if any)\n  if ((content.startsWith('\"') && content.endsWith('\"')) || (content.startsWith(\"'\") && content.endsWith(\"'\"))) {\n    content = content.slice(1, -1);\n  }\n\n  const isInline = styles.display === 'inline';\n  return isInline ? content : ` ${content} `;\n}\n\n/** Get calculated `display` property */\nexport function getDisplay(element: Element, pseudoElt?: string | null): string {\n  if (!('getComputedStyle' in globalThis || typeof Element === 'undefined')) return 'block';\n  return globalThis.getComputedStyle(element, pseudoElt).display || 'block';\n}\n\n/** Get tooltip content */\nexport function getTooltip(element: Element | VirtualElement): string {\n  // Already handled in Host Language Label above; this would only result in duplicate/inaccurate names\n  if (['input', 'img', 'output', 'select', 'svg', 'textarea'].includes(getTagName(element))) {\n    return '';\n  }\n  return attr(element, 'title') ?? '';\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { hasListParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getLIRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasListParent(element, options?.ancestors) ? roles.listitem : roles.generic;\n}\n","import { type RoleData, roles } from './lib/aria-roles.js';\nimport { attr, getCSSContent, getDisplay, getTagName, getTooltip, isHidden } from './lib/util.js';\nimport { getAsideRole } from './tags/aside.js';\nimport { getFooterRole } from './tags/footer.js';\nimport { getLIRole } from './tags/li.js';\nimport type { VirtualElement } from './types.js';\n\n/** Common options */\ninterface Options {\n  /**\n   * Important: Each node in the subtree is consulted only once. If text has\n   * been collected from a descendant, but is referenced by another IDREF in\n   * some descendant node, then that second, or subsequent, reference is not\n   * followed. This is done to avoid infinite loops.\n   * @see https://www.w3.org/TR/accname-1.2/#computation-steps\n   */\n  nodesReferenced: Set<Element | VirtualElement>;\n}\n\n/**\n * Get [acc]essible name & description.\n * Per spec, a missing name is represented as an empty string (\"\").  Name and\n * description must be calculated together, to ensure descriptions are not\n * redundant.\n *\n * @see https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n */\nexport function getAccNameAndDescription(\n  element: Element | VirtualElement,\n  { nodesReferenced }: Options = { nodesReferenced: new Set<Element>() },\n): {\n  name: string;\n  description: string | undefined;\n} {\n  const tagName = getTagName(element);\n\n  // helper to conditionally return description, only if unique from name\n  // https://www.w3.org/TR/accname-1.2/#mapping_additional_nd_description\n  const nameFrom = (name: string | undefined) => {\n    let description: string | undefined;\n    // 1. aria-describedby\n    const describedby = attr(element, 'aria-describedby');\n    if (describedby) {\n      description = concatIDRefList(element, 'aria-describedby', { nodesReferenced });\n    } else {\n      description =\n        // 2. aria-description\n        attr(element, 'aria-description') ||\n        // 3. title\n        attr(element, 'title') ||\n        // 4. no acc description\n        undefined;\n    }\n    return {\n      name: name?.trim() || '',\n      description: (description !== name && description?.trim()) || undefined,\n    };\n  };\n\n  const ariaLabelledby = attr(element, 'aria-labelledby');\n  const ariaLabel = attr(element, 'aria-label');\n\n  // https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n  // 4.1.1 input type=\"text\", input type=\"password\", input type=\"number\", input\n  // type=\"search\", input type=\"tel\", input type=\"email\", input type=\"url\", textarea\n  if (!ariaLabel && !ariaLabelledby) {\n    switch (tagName) {\n      case 'input':\n      case 'textarea': {\n        const inputType = attr(element, 'type');\n        const title = attr(element, 'title');\n        const placeholder = attr(element, 'placeholder');\n        if (\n          ['text', 'password', 'number', 'search', 'tel', 'email', 'url'].includes(inputType!) ||\n          tagName === 'textarea'\n        ) {\n          // 1. aria-label (handled below)\n          // 2. <label>\n          const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n          if (hll) return nameFrom(hll);\n          // 3. title\n          if (title) return nameFrom(title);\n          // 4. placeholder\n          if (placeholder) return nameFrom(placeholder);\n          // 5. no accname\n          return nameFrom(undefined);\n        }\n\n        // 4.1.2 input type=\"button\", input type=\"submit\" and input type=\"reset\" Accessible Name Computation\n        if (['button', 'submit', 'reset'].includes(inputType!)) {\n          // 1. aria-label (handled below)\n          // 2. <label>\n          const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n          if (hll) return nameFrom(hll);\n          // 3. value\n          if ((element as HTMLInputElement).value) return nameFrom((element as HTMLInputElement).value);\n          // 4. title\n          if (title) return nameFrom(title);\n          // Missing: default value from local translation (input[type=submit] should yield “Submit Query,” however,\n          // there’s no simple way to get this string and translate it into the user’s current language. So\n          // return `undefined` instead.\n          // 5. no accname\n          return nameFrom(undefined);\n        }\n\n        // 4.1.3 input type=\"image\" Accessible Name Computation\n        if (inputType === 'image') {\n          // 1. aria-label (handled below)\n          // 2. <label>\n          const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n          if (hll) return nameFrom(hll);\n          // 3. alt\n          if ((element as HTMLInputElement).alt) return nameFrom((element as HTMLInputElement).alt);\n          // 4. title\n          if (title) return nameFrom(title);\n          // 5. (user agent provided)\n          // 6. no accname\n          return nameFrom(undefined);\n        }\n\n        // 4.1.7 Other Form Elements\n        // 1. aria-label (handled below)\n        // 2. <label>\n        const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n        if (hll) return nameFrom(hll);\n        return nameFrom(\n          // 3. title\n          title ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.4 button Element Accessible Name Computation\n      case 'button': {\n        // 1. aria-label (handled below)\n        // 2. <label>\n        const parentLabel = (element as Element).parentElement?.closest('label');\n        if (parentLabel) return getAccNameAndDescription(parentLabel, { nodesReferenced });\n        return nameFrom(\n          // 3. visible text\n          computeName(element, { nodesReferenced }) ||\n            // 4. title\n            attr(element, 'title') ||\n            // 5. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.5 fieldset Element Accessible Name Computation\n      case 'fieldset': {\n        // 1. aria-label (handled below)\n        // 2. <legend>\n        const legend =\n          typeof Element !== 'undefined' && element instanceof Element ? element.querySelector('legend') : null;\n        const legendText = legend ? computeName(legend, { nodesReferenced }) : undefined;\n        if (legendText) return nameFrom(legendText);\n        return nameFrom(\n          // 3. title\n          attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.6 output Element Accessible Name Computation\n      case 'output': {\n        // 1. aria-label (handled below)\n        // 2. <label>\n        const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n        if (hll) return nameFrom(hll);\n        return nameFrom(\n          // 3. title\n          attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.7 Other Form Elements Accessible Name Computation\n      // TODO: what are “other form elements?”\n\n      // 4.1.8 summary Element Accessible Name Computation\n      case 'summary': {\n        if (getTagName((element as Element).parentElement!) !== 'details') {\n          break;\n        }\n\n        // 1. aria-label (handled below)\n        // 2. visibleText\n        const subtree = computeName(element, { nodesReferenced });\n        if (subtree) return nameFrom(subtree);\n        // 3. title\n        return nameFrom(\n          attr(element, 'title') ||\n            // 4. (user agent provided)\n            // 5. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.9 figure Element Accessible Name Computation\n      case 'figure': {\n        // 1. aria-label (handled below)\n        // 2. <figcaption>\n        const figcaptionEl =\n          typeof Element !== 'undefined' && element instanceof Element ? element.querySelector('figcaption') : null;\n        if (figcaptionEl) return getAccNameAndDescription(figcaptionEl);\n        // 3. title\n        return nameFrom(\n          attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.10 img Element Accessible Name Computation\n      case 'img': {\n        // 1. aria-label (handled below)\n        // 2. alt\n        if (attr(element, 'alt') !== null) return nameFrom(attr(element, 'alt') || undefined);\n        // 3. title\n        if (attr(element, 'title') !== null) return nameFrom(attr(element, 'title') || undefined);\n        // 4. figcaption\n        const figcaptionParent =\n          typeof Element !== 'undefined' && element instanceof Element && element.parentElement?.closest('figcaption');\n        if (figcaptionParent) return getAccNameAndDescription(figcaptionParent);\n        // 5. no accname\n        return nameFrom(undefined);\n      }\n\n      // 4.1.11 table Element Accessible Name Computation\n      case 'table': {\n        // 1. aria-label (handled below)\n        // 2. <caption>\n        const captionEl =\n          typeof Element !== 'undefined' && element instanceof Element ? element.querySelector('caption') : null;\n        if (captionEl) return getAccNameAndDescription(captionEl);\n        return nameFrom(\n          // 3. title\n          attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.12 tr, td, th Elements Accessible Name Computation\n      case 'tr':\n      case 'td':\n      case 'th': {\n        // 1. aria-label (handled below)\n        return nameFrom(\n          // 2. title\n          attr(element, 'title') ||\n            // 3. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.13 a Element Accessible Name Computation\n      case 'a': {\n        // 1. aria-label (handled below)\n        // 2. subtree\n        const subtree = computeName(element, { nodesReferenced });\n        if (subtree) return nameFrom(subtree);\n        return nameFrom(\n          // 3. title\n          attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.14 area Element Accessible Name Computation\n      case 'area': {\n        // 1. aria-label (handled below)\n        return nameFrom(\n          // 2. alt\n          attr(element, 'alt') ||\n            // 3. title\n            attr(element, 'title') ||\n            // 4. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.15 iframe Element Accessible Name Computation\n      case 'iframe': {\n        // 1. aria-label (handled below)\n        return nameFrom(\n          // 2. title\n          attr(element, 'title') ||\n            // 3. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.16 Section and Grouping Element Accessible Name Computation\n      case 'section': {\n        // TODO: what other tags are “grouping?”\n        // 1. aria-label (handled below)\n        return nameFrom(\n          // 2. title\n          attr(element, 'title') ||\n            // 3. no accname\n            undefined,\n        );\n      }\n\n      // 4.1.17 Text-level Element Accessible Name Computation\n      case 'abbr':\n      case 'b':\n      case 'bdi':\n      case 'bdo':\n      case 'br':\n      case 'cite':\n      case 'code':\n      case 'dfn':\n      case 'em':\n      case 'i':\n      case 'kbd':\n      case 'mark':\n      case 'q':\n      case 'rp':\n      case 'ruby':\n      case 's':\n      case 'samp':\n      case 'small':\n      case 'strong':\n      case 'sub':\n      case 'sup':\n      case 'time':\n      case 'u':\n      case 'var':\n      case 'wbr': {\n        // 1. aria-label (handled below)\n        return nameFrom(\n          // 2. title\n          attr(element, 'title') ||\n            // 3. no accname\n            undefined,\n        );\n      }\n    }\n  }\n\n  // 4.3.2 Default computation\n  // https://www.w3.org/TR/accname-1.2/#computation-steps\n  return nameFrom(computeName(element, { nodesReferenced }));\n}\n\n/**\n * Turn an array of potential values into a concatenated string, separated by \" \"\n * @see https://w3c.github.io/accname/#mapping_additional_nd_description\n */\nfunction concatIDRefList(\n  element: Element | VirtualElement,\n  attribute: 'aria-labelledby' | 'aria-describedby' | 'aria-owns',\n  { nodesReferenced }: Options,\n): string {\n  // In faked DOM environments, we can’t traverse the ID list, so just return the attribute\n  if (typeof document === 'undefined' || typeof Element === 'undefined' || !(element instanceof Element)) {\n    return attr(element, attribute)?.trim() || '';\n  }\n\n  const idRefList = attr(element, attribute)?.trim();\n  if (!idRefList) return '';\n  const idList = idRefList.split(/\\s+/);\n  const nameList: (string | undefined)[] = [];\n  for (const id of idList) {\n    let nextEl = document.getElementById(id) as Element | null;\n    if (nextEl) {\n      // edge case: eleemnts can reference themselves, but we have to remove the infinite loop first\n      if (nextEl === element) {\n        nextEl = nextEl.cloneNode(false) as Element;\n        nextEl.removeAttribute(attribute);\n      }\n      nameList.push(\n        computeName(nextEl, {\n          includeHidden: true, // this counts as “referencing,” which ignores hidden (see 2.1 Hidden Not Referenced)\n          nodesReferenced,\n          includeNamingProhibitedText: true,\n        }),\n      );\n    }\n  }\n  return nameList.join(' ').trim();\n}\n\n/**\n * Default name calculation\n * @see https://www.w3.org/TR/accname-1.2/#computation-steps\n */\nfunction computeName(\n  element: Element | VirtualElement,\n  {\n    nodesReferenced,\n    includeHidden = false,\n    includeNamingProhibitedText = false,\n  }: Options & {\n    /** Include hidden nodes */\n    includeHidden?: boolean;\n    /** Set to `true` to always include naming prohibited text content (false by default for names) */\n    includeNamingProhibitedText?: boolean;\n  },\n): string {\n  // Important: Each node in the subtree is consulted only once. If text has\n  // been collected from a descendant, but is referenced by another IDREF in\n  // some descendant node, then that second, or subsequent, reference is not\n  // followed.  This is done to avoid infinite loops.\n  if (nodesReferenced.has(element)) {\n    return '';\n  }\n  nodesReferenced.add(element);\n\n  // 1. Initialization\n  const role = getRoleIncomplete(element);\n  const tagName = getTagName(element);\n  const ariaLabel = attr(element, 'aria-label');\n  const ariaLabelledby = attr(element, 'aria-labelledby');\n  if (\n    role?.prohibited.includes('aria-label') &&\n    includeNamingProhibitedText !== true &&\n    !ariaLabel &&\n    !ariaLabelledby\n  ) {\n    return '';\n  }\n\n  // 2.1 hidden\n  if (includeHidden !== true && isHidden(element)) {\n    return '';\n  }\n\n  // 2.2 aria-labelledby\n  if (ariaLabelledby) {\n    // note:[aria-labelledby] does NOT count as a reference\n    return concatIDRefList(element, 'aria-labelledby', { nodesReferenced });\n  }\n\n  // Name from author\n  // https://w3c.github.io/aria/#namecalculation\n  const tooltip = getTooltip(element);\n  const hll = calculateHostLanguageLabel(element, { nodesReferenced });\n  if (role?.nameFrom === 'author' && (ariaLabel || hll || tooltip)) {\n    return ariaLabel?.trim() || hll || tooltip;\n  }\n\n  // 2.3 embedded control\n  // 2.3.1 embedded control: textbox\n  if (role?.name === 'textbox') {\n    const value = (element as HTMLInputElement).value?.trim() || '';\n    if (value) return value;\n  }\n  // 2.3.2 embedded control: combobox/listbox\n  if (\n    (role?.name === 'combobox' || role?.name === 'listbox') &&\n    typeof Element !== 'undefined' &&\n    element instanceof Element\n  ) {\n    const value = (element as HTMLInputElement).value?.trim() || '';\n    if (value) return value;\n    const option =\n      element.querySelector(\n        'option[aria-selected=true],[role=option][aria-selected=true],option[selected],[role=option][selected]',\n      ) || element.querySelector('option');\n    if (option)\n      return computeName(option, {\n        nodesReferenced,\n        includeHidden,\n        includeNamingProhibitedText,\n      });\n    const tooltip = getTooltip(element);\n    if (tooltip) return tooltip;\n  }\n  // 2.3.3 embedded control: range\n  if (['meter', 'progressbar', 'scrollbar', 'slider', 'spinbutton'].includes(role?.name!)) {\n    const value =\n      attr(element, 'aria-valuetext')?.trim() ||\n      attr(element, 'aria-valuenow')?.trim() ||\n      (element as HTMLInputElement).value?.trim();\n    if (value) return value;\n  }\n\n  // 2.4 aria-label\n  if (tagName !== 'slot' && ariaLabel) {\n    return ariaLabel;\n  }\n\n  // 2.5 host language label\n  if (\n    ['input', 'img', 'output', 'select', 'textarea', 'svg'].includes(tagName) &&\n    !['presentation', 'none'].includes(role?.name!)\n  ) {\n    return calculateHostLanguageLabel(element, { nodesReferenced });\n  }\n\n  // TODO: fix incomplete \"nameFrom\" implementation. According to WPT, <aside> doesn’t get named from contents.\n  // There could be other bugs here too, look into \"nameFrom\" handling\n  if (['complementary'].includes(role?.name!)) {\n    return '';\n  }\n\n  // 2.6.1 init\n  let totalAccumulatedText = '';\n\n  // 2.6.2 pseudo + 2.6.3, 2.6.4, 2.6.5 child nodes, 2.6.8 tooltips\n  const childNodes = typeof Element !== 'undefined' && element instanceof Element ? Array.from(element.childNodes) : [];\n  const { before, after, marker } = {\n    before: getCSSContent(element, '::before'),\n    after: getCSSContent(element, '::after'),\n    marker: getCSSContent(element, '::marker'),\n  };\n  if (before) childNodes.unshift(createTextNode(before));\n  if (tooltip) childNodes.push(createTextNode(` ${tooltip} `));\n  if (marker) childNodes.push(createTextNode(marker));\n  if (after) childNodes.push(createTextNode(after));\n  for (const node of childNodes) {\n    switch (node.nodeType) {\n      // TEXT_NODE. Declared manually to work in Node.js\n      case 3: {\n        if (node.nodeValue) totalAccumulatedText += node.nodeValue;\n        break;\n      }\n      // ELEMENT_NODE. Declared manually to work in Node.\n      case 1: {\n        if (nodesReferenced.has(node as Element)) {\n          continue;\n        }\n\n        const childRole = getRoleIncomplete(node as Element);\n        // If we hit a menu as part of another name calculation, ignore\n        if (childRole?.name === 'menu') {\n          continue;\n        }\n        // edge case: convert <br> to space\n        const childName = computeName(node as Element, {\n          nodesReferenced,\n          includeNamingProhibitedText: true, // calculating child nodes means including naming prohibited elements\n          includeHidden: false,\n        });\n        const isInline = getDisplay(node as Element) === 'inline';\n        if (childName) {\n          // Note: block-level elements ALSO space afterward, e.g. if followed by a text node\n          totalAccumulatedText += !isInline && totalAccumulatedText ? ` ${childName} ` : childName;\n        }\n        // edge case: if this was as <br /> tag with nothing special (no role, aria-labelledby, etc.)\n        // preserve the line break in the form of a space\n        else if (getTagName(node as Element) === 'br') {\n          totalAccumulatedText += ' ';\n        }\n        break;\n      }\n    }\n  }\n\n  const ownedText = concatIDRefList(element, 'aria-owns', { nodesReferenced });\n  if (ownedText) totalAccumulatedText += ` ${ownedText}`;\n  // 2.7 text node (ignored, handled in child nodes)\n  // 2.10 join, and remove non-significant whitespace\n  return totalAccumulatedText.trim().replace(/(\\r?\\n|\\s)+/g, ' ');\n}\n\n/**\n * Calculate label for <img>, <svg>, and <input>.\n * @see https://www.w3.org/TR/accname-1.2/#comp_host_language_label\n */\nfunction calculateHostLanguageLabel(element: Element | VirtualElement, { nodesReferenced }: Options): string {\n  if (nodesReferenced.has(element)) {\n    return '';\n  }\n  nodesReferenced.add(element);\n  switch (getTagName(element)) {\n    case 'img': {\n      return attr(element, 'alt')?.trim() || '';\n    }\n    case 'input':\n    case 'output':\n    case 'select':\n    case 'textarea': {\n      if (typeof Element === 'undefined' || typeof document === 'undefined' || !(element instanceof Element)) return '';\n      let totalAccumulatedText = '';\n      // Note: <label>s all have to be calculated in DOM order, which means neither\n      // parent <label>s or <label for>s take precedence. Also, a <label> may not be\n      // exclusive to a single element (via `aria-labelledby`), so we have to iterate\n      // over all <label>s each time.\n      const labels = document.querySelectorAll('label');\n      for (const label of Array.from(labels)) {\n        const isAssociated = label.contains(element) || (element.id && attr(label, 'for') === element.id);\n        if (isAssociated) {\n          const labelName = computeName(label, { nodesReferenced });\n          if (labelName) totalAccumulatedText += ` ${labelName}`;\n        }\n      }\n      return totalAccumulatedText.trim();\n    }\n    case 'svg': {\n      if (typeof Element === 'undefined' || !(element instanceof Element)) return '';\n      return element.querySelector('title,desc')?.textContent?.trim() || '';\n    }\n  }\n  return '';\n}\n\n/** Universal helper for text nodes */\nfunction createTextNode(content: string): ChildNode {\n  if (typeof document !== 'undefined') return document.createTextNode(content);\n  return { type: 3, nodeValue: content } as unknown as ChildNode;\n}\n\n/**\n * @deprecated DO NOT USE EXTERNALLY!\n * This is not an accurate or complete role calcuation, this is only the bare-minimum for calculating accessible name.\n * If we included the full logic, we’d have an infinite loop because it involves name calculation.\n */\nfunction getRoleIncomplete(element: Element | VirtualElement): RoleData | undefined {\n  const roleAttr = attr(element, 'role');\n  if (roleAttr) return roles[roleAttr as keyof typeof roles];\n\n  const tagName = getTagName(element);\n\n  if (tagName === 'li') {\n    return getLIRole(element);\n  }\n\n  for (const role of Object.values(roles)) {\n    if (\n      role.elements.some(\n        (el) =>\n          el.tagName === tagName &&\n          (!el.attributes || Object.entries(el.attributes).every(([k, v]) => attr(element, k) === v)),\n      )\n    ) {\n      return role;\n    }\n  }\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIARole, VirtualElement } from './types.js';\n\n/**\n * Return the representation(s) of a role in HTML, if any.\n */\nexport function getElements(role: ARIARole): VirtualElement[] | undefined {\n  const elements = roles[role]?.elements;\n  return elements?.length ? elements : undefined;\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIAAttribute, ARIARole } from './types.js';\n\n/** Given an HTML element, returns a list of required aria-* attributes for that element */\nexport function getRequiredAttributes(role: ARIARole): ARIAAttribute[] {\n  return roles[role]?.required ?? [];\n}\n\n/** Helper function for getRequiredttributes that returns a boolean instead */\nexport function isRequiredAttribute(attribute: string, role: ARIARole): boolean {\n  return getRequiredAttributes(role).includes(attribute as ARIAAttribute);\n}\n","import type { ARIAAttribute, ARIARole, TagName } from '../types.js';\nimport { ALL_ROLES, NO_ROLES } from './aria-roles.js';\n\nexport const NO_CORRESPONDING_ROLE = undefined;\n\nexport interface TagInfo {\n  /**\n   * Note: this is very likely to be overridden by custom logic! This won’t even\n   * apply for half of elements since they are influenced by attribute and\n   * Accessibility Tree ancestors.\n   */\n  defaultRole: ARIARole | undefined;\n  /**\n   * ⚠️ This is the default set of allowed roles. Many elements have special conditioning\n   * that narrow the allowed roles, that’s not easily serializable. That logic can be found\n   * in getSupportedRoles().\n   */\n  supportedRoles: ARIARole[];\n  /**\n   * If this conflicts with the role’s allowed attributes, this takes precedence.\n   */\n  supportedAttributesOverride: ARIAAttribute[] | undefined;\n  /**\n   * If this element doesn’t allow aria-label and related attributes by\n   * default (Note: if a `role` is specified, this is ignored!)\n   */\n  namingProhibited: boolean;\n}\n\n/**\n * SVG elements that are always hidden from screenreaders.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nconst SVG_ALWAYS_INACCESSIBLE_ELEMENT: TagInfo = {\n  defaultRole: 'none',\n  namingProhibited: true,\n  supportedRoles: [],\n  supportedAttributesOverride: [],\n};\n/**\n * SVG elements that by default aren’t added to the a11y tree, but MAY be included if certain criteria are met.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nconst SVG_MAYBE_ACCESSIBLE_ELEMENT: TagInfo = {\n  defaultRole: 'none', // ⚠️ these elements will get different default roles if they have an accessible name, but they all default to 'none'\n  namingProhibited: true,\n  supportedRoles: ALL_ROLES,\n  supportedAttributesOverride: undefined,\n};\n\nexport const tags: Record<TagName, TagInfo> = {\n  // Main root\n  html: {\n    defaultRole: 'document',\n    namingProhibited: false,\n    supportedRoles: ['document'],\n    supportedAttributesOverride: [],\n  },\n\n  // Document metadata\n  base: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  head: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  link: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  meta: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  style: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  title: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // Sectioning root\n  body: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ['generic'],\n    // <body> supports all global + generic aria-* attributes EXCEPT aria-hidden\n    supportedAttributesOverride: ['aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant'], // biome-ignore format: long list\n  },\n\n  // Content sectioning\n  address: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  article: {\n    defaultRole: 'article',\n    namingProhibited: false,\n    supportedRoles: ['article', 'application', 'document', 'feed', 'main', 'none', 'presentation', 'region'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  aside: {\n    defaultRole: 'complementary',\n    namingProhibited: false,\n    supportedRoles: ['complementary', 'feed', 'none', 'note', 'presentation', 'region', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n  footer: {\n    defaultRole: 'contentinfo',\n    namingProhibited: false,\n    supportedRoles: ['contentinfo', 'generic', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  header: {\n    defaultRole: 'banner',\n    namingProhibited: false,\n    supportedRoles: ['banner', 'generic', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  h1: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h2: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h3: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h4: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h5: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h6: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  hgroup: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  main: {\n    defaultRole: 'main',\n    namingProhibited: false,\n    supportedRoles: ['main'],\n    supportedAttributesOverride: undefined,\n  },\n  nav: {\n    defaultRole: 'navigation',\n    namingProhibited: false,\n    supportedRoles: ['menu', 'menubar', 'navigation', 'none', 'presentation', 'tablist'],\n    supportedAttributesOverride: undefined,\n  },\n  section: {\n    defaultRole: 'region', // note: for <section>, we can’t determine the accessible name without scanning the entire document. Assume it’s \"region\".\n    namingProhibited: false,\n    supportedRoles: ['alert', 'alertdialog', 'application', 'banner', 'complementary', 'contentinfo', 'dialog', 'document', 'feed', 'generic', 'group', 'log', 'main', 'marquee', 'navigation', 'none', 'note', 'presentation', 'region', 'search', 'status', 'tabpanel'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  search: {\n    defaultRole: 'search',\n    namingProhibited: false,\n    supportedRoles: ['form', 'group', 'none', 'presentation', 'region', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Text content\n  blockquote: {\n    defaultRole: 'blockquote',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dd: {\n    // - html-aria: no corresponding role\n    // - AAM: definition\n    // - Chrome, Firefox, Safari: definition\n    defaultRole: 'definition',\n    namingProhibited: false,\n    supportedRoles: ['definition'],\n    supportedAttributesOverride: undefined,\n  },\n  div: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dl: {\n    // - html-aria: no corresponding role\n    // - AAM: list\n    // - Chrome: Definitionlist, Firefox: definitionlist, Safari: no corresponding role\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  dt: {\n    // - html-aria: no corresponding role\n    // - AAM: term\n    // - Chrome, Firefox, Safari: term\n    defaultRole: 'term',\n    namingProhibited: false,\n    supportedRoles: ['listitem', 'term'],\n    supportedAttributesOverride: undefined,\n  },\n  figcaption: {\n    // - html-aria: no corresponding role\n    // - AAM: caption\n    // - Chrome, Firefox, Safari: caption\n    defaultRole: 'caption',\n    namingProhibited: true,\n    supportedRoles: ['caption', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  figure: {\n    defaultRole: 'figure',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES, // Note: there are some minor behavioral quirks here which we gloss over\n    supportedAttributesOverride: undefined,\n  },\n  hr: {\n    defaultRole: 'separator',\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation', 'separator'],\n    supportedAttributesOverride: undefined,\n  },\n  li: {\n    defaultRole: 'listitem',\n    namingProhibited: false,\n    supportedRoles: ['listitem'],\n    supportedAttributesOverride: undefined,\n  },\n  menu: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  ol: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  p: {\n    defaultRole: 'paragraph',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  pre: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  ul: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n\n  // Inline text semantics\n  a: {\n    defaultRole: 'link',\n    namingProhibited: false,\n    supportedRoles: ['button', 'checkbox', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  abbr: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  b: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  bdi: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  bdo: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  br: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation'],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n  cite: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  code: {\n    defaultRole: 'code',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  data: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dfn: {\n    defaultRole: 'term',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  em: {\n    defaultRole: 'emphasis',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  i: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  kbd: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  mark: {\n    defaultRole: 'mark',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  q: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  rp: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  rt: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  ruby: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  s: {\n    defaultRole: 'deletion',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  samp: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  small: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  span: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  strong: {\n    defaultRole: 'strong',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  sub: {\n    defaultRole: 'subscript',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  sup: {\n    defaultRole: 'superscript',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  time: {\n    defaultRole: 'time',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  u: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  var: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  wbr: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation'],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n\n  // Image and multimedia\n  area: {\n    defaultRole: 'link',\n    namingProhibited: false,\n    supportedRoles: ['link'],\n    supportedAttributesOverride: undefined,\n  },\n  audio: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application'],\n    supportedAttributesOverride: undefined,\n  },\n  img: {\n    defaultRole: 'none',\n    namingProhibited: false,\n    supportedRoles: ['img', 'image', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  map: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  track: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  video: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Embedded content\n  embed: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  iframe: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image', 'none', 'presentation'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  object: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image'],\n    supportedAttributesOverride: undefined,\n  },\n  picture: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n  source: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // SVG and MathML\n  svg: {\n    defaultRole: 'graphics-document',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  math: {\n    defaultRole: 'math',\n    namingProhibited: false,\n    supportedRoles: ['math'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Scripting\n  canvas: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  noscript: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  script: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  del: {\n    defaultRole: 'deletion',\n    supportedRoles: ALL_ROLES,\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n  ins: {\n    defaultRole: 'insertion',\n    supportedRoles: ALL_ROLES,\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n\n  // Table content\n  caption: {\n    defaultRole: 'caption',\n    supportedRoles: ['caption'],\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n  col: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  colgroup: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  table: {\n    defaultRole: 'table',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  tbody: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  td: {\n    defaultRole: 'cell',\n    namingProhibited: false,\n    supportedRoles: ['cell'],\n    supportedAttributesOverride: undefined,\n  },\n  tfoot: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  th: {\n    defaultRole: 'columnheader',\n    namingProhibited: false,\n    supportedRoles: ['cell', 'columnheader', 'gridcell', 'rowheader'],\n    supportedAttributesOverride: undefined,\n  },\n  thead: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  tr: {\n    defaultRole: 'row',\n    namingProhibited: false,\n    supportedRoles: ['row'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Forms\n  button: {\n    defaultRole: 'button',\n    namingProhibited: false,\n    supportedRoles: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  datalist: {\n    defaultRole: 'listbox',\n    namingProhibited: false,\n    supportedRoles: ['listbox'],\n    supportedAttributesOverride: [],\n  },\n  fieldset: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group', 'none', 'presentation', 'radiogroup'],\n    supportedAttributesOverride: undefined,\n  },\n  form: {\n    defaultRole: 'form',\n    namingProhibited: false,\n    supportedRoles: ['form', 'none', 'presentation', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n  input: {\n    defaultRole: 'textbox',\n    namingProhibited: false,\n    supportedRoles: ['combobox', 'searchbox', 'spinbutton', 'textbox'],\n    supportedAttributesOverride: undefined,\n  },\n  label: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: [],\n    supportedAttributesOverride: undefined,\n  },\n  legend: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: [],\n    supportedAttributesOverride: undefined,\n  },\n  meter: {\n    defaultRole: 'meter',\n    namingProhibited: false,\n    supportedRoles: ['meter'],\n    supportedAttributesOverride: undefined,\n  },\n  optgroup: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group'],\n    supportedAttributesOverride: undefined,\n  },\n  option: {\n    defaultRole: 'option',\n    namingProhibited: false,\n    supportedRoles: ['option'],\n    supportedAttributesOverride: undefined,\n  },\n  output: {\n    defaultRole: 'status',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  progress: {\n    defaultRole: 'progressbar',\n    namingProhibited: false,\n    supportedRoles: ['progressbar'],\n    supportedAttributesOverride: undefined,\n  },\n  select: {\n    defaultRole: 'combobox',\n    namingProhibited: false,\n    supportedRoles: ['combobox', 'menu'],\n    supportedAttributesOverride: undefined,\n  },\n  textarea: {\n    defaultRole: 'textbox',\n    namingProhibited: false,\n    supportedRoles: ['textbox'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Interactive elements\n  details: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group'],\n    supportedAttributesOverride: undefined,\n  },\n  dialog: {\n    defaultRole: 'dialog',\n    namingProhibited: false,\n    supportedRoles: ['alertdialog', 'dialog'],\n    supportedAttributesOverride: undefined,\n  },\n  summary: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n\n  // Web Components\n  slot: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  template: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // SVG\n  // @see https://www.w3.org/TR/svg-aam-1.0/#mapping_role_table\n  // a: (use HTML <a>)\n  animate: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  animateMotion: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  animateTransform: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // audio: (use HTML <audio>)\n  // canvas: (use HTML <canvas>)\n  circle: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  clipPath: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  defs: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  desc: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  ellipse: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  feBlend: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feColorMatrix: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feComponentTransfer: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feComposite: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feConvolveMatrix: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDiffuseLighting: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDisplacementMap: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDistantLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDropShadow: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFlood: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncA: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncB: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncG: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncR: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feGaussianBlur: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feImage: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMerge: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMergeNode: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMorphology: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feOffset: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  fePointLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feSpecularLighting: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feSpotLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feTile: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feTurbulence: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  filter: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  foreignObject: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  g: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  image: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  line: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  linearGradient: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  marker: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  mask: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  metadata: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  mpath: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  path: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  pattern: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  polygon: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  polyline: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  radialGradient: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  rect: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  set: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  stop: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // style: (use HTML <style>)\n  switch: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  symbol: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // Note: text is the ONLY SVG element that defaults to \"group\" unconditionally\n  // because it contains text nodes by its nature.\n  text: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  textPath: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  // title: (use HTML <title>)\n  // track: (use HTML <track>)\n  tspan: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  use: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  // video: (use HTML <video>)\n  view: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n};\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasSectioningContentParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/**\n * @see https://www.w3.org/TR/html-aam-1.0/#el-aside-ancestorbodymain\n * @see https://www.w3.org/TR/html-aam-1.0/#el-aside\n */\nexport function getAsideRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasSectioningContentParent(element, options?.ancestors) ? roles.generic : roles[tags.aside.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasLandmarkParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getFooterRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasLandmarkParent(element, options?.ancestors) ? roles.generic : roles[tags.footer.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasLandmarkParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getHeaderRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasLandmarkParent(element, options?.ancestors) ? roles.generic : roles[tags.header.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE, tags } from '../lib/html.js';\nimport { attr } from '../lib/util.js';\nimport type { ARIARole, VirtualElement } from '../types.js';\n\nexport type InputType =\n  | 'button'\n  | 'checkbox'\n  | 'color'\n  | 'date'\n  | 'datetime-local'\n  | 'email'\n  | 'file'\n  | 'hidden'\n  | 'image'\n  | 'month'\n  | 'number'\n  | 'password'\n  | 'radio'\n  | 'range'\n  | 'reset'\n  | 'search'\n  | 'submit'\n  | 'tel'\n  | 'text'\n  | 'time'\n  | 'url'\n  | 'week';\n\nexport const INPUT_ROLE_MAP: Record<InputType, RoleData | undefined> = {\n  button: roles.button,\n  checkbox: roles.checkbox,\n  color: NO_CORRESPONDING_ROLE,\n  date: NO_CORRESPONDING_ROLE,\n  'datetime-local': NO_CORRESPONDING_ROLE,\n  email: roles.textbox,\n  file: NO_CORRESPONDING_ROLE,\n  hidden: NO_CORRESPONDING_ROLE,\n  image: roles.button,\n  month: NO_CORRESPONDING_ROLE,\n  number: roles.spinbutton,\n  password: NO_CORRESPONDING_ROLE,\n  radio: roles.radio,\n  range: roles.slider,\n  reset: roles.button,\n  search: roles.searchbox,\n  submit: roles.button,\n  tel: roles.textbox,\n  text: roles.textbox,\n  time: NO_CORRESPONDING_ROLE,\n  url: roles.textbox,\n  week: NO_CORRESPONDING_ROLE,\n};\n\nexport function getInputRole(element: Element | VirtualElement): RoleData | undefined {\n  // For ARIA purposes, missing or invalid types are treated as \"text\"\n  let type = attr(element, 'type') as InputType;\n  if (!type || !(type in INPUT_ROLE_MAP)) {\n    type = 'text';\n  }\n\n  const role = type in INPUT_ROLE_MAP ? INPUT_ROLE_MAP[type as InputType] : INPUT_ROLE_MAP.text;\n\n  // handle combobox behavior for textbox-type inputs\n  // @see https://www.w3.org/TR/html-aria/#el-input-text-list\n  const list = attr(element, 'list');\n  if (list && (role?.name === 'textbox' || role?.name === 'searchbox')) {\n    return roles.combobox;\n  }\n\n  return role;\n}\n\nexport const INPUT_SUPPORTED_ROLES_MAP: Record<InputType, ARIARole[]> = {\n  button: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  checkbox: ['checkbox', 'menuitemcheckbox', 'option', 'switch'],\n  color: [],\n  date: [],\n  'datetime-local': [],\n  email: ['textbox'],\n  file: [],\n  hidden: [],\n  image: ['button', 'checkbox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  month: [],\n  number: ['spinbutton'],\n  password: [],\n  radio: ['menuitemradio', 'radio'],\n  range: ['slider'],\n  reset: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  search: ['searchbox'],\n  submit: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  tel: ['textbox'],\n  text: tags.input.supportedRoles,\n  time: [],\n  url: ['textbox'],\n  week: [],\n};\n\nexport function getInputSupportedRoles(element: Element | VirtualElement): ARIARole[] {\n  // For ARIA purposes, missing or invalid types are treated as \"text\"\n  let type = attr(element, 'type') as InputType;\n  if (!type || !(type in INPUT_SUPPORTED_ROLES_MAP)) {\n    type = 'text';\n  }\n\n  // special behavior: checkboxes\n  // @see https://www.w3.org/TR/html-aria/#el-input-checkbox\n  if (type === 'checkbox' && attr(element, 'aria-pressed')) {\n    return ['button', ...INPUT_SUPPORTED_ROLES_MAP.checkbox];\n  }\n\n  const supportedRoles = INPUT_SUPPORTED_ROLES_MAP[type as InputType] ?? INPUT_SUPPORTED_ROLES_MAP.text;\n\n  // handle combobox behavior for textbox-type inputs\n  const list = attr(element, 'list');\n  if (list && supportedRoles.some((name) => name === 'textbox' || name === 'searchbox')) {\n    return ['combobox'];\n  }\n\n  return supportedRoles;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { attr } from '../lib/util.js';\nimport type { ARIARole, VirtualElement } from '../types.js';\n\nexport function getSelectRole(element: Element | VirtualElement): RoleData | undefined {\n  const size = normalizeSize(attr(element, 'size'));\n  const multiple = attr(element, 'multiple');\n  if ((size && size > 1) || typeof multiple === 'string' || typeof multiple === 'boolean') {\n    return roles.listbox;\n  }\n  return roles[tags.select.defaultRole!];\n}\n\nexport function getSelectSupportedRoles(element: Element | VirtualElement): ARIARole[] {\n  const size = normalizeSize(attr(element, 'size'));\n  const multiple = attr(element, 'multiple');\n  if ((size && size > 1) || typeof multiple === 'string' || typeof multiple === 'boolean') {\n    return ['listbox'];\n  }\n  return tags.select.supportedRoles;\n}\n\nfunction normalizeSize(size: unknown): number | undefined {\n  if (typeof size === 'number') {\n    return size;\n  }\n  if (typeof size === 'string' && size !== '') {\n    return Number.parseFloat(size) || 0;\n  }\n  return undefined;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { attr, getTagName } from '../lib/util.js';\nimport type { VirtualElement } from '../types.js';\n\n// ONLY applied if it meets the criteria\nconst SVG_ACCESSIBLE_ROLE_MAPPING = {\n  circle: roles['graphics-symbol'],\n  ellipse: roles['graphics-symbol'],\n  foreignObject: roles.group,\n  g: roles.group,\n  line: roles['graphics-symbol'],\n  image: roles.image,\n  path: roles['graphics-symbol'],\n  polygon: roles['graphics-symbol'],\n  polyline: roles['graphics-symbol'],\n  rect: roles['graphics-symbol'],\n  // Note: open issue https://www.w3.org/TR/svg-aam-1.0/#textpath-tspan-mappings-issue\n  textPath: roles.group,\n  // Note: open issue https://www.w3.org/TR/svg-aam-1.0/#textpath-tspan-mappings-issue\n  tspan: roles.group,\n  use: roles['graphics-object'],\n};\n\n/**\n * Handles role mapping for all SVG elements (<circle>, <rect>, <polygon>, etc.). because they\n * share logic.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nexport function getSvgElementRole(element: Element | VirtualElement): RoleData | undefined {\n  const tagName = getTagName(element);\n  const defaultRole = roles[tags[tagName]?.defaultRole!];\n  if (!(tagName in SVG_ACCESSIBLE_ROLE_MAPPING)) {\n    return defaultRole;\n  }\n\n  const accessibleRole = SVG_ACCESSIBLE_ROLE_MAPPING[tagName as keyof typeof SVG_ACCESSIBLE_ROLE_MAPPING];\n\n  const ariaHidden = attr(element, 'aria-hidden');\n  const isHidden = ariaHidden === '' || String(ariaHidden) === 'true';\n\n  // <image> tags: treat as img if it has a src\n  if (!isHidden && tagName === 'image' && attr(element, 'src')) {\n    return accessibleRole;\n  }\n\n  // Name step 1: look for name attributes on element\n  const hasLabel =\n    !isHidden &&\n    (attr(element, 'aria-label') ||\n      attr(element, 'aria-labelledby') ||\n      attr(element, 'aria-describedby') ||\n      attr(element, 'aria-roledescription'));\n  if (hasLabel) {\n    return accessibleRole;\n  }\n\n  // Name step 2: look for <title> or <desc> children (that aren’t empty whitespace)\n  const hasTextChild = 'querySelector' in element && element.querySelector('title,desc')?.textContent?.trim().length;\n  if (hasTextChild) {\n    return accessibleRole;\n  }\n\n  return defaultRole;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE } from '../lib/html.js';\nimport { hasGridParent, hasTableParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/** Special behavior for <td> element */\nexport function getTDRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  if (hasGridParent(element, options?.ancestors)) {\n    return roles.gridcell;\n  }\n  if (hasTableParent(element, options?.ancestors)) {\n    return roles.cell;\n  }\n  return NO_CORRESPONDING_ROLE;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE } from '../lib/html.js';\nimport { attr, hasGridParent, hasTableParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/** Special behavior for <th> element */\nexport function getTHRole(\n  element: Element | VirtualElement,\n  options?: {\n    ancestors?: VirtualAncestorList;\n  },\n): RoleData | undefined {\n  // Note: Chrome 135/Firefox 137/Safari 18.4 currently ignore \"scope\" attr,\n  // We still respect it all the same, because it’s unlikely this is being\n  // explicitly set only to be ignored\n  const scope = attr(element, 'scope');\n  switch (scope) {\n    /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-columnheader */\n    case 'col':\n    case 'colgroup': {\n      return roles.columnheader;\n    }\n    /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-rowheader */\n    case 'row':\n    case 'rowgroup': {\n      return roles.rowheader;\n    }\n  }\n\n  /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-gridcell */\n  if (hasGridParent(element, options?.ancestors)) {\n    return roles.gridcell;\n  }\n\n  // Role determination is a bit dicey per-browser:\n  // - Chrome 135/Firefox 137: <th> in a table is columnheader, unless there’s a sibling <td> then it’s rowheader\n  // - Safari 18.4: <th> is columnheader in <thead>, rowheader in <tbody>/<tfoot> (unless it’s not the first element in row)\n  // We also align with WPT tests (https://github.com/web-platform-tests/wpt/blob/master/html-aam/table-roles.html#L29)\n  // but try and find a balance with the best support for everything\n  if (hasTableParent(element, options?.ancestors)) {\n    // DOM behavior; follow Chrome/Firefox behavior (look for <td> sibling, regardless of group, also look behind element)\n    if (typeof Element !== 'undefined') {\n      const hasTDSibling = (element as Element).parentElement?.querySelector('td');\n      return hasTDSibling ? roles.rowheader : roles.columnheader;\n    }\n    // non-DOM behavior: follow Safari behavior (look for <thead>/<tbody> ancestor)\n    // TODO: if sibling behavior is implemented, use that\n    return options?.ancestors?.some((el) => el.tagName === 'thead') ? roles.columnheader : roles.rowheader;\n  }\n\n  // See previous comment r.e. special behaviour.\n  return NO_CORRESPONDING_ROLE;\n}\n","import { getAccNameAndDescription } from './get-acc-name.js';\nimport { ALL_ROLES, type RoleData, roles } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport { attr, firstMatchingToken, getTagName } from './lib/util.js';\nimport { getAsideRole } from './tags/aside.js';\nimport { getFooterRole } from './tags/footer.js';\nimport { getHeaderRole } from './tags/header.js';\nimport { getInputRole } from './tags/input.js';\nimport { getLIRole } from './tags/li.js';\nimport { getSelectRole } from './tags/select.js';\nimport { getSvgElementRole } from './tags/svg.js';\nimport { getTDRole } from './tags/td.js';\nimport { getTHRole } from './tags/th.js';\nimport type { VirtualAncestorList, VirtualElement } from './types.js';\n\nexport interface GetRoleOptions {\n  /**\n   * Not needed in DOM environments.\n   * For Node.js, when we can’t traverse the DOM, provide the hierarchy upward, going from closest to furthest.\n   * E.g. the following HTML:\n   *\n   * ```html\n   * <table>\n   *   <tbody>\n   *     <tr>\n   *       <td></td>\n   *     </tr>\n   *   </tbody>\n   * </table>\n   * ```\n   * Could be represented as:\n   *\n   * ```ts\n   * getRole(\n   *   { tagName: 'td' },\n   *   { ancestors: [{ tagName: 'tr' }, { tagName: 'tbody' }, { tagName: 'table' }] },\n   * );\n   * ```\n   *\n   * Note: This list does _not_ have to be complete; simply listing out the significant elements that\n   * affect a11y.\n   * @see https://github.com/drwpow/html-aria/tree/dom-support#nodejs-vs-dom-behavior\n   */\n  ancestors?: VirtualAncestorList;\n  /** Ignore role attribute in calculation to get the intrinsic role. Needed in some fallback scenarios. */\n  ignoreRoleAttribute?: boolean;\n}\n\n/**\n * Get the corresponding ARIA role for a given HTML element.\n * `undefined` means “no corresponding role”.\n * This traverses the DOM when available.\n * @see https://www.w3.org/TR/html-aria/\n */\nexport function getRole(element: Element | VirtualElement, options?: GetRoleOptions): RoleData | undefined {\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  const role = attr(element, 'role') as string | undefined;\n\n  // explicit role: use if valid\n  if (role && options?.ignoreRoleAttribute !== true) {\n    const firstRole = firstMatchingToken(role, ALL_ROLES);\n    // Note: according to the spec, certain roles aren’t allowed on certain\n    // elements. However, most browsers ignore this, and accept the role at face\n    // value. So don’t ignore certain combinations of roles; just accept the\n    // role attribute regardless of tag name.\n    return roles[firstRole!];\n  }\n\n  // If custom element (unknown HTML element), assume generic\n  if (!tagData) {\n    return roles.generic;\n  }\n\n  const defaultRole = roles[tagData.defaultRole!];\n\n  switch (tagName) {\n    case 'a':\n    case 'area': {\n      const href = attr(element, 'href') || attr(element, 'xlink:href'); // note: xlink:href only for SVG, but assume it’s used in correct context\n      return typeof href === 'string' ? defaultRole : roles.generic;\n    }\n    case 'aside': {\n      const { name } = getAccNameAndDescription(element);\n      return name ? defaultRole : getAsideRole(element, options);\n    }\n    case 'header': {\n      return getHeaderRole(element, options);\n    }\n    case 'img': {\n      // Note: there is a tiny conflict between:\n      // - https://www.w3.org/TR/html-aam-1.0/ says use \"title\" attribute to calculate name\n      // - WPT tests ignore it?\n      // The discrepancy is resolved here by checking for \"alt\" ahead of the name calc\n      if (attr(element, 'alt') === null) return roles.image;\n      const { name } = getAccNameAndDescription(element);\n      return name ? roles.image : roles.none;\n    }\n    case 'li': {\n      return getLIRole(element, options);\n    }\n    case 'input': {\n      return getInputRole(element);\n    }\n    case 'footer': {\n      return getFooterRole(element, options);\n    }\n    case 'section': {\n      const { name } = getAccNameAndDescription(element);\n      return name ? defaultRole : roles.generic;\n    }\n    case 'select': {\n      return getSelectRole(element);\n    }\n    case 'td': {\n      return getTDRole(element, options);\n    }\n    case 'th': {\n      return getTHRole(element, options);\n    }\n    case 'tr': {\n      return roles.row;\n    }\n\n    // @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n    case 'circle':\n    case 'ellipse':\n    case 'foreignObject':\n    case 'g':\n    case 'image':\n    case 'line':\n    case 'path':\n    case 'polygon':\n    case 'polyline':\n    case 'rect':\n    case 'textPath':\n    case 'tspan':\n    case 'use': {\n      return getSvgElementRole(element);\n    }\n  }\n\n  return defaultRole;\n}\n","import type {\n  ARIAAttribute,\n  AttributeData,\n  DragAndDropAttribute,\n  GlobalAttribute,\n  LiveRegionAttribute,\n  RelationshipAttribute,\n  WidgetAttribute,\n} from '../types.js';\n\n// note: all fields required to be monomorphic\nexport const globalAttributes: Record<GlobalAttribute, AttributeData> = {\n  'aria-atomic': { category: ['global', 'liveregion'], type: 'true/false', default: false },\n  'aria-braillelabel': { category: ['global'], type: 'string', default: undefined },\n  'aria-brailleroledescription': { category: ['global'], type: 'string', default: undefined },\n  'aria-busy': { category: ['global', 'liveregion'], type: 'true/false', default: false },\n  'aria-controls': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-current': { category: ['global'], type: 'string', default: undefined },\n  'aria-describedby': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-description': { category: ['global'], type: 'string', default: undefined },\n  'aria-details': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-dropeffect': { category: ['global', 'draganddrop'], type: 'string', default: undefined },\n  'aria-flowto': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-grabbed': { category: ['global', 'draganddrop'], type: 'true/false/undefined', default: undefined },\n  'aria-hidden': { category: ['global', 'widget'], type: 'true/false/undefined', default: undefined },\n  'aria-keyshortcuts': { category: ['global'], type: 'string', default: undefined },\n  'aria-label': { category: ['global', 'widget'], type: 'string', default: undefined },\n  'aria-labelledby': { category: ['global', 'relationship'], type: 'idRefList', default: undefined },\n  'aria-live': {\n    category: ['global', 'liveregion'],\n    type: 'token',\n    default: 'off',\n    values: ['assertive', 'off', 'polite'],\n  },\n  'aria-owns': { category: ['global', 'relationship'], type: 'idRefList' },\n  'aria-relevant': {\n    category: ['global', 'liveregion'],\n    type: 'tokenList',\n    default: 'additions text',\n    values: ['additions', 'removals', 'text', 'all'],\n  },\n  'aria-roledescription': { category: ['global'], type: 'string', default: undefined },\n};\n\nexport const widgetAttributes: Record<WidgetAttribute, AttributeData> = {\n  'aria-autocomplete': {\n    category: ['widget'],\n    type: 'token',\n    default: 'none',\n    values: ['inline', 'list', 'both', 'none'],\n  },\n  'aria-checked': { category: ['widget'], type: 'tristate', default: undefined },\n  'aria-disabled': { category: ['widget'], type: 'true/false', default: false },\n  'aria-errormessage': { category: ['widget', 'relationship'], type: 'string', default: undefined },\n  'aria-expanded': { category: ['widget'], type: 'true/false/undefined', default: undefined },\n  'aria-haspopup': {\n    category: ['widget'],\n    type: 'token',\n    default: 'false',\n    values: ['false', 'true', 'menu', 'listbox', 'tree', 'grid', 'dialog'],\n  },\n  'aria-hidden': globalAttributes['aria-hidden'],\n  'aria-invalid': {\n    category: ['widget'],\n    type: 'token',\n    default: 'false',\n    values: ['grammar', 'false', 'spelling', 'true'],\n  },\n  'aria-label': globalAttributes['aria-label'],\n  'aria-level': { category: ['widget'], type: 'integer' },\n  'aria-modal': { category: ['widget'], type: 'true/false', default: false },\n  'aria-multiline': { category: ['widget'], type: 'true/false', default: false },\n  'aria-multiselectable': { category: ['widget'], type: 'true/false', default: false },\n  'aria-orientation': { category: ['widget'], type: 'token', default: undefined, values: ['horizontal', 'vertical'] },\n  'aria-placeholder': { category: ['widget'], type: 'string' },\n  'aria-pressed': { category: ['widget'], type: 'tristate', default: undefined },\n  'aria-readonly': { category: ['widget'], type: 'true/false', default: false },\n  'aria-required': { category: ['widget'], type: 'true/false', default: false },\n  'aria-selected': { category: ['widget'], type: 'true/false/undefined', default: undefined },\n  'aria-sort': {\n    category: ['widget'],\n    type: 'token',\n    default: 'none',\n    values: ['ascending', 'descending', 'none', 'other'],\n  },\n  'aria-valuemax': { category: ['widget'], type: 'number', default: undefined },\n  'aria-valuemin': { category: ['widget'], type: 'number' },\n  'aria-valuenow': { category: ['widget'], type: 'number' },\n  'aria-valuetext': { category: ['widget'], type: 'string', default: undefined },\n};\n\nexport const liveregionAttributes: Record<LiveRegionAttribute, AttributeData> = {\n  'aria-atomic': globalAttributes['aria-atomic'],\n  'aria-busy': globalAttributes['aria-busy'],\n  'aria-live': globalAttributes['aria-live'],\n  'aria-relevant': globalAttributes['aria-relevant'],\n};\n\nexport const draganddropAttributes: Record<DragAndDropAttribute, AttributeData> = {\n  'aria-dropeffect': globalAttributes['aria-dropeffect'],\n  'aria-grabbed': globalAttributes['aria-grabbed'],\n};\n\nexport const relationshipAttributes: Record<RelationshipAttribute, AttributeData> = {\n  'aria-activedescendant': { category: ['relationship'], type: 'idRef' },\n  'aria-colcount': { category: ['relationship'], type: 'integer' },\n  'aria-colindex': { category: ['relationship'], type: 'integer' },\n  'aria-colindextext': { category: ['relationship'], type: 'string' },\n  'aria-colspan': { category: ['relationship'], type: 'integer' },\n  'aria-controls': globalAttributes['aria-controls'],\n  'aria-describedby': globalAttributes['aria-describedby'],\n  'aria-details': globalAttributes['aria-details'],\n  'aria-errormessage': widgetAttributes['aria-errormessage'],\n  'aria-flowto': globalAttributes['aria-flowto'],\n  'aria-labelledby': globalAttributes['aria-labelledby'],\n  'aria-owns': globalAttributes['aria-owns'],\n  'aria-posinset': { category: ['relationship'], type: 'integer' },\n  'aria-rowcount': { category: ['relationship'], type: 'integer' },\n  'aria-rowindex': { category: ['relationship'], type: 'integer' },\n  'aria-rowindextext': { category: ['relationship'], type: 'string' },\n  'aria-rowspan': { category: ['relationship'], type: 'integer' },\n  'aria-setsize': { category: ['relationship'], type: 'integer' },\n};\n\n// Note: this would also throw a type error if we missed any!\nexport const attributes: Record<ARIAAttribute, AttributeData> = {\n  ...globalAttributes,\n  ...widgetAttributes,\n  ...liveregionAttributes,\n  ...draganddropAttributes,\n  ...relationshipAttributes,\n};\n\nexport const ALL_ATTRIBUTES = Object.keys(attributes).sort((a, b) => a.localeCompare(b)) as ARIAAttribute[];\nexport const NO_ATTRIBUTES: ARIAAttribute[] = [];\n","import { getAccNameAndDescription } from './get-acc-name.js';\nimport { type GetRoleOptions, getRole } from './get-role.js';\nimport { attributes, globalAttributes } from './lib/aria-attributes.js';\nimport { roles } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport { attr, concatDedupeAndSort, getTagName, parseTokenList, removeProhibited } from './lib/util.js';\nimport type { ARIAAttribute, VirtualElement } from './types.js';\n\nconst GLOBAL_ATTRIBUTES = Object.keys(globalAttributes) as ARIAAttribute[];\n\n/**\n * Given an ARIA role returns a list of supported/inherited aria-* attributes.\n */\nexport function getSupportedAttributes(element: Element | VirtualElement, options?: GetRoleOptions): ARIAAttribute[] {\n  const role = getRole(element, options);\n  const roleData = roles[role?.name!];\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  if (!tagData) {\n    return roleData?.supported ?? GLOBAL_ATTRIBUTES;\n  }\n\n  // Note: DON’T check for length! Often an empty array is used\n  // to mean “no aria-* attributes supported\n  if (tagData.supportedAttributesOverride) {\n    return tagData.supportedAttributesOverride;\n  }\n\n  // special cases\n  switch (tagName) {\n    // <audio> and <video> allow application aria-* attributes despite not\n    // being given the role by default\n    case 'audio':\n    case 'video': {\n      return roles.application.supported;\n    }\n    case 'img': {\n      const { name } = getAccNameAndDescription(element);\n      // if no accessible name, only aria-hidden allowed\n      return name && roleData?.supported?.length ? roleData.supported : ['aria-hidden'];\n    }\n    case 'input': {\n      const type = attr(element, 'type');\n      switch (type) {\n        case 'checkbox':\n        case 'radio': {\n          if (roleData) {\n            return roleData?.supported.filter((a) => a !== 'aria-checked');\n          }\n          break;\n        }\n        case 'color': {\n          return concatDedupeAndSort(GLOBAL_ATTRIBUTES, ['aria-disabled']);\n        }\n        case 'file': {\n          return concatDedupeAndSort(GLOBAL_ATTRIBUTES, ['aria-disabled', 'aria-invalid', 'aria-required']);\n        }\n        case 'hidden': {\n          return [];\n        }\n        default: {\n          return roleData?.supported ?? roles.textbox.supported;\n        }\n      }\n      break;\n    }\n    case 'summary': {\n      const supported = roleData?.supported ?? GLOBAL_ATTRIBUTES;\n      return concatDedupeAndSort(supported, ['aria-disabled', 'aria-haspopup']);\n    }\n  }\n\n  const attrList: ARIAAttribute[] = [];\n  if (roleData) {\n    attrList.push(...roleData.supported);\n  } else {\n    attrList.push(...GLOBAL_ATTRIBUTES);\n  }\n\n  // This is confusing, but if the element has manually specified a role, then\n  // namingProhibited is ignored, and the role’s supported attributes are taken\n  // as-is (even if a name would have been prohibited before)\n  // @see https://www.w3.org/TR/html-aria/#dfn-naming-prohibited\n  const hasManualValidRole = attr(element, 'role') && !!roleData;\n  if (hasManualValidRole) {\n    return attrList;\n  }\n\n  return removeProhibited(attrList, {\n    nameProhibited: roleData?.nameFrom === 'prohibited' || tagData.namingProhibited,\n    prohibited: roleData?.prohibited?.length ? roleData.prohibited : undefined,\n  });\n}\n\n/**\n * Helper function for getSupportedAttributes that returns a boolean instead\n */\nexport function isSupportedAttribute(\n  attribute: ARIAAttribute,\n  element: Element | VirtualElement,\n  options?: GetRoleOptions,\n): boolean {\n  return getSupportedAttributes(element, options).includes(attribute as ARIAAttribute);\n}\n\n/**\n * Given an ARIA attribute, is the following value valid? Note that for most\n * non-enum attributes, this will probably return true.\n *\n * - `undefined` and `null` return false, as they are non-values.\n * - Numbers will be coerced into strings, and will return true for most non-enum attributes (this library isn’t concerned with number validation).\n */\nexport function isValidAttributeValue(attribute: ARIAAttribute, value: unknown): boolean {\n  if (attribute === undefined || attribute === null || typeof attribute === 'object') {\n    return false;\n  }\n\n  const attributeData = attributes[attribute];\n  if (!attributeData) {\n    throw new Error(`${attribute} isn’t a valid ARIA attribute`);\n  }\n\n  switch (attributeData.type) {\n    case 'true/false': {\n      // Note: \"\" = true\n      return ['true', 'false', ''].includes(String(value));\n    }\n    case 'true/false/undefined': {\n      // Note: \"\" = true\n      return ['true', 'false', 'undefined', ''].includes(String(value));\n    }\n    case 'tristate': {\n      return ['true', 'false', 'mixed'].includes(String(value));\n    }\n    case 'idRef':\n    case 'idRefList': {\n      return typeof value === 'string' && value.length > 0;\n    }\n    case 'integer': {\n      const numVal = Number.parseFloat(String(value));\n      return Number.isInteger(numVal);\n    }\n    case 'number': {\n      const numVal = Number.parseFloat(String(value));\n      return Number.isFinite(numVal);\n    }\n    case 'token': {\n      return attributeData.values.includes(String(value));\n    }\n    case 'tokenList': {\n      const values = parseTokenList(String(value));\n      return values.length > 0 && values.every((v) => attributeData.values.includes(v));\n    }\n  }\n\n  return true; // if we can’t prove that it’s invalid, assume valid\n}\n","import { getAccNameAndDescription } from './get-acc-name.js';\nimport { ALL_ROLES } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport { attr, getTagName, hasListParent, hasTableParent } from './lib/util.js';\nimport { getFooterRole } from './tags/footer.js';\nimport { getInputSupportedRoles } from './tags/input.js';\nimport { getSelectSupportedRoles } from './tags/select.js';\nimport { getTDRole } from './tags/td.js';\nimport type { ARIARole, VirtualAncestorList, VirtualElement } from './types.js';\n\nexport interface SupportedRoleOptions {\n  /**\n   * Much like getRole(), the ancestors determines the intrinsic role. But ancestors\n   * also determine _valid_ roles—certain roles MUST NOT contain certain children.\n   * For example:\n   *\n   * - <td> with ancestors ['table'] MAY ONLY be a ['cell'] (all other roles are not supported)\n   * - <td> with ancestors ['grid'] or ['treegrid'] MAY ONLY be a ['gridcell'] (all other roles are not supported)\n   * - <td> with NO ancestors ([]) will allow any role\n   */\n  ancestors?: VirtualAncestorList;\n}\n\n/**\n * Given an HTML element, returns a list of supported ARIA roles for that element.\n * An empty array means no roles are supported (which is true for some elements!)\n */\nexport function getSupportedRoles(element: Element | VirtualElement, options?: SupportedRoleOptions): ARIARole[] {\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  if (!tagData) {\n    return ALL_ROLES;\n  }\n\n  // special cases: some HTML elements require unique logic to determine supported roles based on attributes, etc.\n  switch (tagName) {\n    case 'a': {\n      const href = attr(element, 'href');\n      return typeof href === 'string' ? tagData.supportedRoles : ALL_ROLES;\n    }\n    case 'area': {\n      const href = attr(element, 'href');\n      return typeof href === 'string' ? tagData.supportedRoles : ['button', 'generic', 'link'];\n    }\n    case 'footer':\n    case 'header': {\n      const role = getFooterRole(element, options);\n      return role?.name === 'generic' ? ['generic', 'group', 'none', 'presentation'] : tagData.supportedRoles;\n    }\n    case 'div': {\n      const DL_PARENT_ROLES: ARIARole[] = ['none', 'presentation'];\n      if (typeof Element !== 'undefined' && element instanceof Element) {\n        return element.parentElement?.closest('dl:not([role])') ? DL_PARENT_ROLES : tagData.supportedRoles;\n      }\n      return options?.ancestors?.[0]?.tagName === 'dl' ? DL_PARENT_ROLES : tagData.supportedRoles;\n    }\n    case 'img': {\n      const { name } = getAccNameAndDescription(element);\n      if (name) {\n        /** @see https://www.w3.org/TR/html-aria/#el-img */\n        return ['button', 'checkbox', 'image', 'img', 'link', 'math', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'meter', 'option', 'progressbar', 'radio', 'scrollbar', 'separator', 'slider', 'switch', 'tab', 'treeitem']; // biome-ignore format: long list\n      }\n      return tagData.supportedRoles;\n    }\n    case 'li': {\n      return hasListParent(element, options?.ancestors) ? ['listitem'] : ALL_ROLES;\n    }\n    case 'input': {\n      return getInputSupportedRoles(element);\n    }\n    case 'select': {\n      return getSelectSupportedRoles(element);\n    }\n    case 'summary': {\n      if (typeof Element !== 'undefined' && element instanceof Element) {\n        return element.parentElement?.closest('details:not([role])') ? [] : tagData.supportedRoles;\n      }\n      return options?.ancestors?.some((a) => a.tagName === 'details') ? [] : tagData.supportedRoles;\n    }\n    case 'td': {\n      const role = getTDRole(element, options);\n      switch (role?.name) {\n        case 'cell': {\n          return ['cell'];\n        }\n        case 'gridcell': {\n          return ['gridcell'];\n        }\n        default: {\n          return ALL_ROLES;\n        }\n      }\n    }\n    case 'th': {\n      return hasTableParent(element, options?.ancestors) ? tagData.supportedRoles : ALL_ROLES;\n    }\n    case 'tr': {\n      return hasTableParent(element, options?.ancestors) ? tagData.supportedRoles : ALL_ROLES;\n    }\n  }\n\n  return tagData.supportedRoles;\n}\n\n/** Helper function for getSupportedRoles that returns a boolean instead */\nexport function isSupportedRole(\n  role: string,\n  element: Element | VirtualElement,\n  options?: SupportedRoleOptions,\n): boolean {\n  return getSupportedRoles(element, options).includes(role as ARIARole);\n}\n","import { type GetRoleOptions, getRole } from './get-role.js';\nimport { tags } from './lib/html.js';\nimport { attr, getTagName, isDisabled } from './lib/util.js';\nimport { getTDRole } from './tags/td.js';\nimport type { VirtualElement } from './types.js';\n\n/** Given HTML, can this element be interacted with? */\nexport function isInteractive(element: Element | VirtualElement, options?: GetRoleOptions): boolean {\n  const tagName = getTagName(element);\n\n  // if tag doesn’t support any roles, this can’t be interactive\n  if (tags[tagName]?.supportedRoles.length === 0) {\n    return false;\n  }\n\n  const role = getRole(element, options);\n\n  // separator is a special case, and does NOT care about the HTML element\n  // @see https://www.w3.org/TR/wai-aria-1.3/#separator\n  if (role?.name === 'separator') {\n    const tabindex = attr(element, 'tabindex');\n    const ariaValuenow = attr(element, 'aria-valuenow');\n    return (\n      (typeof tabindex === 'string' || typeof tabindex === 'number') &&\n      (typeof ariaValuenow === 'string' || typeof ariaValuenow === 'number')\n    );\n  }\n  // row is another special case, where it has \"widget\" as a superclass,\n  // but that only applies for grid and treegrid\n  if (role?.name === 'row') {\n    const parentTreeGrid = ['grid', 'treegrid'].includes(getTDRole(element, options)?.name as string);\n    return parentTreeGrid && !!attr(element, 'tabindex');\n  }\n\n  if (!role) {\n    // exception: all <input> tags are interactive, even for nonstandard types\n    const tagName = getTagName(element);\n    if (tagName === 'input' && attr(element, 'type') !== 'hidden') {\n      return true;\n    }\n    return false;\n  }\n\n  // alertdialog and dialog are interactive & receive focus\n  if (role.type.includes('window')) {\n    return true;\n  }\n\n  if (role.type.includes('widget')) {\n    if (isDisabled(element)) {\n      return false;\n    }\n\n    const intrinsicRole = getRole(element, { ...options, ignoreRoleAttribute: true }); // ignore explicit role, but OTHER attributes may influence decision\n    // if the element is not intrinsically a widget role, ALSO require tabindex\n    if (!intrinsicRole || !intrinsicRole?.type.includes('widget')) {\n      const tabindex = attr(element, 'tabindex');\n      return typeof tabindex === 'string' || typeof tabindex === 'number';\n    }\n    return true;\n  }\n\n  return false;\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIARole } from './types.js';\n\n/**\n * Given an ARIA role, return whether or not an accessible name is required.\n * @see https://www.w3.org/TR/wai-aria-1.3/#namecalculation\n */\nexport function isNameRequired(role: ARIARole): boolean {\n  return roles[role]?.nameRequired ?? false;\n}\n"],"names":["attr","hll","tooltip","tagName"],"mappings":"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"}