axe-core 4.4.3-canary.eee2544 → 4.4.3-canary.ff00a00

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -175,7 +175,7 @@
175
175
  },
176
176
  "frame-title-unique": {
177
177
  "description": "Ensures <iframe> and <frame> elements contain a unique title attribute",
178
- "help": "Frames should have a unique title attribute"
178
+ "help": "Frames must have a unique title attribute"
179
179
  },
180
180
  "frame-title": {
181
181
  "description": "Ensures <iframe> and <frame> elements have an accessible name",
@@ -303,7 +303,7 @@
303
303
  },
304
304
  "meta-viewport": {
305
305
  "description": "Ensures <meta name=\"viewport\"> does not disable text scaling and zooming",
306
- "help": "Zooming and scaling should not be disabled"
306
+ "help": "Zooming and scaling must not be disabled"
307
307
  },
308
308
  "nested-interactive": {
309
309
  "description": "Ensures interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
@@ -326,8 +326,8 @@
326
326
  "help": "Page should contain a level-one heading"
327
327
  },
328
328
  "presentation-role-conflict": {
329
- "description": "Flags elements whose role is none or presentation and which cause the role conflict resolution to trigger.",
330
- "help": "Elements of role none or presentation should be flagged"
329
+ "description": "Elements marked as presentational should not have global ARIA or tabindex to ensure all screen readers ignore them",
330
+ "help": "Ensure elements marked as presentational are consistently ignored"
331
331
  },
332
332
  "region": {
333
333
  "description": "Ensures all page content is contained by landmarks",
@@ -373,6 +373,10 @@
373
373
  "description": "Ensure that tables with a caption use the <caption> element.",
374
374
  "help": "Data or header cells must not be used to give caption to a data table."
375
375
  },
376
+ "target-size": {
377
+ "description": "Ensure touch target have sufficient size and space",
378
+ "help": "All touch targets must be 24px large, or leave sufficient space"
379
+ },
376
380
  "td-has-header": {
377
381
  "description": "Ensure that each non-empty data cell in a <table> larger than 3 by 3 has one or more table headers",
378
382
  "help": "Non-empty <td> elements in larger <table> must have an associated table header"
@@ -472,7 +476,8 @@
472
476
  "pass": "Required ARIA children are present",
473
477
  "fail": {
474
478
  "singular": "Required ARIA child role not present: ${data.values}",
475
- "plural": "Required ARIA children role not present: ${data.values}"
479
+ "plural": "Required ARIA children role not present: ${data.values}",
480
+ "unallowed": "Element has children which are not allowed (see related nodes)"
476
481
  },
477
482
  "incomplete": {
478
483
  "singular": "Expecting ARIA child role to be added: ${data.values}",
@@ -505,7 +510,8 @@
505
510
  "noId": "ARIA attribute element ID does not exist on the page: ${data.needsReview}",
506
511
  "noIdShadow": "ARIA attribute element ID does not exist on the page or is a descendant of a different shadow DOM tree: ${data.needsReview}",
507
512
  "ariaCurrent": "ARIA attribute value is invalid and will be treated as \"aria-current=true\": ${data.needsReview}",
508
- "idrefs": "Unable to determine if ARIA attribute element ID exists on the page: ${data.needsReview}"
513
+ "idrefs": "Unable to determine if ARIA attribute element ID exists on the page: ${data.needsReview}",
514
+ "empty": "ARIA attribute value is ignored while empty: ${data.needsReview}"
509
515
  }
510
516
  },
511
517
  "aria-valid-attr": {
@@ -607,12 +613,19 @@
607
613
  "pseudoContent": "Element's background color could not be determined due to a pseudo element"
608
614
  }
609
615
  },
616
+ "link-in-text-block-style": {
617
+ "pass": "Links can be distinguished from surrounding text by visual styling",
618
+ "fail": "The link has no styling (such as underline) to distinguish it from the surrounding text"
619
+ },
610
620
  "link-in-text-block": {
611
621
  "pass": "Links can be distinguished from surrounding text in some way other than by color",
612
- "fail": "Links need to be distinguished from surrounding text in some way other than by color",
622
+ "fail": {
623
+ "fgContrast": "The link has insufficient color contrast of ${data.contrastRatio}:1 with the surrounding text. (Minimum contrast is ${data.requiredContrastRatio}:1, link text: ${data.nodeColor}, surrounding text: ${data.parentColor})",
624
+ "bgContrast": "The link background has insufficient color contrast of ${data.contrastRatio} (Minimum contrast is ${data.requiredContrastRatio}:1, link background color: ${data.nodeBackgroundColor}, surrounding background color: ${data.parentBackgroundColor})"
625
+ },
613
626
  "incomplete": {
614
- "default": "Unable to determine contrast ratio",
615
- "bgContrast": "Element's contrast ratio could not be determined. Check for a distinct hover/focus style",
627
+ "default": "Element's foreground contrast ratio could not be determined",
628
+ "bgContrast": "Element's background contrast ratio could not be determined",
616
629
  "bgImage": "Element's contrast ratio could not be determined due to a background image",
617
630
  "bgGradient": "Element's contrast ratio could not be determined due to a background gradient",
618
631
  "imgNode": "Element's contrast ratio could not be determined because element contains an image node",
@@ -769,15 +782,12 @@
769
782
  }
770
783
  },
