aria.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import {create} from './util/create.js'
  2. import {booleanish, number, spaceSeparated} from './util/types.js'
  3. export const aria = create({
  4. properties: {
  5. ariaActiveDescendant: null,
  6. ariaAtomic: booleanish,
  7. ariaAutoComplete: null,
  8. ariaBusy: booleanish,
  9. ariaChecked: booleanish,
  10. ariaColCount: number,
  11. ariaColIndex: number,
  12. ariaColSpan: number,
  13. ariaControls: spaceSeparated,
  14. ariaCurrent: null,
  15. ariaDescribedBy: spaceSeparated,
  16. ariaDetails: null,
  17. ariaDisabled: booleanish,
  18. ariaDropEffect: spaceSeparated,
  19. ariaErrorMessage: null,
  20. ariaExpanded: booleanish,
  21. ariaFlowTo: spaceSeparated,
  22. ariaGrabbed: booleanish,
  23. ariaHasPopup: null,
  24. ariaHidden: booleanish,
  25. ariaInvalid: null,
  26. ariaKeyShortcuts: null,
  27. ariaLabel: null,
  28. ariaLabelledBy: spaceSeparated,
  29. ariaLevel: number,
  30. ariaLive: null,
  31. ariaModal: booleanish,
  32. ariaMultiLine: booleanish,
  33. ariaMultiSelectable: booleanish,
  34. ariaOrientation: null,
  35. ariaOwns: spaceSeparated,
  36. ariaPlaceholder: null,
  37. ariaPosInSet: number,
  38. ariaPressed: booleanish,
  39. ariaReadOnly: booleanish,
  40. ariaRelevant: null,
  41. ariaRequired: booleanish,
  42. ariaRoleDescription: spaceSeparated,
  43. ariaRowCount: number,
  44. ariaRowIndex: number,
  45. ariaRowSpan: number,
  46. ariaSelected: booleanish,
  47. ariaSetSize: number,
  48. ariaSort: null,
  49. ariaValueMax: number,
  50. ariaValueMin: number,
  51. ariaValueNow: number,
  52. ariaValueText: null,
  53. role: null
  54. },
  55. transform(_, property) {
  56. return property === 'role'
  57. ? property
  58. : 'aria-' + property.slice(4).toLowerCase()
  59. }
  60. })