aria.js 1.7 KB

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