771
784
  "only-dlitems": {
772
- "pass": "List element only has direct children that are allowed inside <dt> or <dd> elements",
773
- "fail": "List element has direct children that are not allowed inside <dt> or <dd> elements"
785
+ "pass": "dl element only has direct children that are allowed inside; <dt>, <dd>, or <div> elements",
786
+ "fail": "dl element has direct children that are not allowed: ${data.values}"
774
787
  },
775
788
  "only-listitems": {
776
789
  "pass": "List element only has direct children that are allowed inside <li> elements",
777
- "fail": {
778
- "default": "List element has direct children that are not allowed inside <li> elements",
779
- "roleNotValid": "List element has direct children with a role that is not allowed: ${data.roles}"
780
- }
790
+ "fail": "List element has direct children that are not allowed: ${data.values}"
781
791
  },
782
792
  "structured-dlitems": {
783
793
  "pass": "When not empty, element has both <dt> and <dd> elements",
@@ -810,6 +820,30 @@
810
820
  "pass": "<meta> tag does not disable zooming on mobile devices",
811
821
  "fail": "${data} on <meta> tag disables zooming on mobile devices"
812
822
  },
823
+ "target-offset": {
824
+ "pass": "Target has sufficient offset from its closest neighbor (${data.closestOffset}px should be at least ${data.minOffset}px)",
825
+ "fail": "Target has insufficient offset from its closest neighbor (${data.closestOffset}px should be at least ${data.minOffset}px)",
826
+ "incomplete": {
827
+ "default": "Element with negative tabindex has insufficient offset from its closest neighbor (${data.closestOffset}px should be at least ${data.minOffset}px). Is this a target?",
828
+ "nonTabbableNeighbor": "Target has insufficient offset from a neighbor with negative tabindex (${data.closestOffset}px should be at least ${data.minOffset}px). Is the neighbor a target?"
829
+ }
830
+ },
831
+ "target-size": {
832
+ "pass": {
833
+ "default": "Control has sufficient size (${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px)",
834
+ "obscured": "Control is ignored because it is fully obscured and thus not clickable"
835
+ },
836
+ "fail": {
837
+ "default": "Target has insufficient size (${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px)",
838
+ "partiallyObscured": "Target has insufficient size because it is partially obscured (smallest space is ${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px)"
839
+ },
840
+ "incomplete": {
841
+ "default": "Element with negative tabindex has insufficient size (${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px). Is this a target?",
842
+ "contentOverflow": "Element size could not be accurately determined due to overflow content",
843
+ "partiallyObscured": "Element with negative tabindex has insufficient size because it is partially obscured (smallest space is ${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px). Is this a target?",
844
+ "partiallyObscuredNonTabbable": "Target has insufficient size because it is partially obscured by a neighbor with negative tabindex (smallest space is ${data.width}px by ${data.height}px, should be at least ${data.minSize}px by ${data.minSize}px). Is the neighbor a target?"
845
+ }
846
+ },
813
847
  "header-present": {
814
848
  "pass": "Page has a heading",
815
849
  "fail": "Page does not have a heading"
@@ -964,7 +998,8 @@
964
998
  "default": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
965
999
  "globalAria": "Element's role is not presentational because it has a global ARIA attribute",
966
1000
  "focusable": "Element's role is not presentational because it is focusable",
967
- "both": "Element's role is not presentational because it has a global ARIA attribute and is focusable"
1001
+ "both": "Element's role is not presentational because it has a global ARIA attribute and is focusable",
1002
+ "iframe": "Using the \"title\" attribute on an ${data.nodeName} element with a presentational role behaves inconsistently between screen readers"
968
1003
  }
969
1004
  },
970
1005
  "role-none": {
@@ -993,7 +1028,8 @@
993
1028
  },
994
1029
  "same-caption-summary": {
995
1030
  "pass": "Content of summary attribute and <caption> are not duplicated",
996
- "fail": "Content of summary attribute and <caption> element are identical"
1031
+ "fail": "Content of summary attribute and <caption> element are identical",
1032
+ "incomplete": "Unable to determine if <table> element has a caption"
997
1033
  },
998
1034
  "scope-value": {
999
1035
  "pass": "Scope attribute is used correctly",
@@ -1028,4 +1064,4 @@
1028
1064
  }
1029
1065
  },
1030
1066
  "incompleteFallbackMessage": "axe couldn't tell the reason. Time to break out the element inspector!"
1031
- }
1067
+ }