@@ -2,9 +2,23 @@ const Eval = require('./eval')
2
2
3
3
exports . audit = ( ) => {
4
4
return Eval . execute ( function ( ) {
5
- const { axs} = window . __devtron
5
+ const { axs} = window . __devtron // defined in browser-globals.js
6
6
const config = new axs . AuditConfiguration ( { showUnsupportedRulesWarning : false } )
7
- return axs . Audit . run ( config ) . map ( function ( result ) {
7
+ const results = axs . Audit . run ( config )
8
+
9
+ // Create a lookup map so users can click on an element to inspect it
10
+ let idCounter = 0
11
+ window . __devtron . accessibilityAuditMap = new Map ( )
12
+ results . forEach ( function ( result ) {
13
+ const elements = result . elements || [ ]
14
+ elements . forEach ( function ( element ) {
15
+ const id = idCounter ++
16
+ element . __accessibilityAuditId = id
17
+ window . __devtron . accessibilityAuditMap . set ( id , element )
18
+ } )
19
+ } )
20
+
21
+ return results . map ( function ( result ) {
8
22
const elements = result . elements || [ ]
9
23
let status = 'N/A'
10
24
if ( result . result === 'PASS' ) {
@@ -19,7 +33,14 @@ exports.audit = () => {
19
33
title : result . rule . heading ,
20
34
url : result . rule . url ,
21
35
elements : elements . map ( function ( element ) {
22
- return window . __devtron . axs . utils . getQuerySelectorText ( element )
36
+ let selector = element . tagName . toLowerCase ( )
37
+ if ( element . className ) {
38
+ selector += '.' + element . className . split ( ' ' ) . join ( '.' )
39
+ }
40
+ return {
41
+ selector : selector ,
42
+ id : element . __accessibilityAuditId
43
+ }
23
44
} )
24
45
}
25
46
} ) . sort ( function ( resultA , resultB ) {
0 commit comments