| OLD | NEW |
| (Empty) | |
| 1 ## 2.11.0 - 2016-09-14 |
| 2 |
| 3 ### Enhancements |
| 4 |
| 5 * Performance enhancements (#263) |
| 6 |
| 7 ## 2.10.1-rc.0 - 2016-01-13 |
| 8 |
| 9 ### Bug fixes: |
| 10 |
| 11 * Escape special characters to be used in a query selector string (PR #267) |
| 12 * Fix exception thrown by RoleTooltipRequiresDescribedBy.js (#269) |
| 13 |
| 14 ## 2.10.0 - 2015-11-13 |
| 15 |
| 16 ## 2.10.0-rc.1 - 2015-10-19 |
| 17 |
| 18 ### Bug fixes: |
| 19 |
| 20 * `linkWithUnclearPurpose` should only look at links, not `<a>` without `href`.
(#245) |
| 21 |
| 22 ## 2.10.0-rc.0 - 2015-10-09 |
| 23 |
| 24 ### New rules |
| 25 * A tabpanel should be related to a tab via aria-controls or aria-labelledby (`s
rc/audits/UncontrolledTabpanel.js`) |
| 26 * A data table must identify row and column headers (`src/audits/TableHasAppropr
iateHeaders.js`) |
| 27 * A tooltip element should have an aria-describedby referring to it (`src/audits
/RoleTooltipRequiresDescribedBy.js`). |
| 28 |
| 29 ### Enhancements |
| 30 |
| 31 * Pull DOM-related functionality out into `DOMUtils.js` |
| 32 |
| 33 ### Bug fixes: |
| 34 |
| 35 * Fix `findTextAlternatives` not always correctly ignoring hidden elements (#217
). |
| 36 * `findTextAlternatives` now honors `alt` attribute of input type image |
| 37 * Revert #150 which was causing the extension not to work. |
| 38 * AX_HTML_02 (duplicate IDs) now only audits elements that are referenced by an
IDREF (#141); |
| 39 * Fix #171 by being smarter about finding the composed parent node. |
| 40 * Tweak in canScrollTo to handle the (common) case where the container is `docum
ent.body` (#243). |
| 41 |
| 42 ## 2.9.0 - 2015-09-04 |
| 43 |
| 44 ## 2.9.0-rc.0 - 2015-08-21 |
| 45 |
| 46 ### New rules |
| 47 |
| 48 * A label element may not have labelable descendants other than its labeled cont
rol (`src/audits/MultipleLabelableElementsPerLabel.js`) |
| 49 |
| 50 ### Enhancements |
| 51 |
| 52 * Implement support for specifying audit configuration options through an object
when initializing audits (#165). |
| 53 * Implement support for AMD loaders. |
| 54 |
| 55 ### Bug fixes: |
| 56 |
| 57 * Fix `badAriaAttributeValue` not correctly handling decimal values (#182). |
| 58 * Work around null pointer exception caused by closure compiler issue (#183). |
| 59 * Add a special case to handle color `"transparent"` to fix (#180). |
| 60 * Fix `matchSelector` not working properly in browser environments without vendo
r prefixes (#189). |
| 61 * Fix false positives on elements with no role for Unsupported ARIA Attribute ru
le (#178 and #199). |
| 62 * Fix ARIA `tablist` and ARIA `tab` scope (#204) |
| 63 * Fix link with clear purpose with text alternative (#156); |
| 64 * Handle edge cases in number parser, e.g. "+1", ".1", "01" |
| 65 * HTML button containing img with alt attribute now passes controlsWithoutLabel
(#202) |
| 66 * Disabled elements should be ignored by low contrast audit (#205) |
| 67 * Fix input of type "text" did not find correct implied role (#225) |
| 68 * Hidden links are no longer relevant for meaningful link text rule. |
| 69 |
| 70 ## 2.8.0 - 2015-07-24 |
| 71 |
| 72 ## 2.8.0-rc.0 - 2015-07-10 |
| 73 |
| 74 ### Enhancements: |
| 75 * Pull color code into separate file. |
| 76 * Improve color suggestion algorithm. |
| 77 * Descend into iframes when collecting matching elements. |
| 78 |
| 79 ## 2.7.1 - 2015-06-30 |
| 80 |
| 81 ## 2.7.1-rc.1 - 2015-06-23 |
| 82 |
| 83 ### Bug fixes: |
| 84 |
| 85 * Check for null `textAlternatives` in `FocusableElementNotVisibleAndNotAriaHidd
en`'s `relevantElementMatcher` method. |
| 86 |
| 87 ## 2.7.1-rc.0 - 2015-06-15 |
| 88 |
| 89 ### Enhancements: |
| 90 * Rework findTextAlternatives not to return non-exposed text alternatives. |
| 91 * Add Bower config (#157) |
| 92 |
| 93 ### Bug fixes: |
| 94 * Check for any text alternatives when assessing unlabeled images (#154). |
| 95 |
| 96 ## 2.7.0 - 2015-05-15 |
| 97 |
| 98 ### New rules |
| 99 * This element does not support ARIA roles, states and properties (`src/audits/A
riaOnReservedElement.js`) |
| 100 * aria-owns should not be used if ownership is implicit in the DOM (`src/audits/
AriaOwnsDescendant.js`) |
| 101 * Elements with ARIA roles must be in the correct scope (`src/audits/AriaRoleNot
Scoped.js`) |
| 102 * An element's ID must be unique in the DOM (`src/audits/DuplicateId.js`) |
| 103 * The web page should have the content's human language indicated in the markup
(`src/audits/HumanLangMissing.js`) |
| 104 * An element's ID must not be present in more that one aria-owns attribute at an
y time (`src/audits/MultipleAriaOwners.js`) |
| 105 * ARIA attributes which refer to other elements by ID should refer to elements w
hich exist in the DOM (`src/audits/NonExistentAriaRelatedElement.js` - previousl
y `src/audits/NonExistentAriaLabeledBy.js`) |
| 106 * Elements with ARIA roles must ensure required owned elements are present (`src
/audits/RequiredOwnedAriaRoleMissing.js`) |
| 107 * Avoid positive integer values for tabIndex (`src/audits/TabIndexGreaterThanZer
o.js`) |
| 108 * This element has an unsupported ARIA attribute (`src/audits/UnsupportedAriaAtt
ribute.js`) |
| 109 |
| 110 ### Enhancements: |
| 111 * Add configurable blacklist phrases and stop words to LinkWithUnclearPurpose (#
99) |
| 112 * Detect and warn if we reuse the same code for more than one rule. (#133) |
| 113 * Force focus before testing visibility on focusable elements. (#65) |
| 114 * Use getDistributedNodes to get nodes distributed into shadowRoots (#128) |
| 115 * Add section to Audit Rules page for HumanLangMissing and link to it from rule
(#119) |
| 116 * Reference "applied role" in axs.utils.getRoles enhancement (#130) |
| 117 * Add warning that AX_FOCUS_02 is not available from axs.Audit.run() (#85) |
| 118 |
| 119 ### Bug fixes: |
| 120 * Incorrect use of nth-of-type against className in utils.getQuerySelectorText (
#87) |
| 121 * AX_TEXT_01 Accessibility Audit test should probably ignore role=presentation e
lements (#97) |
| 122 * Fix path to audit rules in phantomjs runner (#108) |
| 123 * Label audit should fail if form fields lack a label, even with placeholder tex
t (#81) |
| 124 * False positives for controls without labels with role=presentation (#23) |
| 125 * Fix "valid" flag on return value of axs.utils.getRoles (#131) |
| 126 |
| 127 Note: this version number is somewhat arbitrary - just bringing it vaguely in li
ne with [the extension](https://github.com/GoogleChrome/accessibility-developer-
tools-extension) since that's where the library originated - but will use semver
for version bumps going forward from here. |
| 128 |
| 129 ## 0.0.5 - 2014-02-04 |
| 130 |
| 131 ### Enhancements: |
| 132 * overlapping elements detection code made more sophisticated |
| 133 * axs.properties.getFocusProperties() returns more information about visibility |
| 134 * new axs.properties.hasDirectTextDescendant() method with more sophisticated de
tection of text content |
| 135 |
| 136 ### Bug fixes: |
| 137 * FocusableElementNotVisibleAndNotAriaHidden audit passes on elements which are
brought onscreen on focus |
| 138 * UnfocusableElementsWithOnclick checks for element.disabled |
| 139 * Fix infinite loop when getting descendant text content of a label containing a
n input |
| 140 * Detect elements which are out of scroll area of any parent element, not just t
he document scroll area |
| 141 * findTextAlternatives doesn't throw TypeError if used on a HTMLSelectElement |
| 142 |
| 143 ## 0.0.4 - 2013-10-03 |
| 144 |
| 145 ### Enhancements: |
| 146 |
| 147 * axs.AuditRule.run() has a new signature: it now takes an options object. Pleas
e see method documentation for details. |
| 148 * Audit Rule severity can be overridden (per Audit Rule) in AuditConfig. |
| 149 |
| 150 ### Bug fixes: |
| 151 |
| 152 * axs.utils.isLowContrast() now rounds to the nearest 0.1 before checking (so `#
777` is now a passing value) |
| 153 * MainRoleOnInappropriateElement was always failing due to accessible name calcu
lation taking the main role into account and not descending into content (now ju
st gets descendant content directly) |
| 154 * UnfocusableElementsWithOnClick had a dangling if-statement causing very noisy
false positives |
| OLD | NEW |