From 912cffa134811285cb2b0b99beb45236d2918014 Mon Sep 17 00:00:00 2001 From: Ali Unwala Date: Thu, 7 Apr 2022 14:58:22 -0500 Subject: [PATCH 001/103] Adding new files to new tabstops-poc baseline code. --- .../manifest_Chrome.json | 6 + accessibility-checker-extension/package.json | 1 + .../src/manifest.json | 10 + .../src/ts/contentScripts/draw.ts | 584 ++++++++++++++++++ .../src/ts/contentScripts/index.ts | 1 + .../src/ts/devtools/ReportTabStops.tsx | 195 ++++++ .../src/ts/devtools/TabStopsHeader.tsx | 68 ++ .../src/ts/styles/reportTabStops.scss | 12 + .../src/ts/util/contextScriptMessaging.ts | 53 ++ .../src/ts/util/xpath.js | 56 ++ reportTabStops.scss | 12 + 11 files changed, 998 insertions(+) create mode 100644 accessibility-checker-extension/src/ts/contentScripts/draw.ts create mode 100644 accessibility-checker-extension/src/ts/contentScripts/index.ts create mode 100644 accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx create mode 100644 accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx create mode 100644 accessibility-checker-extension/src/ts/styles/reportTabStops.scss create mode 100644 accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts create mode 100644 accessibility-checker-extension/src/ts/util/xpath.js create mode 100644 reportTabStops.scss diff --git a/accessibility-checker-extension/manifest_Chrome.json b/accessibility-checker-extension/manifest_Chrome.json index b44ebdf58..ee708ef08 100644 --- a/accessibility-checker-extension/manifest_Chrome.json +++ b/accessibility-checker-extension/manifest_Chrome.json @@ -39,5 +39,11 @@ "page": "options.html", "open_in_tab": true }, + "content_scripts": [ + { + "matches": [""], + "js": ["draw.js"] + } + ], "incognito": "split" } diff --git a/accessibility-checker-extension/package.json b/accessibility-checker-extension/package.json index 86674bd96..d5286a12f 100644 --- a/accessibility-checker-extension/package.json +++ b/accessibility-checker-extension/package.json @@ -30,6 +30,7 @@ "react-tooltip": "^4.2.21", "redux": "^4.1.2", "string-hash": "^1.1.3", + "tabbable": "^5.2.0", "webext-redux": "^2.1.9" }, "devDependencies": { diff --git a/accessibility-checker-extension/src/manifest.json b/accessibility-checker-extension/src/manifest.json index 0471adad3..c4647df03 100644 --- a/accessibility-checker-extension/src/manifest.json +++ b/accessibility-checker-extension/src/manifest.json @@ -35,6 +35,16 @@ ], "persistent": true }, + "content_scripts": [ + { + "matches": [ + "" + ], + "js": [ + "draw.js" + ] + } + ], "options_ui": { "page": "options.html", "open_in_tab": true diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts new file mode 100644 index 000000000..f86a2f434 --- /dev/null +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -0,0 +1,584 @@ +// import { launch } from 'puppeteer'; +// import "./draw.scss"; +// import { TabsSkeleton } from 'carbon-components-react'; +// import ContextScriptMessaging from "../util/contextScriptMessaging"; +import TabMessaging from "../util/tabMessaging"; +// import getAbsoluteXPath from "../util/xpath"; +// import PanelMessaging from '../util/panelMessaging'; + + +console.log("Content Script for drawing tab stops has loaded") + +// var intervalTimer: any; + +TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { + console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") + console.log(message.tabStopsResults); + document.body.scrollTop = document.documentElement.scrollTop = 0; + + injectCSS( + ` + .line { + stroke-width: 1px; + stroke: black; + } + .lineError { + stroke-width: 1px; + stroke: red; + } + .lineEmboss { + stroke-width: 1px; + stroke: white; + } + .lineEmbossError { + stroke-width: 1px; + stroke: white; + } + .lineTop { + stroke-width: 1px; + stroke: black; + } + .lineBottom { + stroke-width: 1px; + stroke: black; + } + .lineLeft { + stroke-width: 1px; + stroke: black; + } + .lineRight { + stroke-width: 1px; + stroke: black; + } + ` + ); + injectCSS( + `#svgCircle{ + position: absolute !important; + top: 0 !important; + left: 0 !important; + overflow: visible !important; + pointer-events: none !important; + z-index: 2147483646 !important; + visibility: visible !important; + } + + .highlightSVG{ + fill: blue + } + ` + ); + // position: absolute; + // pointer-events: none; + // z-index: 1000; + // top: 0; + // left: 0; + // width: 100%; + // height: 100%; + // overflow: visible; + + injectCSS( + `#svgLine{ + position: absolute !important; + top: 0 !important; + left: 0 !important; + overflow: visible !important; + pointer-events: none !important; + z-index: 2147483646 !important; + visibility: visible !important; + } + .svgIconTest{ + position: absolute !important; + overflow: visible !important; + pointer-events: none !important; + z-index: 2147483646 !important; + } + .circleText{ + pointer-events: none !important; + } + + .circleSmall{ + font-size: 12px !important; + } + ` + ); + draw(message.tabStopsResults); + drawErrors(message.tabStopsErrors); + window.addEventListener('resize', function () { + deleteDrawing(".deleteMe"); + redraw(message.tabStopsResults); + redrawErrors(message.tabStopsErrors) + // clearInterval(intervalTimer) + }) + + // intervalTimer = setInterval(function () { + // let nodes = getNodesXpaths(message.tabStopsResults); + // nodes = convertXpathsToHtmlElements(nodes); + // nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent + // return el != null; + // }); + + // for (let i = 0; i < nodes.length; i++) { + // let node = nodes[i] //document.evaluate(message.tabStopsResults[i].path.dom, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + // let line: any = document.getElementsByClassName('lineTop lineNumber'+i)[0] + + // console.log("Evaluated noded",i," =", (node)); + // console.log("Evaluated node: = ", (node as HTMLElement).getBoundingClientRect().y); + // console.log("Evaluated line y1: = ", line.y1.baseVal.value); + + // if (Math.abs((node as HTMLElement).getBoundingClientRect().y - line.y1.baseVal.value) > 3) { // Set to 3 because the offset variable is set to 3 + // deleteDrawing(".deleteMe"); + // redraw(message.tabStopsResults); + // redrawErrors(message.tabStopsErrors) + // break; + // } + + // } + + // }, 3000); + + + + return true; +}); + +TabMessaging.addListener("HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", async (message: any) => { + // console.log("Message HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS recieved in foreground"); + // console.log(message); + + // Clearing any that are already highlighted + document.querySelectorAll(".highlightSVG").forEach(e => e.classList.remove("highlightSVG")); + // Highlighting any that are "clicked" + document.getElementsByClassName("circleNumber" + message.tabStopId)[0].classList.add("highlightSVG"); + return true; +}); + +//@ts-ignore +TabMessaging.addListener("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { + // console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS recieved in foreground") + // console.log(message) + + deleteDrawing(".deleteMe"); + return true; +}); + +function injectCSS(styleString: string) { + const style = document.createElement('style'); + style.textContent = styleString; + document.head.append(style); +} + +function draw(tabStopsErrors: any) { + console.log("Inside draw") + redraw(tabStopsErrors); +} + +function drawErrors(tabStopsErrors: any) { + console.log("Inside drawErrors") + redrawErrors(tabStopsErrors); +} + +function deleteDrawing(classToRemove: string) { + document.querySelectorAll(classToRemove).forEach(e => e.remove()); +} + + +function redrawErrors(tabStopsErrors: any) { + console.log("Inside redrawErrors") + setTimeout(() => { + console.log("tabbable error nodes = ", tabStopsErrors); + let nodes = getNodesXpaths(tabStopsErrors); + nodes = convertXpathsToHtmlElements(nodes); + nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent + return el != null; + }); + let offset = 0; + + + for (let i = 0; i < nodes.length; i++) { + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + // makeCircleSmall(x, y, i, 7); + // makeTextSmall(x, y, (i + 1).toString()); + + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["lineError"]); + makeLine(x, y, x, yPlusHeight, ["lineError"]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + + // makeIcon(xPlusWidth-6, y-6, "test"); // 12px icon on top right corner + makeIcon(x, y, "test"); + } + }, 1) +} + + + +function redraw(tabStopsResults: any) { + console.log("Inside redraw") + setTimeout(() => { + // let nodes = getNodesToDrawBettween(); + let nodes = getNodesXpaths(tabStopsResults); + let nodeXpaths = nodes; + + let offset = 3; + nodes = convertXpathsToHtmlElements(nodes); + nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent + return el != null; + }); + nodeXpaths = nodeXpaths.filter(function (el: any) { // Removing failure case of null nodes being sent + return el != null; + }); + + console.log("tabbable nodes = ", nodes); + + // JCH - need for last line to return to first node + for (let i = 0; i < nodes.length - 1; i++) { //Make lines between numbers + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } + } + + + for (let i = 0; i < nodes.length; i++) { + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + if (i == 32) { + console.log("x y :", x, " ", y) + } + makeCircleSmall(x, y, i, 13, nodeXpaths[i]); + makeTextSmall(x, y, (i + 1).toString()); + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); + makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + } + }, 1) +} + +// function makeIcons(x1: number, y1: number, arrayOfIcons: any) { +// let numberOfIcons = 0; // TODO ALI Needs to be dynamically set, this the the array length of the icons that need to be shown should be set to arrayOfIcons.length +// let iconName = "" // TODO ALI Needs to be dynamically set, this is the name of the icon to draw +// arrayOfIcons = arrayOfIcons // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." + +// // Bias the icons to the center of the circles +// x1 = x1 + 15; +// y1 = y1 - 8; +// let iconBias = 16 + +// for (let i = 0; i < numberOfIcons; i++) { +// makeIcon(x1 + iconBias * i, y1, iconName); +// } + +// } + +function makeIcon(x1: number, y1: number, iconName: string) { + iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." + var iconClone = createSVGErrorIconTemplate(); + iconClone.removeAttribute("display"); + iconClone.classList.remove("svgIcon1"); + iconClone.classList.add("svgIconTest"); + iconClone.classList.add("deleteMe"); + iconClone.style.position = "absolute"; + iconClone.style.left = String(x1) + "px"; + iconClone.style.top = String(y1) + "px"; + // (iconClone as HTMLElement).style.fill = "red"; + // (iconClone as HTMLElement).onclick = () => { alert("You have found an warning icon") }; + + if (document.getElementById("svgIcons") == null) { + var elemDIV = document.createElement('div'); + elemDIV.setAttribute("class", "svgIcons"); + document.body.appendChild(elemDIV); + } + document.getElementsByClassName('svgIcons')[0].appendChild(iconClone) + + +} + + +function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: number, xpath: string) { + + // TODO: Find possible better way to deal with this (Talk to design) + // If the circle is being drawn slighly off of the screen move it into the screen + if (x1 >= -10 && x1 <= 6) { + x1 = 12; + } + if (y1 >= -10 && y1 <= 6) { + y1 = 12; + } + var circleClone = createSVGCircleTemplate(); + circleClone.removeAttribute("id"); + circleClone.classList.add("deleteMe"); + circleClone.classList.add("circleNumber" + circleNumber); + circleClone.setAttribute('cx', String(x1)); + circleClone.setAttribute('cy', String(y1)); + circleClone.setAttribute('pointer-events', "auto"); + circleClone.setAttribute('r', String(radius)); + circleClone.onclick = () => { + TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) + }; + if (document.getElementById("svgCircle") == null) { + const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSVG.setAttribute("id", "svgCircle"); + document.body.appendChild(elemSVG); + } + document.getElementById('svgCircle')?.appendChild(circleClone) +} + +function makeTextSmall(x1: number, y1: number, n: string) { + + // TODO: Find possible better way to deal with this (Talk to design) + // If the circle is being drawn slighly off of the screen move it into the screen + if (x1 >= -10 && x1 <= 6) { + x1 = 12; + } + if (y1 >= -10 && y1 <= 6) { + y1 = 12; + } + + // let text = document.getElementsByClassName('circleText')[0] + var textClone = createSVGCircleTextTemplate();//text.cloneNode(true); + textClone.removeAttribute("id"); + textClone.classList.add("deleteMe"); + textClone.classList.add("circleSmall"); + + if (n.length >= 3) { // If number has 3+ digits shift it a few more px to center it + textClone.setAttribute('x', String(x1 - 10)); + textClone.setAttribute('y', String(y1 + 4)); + } else if (n.length == 2) { // number has 2 digits + textClone.setAttribute('x', String(x1 - 6)); + textClone.setAttribute('y', String(y1 + 4)); + } else { // number has 1 digit + textClone.setAttribute('x', String(x1 - 3)); + textClone.setAttribute('y', String(y1 + 3)); + } + textClone.innerHTML = n; + if (document.getElementById("svgCircle") == null) { + const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSVG.setAttribute("id", "svgCircle"); + document.body.appendChild(elemSVG); + } + document.getElementById('svgCircle')?.appendChild(textClone) + + +} + +function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: string[]) { + // let line = document.getElementsByClassName('tabLine')[0] + var lineClone = createSVGLineTemplate()//line.cloneNode(true); + if (CSSclass) { + for (let i = 0; i < CSSclass.length; i++) { + lineClone.classList.add(CSSclass[i]); + } + } + lineClone.removeAttribute("id"); + lineClone.classList.add("deleteMe"); + lineClone.setAttribute('x1', String(x1)); + lineClone.setAttribute('y1', String(y1)); + lineClone.setAttribute('x2', String(x2)); + lineClone.setAttribute('y2', String(y2)); + if (document.getElementById("svgLine") == null) { + const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSVG.setAttribute("id", "svgLine"); + document.body.appendChild(elemSVG); + } + document.getElementById('svgLine')?.appendChild(lineClone); +} + +function createSVGCircleTemplate() { + // This is what we are creating: + // + // THIS PART-> + // + // + var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + elemCircle.setAttribute("id", "circle"); + elemCircle.setAttribute("class", "tabCircle"); + elemCircle.setAttribute("stroke", "grey"); + elemCircle.setAttribute("stroke-width", "1"); + elemCircle.setAttribute("fill", "purple"); + return elemCircle +} + +function createSVGCircleTextTemplate() { + // This is what we are creating: + // + // + // THIS PART-> + // + var elemText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + elemText.setAttribute("class", "circleText"); + elemText.setAttribute("font-family", "helvetica"); + elemText.setAttribute("font-size", "10"); + elemText.setAttribute("font-weight", "normal"); + elemText.setAttribute("fill", "white"); + return elemText +} + +function createSVGLineTemplate() { + // This is what we are creating: + // + // + // + var elemLine = document.createElementNS('http://www.w3.org/2000/svg', 'line'); + elemLine.setAttribute("id", "line"); + elemLine.setAttribute("class", "tabLine"); + return elemLine +} + +function createSVGErrorIconTemplate() { + // This is what we are creating: + // + // + // + // + // + // + // + // + // + var elemSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSvg.setAttribute("class", "svgIcon1"); + elemSvg.setAttribute("display", "none"); + elemSvg.setAttribute("xmlns", "http://www.w3.org/2000/svg"); + elemSvg.setAttribute("width", "12px"); + elemSvg.setAttribute("height", "12px"); + elemSvg.setAttribute("viewBox", "0 0 32 32"); + + var elemDefs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); + + var elemStyle = document.createElement('style'); + elemStyle.innerText = ".cls-1 { fill: none; }" + + var elemPath1 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + elemPath1.setAttribute("class", "cls-1"); + elemPath1.setAttribute("d", "M16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Zm-1.125-5h2.25V12h-2.25Z"); + elemPath1.setAttribute("style", " fill: black; "); + + var elemPath2 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + elemPath2.setAttribute("d", "M16.002,6.1714h-.004L4.6487,27.9966,4.6506,28H27.3494l.0019-.0034ZM14.875,12h2.25v9h-2.25ZM16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Z"); + elemPath2.setAttribute("style", " fill: yellow; "); + + var elemPath3 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + elemPath3.setAttribute("d", "M29,30H3a1,1,0,0,1-.8872-1.4614l13-25a1,1,0,0,1,1.7744,0l13,25A1,1,0,0,1,29,30ZM4.6507,28H27.3493l.002-.0033L16.002,6.1714h-.004L4.6487,27.9967Z"); + elemPath3.setAttribute("style", " fill: black; "); + + var elemRect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + elemRect.setAttribute("data-name", "<Transparent Rectangle>"); + elemRect.setAttribute("class", "cls-1"); + elemRect.setAttribute("width", "32"); + elemRect.setAttribute("height", "32"); + + elemDefs.appendChild(elemStyle); + elemSvg.appendChild(elemDefs); + elemSvg.appendChild(elemPath1); + elemSvg.appendChild(elemPath2); + elemSvg.appendChild(elemPath3); + elemSvg.appendChild(elemRect); + return elemSvg; +} + +function convertXpathsToHtmlElements(nodes: any) { + let results: any = []; + nodes.map((elem: any) => { + results.push(document.evaluate(elem, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue); + }); + return results; +} + +function getNodesXpaths(nodes: any) { + let tabXpaths: any = []; + nodes.map((result: any) => { + tabXpaths.push(result.path.dom); + }); + return tabXpaths; +} + +// function getXPathForElement(element: any) { +// const idx: any = (sib: any, name: any) => sib +// ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) +// : 1; +// const segs: any = (elm: any) => (!elm || elm.nodeType !== 1) +// ? [''] +// : [...segs(elm.parentNode), `${elm.localName.toLowerCase()}[${idx(elm)}]`]; + + +// function getXPathForElement(element) { // same function as above but without typescript for use on chrome console +// const idx = (sib, name) => sib ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) : 1; +// const segs: any = (elm: any) => (!elm || elm.nodeType !== 1) ? [''] : [...segs(elm.parentNode), `${elm.localName.toLowerCase()}[${idx(elm)}]`]; +// return segs(element).join('/'); +// } + +// UNUSED xpath evaluation function: +// function getElementByXPath(path:any) { +// return (new XPathEvaluator()) +// .evaluate(path, document.documentElement, null, +// XPathResult.FIRST_ORDERED_NODE_TYPE, null) +// .singleNodeValue; +// } diff --git a/accessibility-checker-extension/src/ts/contentScripts/index.ts b/accessibility-checker-extension/src/ts/contentScripts/index.ts new file mode 100644 index 000000000..328a8b3ea --- /dev/null +++ b/accessibility-checker-extension/src/ts/contentScripts/index.ts @@ -0,0 +1 @@ +import "./draw.ts" diff --git a/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx b/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx new file mode 100644 index 000000000..f49fe219b --- /dev/null +++ b/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx @@ -0,0 +1,195 @@ +/****************************************************************************** + Copyright:: 2020- IBM, Inc + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + *****************************************************************************/ + +import React from "react"; + +import { + Row, +} from 'carbon-components-react'; + +import { IReport, + IReportItem, + valueMap + } from "./Report"; + +import Violation16 from "../../assets/Violation16.svg"; +import NeedsReview16 from "../../assets/NeedsReview16.svg"; +import Recommendation16 from "../../assets/Recommendation16.svg"; + +import "../styles/subpanel.scss"; +import "../styles/reportTabStops.scss"; + +interface IReportTabStopsState { +} + +interface IReportTabStopsProps { + report: IReport, + tabStopsHighlight: (index: number, result: any) => void, + tabStopsResults: IReportItem[] // Note: the collection is actually all issues that are tab stops +} + +interface IGroup { + title: string, // aria path for the element role row + counts: { [key: string]: number }, // number of Violations, Needs Review, Recommendations + // associated with the element role + fvCounts: { [key: string]: number }, + items: IReportItem[] // issue rows associated with the element role +}; + +export default class ReportTabStops extends React.Component { + state: IReportTabStopsState = {}; + + componentDidMount() { + // console.log("JCH - ReportTabStops"); + } + + printTabStops() { + // console.log("printTabStops"); + + // console.log("JCH make groups for tabs"); + let itemIdx = 0; + let groups : IGroup[] = [] + let groupMap : { + [key: string]: IGroup + } | null = {}; + if (this.props.report !== null) { + this.props.tabStopsResults.map((result:any) => { // for each tab stop + + for (const item of this.props.report.results) { // for each issue + if (item.value[1] === "PASS") { + continue; + } + // console.log("tabStop ",index, " aria path: ",result.path.aria, item.path.aria); + item.itemIdx = itemIdx++; + // group by element role === aria path + // if (item.path.aria === result.path.aria) { + // console.log("Found match"); + // } else { + // console.log("Match not found"); + // } + + if (item.path.aria === result.path.aria) { + let thisGroup = (groupMap![item.path.aria]); + if (!thisGroup) { + thisGroup = { + title: result.path.aria, + counts: {}, + fvCounts: {}, + items: [] + } + groupMap![item.path.aria] = thisGroup; + groups.push(thisGroup); + } + thisGroup.items.push(item); + let val = valueMap[item.value[0]][item.value[1]] || item.value[0] + "_" + item.value[1]; + thisGroup.counts[val] = (thisGroup.counts[val] || 0) + 1; + if (item.selected || item.selectedChild) { + thisGroup.fvCounts[val] = (thisGroup.fvCounts[val] || 0) + 1; + } + } + } + // console.log("groups before sort = ",groups); + + // JCH - now for tab stops we need to sort issues + // according to type in order Violations, Needs Review, Recommendations + // within each group (i.e., a Tab Stop element) need to sort the items according to their value + const valPriority = ["Violation", "Needs review", "Recommendation"]; + let groupVals = []; + groups.map(group => { + groupVals.length = 0; + group.items.sort( function(a,b) { + let aVal = valueMap[a.value[0]][a.value[1]] || a.value[0] + "_" + a.value[1]; + let bVal = valueMap[b.value[0]][b.value[1]] || b.value[0] + "_" + b.value[1]; + let aIndex = valPriority.indexOf(aVal); + let bIndex = valPriority.indexOf(bVal); + return aIndex - bIndex; + }) + }) + + }) + // console.log("groups = ",groups); + + } + + + let temp:any = []; + let vCount = 1; + let nrCount = 1; + let rCount = 1; + // console.log("Render Tab Stops"); + if (this.props.tabStopsResults !== undefined) { + this.props.tabStopsResults?.map((result: any, index:number) => { + temp.push( + +
+
+ {index+1} +
+
+ { { vCount > 0 && <>Violation{vCount}  } } + { { nrCount > 0 && <>Needs review{nrCount}  } } + { { rCount > 0 && <>Recommendation{rCount} } } +
+ +
+ {result.apiArgs[0].name} +
+
+
+ ); + }); + // console.log("temp = ", temp); + return temp; + } + + } + + render() { + // console.log("start TabStops render"); + + return
+ +
+ Tab stops summary +
+
+ +
+
+ Index +
+
+ Issues +
+
+ Role +
+
+ Name +
+
+
+ {/* {console.log("call printTabStops")} */} + {this.printTabStops()} +
+ } +} diff --git a/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx b/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx new file mode 100644 index 000000000..11a19a698 --- /dev/null +++ b/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx @@ -0,0 +1,68 @@ +/****************************************************************************** + Copyright:: 2020- IBM, Inc + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + *****************************************************************************/ + + import React from "react"; + + import { + Button + } from 'carbon-components-react'; + + + interface ITabStopsHeaderState { + } + + interface ITabStopsHeaderProps { + layout: "main" | "sub", + tabStopsHandler: () => void + } + + export default class TabStopsHeader extends React.Component { + state: ITabStopsHeaderState = {}; + + componentDidMount(){ + var button = document.getElementById('backToListView'); + if (button) { + button.focus(); + } + } + + render() { + // console.log("start TabStopsHeader render"); + let headerContent = (
+
+
+ +
+
+
+ +
+
+
+
); + + if (this.props.layout === "main") { + return
+ {headerContent} +
+ } else { + return
+ {headerContent} +
+ } + } + } \ No newline at end of file diff --git a/accessibility-checker-extension/src/ts/styles/reportTabStops.scss b/accessibility-checker-extension/src/ts/styles/reportTabStops.scss new file mode 100644 index 000000000..f8e5a4e97 --- /dev/null +++ b/accessibility-checker-extension/src/ts/styles/reportTabStops.scss @@ -0,0 +1,12 @@ +/* Emulate Gap Support with Flexbox and Margins */ +.emulated-flex-gap { + --gap: 12px; + display: inline-flex; + flex-wrap: wrap; + margin: calc(-1 * var(--gap)) 0 0 calc(-1 * var(--gap)); + width: calc(100% + var(--gap)); + } + + .emulated-flex-gap > * { + margin: var(--gap) 0 0 var(--gap); + } \ No newline at end of file diff --git a/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts new file mode 100644 index 000000000..78c63c66c --- /dev/null +++ b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts @@ -0,0 +1,53 @@ +/****************************************************************************** + Copyright:: 2020- IBM, Inc + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + *****************************************************************************/ + +import CommonMessaging from "./commonMessaging"; +// import BrowserDetection from "./browserDetection"; +//import { report } from 'process'; + +export default class ContextScriptMessaging { + + public static addListener(type: string, listener: (message: any) => Promise) { + CommonMessaging.addListener(type, listener); + } + + public static sendToBackground(type: string, message: any): Promise { + // let myMessage = JSON.parse(JSON.stringify(message)); + let myMessage = message + myMessage.type = type; + + + return new Promise((resolve, reject) => { + chrome.runtime.sendMessage(myMessage, async function (res) { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); + } else { + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) { } + } + resolve(res); + } else { + resolve(); + } + } + }); + }) + } + +} diff --git a/accessibility-checker-extension/src/ts/util/xpath.js b/accessibility-checker-extension/src/ts/util/xpath.js new file mode 100644 index 000000000..56cd45b25 --- /dev/null +++ b/accessibility-checker-extension/src/ts/util/xpath.js @@ -0,0 +1,56 @@ +// Taken from https://stackoverflow.com/a/47088726/3429133. +function getAbsoluteXPath(element) { + var comp, comps = []; + var parent = null; + var xpath = ''; + var getPos = function(element) { + var position = 1, + curNode; + if (element.nodeType == Node.ATTRIBUTE_NODE) { + return null; + } + for (curNode = element.previousSibling; curNode; curNode = curNode.previousSibling) { + if (curNode.nodeName == element.nodeName) { + ++position; + } + } + return position; + }; + + if (element instanceof Document) { + return '/'; + } + + for (; element && !(element instanceof Document); element = element.nodeType == Node.ATTRIBUTE_NODE ? element.ownerElement : element.parentNode) { + comp = comps[comps.length] = {}; + switch (element.nodeType) { + case Node.TEXT_NODE: + comp.name = 'text()'; + break; + case Node.ATTRIBUTE_NODE: + comp.name = '@' + element.nodeName; + break; + case Node.PROCESSING_INSTRUCTION_NODE: + comp.name = 'processing-instruction()'; + break; + case Node.COMMENT_NODE: + comp.name = 'comment()'; + break; + case Node.ELEMENT_NODE: + comp.name = element.nodeName; + break; + } + comp.position = getPos(element); + } + + for (var i = comps.length - 1; i >= 0; i--) { + comp = comps[i]; + xpath += '/' + comp.name.toLowerCase(); + if (comp.position !== null) { + xpath += '[' + comp.position + ']'; + } + } + return xpath; +} + +export default {getAbsoluteXPath} \ No newline at end of file diff --git a/reportTabStops.scss b/reportTabStops.scss new file mode 100644 index 000000000..f8e5a4e97 --- /dev/null +++ b/reportTabStops.scss @@ -0,0 +1,12 @@ +/* Emulate Gap Support with Flexbox and Margins */ +.emulated-flex-gap { + --gap: 12px; + display: inline-flex; + flex-wrap: wrap; + margin: calc(-1 * var(--gap)) 0 0 calc(-1 * var(--gap)); + width: calc(100% + var(--gap)); + } + + .emulated-flex-gap > * { + margin: var(--gap) 0 0 var(--gap); + } \ No newline at end of file From 91179461dcda446ca64748bfd82c87689a9c078f Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 7 Apr 2022 16:08:22 -0500 Subject: [PATCH 002/103] Added files from tabStopsPOC that weren't in master and they compile --- .../package-lock.json | 11 +++++++ .../src/manifest.json | 2 +- .../src/ts/background/index.ts | 32 +++++++++++++++++++ .../src/ts/util/contextScriptMessaging.ts | 2 +- .../webpack.config.js | 5 +-- 5 files changed, 48 insertions(+), 4 deletions(-) diff --git a/accessibility-checker-extension/package-lock.json b/accessibility-checker-extension/package-lock.json index 8fa94fbe5..afded5133 100644 --- a/accessibility-checker-extension/package-lock.json +++ b/accessibility-checker-extension/package-lock.json @@ -22,6 +22,7 @@ "react-tooltip": "^4.2.21", "redux": "^4.1.2", "string-hash": "^1.1.3", + "tabbable": "^5.2.0", "webext-redux": "^2.1.9" }, "devDependencies": { @@ -16338,6 +16339,11 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/tabbable": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", + "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -30866,6 +30872,11 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tabbable": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", + "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" + }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", diff --git a/accessibility-checker-extension/src/manifest.json b/accessibility-checker-extension/src/manifest.json index c4647df03..d1c140e2b 100644 --- a/accessibility-checker-extension/src/manifest.json +++ b/accessibility-checker-extension/src/manifest.json @@ -41,7 +41,7 @@ "" ], "js": [ - "draw.js" + "draw.ts" ] } ], diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index fbd861108..a83dccfac 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -36,6 +36,13 @@ async function initTab(tabId: number, archiveId: string) { }) }); + BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) => { + console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") + await BackgroundMessaging.sendToTab(message.tabId, "DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, tabStopsErrors: message.tabStopsErrors}); + + return true; + }); + // Switch to the appropriate engine for this archiveId let engineCode = await EngineCache.getEngine(archiveId); await new Promise((resolve, reject) => { @@ -193,3 +200,28 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { }); }); +BackgroundMessaging.addListener("HIGHLIGHT_TABSTOP_TO_BACKGROUND", async (message: any) => { + console.log("Message HIGHLIGHT_TABSTOP_TO_BACKGROUND received in background") + BackgroundMessaging.sendToTab(message.tabId, "HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopId: message.tabStopId}); + + return true; +}); + +BackgroundMessaging.addListener("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { + console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS received in background") + BackgroundMessaging.sendToTab(message.tabId, "DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL }); + + return true; +}); + +BackgroundMessaging.addListener("TABSTOP_XPATH_ONCLICK", async (message: any) => { + console.log("Message TABSTOP_XPATH_ONCLICK received in background, xpath: "+ message.xpath) + BackgroundMessaging.sendToPanel("TABSTOP_XPATH_ONCLICK", { + xpath: message.xpath, + circleNumber: message.circleNumber + }); + + + return true; +}); + diff --git a/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts index 78c63c66c..34f14f5b6 100644 --- a/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts @@ -30,7 +30,7 @@ export default class ContextScriptMessaging { myMessage.type = type; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { chrome.runtime.sendMessage(myMessage, async function (res) { if (chrome.runtime.lastError) { reject(chrome.runtime.lastError.message); diff --git a/accessibility-checker-extension/webpack.config.js b/accessibility-checker-extension/webpack.config.js index 7d328cf62..37720c029 100644 --- a/accessibility-checker-extension/webpack.config.js +++ b/accessibility-checker-extension/webpack.config.js @@ -20,7 +20,7 @@ const extensionReloader = nodeEnv === "watch" || nodeEnv === "watch_local" ? new reloadPage: true, entries: { background: 'background', - extensionPage: ['popup', 'options', 'devtools', 'devtoolsPanel', 'devtoolsSubpanel'], + extensionPage: ['popup', 'options', 'devtools', 'devtoolsPanel', 'devtoolsSubpanel', 'contentScripts'], contentScript: Object.keys(contentScripts), } }) : () => { this.apply = () => { } }; @@ -36,9 +36,10 @@ module.exports = { devtools: path.join(sourceRootPath, 'ts', 'devtools', 'index.tsx'), devtoolsPanel: path.join(sourceRootPath, 'ts', 'devtoolsPanel', 'index.tsx'), devtoolsSubpanel: path.join(sourceRootPath, 'ts', 'devtoolsSubpanel', 'index.tsx'), + draw: path.join(sourceRootPath, 'ts', 'contentScripts', 'index.ts'), tabListeners: path.join(sourceRootPath, 'ts', 'tab', 'tabListeners.ts'), usingAC: path.join(sourceRootPath, 'ts', 'usingAC', 'index.tsx'), - ...contentScripts, + // ...contentScripts, }, output: { path: distRootPath, From 1f14a5433223695d54b0fd8e6f70740396dc0d40 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 8 Apr 2022 15:02:19 -0500 Subject: [PATCH 003/103] more changes from tabStopsPOC --- .../src/ts/devtools/DevToolsPanelApp.tsx | 121 +++++++++++++++++- 1 file changed, 115 insertions(+), 6 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 161be48dd..56378a843 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -16,6 +16,9 @@ import React from "react"; import Header from "./Header"; +import TabStopsHeader from "./TabStopsHeader"; +// import TabStops from "./TabStops"; +import ReportTabStops from "./ReportTabStops"; import ReportManagerHeader from "./ReportManagerHeader"; import ReportManagerTable from "./ReportManagerTable" import Help from "./Help"; @@ -56,6 +59,7 @@ interface IPanelState { tabId: number, tabTitle: string, selectedItem?: IReportItem, + currentSelectedItem?: IReportItem, selectedIssue: IReportItem | null, rulesets: IRuleset[] | null, selectedCheckpoint?: ICheckpoint, @@ -94,7 +98,11 @@ interface IPanelState { selectedArchive: string | null, selectedPolicy: string | null, focusedViewFilter: boolean, - focusedViewText: string + focusedViewText: string, + tabStops: [], + tabStopsPanel: boolean, // true show Tab Stops Summary, false do not show + tabStopsResults: IReportItem[], + tabStopsErrors: IReportItem[], } export default class DevToolsPanelApp extends React.Component { @@ -128,7 +136,11 @@ export default class DevToolsPanelApp extends React.Component { + if (message.xpath === result.path.dom) { + console.log("result xpath = ",result.path.dom); + this.getSelectedItem(result); + this.selectItem(result); + } + }); + } + async componentDidMount() { // console.log("componentDidMount"); await this.readOptionsData(); @@ -294,6 +318,8 @@ export default class DevToolsPanelApp extends React.Component {self.xpathFromTabstops(message)} ); } if (self.props.layout === "sub") { self.selectElementInElements(); @@ -441,8 +467,42 @@ export default class DevToolsPanelApp extends React.Component { + if (result.ruleId === "detector_tabbable") { + // there will always be at least one tab + tabbable?.push(result); + } else if (result.value[1] !== "PASS" && (result.ruleId === "Rpt_Aria_InvalidTabindexForActivedescendant" || + result.ruleId === "IBMA_Focus_Tabbable" || + result.ruleId === "Rpt_Aria_MissingKeyboardHandler" || + result.ruleId === "Rpt_Aria_MissingFocusableChild" || + result.ruleId === "IBMA_Focus_MultiTab" || + result.ruleId === "RPT_Elem_EventMouseAndKey" || + result.ruleId === "Rpt_Aria_ValidRole")) { + tabbableErrors?.push(result); + } + }); + if (tabbable !== null) { + tabbable.sort((a: any, b: any) => b.apiArgs[0].tabindex - a.apiArgs[0].tabindex); + } + + // console.log("tabbable =", tabbable); + this.setState({ tabStopsResults: tabbable }); + console.log("tabStopsErrors = ", tabbableErrors); + this.setState({ tabStopsErrors: tabbableErrors }); + + // End of tab stops stored state + + this.setState({ scanning: false }); // scan done // console.log("SCAN DONE"); + + // Cases for storage // Note: if scanStorage false not storing scans, if true storing scans @@ -959,6 +1019,34 @@ export default class DevToolsPanelApp extends React.Component
@@ -1048,7 +1141,7 @@ export default class DevToolsPanelApp extends React.Component {/* ok now need three way display for Report Manager so need reportManager state */} -
+
-
+
@@ -1076,10 +1169,21 @@ export default class DevToolsPanelApp extends React.Component
+
+ +
+
+
+
+ +
+
+
+
{/* Note the -72px is there to make sure that the help content starts under the header */} {this.subPanelRef.current?.scrollTo(0, -72)}
-
+
-
+
{this.state.numScanning > 0 ? : <>} {this.state.report && Date: Mon, 11 Apr 2022 12:14:54 -0500 Subject: [PATCH 004/103] changes to header more to do --- .../src/ts/devtools/Header.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 436b1bdd6..0589099c4 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -16,6 +16,7 @@ import React from "react"; import ReactTooltip from "react-tooltip"; +import { IReportItem } from "./Report"; import { Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal @@ -24,6 +25,7 @@ import { settings } from 'carbon-components'; import { Information16, ReportData16, Renew16, ChevronDown16 } from '@carbon/icons-react'; import { IArchiveDefinition } from '../background/helper/engineCache'; import OptionUtil from '../util/optionUtil'; +import PanelMessaging from '../util/panelMessaging'; const BeeLogo = "/assets/BE_for_Accessibility_darker.svg"; import Violation16 from "../../assets/Violation16.svg"; @@ -34,6 +36,7 @@ const { prefix } = settings; interface IHeaderState { deleteModal: boolean, modalRulsetInfo: boolean, + showHideTabStops: boolean } interface IHeaderProps { @@ -82,7 +85,12 @@ interface IHeaderProps { focusedViewFilter: boolean, focusedViewText: string, getCurrentSelectedElement: () => void, - readOptionsData: () => void + readOptionsData: () => void, + tabURL: string, + tabId: number, + tabStopsShow: () => void, + tabStopsResults: IReportItem[], + tabStopsErrors: IReportItem[] } export default class Header extends React.Component { @@ -97,6 +105,7 @@ export default class Header extends React.Component state: IHeaderState = { deleteModal: false, modalRulsetInfo: false, + showHideTabStops: true }; focusInfoButton1() { From 113f755e041bba10204f313b8670bbba5aca973c Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 12 Apr 2022 12:30:45 -0500 Subject: [PATCH 005/103] now compiles and runs but not getting tab stops on webpage --- .../src/manifest.json | 16 ++++++-------- .../src/ts/devtools/DevToolsPanelApp.tsx | 21 ++++++++++--------- .../src/ts/devtools/Header.tsx | 17 +++++++++++++-- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/accessibility-checker-extension/src/manifest.json b/accessibility-checker-extension/src/manifest.json index d1c140e2b..2c4eabd3b 100644 --- a/accessibility-checker-extension/src/manifest.json +++ b/accessibility-checker-extension/src/manifest.json @@ -35,16 +35,12 @@ ], "persistent": true }, - "content_scripts": [ - { - "matches": [ - "" - ], - "js": [ - "draw.ts" - ] - } - ], + "content_scripts": [ + { + "matches": [""], + "js": ["draw.js"] + } + ], "options_ui": { "page": "options.html", "open_in_tab": true diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 56378a843..951c6e618 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -468,7 +468,7 @@ export default class DevToolsPanelApp extends React.Component b.apiArgs[0].tabindex - a.apiArgs[0].tabindex); } - // console.log("tabbable =", tabbable); + console.log("tabbable =", tabbable); this.setState({ tabStopsResults: tabbable }); console.log("tabStopsErrors = ", tabbableErrors); this.setState({ tabStopsErrors: tabbableErrors }); @@ -1170,18 +1170,19 @@ export default class DevToolsPanelApp extends React.Component
- -
-
-
-
- + +
+
+
+
+ +
+ {/* Note the -72px is there to make sure that the help content starts under the header */} + {this.subPanelRef.current?.scrollTo(0, -72)}
- {/* Note the -72px is there to make sure that the help content starts under the header */} - {this.subPanelRef.current?.scrollTo(0, -72)}
let focusText = this.props.focusedViewText; let headerContent = (
- {this.props.layout === "sub" ? + {this.props.layout === "sub" ?

IBM Equal Access Accessibility Checker

@@ -404,12 +404,25 @@ export default class Header extends React.Component
-
+
Status: {this.props.scanStorage === true ? "storing, " : ""} {this.props.actualStoredScansCount().toString() === "0" ? "no scans stored" : (this.props.actualStoredScansCount().toString() === "1" ? this.props.actualStoredScansCount().toString() + " scan stored" : this.props.actualStoredScansCount().toString() + " scans stored")}
+
+
From 4fe4b702b8e531dc590077e1bb5ca1631d743160 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 12 Apr 2022 13:57:05 -0500 Subject: [PATCH 006/103] EXTENSIONS to rule set --- .../src/ts/devtools/DevToolsPanelApp.tsx | 1 + accessibility-checker-extension/src/ts/tab/tabListeners.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 951c6e618..6bb1b870f 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -473,6 +473,7 @@ export default class DevToolsPanelApp extends React.Component { if (result.ruleId === "detector_tabbable") { // there will always be at least one tab diff --git a/accessibility-checker-extension/src/ts/tab/tabListeners.ts b/accessibility-checker-extension/src/ts/tab/tabListeners.ts index 530527db2..ed42a79fc 100644 --- a/accessibility-checker-extension/src/ts/tab/tabListeners.ts +++ b/accessibility-checker-extension/src/ts/tab/tabListeners.ts @@ -33,7 +33,7 @@ TabMessaging.addListener("DAP_SCAN_TAB", async (message: any) => { console.info(`Accessibility Checker - Scanning with archive ${message.archiveId} and policy ${message.policyId}`); - let report = await checker.check(window.document, [message.policyId]); + let report = await checker.check(window.document, [message.policyId, "EXTENSIONS"]); (window as any).aceReportCache = { archiveId: message.archiveId, policyId: message.policyId, From dd35e3e7f892b618251e5f05de0c5a1ec04b08f1 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 12 Apr 2022 14:06:53 -0500 Subject: [PATCH 007/103] All works except the boxes are off a bit --- accessibility-checker-extension/src/ts/devtools/Report.tsx | 6 ++++++ report-react/src/IReport.tsx | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/accessibility-checker-extension/src/ts/devtools/Report.tsx b/accessibility-checker-extension/src/ts/devtools/Report.tsx index 9bebe9e29..90e54f836 100644 --- a/accessibility-checker-extension/src/ts/devtools/Report.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Report.tsx @@ -102,6 +102,12 @@ export const valueMap: { [key: string]: { [key2: string]: string } } = { "FAIL": "Recommendation", "PASS": "Pass", "MANUAL": "Recommendation" + }, + "INFORMATION": { + "POTENTIAL": "Needs review", + "FAIL": "Violation", + "PASS": "Pass", + "MANUAL": "Recommendation" } }; diff --git a/report-react/src/IReport.tsx b/report-react/src/IReport.tsx index 221baf7fa..0f25276ea 100644 --- a/report-react/src/IReport.tsx +++ b/report-react/src/IReport.tsx @@ -71,5 +71,11 @@ export const valueMap: { [key: string]: { [key2: string]: string } } = { "FAIL": "Recommendation", "PASS": "Pass", "MANUAL": "Recommendation" + }, + "INFORMATION": { + "POTENTIAL": "Needs review", + "FAIL": "Violation", + "PASS": "Pass", + "MANUAL": "Recommendation" } }; \ No newline at end of file From e2568fc525f54ccc3a39c06e29bd369642396ac7 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 12 Apr 2022 19:11:32 -0500 Subject: [PATCH 008/103] Cleanup logging --- .../src/ts/devtools/DevToolsPanelApp.tsx | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 6bb1b870f..93fc8b97c 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -221,11 +221,11 @@ export default class DevToolsPanelApp extends React.Component { if (message.xpath === result.path.dom) { - console.log("result xpath = ",result.path.dom); + // console.log("result xpath = ",result.path.dom); this.getSelectedItem(result); this.selectItem(result); } @@ -373,7 +373,7 @@ export default class DevToolsPanelApp extends React.Component { if (result.ruleId === "detector_tabbable") { // there will always be at least one tab @@ -492,9 +491,9 @@ export default class DevToolsPanelApp extends React.Component b.apiArgs[0].tabindex - a.apiArgs[0].tabindex); } - console.log("tabbable =", tabbable); + // console.log("tabbable =", tabbable); this.setState({ tabStopsResults: tabbable }); - console.log("tabStopsErrors = ", tabbableErrors); + // console.log("tabStopsErrors = ", tabbableErrors); this.setState({ tabStopsErrors: tabbableErrors }); // End of tab stops stored state @@ -1021,29 +1020,29 @@ export default class DevToolsPanelApp extends React.Component Date: Tue, 12 Apr 2022 19:19:28 -0500 Subject: [PATCH 009/103] more cleanup --- .../src/ts/contentScripts/draw.ts | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index f86a2f434..eda5582b9 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -12,8 +12,8 @@ console.log("Content Script for drawing tab stops has loaded") // var intervalTimer: any; TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { - console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") - console.log(message.tabStopsResults); + // console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") + // console.log(message.tabStopsResults); document.body.scrollTop = document.documentElement.scrollTop = 0; injectCSS( @@ -169,12 +169,12 @@ function injectCSS(styleString: string) { } function draw(tabStopsErrors: any) { - console.log("Inside draw") + // console.log("Inside draw") redraw(tabStopsErrors); } function drawErrors(tabStopsErrors: any) { - console.log("Inside drawErrors") + // console.log("Inside drawErrors") redrawErrors(tabStopsErrors); } @@ -184,9 +184,9 @@ function deleteDrawing(classToRemove: string) { function redrawErrors(tabStopsErrors: any) { - console.log("Inside redrawErrors") + // console.log("Inside redrawErrors") setTimeout(() => { - console.log("tabbable error nodes = ", tabStopsErrors); + // console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); nodes = convertXpathsToHtmlElements(nodes); nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent @@ -233,7 +233,7 @@ function redrawErrors(tabStopsErrors: any) { function redraw(tabStopsResults: any) { - console.log("Inside redraw") + // console.log("Inside redraw") setTimeout(() => { // let nodes = getNodesToDrawBettween(); let nodes = getNodesXpaths(tabStopsResults); @@ -248,7 +248,7 @@ function redraw(tabStopsResults: any) { return el != null; }); - console.log("tabbable nodes = ", nodes); + // console.log("tabbable nodes = ", nodes); // JCH - need for last line to return to first node for (let i = 0; i < nodes.length - 1; i++) { //Make lines between numbers @@ -292,9 +292,9 @@ function redraw(tabStopsResults: any) { let y = nodes[i].getBoundingClientRect().y - offset; let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - if (i == 32) { - console.log("x y :", x, " ", y) - } + // if (i == 32) { + // console.log("x y :", x, " ", y) + // } makeCircleSmall(x, y, i, 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString()); From b414844d6fe4368fe9f2cdb41d1a9457107166d7 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 15 Apr 2022 10:29:02 -0500 Subject: [PATCH 010/103] export const valueMap --- accessibility-checker-engine/src/genHelp.ts | 6 ++++++ .../src/ts/devtools/DevToolsPanelApp.tsx | 4 ++-- .../src/ts/devtools/MultiScanData.tsx | 6 ++++++ accessibility-checker-extension/src/ts/tab/tabListeners.ts | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/accessibility-checker-engine/src/genHelp.ts b/accessibility-checker-engine/src/genHelp.ts index 93ac07506..b9ade7d64 100644 --- a/accessibility-checker-engine/src/genHelp.ts +++ b/accessibility-checker-engine/src/genHelp.ts @@ -79,6 +79,12 @@ const valueMap = { "Fail": "Recommendation", "Pass": "Pass", "Manual": "Recommendation" + }, + "INFORMATION": { + "POTENTIAL": "Needs review", + "FAIL": "Violation", + "PASS": "Pass", + "MANUAL": "Recommendation" } }; diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 98c4a0021..01c216918 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -491,9 +491,9 @@ export default class DevToolsPanelApp extends React.Component b.apiArgs[0].tabindex - a.apiArgs[0].tabindex); } - // console.log("tabbable =", tabbable); + console.log("tabbable =", tabbable); this.setState({ tabStopsResults: tabbable }); - // console.log("tabStopsErrors = ", tabbableErrors); + console.log("tabStopsErrors = ", tabbableErrors); this.setState({ tabStopsErrors: tabbableErrors }); // End of tab stops stored state diff --git a/accessibility-checker-extension/src/ts/devtools/MultiScanData.tsx b/accessibility-checker-extension/src/ts/devtools/MultiScanData.tsx index ec42ae293..0bb3eb1d7 100644 --- a/accessibility-checker-extension/src/ts/devtools/MultiScanData.tsx +++ b/accessibility-checker-extension/src/ts/devtools/MultiScanData.tsx @@ -53,6 +53,12 @@ export default class MultiScanData { "FAIL": "Recommendation", "PASS": "Pass", "MANUAL": "Recommendation" + }, + "INFORMATION": { + "POTENTIAL": "Needs review", + "FAIL": "Violation", + "PASS": "Pass", + "MANUAL": "Recommendation" } }; diff --git a/accessibility-checker-extension/src/ts/tab/tabListeners.ts b/accessibility-checker-extension/src/ts/tab/tabListeners.ts index 75d599e0d..bfee2d60e 100644 --- a/accessibility-checker-extension/src/ts/tab/tabListeners.ts +++ b/accessibility-checker-extension/src/ts/tab/tabListeners.ts @@ -36,6 +36,7 @@ TabMessaging.addListener("DAP_SCAN_TAB", async (message: any) => { console.info(`Accessibility Checker - Scanning with archive ${message.archiveId} and policy ${message.policyId}`); let report = await checker.check(window.document, [message.policyId, "EXTENSIONS"]); + console.log(report); (window as any).aceReportCache = { archiveId: message.archiveId, policyId: message.policyId, From 2b39fc65401b9468361636a031620df921df121b Mon Sep 17 00:00:00 2001 From: Tom Brunet Date: Fri, 15 Apr 2022 14:14:08 -0500 Subject: [PATCH 011/103] Keep pass into elements in report --- accessibility-checker-extension/src/ts/tab/tabListeners.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accessibility-checker-extension/src/ts/tab/tabListeners.ts b/accessibility-checker-extension/src/ts/tab/tabListeners.ts index bfee2d60e..d72e0d9af 100644 --- a/accessibility-checker-extension/src/ts/tab/tabListeners.ts +++ b/accessibility-checker-extension/src/ts/tab/tabListeners.ts @@ -44,13 +44,13 @@ TabMessaging.addListener("DAP_SCAN_TAB", async (message: any) => { }; if (report) { let passResults = report.results.filter((result: any) => { - return result.value[1] === "PASS"; + return result.value[1] === "PASS" && result.value[0] !== "INFORMATION"; }) let passXpaths : string[] = passResults.map((result: any) => result.path.dom); report.passUniqueElements = Array.from(new Set(passXpaths)); - report.results = report.results.filter((issue: any) => issue.value[1] !== "PASS"); + report.results = report.results.filter((issue: any) => issue.value[1] !== "PASS" || issue.value[0] === "INFORMATION"); for (let result of report.results) { let engineHelp = checker.engine.getHelp(result.ruleId, result.reasonId, message.archiveId); let version = message.archiveVersion || "latest"; From 0c9c226034dbb9872e467df36090bd06b15611b8 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 24 Apr 2022 12:04:22 -0500 Subject: [PATCH 012/103] Heading Layout fix --- accessibility-checker-extension/src/ts/styles/subpanel.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/styles/subpanel.scss b/accessibility-checker-extension/src/ts/styles/subpanel.scss index 19f344f81..a602aa4eb 100644 --- a/accessibility-checker-extension/src/ts/styles/subpanel.scss +++ b/accessibility-checker-extension/src/ts/styles/subpanel.scss @@ -154,7 +154,6 @@ top: 0; left: 0; width: 100%; - min-width: 825px; } .row-counts { From 20ebf36bcc69e80df92d55823eae5f0bf4fe6fbf Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Mon, 25 Apr 2022 13:52:18 -0500 Subject: [PATCH 013/103] menu --- .../src/ts/devtools/Header.tsx | 62 +++++++++++++++++-- 1 file changed, 57 insertions(+), 5 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index ff90dea7c..527bbd946 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -22,7 +22,7 @@ import { Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal } from 'carbon-components-react'; import { settings } from 'carbon-components'; -import { Information16, ReportData16, Renew16, ChevronDown16 } from '@carbon/icons-react'; +import { Information16, ReportData16, Renew16, ChevronDown16, View16 } from '@carbon/icons-react'; import { IArchiveDefinition } from '../background/helper/engineCache'; import OptionUtil from '../util/optionUtil'; import PanelMessaging from '../util/panelMessaging'; @@ -368,10 +368,12 @@ export default class Header extends React.Component
-
+
+ { @@ -396,11 +398,61 @@ export default class Header extends React.Component onKeyDown={this.onKeyDown.bind(this)} /> - Focus view - + + this.props.reportHandler("current")} + /> + + + + this.props.clearStoredScans(true) } + onClick={() => this.deleteModalHandler() } + /> + + +
From 2de6132eac96e5f9d82dd2d6e1767e44bca65dbb Mon Sep 17 00:00:00 2001 From: Tom Brunet Date: Mon, 25 Apr 2022 15:06:00 -0500 Subject: [PATCH 014/103] Update for Carbon 11 --- .../src/ts/devtools/ReportTabStops.tsx | 19 ++++++++----------- .../src/ts/devtools/TabStopsHeader.tsx | 18 +++++++++--------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx b/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx index f49fe219b..edc4eec5d 100644 --- a/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx +++ b/accessibility-checker-extension/src/ts/devtools/ReportTabStops.tsx @@ -16,14 +16,11 @@ import React from "react"; -import { - Row, -} from 'carbon-components-react'; - +import { Grid } from "@carbon/react"; import { IReport, IReportItem, valueMap - } from "./Report"; +} from "./Report"; import Violation16 from "../../assets/Violation16.svg"; import NeedsReview16 from "../../assets/NeedsReview16.svg"; @@ -133,7 +130,7 @@ export default class ReportTabStops extends React.Component { temp.push( - +
{index+1} @@ -154,7 +151,7 @@ export default class ReportTabStops extends React.Component
- + ); }); // console.log("temp = ", temp); @@ -167,12 +164,12 @@ export default class ReportTabStops extends React.Component - +
Tab stops summary
-
- + +
Index @@ -187,7 +184,7 @@ export default class ReportTabStops extends React.Component
- + {/* {console.log("call printTabStops")} */} {this.printTabStops()}
diff --git a/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx b/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx index 11a19a698..2c8a03762 100644 --- a/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx +++ b/accessibility-checker-extension/src/ts/devtools/TabStopsHeader.tsx @@ -17,8 +17,8 @@ import React from "react"; import { - Button - } from 'carbon-components-react'; + Button, Column, Grid + } from '@carbon/react'; interface ITabStopsHeaderState { @@ -41,17 +41,17 @@ render() { // console.log("start TabStopsHeader render"); - let headerContent = (
-
-
+ let headerContent = (
+ + -
-
+ +
-
-
+ +
); if (this.props.layout === "main") { From 6eb9fe8f72c7f0b7914f9605b71a4c42dbaaec70 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Mon, 25 Apr 2022 15:28:01 -0500 Subject: [PATCH 015/103] fix overflow menu layout --- .../src/ts/devtools/Header.tsx | 2 +- .../package-lock.json | 236 ++++++++++-------- 2 files changed, 138 insertions(+), 100 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 69e5a77ec..e2b209b61 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -369,7 +369,7 @@ export default class Header extends React.Component - + =0.1.90" } }, "node_modules/@cypress/request": { @@ -194,9 +204,9 @@ "dev": true }, "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "node_modules/@types/sizzle": { @@ -411,6 +421,26 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -459,6 +489,30 @@ "concat-map": "0.0.1" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -556,19 +610,18 @@ } }, "node_modules/cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "dev": true, "dependencies": { - "object-assign": "^4.1.0", "string-width": "^4.2.0" }, "engines": { "node": "10.* || >= 12.*" }, "optionalDependencies": { - "colors": "^1.1.2" + "@colors/colors": "1.5.0" } }, "node_modules/cli-truncate": { @@ -684,25 +737,26 @@ } }, "node_modules/cypress": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.1.1.tgz", - "integrity": "sha512-yWcYD8SEQ8F3okFbRPqSDj5V0xhrZBT5QRIH+P1J2vYvtEmZ4KGciHE7LCcZZLILOrs7pg4WNCqkj/XRvReQlQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.6.0.tgz", + "integrity": "sha512-nNwt9eBQmSENamwa8LxvggXksfyzpyYaQ7lNBLgks3XZ6dPE/6BCQFBzeAyAPt/bNXfH3tKPkAyhiAZPYkWoEg==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", - "bluebird": "3.7.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.0", + "cli-table3": "~0.6.1", "commander": "^5.1.0", "common-tags": "^1.8.0", "dayjs": "^1.10.4", @@ -721,15 +775,15 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.5", + "minimist": "^1.2.6", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", + "semver": "^7.3.2", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" }, "bin": { @@ -1551,6 +1605,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2082,15 +2156,6 @@ "node": "*" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2353,16 +2418,6 @@ "node": ">=0.6" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -2940,28 +2995,12 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -3086,6 +3125,13 @@ } }, "dependencies": { + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, "@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -3241,9 +3287,9 @@ "dev": true }, "@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "@types/sizzle": { @@ -3399,6 +3445,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -3446,6 +3498,16 @@ "concat-map": "0.0.1" } }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -3518,13 +3580,12 @@ } }, "cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "dev": true, "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", + "@colors/colors": "1.5.0", "string-width": "^4.2.0" } }, @@ -3614,24 +3675,25 @@ } }, "cypress": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.1.1.tgz", - "integrity": "sha512-yWcYD8SEQ8F3okFbRPqSDj5V0xhrZBT5QRIH+P1J2vYvtEmZ4KGciHE7LCcZZLILOrs7pg4WNCqkj/XRvReQlQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.6.0.tgz", + "integrity": "sha512-nNwt9eBQmSENamwa8LxvggXksfyzpyYaQ7lNBLgks3XZ6dPE/6BCQFBzeAyAPt/bNXfH3tKPkAyhiAZPYkWoEg==", "dev": true, "requires": { "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", - "bluebird": "3.7.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.0", + "cli-table3": "~0.6.1", "commander": "^5.1.0", "common-tags": "^1.8.0", "dayjs": "^1.10.4", @@ -3650,15 +3712,15 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.5", + "minimist": "^1.2.6", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", + "semver": "^7.3.2", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" } }, @@ -4281,6 +4343,12 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -4681,12 +4749,6 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4888,12 +4950,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -5314,24 +5370,6 @@ "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", From 2cfe56e555471d540fd0bc6c27739a1806ce85f3 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 26 Apr 2022 23:32:59 -0500 Subject: [PATCH 016/103] implement show / hide tab stops in menu --- .../src/ts/devtools/Header.tsx | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index e2b209b61..1e85993af 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -414,42 +414,50 @@ export default class Header extends React.Component this.props.reportHandler("current")} + // JCH - Tip: for some reason the style needs to be before the href + itemText={this.state.showHideTabStops ? + { + this.setState({ showHideTabStops: false }); + PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); + }}>Show tab stops + : { + this.setState({ showHideTabStops: true }); + PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); + }}>Hide tab stops + } /> } + // onClick={this.props.startStopScanStoring} /> } + // onClick={this.props.startStopScanStoring} + onClick={console.log("Numbers")} /> } + // onClick={this.props.startStopScanStoring} /> this.props.clearStoredScans(true) } - onClick={() => this.deleteModalHandler() } + // onClick={() => this.deleteModalHandler() } /> Learn more} + // onClick={this.props.startStopScanStoring} /> From 63ca0f4e9523f3f5c6f7ddd8da184cdc6a79df78 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 26 Apr 2022 23:44:45 -0500 Subject: [PATCH 017/103] add to host permissions --- accessibility-checker-extension/src/manifest.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/manifest.json b/accessibility-checker-extension/src/manifest.json index 14bbb2f7f..ad3d2ff60 100644 --- a/accessibility-checker-extension/src/manifest.json +++ b/accessibility-checker-extension/src/manifest.json @@ -21,7 +21,8 @@ "activeTab" ], "host_permissions": [ - "*://*/*" + "*://*/*", + "" ], "action": { "default_title": "IBM Equal Access Accessibility Checker", From cd95d8c4075c78df842ec9824fa88f65148eb46c Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 27 Apr 2022 10:21:59 -0500 Subject: [PATCH 018/103] added awaits to Tab Stop BackgroundMessaging --- .../src/ts/background/index.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index 9dd18b8c2..aad448fb8 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -75,6 +75,7 @@ async function initTab(tabId: number, archiveId: string) { BackgroundMessaging.addListener("DAP_CACHED", async (message: any) => { await BackgroundMessaging.sendToTab(message.tabId, "DAP_CACHED_TAB", { tabId: message.tabId, tabURL: message.tabURL, origin: message.origin }); + return true; }); @@ -111,6 +112,7 @@ BackgroundMessaging.addListener("DAP_SCAN", async (message: any) => { } catch (err) { console.error(err); } + return true; }); }); @@ -202,26 +204,25 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { BackgroundMessaging.addListener("HIGHLIGHT_TABSTOP_TO_BACKGROUND", async (message: any) => { console.log("Message HIGHLIGHT_TABSTOP_TO_BACKGROUND received in background") - BackgroundMessaging.sendToTab(message.tabId, "HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopId: message.tabStopId}); + await BackgroundMessaging.sendToTab(message.tabId, "HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopId: message.tabStopId}); return true; }); BackgroundMessaging.addListener("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS received in background") - BackgroundMessaging.sendToTab(message.tabId, "DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL }); + await BackgroundMessaging.sendToTab(message.tabId, "DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL }); return true; }); BackgroundMessaging.addListener("TABSTOP_XPATH_ONCLICK", async (message: any) => { console.log("Message TABSTOP_XPATH_ONCLICK received in background, xpath: "+ message.xpath) - BackgroundMessaging.sendToPanel("TABSTOP_XPATH_ONCLICK", { + await BackgroundMessaging.sendToPanel("TABSTOP_XPATH_ONCLICK", { xpath: message.xpath, circleNumber: message.circleNumber }); - - + return true; }); From 368753444835071928a7bee8d7c9d7db042b7145 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 27 Apr 2022 13:44:43 -0500 Subject: [PATCH 019/103] stability changes --- .../src/ts/background/index.ts | 4 +-- .../src/ts/devtools/Header.tsx | 31 +++++++------------ 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index aad448fb8..bf0c2c47c 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -119,7 +119,7 @@ BackgroundMessaging.addListener("DAP_SCAN", async (message: any) => { BackgroundMessaging.addListener("DAP_SCAN_TAB_COMPLETE", async (message: any) => { try { - BackgroundMessaging.sendToPanel("DAP_SCAN_COMPLETE", message); + await BackgroundMessaging.sendToPanel("DAP_SCAN_COMPLETE", message); if (message.archiveId && message.policyId) { let browser = (navigator.userAgent.match(/\) ([^)]*)$/) || ["", "Unknown"])[1]; let totalTime = (message.report != undefined)? message.report.totalTime: message.totalTime; @@ -222,7 +222,7 @@ BackgroundMessaging.addListener("TABSTOP_XPATH_ONCLICK", async (message: any) => xpath: message.xpath, circleNumber: message.circleNumber }); - + return true; }); diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 1e85993af..d32bb7eba 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -415,16 +415,20 @@ export default class Header extends React.Component style={{maxWidth:"13rem", width:"13rem"}} disabled={this.props.storedScans.length == 0 ? true : false} // JCH - Tip: for some reason the style needs to be before the href - itemText={this.state.showHideTabStops ? - { + itemText={this.state.showHideTabStops ? "Show tab stops" : "Hide tab stops"} + onClick={ async() => { + if (this.state.showHideTabStops) { + console.log("DRAW_TABS_TO_BACKGROUND"); + await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); this.setState({ showHideTabStops: false }); - PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); - }}>Show tab stops - : { + } else { + console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); + await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); this.setState({ showHideTabStops: true }); - PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); - }}>Hide tab stops - } + } + + }} + />
- {this.state.showHideTabStops ? - { - this.setState({ showHideTabStops: false }); - PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); - // this.props.tabStopsShow(); // old code that we should keep - }}>Show tab stops - : { - PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); - this.setState({ showHideTabStops: true }); - }}>Hide tab stops - }
From 82b655c62b144ab9420f8e05a815674935cd4aa8 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:21:55 -0500 Subject: [PATCH 020/103] Cleanup --- .../src/ts/devtools/Header.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index d32bb7eba..7ad861be0 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -433,35 +433,29 @@ export default class Header extends React.Component } - // onClick={this.props.startStopScanStoring} + onClick={() => console.log("Lines")} /> } - // onClick={this.props.startStopScanStoring} - onClick={console.log("Numbers")} + onClick={() => console.log("Numbers")} /> } - // onClick={this.props.startStopScanStoring} + onClick={() => console.log("Outlines")} /> this.deleteModalHandler() } + onClick={() => console.log("Alerts on")} /> Learn more} - // onClick={this.props.startStopScanStoring} + onClick={() => console.log("Learn more")} /> From ee241d6168dc75302b5a1346ae07171b98811bdb Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:51:36 -0500 Subject: [PATCH 021/103] triangles --- .../src/ts/contentScripts/draw.ts | 163 +++++++++++------- .../src/ts/devtools/DevToolsPanelApp.tsx | 10 +- 2 files changed, 105 insertions(+), 68 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index eda5582b9..f8c7b5d68 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -1,19 +1,12 @@ -// import { launch } from 'puppeteer'; -// import "./draw.scss"; -// import { TabsSkeleton } from 'carbon-components-react'; -// import ContextScriptMessaging from "../util/contextScriptMessaging"; import TabMessaging from "../util/tabMessaging"; -// import getAbsoluteXPath from "../util/xpath"; -// import PanelMessaging from '../util/panelMessaging'; - console.log("Content Script for drawing tab stops has loaded") // var intervalTimer: any; TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { - // console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") - // console.log(message.tabStopsResults); + console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") + console.log(message.tabStopsResults); document.body.scrollTop = document.documentElement.scrollTop = 0; injectCSS( @@ -102,49 +95,23 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } ` ); + + // JCH want there to be one function draw() which draws circles for tab stops with + // no errors and triangles for tab stops with errors draw(message.tabStopsResults); drawErrors(message.tabStopsErrors); window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); redraw(message.tabStopsResults); redrawErrors(message.tabStopsErrors) - // clearInterval(intervalTimer) }) - // intervalTimer = setInterval(function () { - // let nodes = getNodesXpaths(message.tabStopsResults); - // nodes = convertXpathsToHtmlElements(nodes); - // nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent - // return el != null; - // }); - - // for (let i = 0; i < nodes.length; i++) { - // let node = nodes[i] //document.evaluate(message.tabStopsResults[i].path.dom, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; - // let line: any = document.getElementsByClassName('lineTop lineNumber'+i)[0] - - // console.log("Evaluated noded",i," =", (node)); - // console.log("Evaluated node: = ", (node as HTMLElement).getBoundingClientRect().y); - // console.log("Evaluated line y1: = ", line.y1.baseVal.value); - - // if (Math.abs((node as HTMLElement).getBoundingClientRect().y - line.y1.baseVal.value) > 3) { // Set to 3 because the offset variable is set to 3 - // deleteDrawing(".deleteMe"); - // redraw(message.tabStopsResults); - // redrawErrors(message.tabStopsErrors) - // break; - // } - - // } - - // }, 3000); - - - return true; }); TabMessaging.addListener("HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", async (message: any) => { - // console.log("Message HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS recieved in foreground"); - // console.log(message); + console.log("Message HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS recieved in foreground"); + console.log(message); // Clearing any that are already highlighted document.querySelectorAll(".highlightSVG").forEach(e => e.classList.remove("highlightSVG")); @@ -155,8 +122,8 @@ TabMessaging.addListener("HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", async (message: //@ts-ignore TabMessaging.addListener("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { - // console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS recieved in foreground") - // console.log(message) + console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS recieved in foreground") + console.log(message) deleteDrawing(".deleteMe"); return true; @@ -169,12 +136,12 @@ function injectCSS(styleString: string) { } function draw(tabStopsErrors: any) { - // console.log("Inside draw") + console.log("Inside draw") redraw(tabStopsErrors); } function drawErrors(tabStopsErrors: any) { - // console.log("Inside drawErrors") + console.log("Inside drawErrors") redrawErrors(tabStopsErrors); } @@ -184,7 +151,7 @@ function deleteDrawing(classToRemove: string) { function redrawErrors(tabStopsErrors: any) { - // console.log("Inside redrawErrors") + console.log("Inside redrawErrors") setTimeout(() => { // console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); @@ -206,7 +173,7 @@ function redrawErrors(tabStopsErrors: any) { // makeTextSmall(x, y, (i + 1).toString()); - // Make box around active component + // MAKE BOX AROUND ACTIVE COMPONENT makeLine(x, y, xPlusWidth, y, ["lineError"]); makeLine(x, y, x, yPlusHeight, ["lineError"]); makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); @@ -233,9 +200,8 @@ function redrawErrors(tabStopsErrors: any) { function redraw(tabStopsResults: any) { - // console.log("Inside redraw") + console.log("Inside redraw") setTimeout(() => { - // let nodes = getNodesToDrawBettween(); let nodes = getNodesXpaths(tabStopsResults); let nodeXpaths = nodes; @@ -320,22 +286,6 @@ function redraw(tabStopsResults: any) { }, 1) } -// function makeIcons(x1: number, y1: number, arrayOfIcons: any) { -// let numberOfIcons = 0; // TODO ALI Needs to be dynamically set, this the the array length of the icons that need to be shown should be set to arrayOfIcons.length -// let iconName = "" // TODO ALI Needs to be dynamically set, this is the name of the icon to draw -// arrayOfIcons = arrayOfIcons // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." - -// // Bias the icons to the center of the circles -// x1 = x1 + 15; -// y1 = y1 - 8; -// let iconBias = 16 - -// for (let i = 0; i < numberOfIcons; i++) { -// makeIcon(x1 + iconBias * i, y1, iconName); -// } - -// } - function makeIcon(x1: number, y1: number, iconName: string) { iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." var iconClone = createSVGErrorIconTemplate(); @@ -355,8 +305,6 @@ function makeIcon(x1: number, y1: number, iconName: string) { document.body.appendChild(elemDIV); } document.getElementsByClassName('svgIcons')[0].appendChild(iconClone) - - } @@ -389,6 +337,53 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n document.getElementById('svgCircle')?.appendChild(circleClone) } +function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, y3: number, circleNumber: number, xpath: string) { + // + // + // + + // .svg-triangle{ + // margin: 0 auto; + // width: 100px; + // height: 100px; + // } + + // .svg-triangle polygon { + // fill:#98d02e; + // stroke:#65b81d; + // stroke-width:2; + // } + + // TODO: Find possible better way to deal with this (Talk to design) + // If the circle is being drawn slighly off of the screen move it into the screen + if (x1 >= -10 && x1 <= 6) { + x1 = 12; + } + if (y1 >= -10 && y1 <= 6) { + y1 = 12; + } + var triangleClone = createSVGTriangleTemplate(); + triangleClone.removeAttribute("id"); + triangleClone.classList.add("deleteMe"); + triangleClone.classList.add("circleNumber" + circleNumber); + triangleClone.setAttribute('x1', String(x1)); + triangleClone.setAttribute('y1', String(y1)); + triangleClone.setAttribute('x2', String(x2)); + triangleClone.setAttribute('y2', String(y2)); + triangleClone.setAttribute('x3', String(x3)); + triangleClone.setAttribute('y3', String(y3)); + triangleClone.setAttribute('pointer-events', "auto"); + triangleClone.onclick = () => { + TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) + }; + if (document.getElementById("svgTriangle") == null) { + const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSVG.setAttribute("id", "svgTriangle"); + document.body.appendChild(elemSVG); + } + document.getElementById('svgTriangle')?.appendChild(triangleClone) +} + function makeTextSmall(x1: number, y1: number, n: string) { // TODO: Find possible better way to deal with this (Talk to design) @@ -428,6 +423,7 @@ function makeTextSmall(x1: number, y1: number, n: string) { } function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: string[]) { + console.log("Inject line"); // let line = document.getElementsByClassName('tabLine')[0] var lineClone = createSVGLineTemplate()//line.cloneNode(true); if (CSSclass) { @@ -449,7 +445,9 @@ function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: str document.getElementById('svgLine')?.appendChild(lineClone); } + function createSVGCircleTemplate() { + console.log("Inject circle"); // This is what we are creating: // // THIS PART-> @@ -479,6 +477,38 @@ function createSVGCircleTextTemplate() { return elemText } +function createSVGTriangleTemplate() { + console.log("Inject triangle"); + // This is what we are creating: + // + // THIS PART-> + // + // + // var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'polygon'); + elemCircle.setAttribute("id", "triangle"); + elemCircle.setAttribute("class", "tabTriangle"); + elemCircle.setAttribute("stroke", "grey"); + elemCircle.setAttribute("stroke-width", "1"); + elemCircle.setAttribute("fill", "yellow"); + return elemCircle +} + +function createSVGTriangleTextTemplate() { + // This is what we are creating: + // + // THIS PART-> + // + // + var elemText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + elemText.setAttribute("class", "triangleText"); + elemText.setAttribute("font-family", "helvetica"); + elemText.setAttribute("font-size", "10"); + elemText.setAttribute("font-weight", "normal"); + elemText.setAttribute("fill", "black"); + return elemText +} + function createSVGLineTemplate() { // This is what we are creating: // @@ -553,6 +583,7 @@ function convertXpathsToHtmlElements(nodes: any) { } function getNodesXpaths(nodes: any) { + console.log("getNodesXpaths"); let tabXpaths: any = []; nodes.map((result: any) => { tabXpaths.push(result.path.dom); diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 766c9640a..eabc90268 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -468,8 +468,14 @@ export default class DevToolsPanelApp extends React.Component Date: Mon, 2 May 2022 13:14:34 -0500 Subject: [PATCH 022/103] added more keyboard rules for the visualization --- .../src/ts/devtools/DevToolsPanelApp.tsx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index eabc90268..3d3f80ea8 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -483,12 +483,24 @@ export default class DevToolsPanelApp extends React.Component Date: Tue, 3 May 2022 10:46:18 -0500 Subject: [PATCH 023/103] remove triangle stuff --- .../src/ts/contentScripts/draw.ts | 76 +------------------ 1 file changed, 1 insertion(+), 75 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index f8c7b5d68..e9fafe5dd 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -337,52 +337,7 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n document.getElementById('svgCircle')?.appendChild(circleClone) } -function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, y3: number, circleNumber: number, xpath: string) { - // - // - // - - // .svg-triangle{ - // margin: 0 auto; - // width: 100px; - // height: 100px; - // } - - // .svg-triangle polygon { - // fill:#98d02e; - // stroke:#65b81d; - // stroke-width:2; - // } - // TODO: Find possible better way to deal with this (Talk to design) - // If the circle is being drawn slighly off of the screen move it into the screen - if (x1 >= -10 && x1 <= 6) { - x1 = 12; - } - if (y1 >= -10 && y1 <= 6) { - y1 = 12; - } - var triangleClone = createSVGTriangleTemplate(); - triangleClone.removeAttribute("id"); - triangleClone.classList.add("deleteMe"); - triangleClone.classList.add("circleNumber" + circleNumber); - triangleClone.setAttribute('x1', String(x1)); - triangleClone.setAttribute('y1', String(y1)); - triangleClone.setAttribute('x2', String(x2)); - triangleClone.setAttribute('y2', String(y2)); - triangleClone.setAttribute('x3', String(x3)); - triangleClone.setAttribute('y3', String(y3)); - triangleClone.setAttribute('pointer-events', "auto"); - triangleClone.onclick = () => { - TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) - }; - if (document.getElementById("svgTriangle") == null) { - const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); - elemSVG.setAttribute("id", "svgTriangle"); - document.body.appendChild(elemSVG); - } - document.getElementById('svgTriangle')?.appendChild(triangleClone) -} function makeTextSmall(x1: number, y1: number, n: string) { @@ -477,37 +432,8 @@ function createSVGCircleTextTemplate() { return elemText } -function createSVGTriangleTemplate() { - console.log("Inject triangle"); - // This is what we are creating: - // - // THIS PART-> - // - // - // var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); - var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'polygon'); - elemCircle.setAttribute("id", "triangle"); - elemCircle.setAttribute("class", "tabTriangle"); - elemCircle.setAttribute("stroke", "grey"); - elemCircle.setAttribute("stroke-width", "1"); - elemCircle.setAttribute("fill", "yellow"); - return elemCircle -} -function createSVGTriangleTextTemplate() { - // This is what we are creating: - // - // THIS PART-> - // - // - var elemText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); - elemText.setAttribute("class", "triangleText"); - elemText.setAttribute("font-family", "helvetica"); - elemText.setAttribute("font-size", "10"); - elemText.setAttribute("font-weight", "normal"); - elemText.setAttribute("fill", "black"); - return elemText -} + function createSVGLineTemplate() { // This is what we are creating: From 5b22e448fbd1b289a8eb53aeb9b0108686886ee1 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 4 May 2022 15:19:53 -0500 Subject: [PATCH 024/103] more tab highlighting --- .../src/ts/contentScripts/draw.ts | 51 ++++++++++++++++--- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index e9fafe5dd..267340800 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -3,6 +3,7 @@ import TabMessaging from "../util/tabMessaging"; console.log("Content Script for drawing tab stops has loaded") // var intervalTimer: any; +// var circleXpaths [] = ""; TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") @@ -55,9 +56,13 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => z-index: 2147483646 !important; visibility: visible !important; } + + .noHighlightSVG{ + fill: green; + } .highlightSVG{ - fill: blue + fill: blue !important; } ` ); @@ -104,11 +109,40 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => deleteDrawing(".deleteMe"); redraw(message.tabStopsResults); redrawErrors(message.tabStopsErrors) - }) - + }); + // Tab key listener + window.addEventListener('keydown', function (event) { + console.log("keycode = ", event.code); + let element = this.document.activeElement; + console.log("element = ",element?.tagName); + // Highlight circle + // When circles are made keep array of xpath and circle number + // for the active element find xpath that matches circle and get circle number + let elementXpath = getXPathForElement(element); + console.log("elementXpath = ", elementXpath); + // get circle with circle number + let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); + console.log("circle xpath",circle?.getAttribute("xpath")); + // change fill color to highlight + // setTimeout(() => { + // circle?.setAttribute("fill", "blue"); + // }, 0) + console.log("circle fill",circle?.getAttribute("fill")); + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + console.log("circle fill",circle?.getAttribute("fill")); + // Inspect active element + }); + return true; }); +function getXPathForElement(element: any) { + const idx: any = (sib: any, name: any) => sib ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) : 1; + const segs: any = (elm: any) => (!elm || elm.nodeType !== 1) ? [''] : [...segs(elm.parentNode), `${elm.localName.toLowerCase()}[${idx(elm)}]`]; + return segs(element).join('/'); +} + TabMessaging.addListener("HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS recieved in foreground"); console.log(message); @@ -322,16 +356,19 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n circleClone.removeAttribute("id"); circleClone.classList.add("deleteMe"); circleClone.classList.add("circleNumber" + circleNumber); + // circleClone.classList.add("dynamic"); circleClone.setAttribute('cx', String(x1)); circleClone.setAttribute('cy', String(y1)); circleClone.setAttribute('pointer-events', "auto"); circleClone.setAttribute('r', String(radius)); + circleClone.setAttribute('xpath', xpath); circleClone.onclick = () => { TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) }; if (document.getElementById("svgCircle") == null) { const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); elemSVG.setAttribute("id", "svgCircle"); + elemSVG.classList.add("dynamic"); document.body.appendChild(elemSVG); } document.getElementById('svgCircle')?.appendChild(circleClone) @@ -378,7 +415,7 @@ function makeTextSmall(x1: number, y1: number, n: string) { } function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: string[]) { - console.log("Inject line"); + // console.log("Inject line"); // let line = document.getElementsByClassName('tabLine')[0] var lineClone = createSVGLineTemplate()//line.cloneNode(true); if (CSSclass) { @@ -402,7 +439,7 @@ function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: str function createSVGCircleTemplate() { - console.log("Inject circle"); + // console.log("Inject circle"); // This is what we are creating: // // THIS PART-> @@ -411,9 +448,11 @@ function createSVGCircleTemplate() { var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); elemCircle.setAttribute("id", "circle"); elemCircle.setAttribute("class", "tabCircle"); + elemCircle.classList.add("dynamic"); + elemCircle.classList.add("noHighlightSVG"); elemCircle.setAttribute("stroke", "grey"); elemCircle.setAttribute("stroke-width", "1"); - elemCircle.setAttribute("fill", "purple"); + // elemCircle.setAttribute("fill", "purple"); return elemCircle } From 0234065877fc1021818830d4fa7539a2d35cdf13 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 4 May 2022 15:38:57 -0500 Subject: [PATCH 025/103] move DRAW_TABS_TO_BACKGROUND message out of inittab --- .../src/ts/background/index.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index bf0c2c47c..52f63ce27 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -36,12 +36,7 @@ async function initTab(tabId: number, archiveId: string) { }) }); - BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) => { - console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") - await BackgroundMessaging.sendToTab(message.tabId, "DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, tabStopsErrors: message.tabStopsErrors}); - return true; - }); // Switch to the appropriate engine for this archiveId let engineFile = await EngineCache.getEngine(archiveId); @@ -202,6 +197,13 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { }); }); +BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) => { + console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") + await BackgroundMessaging.sendToTab(message.tabId, "DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, tabStopsErrors: message.tabStopsErrors}); + + return true; +}); + BackgroundMessaging.addListener("HIGHLIGHT_TABSTOP_TO_BACKGROUND", async (message: any) => { console.log("Message HIGHLIGHT_TABSTOP_TO_BACKGROUND received in background") await BackgroundMessaging.sendToTab(message.tabId, "HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopId: message.tabStopId}); From 14cf6e2e4a9813412ffdae978ad78fd004784d97 Mon Sep 17 00:00:00 2001 From: Tom Brunet Date: Wed, 4 May 2022 15:59:16 -0500 Subject: [PATCH 026/103] setTimeout on the sends to let the stack return --- .../src/ts/util/backgroundMessaging.ts | 62 ++++++++++--------- .../src/ts/util/contextScriptMessaging.ts | 30 ++++----- .../src/ts/util/optionMessaging.ts | 30 ++++----- .../src/ts/util/panelMessaging.ts | 30 ++++----- .../src/ts/util/tabMessaging.ts | 30 ++++----- 5 files changed, 97 insertions(+), 85 deletions(-) diff --git a/accessibility-checker-extension/src/ts/util/backgroundMessaging.ts b/accessibility-checker-extension/src/ts/util/backgroundMessaging.ts index 814172cc9..743b99d1d 100644 --- a/accessibility-checker-extension/src/ts/util/backgroundMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/backgroundMessaging.ts @@ -26,23 +26,25 @@ export default class BackgroundMessaging { let myMessage = JSON.parse(JSON.stringify(message || {})); myMessage.type = type; return new Promise((resolve, reject) => { - chrome.tabs.sendMessage(tabId, myMessage, function(res) { - - if (chrome.runtime.lastError) { - reject(chrome.runtime.lastError.message); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) {} - } - resolve(res); + setTimeout(() => { + chrome.tabs.sendMessage(tabId, myMessage, function(res) { + + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); } else { - resolve(null); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) {} + } + resolve(res); + } else { + resolve(null); + } } - } - }); + }); + }, 0); }); } @@ -50,22 +52,24 @@ export default class BackgroundMessaging { let myMessage = JSON.parse(JSON.stringify(message)); myMessage.type = type; return new Promise((resolve, reject) => { - chrome.runtime.sendMessage(myMessage, async function (res) { - if (chrome.runtime.lastError) { - reject(`${type}: ${chrome.runtime.lastError.message}`); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) {} - } - resolve(res); + setTimeout(() => { + chrome.runtime.sendMessage(myMessage, async function (res) { + if (chrome.runtime.lastError) { + reject(`${type}: ${chrome.runtime.lastError.message}`); } else { - resolve(null); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) {} + } + resolve(res); + } else { + resolve(null); + } } - } - }); + }); + }, 0); }).catch(error => {console.log(error)}); } diff --git a/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts index 34f14f5b6..0fae076f7 100644 --- a/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/contextScriptMessaging.ts @@ -31,22 +31,24 @@ export default class ContextScriptMessaging { return new Promise((resolve, reject) => { - chrome.runtime.sendMessage(myMessage, async function (res) { - if (chrome.runtime.lastError) { - reject(chrome.runtime.lastError.message); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) { } - } - resolve(res); + setTimeout(() => { + chrome.runtime.sendMessage(myMessage, async function (res) { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); } else { - resolve(); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) { } + } + resolve(res); + } else { + resolve(); + } } - } - }); + }); + }, 0); }) } diff --git a/accessibility-checker-extension/src/ts/util/optionMessaging.ts b/accessibility-checker-extension/src/ts/util/optionMessaging.ts index 3547aa5d0..7665f6c6d 100644 --- a/accessibility-checker-extension/src/ts/util/optionMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/optionMessaging.ts @@ -31,22 +31,24 @@ export default class OptionMessaging { return new Promise((resolve, reject) => { - chrome.runtime.sendMessage(myMessage, async function (res) { - if (chrome.runtime.lastError) { - reject(chrome.runtime.lastError.message); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) { } - } - resolve(res); + setTimeout(() => { + chrome.runtime.sendMessage(myMessage, async function (res) { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); } else { - resolve(null); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) { } + } + resolve(res); + } else { + resolve(null); + } } - } - }); + }); + }, 0); }); } diff --git a/accessibility-checker-extension/src/ts/util/panelMessaging.ts b/accessibility-checker-extension/src/ts/util/panelMessaging.ts index 9288c09ae..6304e252d 100644 --- a/accessibility-checker-extension/src/ts/util/panelMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/panelMessaging.ts @@ -26,22 +26,24 @@ export default class PanelMessaging { let myMessage = JSON.parse(JSON.stringify(message)); myMessage.type = type; return new Promise((resolve, reject) => { - chrome.runtime.sendMessage(myMessage, function (res) { - if (chrome.runtime.lastError) { - reject(chrome.runtime.lastError.message); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) {} - } - resolve(res); + setTimeout(() => { + chrome.runtime.sendMessage(myMessage, function (res) { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); } else { - resolve(null); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) {} + } + resolve(res); + } else { + resolve(null); + } } - } - }); + }); + }, 0); }) } diff --git a/accessibility-checker-extension/src/ts/util/tabMessaging.ts b/accessibility-checker-extension/src/ts/util/tabMessaging.ts index b55bbfb75..91954febf 100644 --- a/accessibility-checker-extension/src/ts/util/tabMessaging.ts +++ b/accessibility-checker-extension/src/ts/util/tabMessaging.ts @@ -42,22 +42,24 @@ export default class TabMessaging { } return new Promise((resolve, reject) => { - chrome.runtime.sendMessage(myMessage, async function (res) { - if (chrome.runtime.lastError) { - reject(chrome.runtime.lastError.message); - } else { - if (res) { - if (typeof res === "string") { - try { - res = JSON.parse(res); - } catch (e) { } - } - resolve(res); + setTimeout(() => { + chrome.runtime.sendMessage(myMessage, async function (res) { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); } else { - resolve(null); + if (res) { + if (typeof res === "string") { + try { + res = JSON.parse(res); + } catch (e) { } + } + resolve(res); + } else { + resolve(null); + } } - } - }); + }); + }, 0); }) } From 0707956c9bbb165eb15fa2c968c961273e35bfa5 Mon Sep 17 00:00:00 2001 From: Ali Unwala Date: Fri, 6 May 2022 00:34:05 -0500 Subject: [PATCH 027/103] Preliminary code with with working dual icons for tabstops. Still needs tweaking. --- .../src/ts/contentScripts/draw.ts | 490 +++++++++++++++--- 1 file changed, 406 insertions(+), 84 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 267340800..aa268de57 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -103,37 +103,131 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // JCH want there to be one function draw() which draws circles for tab stops with // no errors and triangles for tab stops with errors - draw(message.tabStopsResults); + + // console.log("message.tabStopsResults" + message.tabStopsResults) + // console.log("message.tabStopsResultslength" + message.tabStopsResults.length) + // console.log("message.tabStopsErrors" + message.tabStopsErrors) + // console.log("message.tabStopsErrorslength" + message.tabStopsErrors.length) + + // Create nodes for regular tabstops + // 1. To to this remove any errors from full list - we are adding the normal tabstop icon here + // let regularTabstops = JSON.parse(JSON.stringify(message.tabStopsResults)); + // let regularTabstops: any[] = [] + // for (let index = 0; index < message.tabStopsResults.length; index++) { + // const tabElem = message.tabStopsResults[index]; + // let flagMatchFound = false; + // message.tabStopsErrors.forEach((errorElem: any) => { + // if (tabElem.path.dom === errorElem.path.dom) { + // // console.log(errorElem.path.dom) + // // console.log(tabElem.path.dom) + // flagMatchFound = true; + // } + // }); + // if (flagMatchFound) { + // regularTabstops.splice(index, 1, null) + // } + // else ( + // regularTabstops.push(tabElem) + // ) + + // } + + // Create nodes for error tabstops - We are adding yellow triangles here + // let errorTabstops: any[] = []; + // for (let index = 0; index < message.tabStopsResults.length; index++) { + // const tabElem = message.tabStopsResults[index]; + // let flagMatchFound = false; + // message.tabStopsErrors.forEach((errorElem: any) => { + // if (tabElem.path.dom === errorElem.path.dom) { + // // console.log(errorElem.path.dom) + // // console.log(tabElem.path.dom) + // flagMatchFound = true + // } + // }); + // if (flagMatchFound) { + // errorTabstops.push(tabElem) + // } + // else { + // errorTabstops.push(null) + // } + // } + + // Create nodes for errors (that are not tabstops) - We are using warning icons here + // 1. To to this remove any regular tabstops from the errors list + let errorsMisc = JSON.parse(JSON.stringify(message.tabStopsErrors)); + for (let index = 0; index < message.tabStopsErrors.length; index++) { + const tabElem = message.tabStopsErrors[index]; + message.tabStopsResults.forEach((errorElem: any) => { + if (tabElem.path.dom === errorElem.path.dom) { + console.log(errorElem.path.dom) + console.log(tabElem.path.dom) + errorsMisc.splice(index, 1) + } + }); + } + // console.log("regularTabstops " + regularTabstops) + // console.log("regularTabstops " + regularTabstops.length) + // console.log("errorTabstops " + errorTabstops) + // console.log("errorTabstops " + errorTabstops.length) + // console.log("errorsMisc " + errorsMisc) + + + let regularTabstops: any = JSON.parse(JSON.stringify(message.tabStopsResults)); + for (let index = 0; index < message.tabStopsResults.length; index++) { + const tabElem = message.tabStopsResults[index]; + let flagMatchFound = false; + message.tabStopsErrors.forEach((errorElem: any) => { + if (tabElem.path.dom === errorElem.path.dom) { + // console.log(errorElem.path.dom) + // console.log(tabElem.path.dom) + flagMatchFound = true; + } + }); + if (flagMatchFound) { + // regularTabstops1.splice(index, 1, null) + regularTabstops[index].nodeHasError = true + } + else { } + // regularTabstops1.push(tabElem) + + + } + console.log("regularTabstops1" + regularTabstops) + console.log(regularTabstops) + + + + draw(regularTabstops); drawErrors(message.tabStopsErrors); window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); - redraw(message.tabStopsResults); + redraw(regularTabstops); redrawErrors(message.tabStopsErrors) }); // Tab key listener window.addEventListener('keydown', function (event) { console.log("keycode = ", event.code); let element = this.document.activeElement; - console.log("element = ",element?.tagName); + console.log("element = ", element?.tagName); // Highlight circle // When circles are made keep array of xpath and circle number // for the active element find xpath that matches circle and get circle number let elementXpath = getXPathForElement(element); console.log("elementXpath = ", elementXpath); // get circle with circle number - let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - console.log("circle xpath",circle?.getAttribute("xpath")); + let circle = this.document.querySelector('circle[xpath="' + elementXpath + '"]'); + console.log("circle xpath", circle?.getAttribute("xpath")); // change fill color to highlight // setTimeout(() => { // circle?.setAttribute("fill", "blue"); // }, 0) - console.log("circle fill",circle?.getAttribute("fill")); + console.log("circle fill", circle?.getAttribute("fill")); circle?.classList.remove("noHighlightSVG"); circle?.classList.add("highlightSVG"); - console.log("circle fill",circle?.getAttribute("fill")); + console.log("circle fill", circle?.getAttribute("fill")); // Inspect active element }); - + return true; }); @@ -169,9 +263,9 @@ function injectCSS(styleString: string) { document.head.append(style); } -function draw(tabStopsErrors: any) { +function draw(tabstops: any) { console.log("Inside draw") - redraw(tabStopsErrors); + redraw(tabstops); } function drawErrors(tabStopsErrors: any) { @@ -233,93 +327,250 @@ function redrawErrors(tabStopsErrors: any) { -function redraw(tabStopsResults: any) { +function redraw(tabstops: any) { console.log("Inside redraw") setTimeout(() => { - let nodes = getNodesXpaths(tabStopsResults); - let nodeXpaths = nodes; - let offset = 3; + let nodes = getNodesXpaths(tabstops); + // console.log(tabstopErrors) + let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); - nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent - return el != null; - }); - nodeXpaths = nodeXpaths.filter(function (el: any) { // Removing failure case of null nodes being sent - return el != null; - }); + + // let nodesErrors = getNodesXpaths(tabstopErrors); + // console.log(tabstopErrors) + // let nodeXpathsErrors = nodesErrors; + // nodesErrors = convertXpathsToHtmlElements(nodesErrors); + + // nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent + // return el != null; + // }); + // nodeXpaths = nodeXpaths.filter(function (el: any) { // Removing failure case of null nodes being sent + // return el != null; + // }); // console.log("tabbable nodes = ", nodes); // JCH - need for last line to return to first node - for (let i = 0; i < nodes.length - 1; i++) { //Make lines between numbers - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); - - // Create white outline - if (Math.abs(slope) < 1) { // Low slope move y - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset - 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset + 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - - } else { // high slope move x - makeLine(nodes[i].getBoundingClientRect().x - offset - 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset - 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); - - makeLine(nodes[i].getBoundingClientRect().x - offset + 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset + 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + for (let i = 0; i < nodes.length-1; i++) { //Make lines between numbers + + if (nodes[i] != null) { + console.log(tabstops[i]) + if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { + console.log("+++++++++++++++++++") + // drawSingleCircle(nodes, i, 20, nodeXpaths) + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } + + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + // if (i == 32) { + // console.log("x y :", x, " ", y) + // } + + // makeCircleSmall(x, y, i, 13, nodeXpaths[i]); + let triangleXShifted = x + let triangleYShifted = y + let triangleSize = 12 + makeTriangle( triangleXShifted,triangleYShifted-triangleSize ,triangleXShifted+triangleSize,triangleYShifted+triangleSize, triangleXShifted-triangleSize,triangleYShifted+triangleSize,1,nodeXpaths[i]) + + makeTextSmall(x, y, (i + 1).toString()); + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); + makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + } + else { + console.log("-------------------------") + + // drawSingleCircle(nodes, i, offset, nodeXpaths) + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } + + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + // if (i == 32) { + // console.log("x y :", x, " ", y) + // } + makeCircleSmall(x, y, i, 13, nodeXpaths[i]); + makeTextSmall(x, y, (i + 1).toString()); + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); + makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + } } - } - + // else if (nodesErrors[i] != null) { + // console.log("ALI WAS HERE") + // drawSingleCircle(nodesErrors, i, offset, nodeXpathsErrors) - for (let i = 0; i < nodes.length; i++) { - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - - // if (i == 32) { - // console.log("x y :", x, " ", y) // } - makeCircleSmall(x, y, i, 13, nodeXpaths[i]); - makeTextSmall(x, y, (i + 1).toString()); - - // Make box around active component - makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); - makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); - - - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + // else { + // //Skip + // } } + }, 1) } +// function drawSingleCircle(nodes: any[], i: any, offset: any, nodeXpaths: any) { +// let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + +// makeLine(nodes[i].getBoundingClientRect().x - offset, +// nodes[i].getBoundingClientRect().y - offset, +// nodes[i + 1].getBoundingClientRect().x - offset, +// nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + +// // Create white outline +// if (Math.abs(slope) < 1) { // Low slope move y +// makeLine(nodes[i].getBoundingClientRect().x - offset, +// nodes[i].getBoundingClientRect().y - offset - 1, +// nodes[i + 1].getBoundingClientRect().x - offset, +// nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + +// makeLine(nodes[i].getBoundingClientRect().x - offset, +// nodes[i].getBoundingClientRect().y - offset + 1, +// nodes[i + 1].getBoundingClientRect().x - offset, +// nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + +// } else { // high slope move x +// makeLine(nodes[i].getBoundingClientRect().x - offset - 1, +// nodes[i].getBoundingClientRect().y - offset, +// nodes[i + 1].getBoundingClientRect().x - offset - 1, +// nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + +// makeLine(nodes[i].getBoundingClientRect().x - offset + 1, +// nodes[i].getBoundingClientRect().y - offset, +// nodes[i + 1].getBoundingClientRect().x - offset + 1, +// nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); +// } + +// let x = nodes[i].getBoundingClientRect().x - offset; +// let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + +// let y = nodes[i].getBoundingClientRect().y - offset; +// let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + +// // if (i == 32) { +// // console.log("x y :", x, " ", y) +// // } +// makeCircleSmall(x, y, i, 13, nodeXpaths[i]); +// makeTextSmall(x, y, (i + 1).toString()); + +// // Make box around active component +// makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); +// makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); +// makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); +// makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + +// // Make white stroke around active component outline +// makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); +// makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); +// makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); +// makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + +// // Make white stroke inside active component outline +// makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); +// makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); +// makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); +// makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); +// } + + function makeIcon(x1: number, y1: number, iconName: string) { iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." var iconClone = createSVGErrorIconTemplate(); @@ -374,6 +625,56 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n document.getElementById('svgCircle')?.appendChild(circleClone) } +function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, y3: number, circleNumber: number, xpath: string) { + // + // + // + + // .svg-triangle{ + // margin: 0 auto; + // width: 100px; + // height: 100px; + // } + + // .svg-triangle polygon { + // fill:#98d02e; + // stroke:#65b81d; + // stroke-width:2; + // } + + // TODO: Find possible better way to deal with this (Talk to design) + // If the circle is being drawn slighly off of the screen move it into the screen + if (x1 >= -10 && x1 <= 6) { + x1 = 12; + } + if (y1 >= -10 && y1 <= 6) { + y1 = 12; + } + var triangleClone = createSVGTriangleTemplate(); + triangleClone.removeAttribute("id"); + triangleClone.classList.add("deleteMe"); + triangleClone.classList.add("circleNumber" + circleNumber); + + triangleClone.setAttribute('points', String(x1)+","+String(y1)+","+String(x2)+","+String(y2)+","+String(x3)+","+String(y3)); + + // triangleClone.setAttribute('x1', String(x1)); + // triangleClone.setAttribute('y1', String(y1)); + // triangleClone.setAttribute('x2', String(x2)); + // triangleClone.setAttribute('y2', String(y2)); + // triangleClone.setAttribute('x3', String(x3)); + // triangleClone.setAttribute('y3', String(y3)); + triangleClone.setAttribute('pointer-events', "auto"); + triangleClone.onclick = () => { + TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) + }; + if (document.getElementById("svgCircle") == null) { + const elemSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + elemSVG.setAttribute("id", "svgCircle"); + document.body.appendChild(elemSVG); + } + document.getElementById('svgCircle')?.appendChild(triangleClone) +} + function makeTextSmall(x1: number, y1: number, n: string) { @@ -437,6 +738,25 @@ function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: str document.getElementById('svgLine')?.appendChild(lineClone); } +function createSVGTriangleTemplate() { + console.log("Inject triangle"); + // This is what we are creating: + // + // THIS PART-> + // + // + // var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'polygon'); + // elemCircle.setAttribute("id", "triangle"); + elemCircle.setAttribute("id", "circle"); + elemCircle.setAttribute("class", "tabCircle"); + // elemCircle.setAttribute("class", "tabTriangle"); + elemCircle.setAttribute("stroke", "grey"); + elemCircle.setAttribute("stroke-width", "1"); + elemCircle.setAttribute("fill", "yellow"); + return elemCircle +} + function createSVGCircleTemplate() { // console.log("Inject circle"); @@ -548,10 +868,12 @@ function convertXpathsToHtmlElements(nodes: any) { } function getNodesXpaths(nodes: any) { - console.log("getNodesXpaths"); + console.log("Inside getNodesXpaths"); let tabXpaths: any = []; nodes.map((result: any) => { - tabXpaths.push(result.path.dom); + if (result != null) { + tabXpaths.push(result.path.dom); + } }); return tabXpaths; } From 5839948c97977b26fb68cdec8a4175835d44d6d4 Mon Sep 17 00:00:00 2001 From: Ali Unwala Date: Fri, 6 May 2022 00:36:22 -0500 Subject: [PATCH 028/103] Slight update --- accessibility-checker-extension/src/ts/contentScripts/draw.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index aa268de57..b3bdbed5b 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -198,11 +198,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => draw(regularTabstops); - drawErrors(message.tabStopsErrors); + drawErrors(errorsMisc); window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); redraw(regularTabstops); - redrawErrors(message.tabStopsErrors) + redrawErrors(errorsMisc) }); // Tab key listener window.addEventListener('keydown', function (event) { From ec7caa4ced710e4d3635c4116df593fc4d562288 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 6 May 2022 14:24:29 -0500 Subject: [PATCH 029/103] change nohighlightSVG color --- .../src/ts/contentScripts/draw.ts | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 267340800..8ba2bbd25 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -58,11 +58,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } .noHighlightSVG{ - fill: green; + fill: purple; } .highlightSVG{ - fill: blue !important; + fill: blue; } ` ); @@ -113,25 +113,36 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // Tab key listener window.addEventListener('keydown', function (event) { console.log("keycode = ", event.code); - let element = this.document.activeElement; - console.log("element = ",element?.tagName); - // Highlight circle - // When circles are made keep array of xpath and circle number - // for the active element find xpath that matches circle and get circle number - let elementXpath = getXPathForElement(element); - console.log("elementXpath = ", elementXpath); - // get circle with circle number - let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - console.log("circle xpath",circle?.getAttribute("xpath")); - // change fill color to highlight - // setTimeout(() => { - // circle?.setAttribute("fill", "blue"); - // }, 0) - console.log("circle fill",circle?.getAttribute("fill")); - circle?.classList.remove("noHighlightSVG"); - circle?.classList.add("highlightSVG"); - console.log("circle fill",circle?.getAttribute("fill")); - // Inspect active element + if (event.code === "Tab") { // only catch Tab key + let element = this.document.activeElement; // get element just tabbed to + console.log("element = ",element?.tagName); + // get xpath for active element + let elementXpath = getXPathForElement(element); + console.log("elementXpath = ", elementXpath); + // get circle with matching xpath + let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); + // find any circle already highlighted with highlightSVG class + let prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]; + + console.log(prevHighlightedElement); + + // remove highlightSVG and add noHighlightSVG + if (prevHighlightedElement) { + console.log("before remove = ",prevHighlightedElement); + prevHighlightedElement.classList.remove("highlightSVG"); + console.log("before add = ",prevHighlightedElement); + // setTimeout(() => { + prevHighlightedElement.classList.add("noHighlightSVG"); + // }, 1); + console.log("after remove and add = ",prevHighlightedElement); + } + // Highlight circle + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + + // Inspect active element + } + }); return true; @@ -548,7 +559,6 @@ function convertXpathsToHtmlElements(nodes: any) { } function getNodesXpaths(nodes: any) { - console.log("getNodesXpaths"); let tabXpaths: any = []; nodes.map((result: any) => { tabXpaths.push(result.path.dom); From 00918534a756902ba742f8a3f3ae0407b851a650 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sat, 7 May 2022 17:52:57 -0500 Subject: [PATCH 030/103] Circle highlighting via TAB or SHIFT TAB done --- .../src/ts/contentScripts/draw.ts | 66 ++++++++++++------- 1 file changed, 43 insertions(+), 23 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 8ba2bbd25..4d67ae836 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -7,7 +7,7 @@ console.log("Content Script for drawing tab stops has loaded") TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") - console.log(message.tabStopsResults); + // console.log(message.tabStopsResults); document.body.scrollTop = document.documentElement.scrollTop = 0; injectCSS( @@ -111,37 +111,57 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => redrawErrors(message.tabStopsErrors) }); // Tab key listener - window.addEventListener('keydown', function (event) { - console.log("keycode = ", event.code); - if (event.code === "Tab") { // only catch Tab key + window.addEventListener('keyup', function (event) { // JCH - keydown does NOT work + if (!event.shiftKey && event.key === "Tab") { // only catch Tab key + let element = this.document.activeElement; // get element just tabbed to which has focus + // get xpath for active element + let elementXpath = getXPathForElement(element); + // get circle with matching xpath + let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); + let prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]; + // for prevHighlightedElement remove highlightSVG and add noHighlightSVG + if (prevHighlightedElement) { + prevHighlightedElement.classList.remove("highlightSVG"); + prevHighlightedElement.classList.add("noHighlightSVG"); + // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + } else { + // console.log("No prevHighlightedElement to highlight") + } + // Highlight circle + if (circle) { + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + // console.log("circle highlighted = ",circle); + } else { + // console.log("No circle to highlight = ",circle); + } + } else if (event.shiftKey && event.key === "Tab") { // catch only SHIFT TAB let element = this.document.activeElement; // get element just tabbed to - console.log("element = ",element?.tagName); // get xpath for active element let elementXpath = getXPathForElement(element); - console.log("elementXpath = ", elementXpath); // get circle with matching xpath let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); // find any circle already highlighted with highlightSVG class let prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]; - - console.log(prevHighlightedElement); - // remove highlightSVG and add noHighlightSVG if (prevHighlightedElement) { - console.log("before remove = ",prevHighlightedElement); prevHighlightedElement.classList.remove("highlightSVG"); - console.log("before add = ",prevHighlightedElement); - // setTimeout(() => { - prevHighlightedElement.classList.add("noHighlightSVG"); - // }, 1); - console.log("after remove and add = ",prevHighlightedElement); + prevHighlightedElement.classList.add("noHighlightSVG"); + // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + } else { + // console.log("No prevHighlightedElement to highlight") } // Highlight circle - circle?.classList.remove("noHighlightSVG"); - circle?.classList.add("highlightSVG"); - - // Inspect active element + if (circle) { + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + // console.log("circle highlighted = ",circle); + } else { + // console.log("No circle to highlight = ",circle); + } } + + // Inspect active element }); @@ -181,12 +201,12 @@ function injectCSS(styleString: string) { } function draw(tabStopsErrors: any) { - console.log("Inside draw") + // console.log("Inside draw") redraw(tabStopsErrors); } function drawErrors(tabStopsErrors: any) { - console.log("Inside drawErrors") + // console.log("Inside drawErrors") redrawErrors(tabStopsErrors); } @@ -196,7 +216,7 @@ function deleteDrawing(classToRemove: string) { function redrawErrors(tabStopsErrors: any) { - console.log("Inside redrawErrors") + // console.log("Inside redrawErrors") setTimeout(() => { // console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); @@ -245,7 +265,7 @@ function redrawErrors(tabStopsErrors: any) { function redraw(tabStopsResults: any) { - console.log("Inside redraw") + // console.log("Inside redraw") setTimeout(() => { let nodes = getNodesXpaths(tabStopsResults); let nodeXpaths = nodes; From 9b5060e176b8d13dbbdb949edc3f05dc6b42c98c Mon Sep 17 00:00:00 2001 From: Ali Unwala Date: Mon, 9 May 2022 14:20:16 -0500 Subject: [PATCH 031/103] Making triangles equilateral and making triangle text black. Commented out svg icon template as well. --- .../src/ts/contentScripts/draw.ts | 213 +++++++++++------- 1 file changed, 127 insertions(+), 86 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index b3bdbed5b..7b0678451 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -64,6 +64,15 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => .highlightSVG{ fill: blue !important; } + + .textColorWhite{ + fill: white + } + + .textColorBlack{ + fill: black + } + ` ); // position: absolute; @@ -178,8 +187,10 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => let flagMatchFound = false; message.tabStopsErrors.forEach((errorElem: any) => { if (tabElem.path.dom === errorElem.path.dom) { - // console.log(errorElem.path.dom) - // console.log(tabElem.path.dom) + console.log("============123===================") + console.log(errorElem.path.dom) + console.log(tabElem.path.dom) + console.log("=============123==================") flagMatchFound = true; } }); @@ -196,6 +207,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => console.log(regularTabstops) + console.log("===============================") + console.log(message.tabStopsResults) + console.log(message.tabStopsErrors) + console.log("===============================") + draw(regularTabstops); drawErrors(errorsMisc); @@ -284,6 +300,7 @@ function redrawErrors(tabStopsErrors: any) { // console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); nodes = convertXpathsToHtmlElements(nodes); + let nodeXpaths = nodes; nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent return el != null; }); @@ -320,7 +337,22 @@ function redrawErrors(tabStopsErrors: any) { makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); // makeIcon(xPlusWidth-6, y-6, "test"); // 12px icon on top right corner - makeIcon(x, y, "test"); + // makeIcon(x, y, "test"); + + // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center + let triangleLegLength = 27 + let triangleXShifted = x-1 // Shift 1 px to center the ! we draw + let triangleYShifted = y + makeTriangle( + triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , + triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + "Error", nodeXpaths[i]) + + makeTextSmall(x, y, "!", "textColorBlack"); + + + } }, 1) } @@ -329,7 +361,7 @@ function redrawErrors(tabStopsErrors: any) { function redraw(tabstops: any) { console.log("Inside redraw") - setTimeout(() => { + setTimeout(() => { let offset = 3; let nodes = getNodesXpaths(tabstops); // console.log(tabstopErrors) @@ -355,7 +387,7 @@ function redraw(tabstops: any) { if (nodes[i] != null) { console.log(tabstops[i]) - if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { + if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle console.log("+++++++++++++++++++") // drawSingleCircle(nodes, i, 20, nodeXpaths) let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) @@ -400,12 +432,18 @@ function redraw(tabstops: any) { // } // makeCircleSmall(x, y, i, 13, nodeXpaths[i]); + + // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center + let triangleLegLength = 27 let triangleXShifted = x let triangleYShifted = y - let triangleSize = 12 - makeTriangle( triangleXShifted,triangleYShifted-triangleSize ,triangleXShifted+triangleSize,triangleYShifted+triangleSize, triangleXShifted-triangleSize,triangleYShifted+triangleSize,1,nodeXpaths[i]) - - makeTextSmall(x, y, (i + 1).toString()); + makeTriangle( + triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , + triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + i.toString(), nodeXpaths[i]) + + makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); // Make box around active component makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); @@ -426,7 +464,7 @@ function redraw(tabstops: any) { makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } - else { + else { // This is the defalt case were we just draw a circle console.log("-------------------------") // drawSingleCircle(nodes, i, offset, nodeXpaths) @@ -471,7 +509,7 @@ function redraw(tabstops: any) { // console.log("x y :", x, " ", y) // } makeCircleSmall(x, y, i, 13, nodeXpaths[i]); - makeTextSmall(x, y, (i + 1).toString()); + makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); // Make box around active component makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); @@ -571,26 +609,26 @@ function redraw(tabstops: any) { // } -function makeIcon(x1: number, y1: number, iconName: string) { - iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." - var iconClone = createSVGErrorIconTemplate(); - iconClone.removeAttribute("display"); - iconClone.classList.remove("svgIcon1"); - iconClone.classList.add("svgIconTest"); - iconClone.classList.add("deleteMe"); - iconClone.style.position = "absolute"; - iconClone.style.left = String(x1) + "px"; - iconClone.style.top = String(y1) + "px"; - // (iconClone as HTMLElement).style.fill = "red"; - // (iconClone as HTMLElement).onclick = () => { alert("You have found an warning icon") }; - - if (document.getElementById("svgIcons") == null) { - var elemDIV = document.createElement('div'); - elemDIV.setAttribute("class", "svgIcons"); - document.body.appendChild(elemDIV); - } - document.getElementsByClassName('svgIcons')[0].appendChild(iconClone) -} +// function makeIcon(x1: number, y1: number, iconName: string) { +// iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." +// var iconClone = createSVGErrorIconTemplate(); +// iconClone.removeAttribute("display"); +// iconClone.classList.remove("svgIcon1"); +// iconClone.classList.add("svgIconTest"); +// iconClone.classList.add("deleteMe"); +// iconClone.style.position = "absolute"; +// iconClone.style.left = String(x1) + "px"; +// iconClone.style.top = String(y1) + "px"; +// // (iconClone as HTMLElement).style.fill = "red"; +// // (iconClone as HTMLElement).onclick = () => { alert("You have found an warning icon") }; + +// if (document.getElementById("svgIcons") == null) { +// var elemDIV = document.createElement('div'); +// elemDIV.setAttribute("class", "svgIcons"); +// document.body.appendChild(elemDIV); +// } +// document.getElementsByClassName('svgIcons')[0].appendChild(iconClone) +// } function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: number, xpath: string) { @@ -625,7 +663,7 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n document.getElementById('svgCircle')?.appendChild(circleClone) } -function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, y3: number, circleNumber: number, xpath: string) { +function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, y3: number, circleNumber: string, xpath: string) { // // // @@ -677,7 +715,7 @@ function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, -function makeTextSmall(x1: number, y1: number, n: string) { +function makeTextSmall(x1: number, y1: number, n: string, textColorClassName?: string) { // TODO: Find possible better way to deal with this (Talk to design) // If the circle is being drawn slighly off of the screen move it into the screen @@ -693,6 +731,9 @@ function makeTextSmall(x1: number, y1: number, n: string) { textClone.removeAttribute("id"); textClone.classList.add("deleteMe"); textClone.classList.add("circleSmall"); + if(textColorClassName){ + textClone.classList.add(textColorClassName); + } if (n.length >= 3) { // If number has 3+ digits shift it a few more px to center it textClone.setAttribute('x', String(x1 - 10)); @@ -805,59 +846,59 @@ function createSVGLineTemplate() { return elemLine } -function createSVGErrorIconTemplate() { - // This is what we are creating: - // - // - // - // - // - // - // - // - // - var elemSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); - elemSvg.setAttribute("class", "svgIcon1"); - elemSvg.setAttribute("display", "none"); - elemSvg.setAttribute("xmlns", "http://www.w3.org/2000/svg"); - elemSvg.setAttribute("width", "12px"); - elemSvg.setAttribute("height", "12px"); - elemSvg.setAttribute("viewBox", "0 0 32 32"); - - var elemDefs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); - - var elemStyle = document.createElement('style'); - elemStyle.innerText = ".cls-1 { fill: none; }" - - var elemPath1 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - elemPath1.setAttribute("class", "cls-1"); - elemPath1.setAttribute("d", "M16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Zm-1.125-5h2.25V12h-2.25Z"); - elemPath1.setAttribute("style", " fill: black; "); - - var elemPath2 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - elemPath2.setAttribute("d", "M16.002,6.1714h-.004L4.6487,27.9966,4.6506,28H27.3494l.0019-.0034ZM14.875,12h2.25v9h-2.25ZM16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Z"); - elemPath2.setAttribute("style", " fill: yellow; "); - - var elemPath3 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - elemPath3.setAttribute("d", "M29,30H3a1,1,0,0,1-.8872-1.4614l13-25a1,1,0,0,1,1.7744,0l13,25A1,1,0,0,1,29,30ZM4.6507,28H27.3493l.002-.0033L16.002,6.1714h-.004L4.6487,27.9967Z"); - elemPath3.setAttribute("style", " fill: black; "); - - var elemRect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); - elemRect.setAttribute("data-name", "<Transparent Rectangle>"); - elemRect.setAttribute("class", "cls-1"); - elemRect.setAttribute("width", "32"); - elemRect.setAttribute("height", "32"); - - elemDefs.appendChild(elemStyle); - elemSvg.appendChild(elemDefs); - elemSvg.appendChild(elemPath1); - elemSvg.appendChild(elemPath2); - elemSvg.appendChild(elemPath3); - elemSvg.appendChild(elemRect); - return elemSvg; -} +// function createSVGErrorIconTemplate() { +// // This is what we are creating: +// // +// // +// // +// // +// // +// // +// // +// // +// // +// var elemSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); +// elemSvg.setAttribute("class", "svgIcon1"); +// elemSvg.setAttribute("display", "none"); +// elemSvg.setAttribute("xmlns", "http://www.w3.org/2000/svg"); +// elemSvg.setAttribute("width", "12px"); +// elemSvg.setAttribute("height", "12px"); +// elemSvg.setAttribute("viewBox", "0 0 32 32"); + +// var elemDefs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); + +// var elemStyle = document.createElement('style'); +// elemStyle.innerText = ".cls-1 { fill: none; }" + +// var elemPath1 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); +// elemPath1.setAttribute("class", "cls-1"); +// elemPath1.setAttribute("d", "M16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Zm-1.125-5h2.25V12h-2.25Z"); +// elemPath1.setAttribute("style", " fill: black; "); + +// var elemPath2 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); +// elemPath2.setAttribute("d", "M16.002,6.1714h-.004L4.6487,27.9966,4.6506,28H27.3494l.0019-.0034ZM14.875,12h2.25v9h-2.25ZM16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Z"); +// elemPath2.setAttribute("style", " fill: yellow; "); + +// var elemPath3 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); +// elemPath3.setAttribute("d", "M29,30H3a1,1,0,0,1-.8872-1.4614l13-25a1,1,0,0,1,1.7744,0l13,25A1,1,0,0,1,29,30ZM4.6507,28H27.3493l.002-.0033L16.002,6.1714h-.004L4.6487,27.9967Z"); +// elemPath3.setAttribute("style", " fill: black; "); + +// var elemRect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); +// elemRect.setAttribute("data-name", "<Transparent Rectangle>"); +// elemRect.setAttribute("class", "cls-1"); +// elemRect.setAttribute("width", "32"); +// elemRect.setAttribute("height", "32"); + +// elemDefs.appendChild(elemStyle); +// elemSvg.appendChild(elemDefs); +// elemSvg.appendChild(elemPath1); +// elemSvg.appendChild(elemPath2); +// elemSvg.appendChild(elemPath3); +// elemSvg.appendChild(elemRect); +// return elemSvg; +// } function convertXpathsToHtmlElements(nodes: any) { let results: any = []; From 6a04986df9597d0bd6b48bb09e377c86b6f24d8d Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Mon, 9 May 2022 15:39:23 -0500 Subject: [PATCH 032/103] add inspect --- .../src/ts/contentScripts/draw.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 4d67ae836..27f01ce19 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -135,6 +135,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } else { // console.log("No circle to highlight = ",circle); } + // Inspect active element + console.log("circle.xpath = ", circle?.getAttribute("xpath")); + console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); + TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); + // Returm from elements tab to browse page tab } else if (event.shiftKey && event.key === "Tab") { // catch only SHIFT TAB let element = this.document.activeElement; // get element just tabbed to // get xpath for active element @@ -159,9 +164,12 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } else { // console.log("No circle to highlight = ",circle); } + // Inspect active element + console.log("circle.xpath = ", circle?.getAttribute("xpath")); + console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); + TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }) } - // Inspect active element }); From b56a8ca654813800f6b17b07183987843fc265c4 Mon Sep 17 00:00:00 2001 From: Ali Unwala Date: Mon, 9 May 2022 15:42:06 -0500 Subject: [PATCH 033/103] Adding index to error --- accessibility-checker-extension/src/ts/contentScripts/draw.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 7b0678451..56ae34522 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -347,7 +347,7 @@ function redrawErrors(tabStopsErrors: any) { triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - "Error", nodeXpaths[i]) + "Error"+i, nodeXpaths[i]) makeTextSmall(x, y, "!", "textColorBlack"); From e6ec25743622f10ce43f681937972c425bcd8e7a Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 12 May 2022 00:15:38 -0500 Subject: [PATCH 034/103] Integration done except for last circle issue --- .../src/ts/contentScripts/draw.ts | 267 ++++++------------ 1 file changed, 80 insertions(+), 187 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index e9f318009..852501523 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -2,9 +2,6 @@ import TabMessaging from "../util/tabMessaging"; console.log("Content Script for drawing tab stops has loaded") -// var intervalTimer: any; -// var circleXpaths [] = ""; - TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") // console.log(message.tabStopsResults); @@ -65,6 +62,14 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => fill: blue; } + .noHighlightSVGtriangle{ + fill: darkorange; + } + + .highlightSVGtriangle{ + fill: yellow; + } + .textColorWhite{ fill: white } @@ -110,57 +115,6 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => ` ); - // JCH want there to be one function draw() which draws circles for tab stops with - // no errors and triangles for tab stops with errors - - // console.log("message.tabStopsResults" + message.tabStopsResults) - // console.log("message.tabStopsResultslength" + message.tabStopsResults.length) - // console.log("message.tabStopsErrors" + message.tabStopsErrors) - // console.log("message.tabStopsErrorslength" + message.tabStopsErrors.length) - - // Create nodes for regular tabstops - // 1. To to this remove any errors from full list - we are adding the normal tabstop icon here - // let regularTabstops = JSON.parse(JSON.stringify(message.tabStopsResults)); - // let regularTabstops: any[] = [] - // for (let index = 0; index < message.tabStopsResults.length; index++) { - // const tabElem = message.tabStopsResults[index]; - // let flagMatchFound = false; - // message.tabStopsErrors.forEach((errorElem: any) => { - // if (tabElem.path.dom === errorElem.path.dom) { - // // console.log(errorElem.path.dom) - // // console.log(tabElem.path.dom) - // flagMatchFound = true; - // } - // }); - // if (flagMatchFound) { - // regularTabstops.splice(index, 1, null) - // } - // else ( - // regularTabstops.push(tabElem) - // ) - - // } - - // Create nodes for error tabstops - We are adding yellow triangles here - // let errorTabstops: any[] = []; - // for (let index = 0; index < message.tabStopsResults.length; index++) { - // const tabElem = message.tabStopsResults[index]; - // let flagMatchFound = false; - // message.tabStopsErrors.forEach((errorElem: any) => { - // if (tabElem.path.dom === errorElem.path.dom) { - // // console.log(errorElem.path.dom) - // // console.log(tabElem.path.dom) - // flagMatchFound = true - // } - // }); - // if (flagMatchFound) { - // errorTabstops.push(tabElem) - // } - // else { - // errorTabstops.push(null) - // } - // } - // Create nodes for errors (that are not tabstops) - We are using warning icons here // 1. To to this remove any regular tabstops from the errors list let errorsMisc = JSON.parse(JSON.stringify(message.tabStopsErrors)); @@ -226,13 +180,27 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => let element = this.document.activeElement; // get element just tabbed to which has focus // get xpath for active element let elementXpath = getXPathForElement(element); - // get circle with matching xpath + // get circle or polygon with matching xpath let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - let prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]; + let polygon = this.document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let prevHighlightedElement; + if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]) { + // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + } else if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVGtriangle")[0]) { + // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG + if (prevHighlightedElement) { - prevHighlightedElement.classList.remove("highlightSVG"); - prevHighlightedElement.classList.add("noHighlightSVG"); + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + if (prevHighlightedElement.tagName === "circle") { + prevHighlightedElement.classList.remove("highlightSVG"); + prevHighlightedElement.classList.add("noHighlightSVG"); + } + else if (prevHighlightedElement.tagName === "polygon") { + prevHighlightedElement.classList.remove("highlightSVGtriangle"); + prevHighlightedElement.classList.add("noHighlightSVGtriangle"); + } // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); } else { // console.log("No prevHighlightedElement to highlight") @@ -245,23 +213,43 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } else { // console.log("No circle to highlight = ",circle); } + if (polygon) { + polygon?.classList.remove("noHighlightSVGtriangle"); + polygon?.classList.add("highlightSVGtriangle"); + // console.log("polygon highlighted = ",polygon); + } else { + // console.log("No circle to highlight = ",circle); + } // Inspect active element - console.log("circle.xpath = ", circle?.getAttribute("xpath")); - console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); - TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); + // console.log("circle.xpath = ", circle?.getAttribute("xpath")); + // console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); + // TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); // Returm from elements tab to browse page tab } else if (event.shiftKey && event.key === "Tab") { // catch only SHIFT TAB - let element = this.document.activeElement; // get element just tabbed to + let element = this.document.activeElement; // get element just tabbed to which has focus // get xpath for active element let elementXpath = getXPathForElement(element); - // get circle with matching xpath + // get circle or polygon with matching xpath let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - // find any circle already highlighted with highlightSVG class - let prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]; - // remove highlightSVG and add noHighlightSVG + let polygon = this.document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let prevHighlightedElement; + if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]) { + // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + } else if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVGtriangle")[0]) { + // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + } + // for prevHighlightedElement remove highlightSVG and add noHighlightSVG + if (prevHighlightedElement) { - prevHighlightedElement.classList.remove("highlightSVG"); - prevHighlightedElement.classList.add("noHighlightSVG"); + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + if (prevHighlightedElement.tagName === "circle") { + prevHighlightedElement.classList.remove("highlightSVG"); + prevHighlightedElement.classList.add("noHighlightSVG"); + } + else if (prevHighlightedElement.tagName === "polygon") { + prevHighlightedElement.classList.remove("highlightSVGtriangle"); + prevHighlightedElement.classList.add("noHighlightSVGtriangle"); + } // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); } else { // console.log("No prevHighlightedElement to highlight") @@ -274,12 +262,19 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } else { // console.log("No circle to highlight = ",circle); } + if (polygon) { + polygon?.classList.remove("noHighlightSVGtriangle"); + polygon?.classList.add("highlightSVGtriangle"); + // console.log("polygon highlighted = ",polygon); + } else { + // console.log("No circle to highlight = ",circle); + } // Inspect active element - console.log("circle.xpath = ", circle?.getAttribute("xpath")); - console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); - TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }) + // console.log("circle.xpath = ", circle?.getAttribute("xpath")); + // console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); + // TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); + // Returm from elements tab to browse page tab } - }); @@ -379,19 +374,16 @@ function redrawErrors(tabStopsErrors: any) { // makeIcon(x, y, "test"); // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center - let triangleLegLength = 27 - let triangleXShifted = x-1 // Shift 1 px to center the ! we draw - let triangleYShifted = y + let triangleLegLength = 27; + let triangleXShifted = x; // Shift 1 px to center the ! we draw + let triangleYShifted = y+1; makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, "Error"+i, nodeXpaths[i]) - makeTextSmall(x, y, "!", "textColorBlack"); - - - + makeTextSmall(x, y, "?", "textColorBlack"); } }, 1) } @@ -422,6 +414,7 @@ function redraw(tabstops: any) { // console.log("tabbable nodes = ", nodes); // JCH - need for last line to return to first node + console.log("nodes.length = ", nodes.length); for (let i = 0; i < nodes.length-1; i++) { //Make lines between numbers if (nodes[i] != null) { @@ -466,16 +459,11 @@ function redraw(tabstops: any) { let y = nodes[i].getBoundingClientRect().y - offset; let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - // if (i == 32) { - // console.log("x y :", x, " ", y) - // } - - // makeCircleSmall(x, y, i, 13, nodeXpaths[i]); - // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center let triangleLegLength = 27 let triangleXShifted = x let triangleYShifted = y + console.log("Make triangle with x= ",x," y= ",y); makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, @@ -547,6 +535,7 @@ function redraw(tabstops: any) { // if (i == 32) { // console.log("x y :", x, " ", y) // } + console.log("Make circle with x= ",x," y= ",y); makeCircleSmall(x, y, i, 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); @@ -583,93 +572,6 @@ function redraw(tabstops: any) { }, 1) } -// function drawSingleCircle(nodes: any[], i: any, offset: any, nodeXpaths: any) { -// let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - -// makeLine(nodes[i].getBoundingClientRect().x - offset, -// nodes[i].getBoundingClientRect().y - offset, -// nodes[i + 1].getBoundingClientRect().x - offset, -// nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); - -// // Create white outline -// if (Math.abs(slope) < 1) { // Low slope move y -// makeLine(nodes[i].getBoundingClientRect().x - offset, -// nodes[i].getBoundingClientRect().y - offset - 1, -// nodes[i + 1].getBoundingClientRect().x - offset, -// nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); - -// makeLine(nodes[i].getBoundingClientRect().x - offset, -// nodes[i].getBoundingClientRect().y - offset + 1, -// nodes[i + 1].getBoundingClientRect().x - offset, -// nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - -// } else { // high slope move x -// makeLine(nodes[i].getBoundingClientRect().x - offset - 1, -// nodes[i].getBoundingClientRect().y - offset, -// nodes[i + 1].getBoundingClientRect().x - offset - 1, -// nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); - -// makeLine(nodes[i].getBoundingClientRect().x - offset + 1, -// nodes[i].getBoundingClientRect().y - offset, -// nodes[i + 1].getBoundingClientRect().x - offset + 1, -// nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); -// } - -// let x = nodes[i].getBoundingClientRect().x - offset; -// let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - -// let y = nodes[i].getBoundingClientRect().y - offset; -// let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - -// // if (i == 32) { -// // console.log("x y :", x, " ", y) -// // } -// makeCircleSmall(x, y, i, 13, nodeXpaths[i]); -// makeTextSmall(x, y, (i + 1).toString()); - -// // Make box around active component -// makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); -// makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); -// makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); -// makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); - - -// // Make white stroke around active component outline -// makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); -// makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); -// makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); -// makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - -// // Make white stroke inside active component outline -// makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); -// makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); -// makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); -// makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); -// } - - -// function makeIcon(x1: number, y1: number, iconName: string) { -// iconName = iconName; // TODO delete this line later. Added to remove typescript error "is declared but its value is never read." -// var iconClone = createSVGErrorIconTemplate(); -// iconClone.removeAttribute("display"); -// iconClone.classList.remove("svgIcon1"); -// iconClone.classList.add("svgIconTest"); -// iconClone.classList.add("deleteMe"); -// iconClone.style.position = "absolute"; -// iconClone.style.left = String(x1) + "px"; -// iconClone.style.top = String(y1) + "px"; -// // (iconClone as HTMLElement).style.fill = "red"; -// // (iconClone as HTMLElement).onclick = () => { alert("You have found an warning icon") }; - -// if (document.getElementById("svgIcons") == null) { -// var elemDIV = document.createElement('div'); -// elemDIV.setAttribute("class", "svgIcons"); -// document.body.appendChild(elemDIV); -// } -// document.getElementsByClassName('svgIcons')[0].appendChild(iconClone) -// } - - function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: number, xpath: string) { // TODO: Find possible better way to deal with this (Talk to design) @@ -684,7 +586,6 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n circleClone.removeAttribute("id"); circleClone.classList.add("deleteMe"); circleClone.classList.add("circleNumber" + circleNumber); - // circleClone.classList.add("dynamic"); circleClone.setAttribute('cx', String(x1)); circleClone.setAttribute('cy', String(y1)); circleClone.setAttribute('pointer-events', "auto"); @@ -699,6 +600,7 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: n elemSVG.classList.add("dynamic"); document.body.appendChild(elemSVG); } + console.log("Inject circle circleNumber" + circleNumber); document.getElementById('svgCircle')?.appendChild(circleClone) } @@ -731,16 +633,9 @@ function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, triangleClone.removeAttribute("id"); triangleClone.classList.add("deleteMe"); triangleClone.classList.add("circleNumber" + circleNumber); - triangleClone.setAttribute('points', String(x1)+","+String(y1)+","+String(x2)+","+String(y2)+","+String(x3)+","+String(y3)); - - // triangleClone.setAttribute('x1', String(x1)); - // triangleClone.setAttribute('y1', String(y1)); - // triangleClone.setAttribute('x2', String(x2)); - // triangleClone.setAttribute('y2', String(y2)); - // triangleClone.setAttribute('x3', String(x3)); - // triangleClone.setAttribute('y3', String(y3)); triangleClone.setAttribute('pointer-events', "auto"); + triangleClone.setAttribute('xpath', xpath); triangleClone.onclick = () => { TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: xpath, circleNumber: circleNumber + 1 }) }; @@ -749,7 +644,8 @@ function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, elemSVG.setAttribute("id", "svgCircle"); document.body.appendChild(elemSVG); } - document.getElementById('svgCircle')?.appendChild(triangleClone) + console.log("Inject triangle circleNumber" + circleNumber); + document.getElementById('svgCircle')?.appendChild(triangleClone); } @@ -819,7 +715,6 @@ function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: str } function createSVGTriangleTemplate() { - console.log("Inject triangle"); // This is what we are creating: // // THIS PART-> @@ -830,16 +725,15 @@ function createSVGTriangleTemplate() { // elemCircle.setAttribute("id", "triangle"); elemCircle.setAttribute("id", "circle"); elemCircle.setAttribute("class", "tabCircle"); - // elemCircle.setAttribute("class", "tabTriangle"); + elemCircle.classList.add("dynamic"); + elemCircle.classList.add("noHighlightSVGtriangle"); elemCircle.setAttribute("stroke", "grey"); elemCircle.setAttribute("stroke-width", "1"); - elemCircle.setAttribute("fill", "yellow"); return elemCircle } function createSVGCircleTemplate() { - // console.log("Inject circle"); // This is what we are creating: // // THIS PART-> @@ -852,7 +746,6 @@ function createSVGCircleTemplate() { elemCircle.classList.add("noHighlightSVG"); elemCircle.setAttribute("stroke", "grey"); elemCircle.setAttribute("stroke-width", "1"); - // elemCircle.setAttribute("fill", "purple"); return elemCircle } From 8cd0c9bcfa9e3ce170dc7380ceedba9848b28f29 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 13 May 2022 01:36:03 -0500 Subject: [PATCH 035/103] cleanup --- .../src/ts/contentScripts/draw.ts | 239 +++++++++--------- 1 file changed, 114 insertions(+), 125 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 852501523..2a7462914 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -149,11 +149,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } }); if (flagMatchFound) { - // regularTabstops1.splice(index, 1, null) regularTabstops[index].nodeHasError = true } - else { } - // regularTabstops1.push(tabElem) + else { + + } } @@ -331,59 +331,60 @@ function deleteDrawing(classToRemove: string) { function redrawErrors(tabStopsErrors: any) { // console.log("Inside redrawErrors") setTimeout(() => { - // console.log("tabbable error nodes = ", tabStopsErrors); + console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); - nodes = convertXpathsToHtmlElements(nodes); let nodeXpaths = nodes; + nodes = convertXpathsToHtmlElements(nodes); + + console.log("redrawErrors nodeXpaths = ", nodeXpaths); nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent return el != null; }); let offset = 0; - + console.log("nodes = ",nodes); for (let i = 0; i < nodes.length; i++) { - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - - // makeCircleSmall(x, y, i, 7); - // makeTextSmall(x, y, (i + 1).toString()); - - - // MAKE BOX AROUND ACTIVE COMPONENT - makeLine(x, y, xPlusWidth, y, ["lineError"]); - makeLine(x, y, x, yPlusHeight, ["lineError"]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); - - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - - // makeIcon(xPlusWidth-6, y-6, "test"); // 12px icon on top right corner - // makeIcon(x, y, "test"); - - // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center - let triangleLegLength = 27; - let triangleXShifted = x; // Shift 1 px to center the ! we draw - let triangleYShifted = y+1; - makeTriangle( - triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , - triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - "Error"+i, nodeXpaths[i]) - makeTextSmall(x, y, "?", "textColorBlack"); + if (nodeXpaths[i].includes("body")) { // JCH - much be within body + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + // MAKE BOX AROUND ACTIVE COMPONENT + makeLine(x, y, xPlusWidth, y, ["lineError"]); + makeLine(x, y, x, yPlusHeight, ["lineError"]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + + // makeIcon(xPlusWidth-6, y-6, "test"); // 12px icon on top right corner + // makeIcon(x, y, "test"); + + // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center + let triangleLegLength = 27; + let triangleXShifted = x; // Shift 1 px to center the ! we draw + let triangleYShifted = y+1; + makeTriangle( + triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , + triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + "Error"+i.toString(), nodeXpaths[i]) + + makeTextSmall(x, y, "?", "textColorBlack"); + } } }, 1) } @@ -394,65 +395,56 @@ function redraw(tabstops: any) { console.log("Inside redraw") setTimeout(() => { let offset = 3; + console.log("redraw tabstops = ", tabstops); let nodes = getNodesXpaths(tabstops); // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); - // let nodesErrors = getNodesXpaths(tabstopErrors); - // console.log(tabstopErrors) - // let nodeXpathsErrors = nodesErrors; - // nodesErrors = convertXpathsToHtmlElements(nodesErrors); - - // nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent - // return el != null; - // }); - // nodeXpaths = nodeXpaths.filter(function (el: any) { // Removing failure case of null nodes being sent - // return el != null; - // }); - - // console.log("tabbable nodes = ", nodes); - // JCH - need for last line to return to first node console.log("nodes.length = ", nodes.length); - for (let i = 0; i < nodes.length-1; i++) { //Make lines between numbers - + for (let i = 0; i < nodes.length; i++) { //Make lines between numbers + console.log("##########################"); if (nodes[i] != null) { console.log(tabstops[i]) if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle + console.log("+++++++++++++++++++") - // drawSingleCircle(nodes, i, 20, nodeXpaths) - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + if (i < nodes.length - 1) { + // drawSingleCircle(nodes, i, 20, nodeXpaths) + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - // Create white outline - if (Math.abs(slope) < 1) { // Low slope move y makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset - 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset + 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - - } else { // high slope move x - makeLine(nodes[i].getBoundingClientRect().x - offset - 1, nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset - 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } - makeLine(nodes[i].getBoundingClientRect().x - offset + 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset + 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); } - + let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -495,36 +487,40 @@ function redraw(tabstops: any) { console.log("-------------------------") // drawSingleCircle(nodes, i, offset, nodeXpaths) - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + if (i < nodes.length - 1) { + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); - - // Create white outline - if (Math.abs(slope) < 1) { // Low slope move y makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset - 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset + 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - - } else { // high slope move x - makeLine(nodes[i].getBoundingClientRect().x - offset - 1, nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset - 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } - makeLine(nodes[i].getBoundingClientRect().x - offset + 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset + 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); } + let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -536,7 +532,7 @@ function redraw(tabstops: any) { // console.log("x y :", x, " ", y) // } console.log("Make circle with x= ",x," y= ",y); - makeCircleSmall(x, y, i, 13, nodeXpaths[i]); + makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); // Make box around active component @@ -559,20 +555,12 @@ function redraw(tabstops: any) { makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } } - // else if (nodesErrors[i] != null) { - // console.log("ALI WAS HERE") - // drawSingleCircle(nodesErrors, i, offset, nodeXpathsErrors) - - // } - // else { - // //Skip - // } } }, 1) } -function makeCircleSmall(x1: number, y1: number, circleNumber: number, radius: number, xpath: string) { +function makeCircleSmall(x1: number, y1: number, circleNumber: string, radius: number, xpath: string) { // TODO: Find possible better way to deal with this (Talk to design) // If the circle is being drawn slighly off of the screen move it into the screen @@ -845,6 +833,7 @@ function getNodesXpaths(nodes: any) { let tabXpaths: any = []; nodes.map((result: any) => { if (result != null) { + console.log("result.path.dom = "+result.path.dom); tabXpaths.push(result.path.dom); } }); From 49afe5cecc9edeead61e734e3edcbc1f85d8e22c Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 13 May 2022 16:09:29 -0500 Subject: [PATCH 036/103] force web page to top before drawing --- .../src/ts/contentScripts/draw.ts | 47 +++++++++++++------ .../src/ts/devtools/DevToolsPanelApp.tsx | 11 ++++- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 2a7462914..4209ed3f7 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -5,8 +5,7 @@ console.log("Content Script for drawing tab stops has loaded") TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { console.log("Message DRAW_TABS_TO_CONTEXT_SCRIPTS received in foreground") // console.log(message.tabStopsResults); - document.body.scrollTop = document.documentElement.scrollTop = 0; - + injectCSS( ` .line { @@ -167,8 +166,17 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => console.log("===============================") - draw(regularTabstops); - drawErrors(errorsMisc); + // JCH - this allows the web to scroll to the top before drawing occurs + goToTop().then(function() { + setTimeout(() => { + draw(regularTabstops); + drawErrors(errorsMisc); + }, 1000) + + }) + // draw(regularTabstops); + // drawErrors(errorsMisc); + window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); redraw(regularTabstops); @@ -321,6 +329,7 @@ function draw(tabstops: any) { function drawErrors(tabStopsErrors: any) { // console.log("Inside drawErrors") redrawErrors(tabStopsErrors); + return true; } function deleteDrawing(classToRemove: string) { @@ -336,13 +345,13 @@ function redrawErrors(tabStopsErrors: any) { let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); - console.log("redrawErrors nodeXpaths = ", nodeXpaths); + // console.log("redrawErrors nodeXpaths = ", nodeXpaths); nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent return el != null; }); let offset = 0; - console.log("nodes = ",nodes); + // console.log("nodes = ",nodes); for (let i = 0; i < nodes.length; i++) { if (nodeXpaths[i].includes("body")) { // JCH - much be within body @@ -386,7 +395,7 @@ function redrawErrors(tabStopsErrors: any) { makeTextSmall(x, y, "?", "textColorBlack"); } } - }, 1) + }, 1); } @@ -404,12 +413,12 @@ function redraw(tabstops: any) { // JCH - need for last line to return to first node console.log("nodes.length = ", nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers - console.log("##########################"); + // console.log("##########################"); if (nodes[i] != null) { - console.log(tabstops[i]) + // console.log(tabstops[i]) if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - console.log("+++++++++++++++++++") + // console.log("+++++++++++++++++++") if (i < nodes.length - 1) { // drawSingleCircle(nodes, i, 20, nodeXpaths) let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) @@ -455,7 +464,7 @@ function redraw(tabstops: any) { let triangleLegLength = 27 let triangleXShifted = x let triangleYShifted = y - console.log("Make triangle with x= ",x," y= ",y); + // console.log("Make triangle with x= ",x," y= ",y); makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, @@ -484,7 +493,7 @@ function redraw(tabstops: any) { makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } else { // This is the defalt case were we just draw a circle - console.log("-------------------------") + // console.log("-------------------------") // drawSingleCircle(nodes, i, offset, nodeXpaths) if (i < nodes.length - 1) { @@ -531,7 +540,7 @@ function redraw(tabstops: any) { // if (i == 32) { // console.log("x y :", x, " ", y) // } - console.log("Make circle with x= ",x," y= ",y); + // console.log("Make circle with x= ",x," y= ",y); makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); @@ -588,7 +597,7 @@ function makeCircleSmall(x1: number, y1: number, circleNumber: string, radius: n elemSVG.classList.add("dynamic"); document.body.appendChild(elemSVG); } - console.log("Inject circle circleNumber" + circleNumber); + // console.log("Inject circle circleNumber" + circleNumber); document.getElementById('svgCircle')?.appendChild(circleClone) } @@ -632,7 +641,7 @@ function makeTriangle(x1: number, y1: number, x2: number, y2: number,x3: number, elemSVG.setAttribute("id", "svgCircle"); document.body.appendChild(elemSVG); } - console.log("Inject triangle circleNumber" + circleNumber); + // console.log("Inject triangle circleNumber" + circleNumber); document.getElementById('svgCircle')?.appendChild(triangleClone); } @@ -840,6 +849,14 @@ function getNodesXpaths(nodes: any) { return tabXpaths; } +async function goToTop() { + window.scrollTo({ + top: 0, + left: 0, + behavior: 'smooth' + }); +} + // function getXPathForElement(element: any) { // const idx: any = (sib: any, name: any) => sib // ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 3d3f80ea8..4d3939da0 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -221,11 +221,18 @@ export default class DevToolsPanelApp extends React.Component { if (message.xpath === result.path.dom) { - // console.log("result xpath = ",result.path.dom); + console.log("result xpath = ",result.path.dom); + this.getSelectedItem(result); + this.selectItem(result); + } + }); + this.state.tabStopsErrors.map((result: any) => { + if (message.xpath === result.path.dom) { + console.log("result xpath = ",result.path.dom); this.getSelectedItem(result); this.selectItem(result); } From 7d8b0bbbaec99df11e82d86f2b5cb53a14a98a22 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 17 May 2022 14:41:17 -0500 Subject: [PATCH 037/103] Merge branch 'joho-tabStopsMenu-4400' of https://github.com/IBMa/equal-access into master --- .../src/ts/contentScripts/draw.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 4209ed3f7..e82193673 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -54,15 +54,15 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } .noHighlightSVG{ - fill: purple; + fill: #7937DD; } .highlightSVG{ - fill: blue; + fill: #D9BFFF; } .noHighlightSVGtriangle{ - fill: darkorange; + fill: #FC7B1E; } .highlightSVGtriangle{ From effed56b45a25ab7264460fdb617850d804e4c85 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 17 May 2022 14:42:22 -0500 Subject: [PATCH 038/103] Revert "Merge branch 'joho-tabStopsMenu-4400' of https://github.com/IBMa/equal-access into master" This reverts commit 7d8b0bbbaec99df11e82d86f2b5cb53a14a98a22. --- .../src/ts/contentScripts/draw.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index e82193673..4209ed3f7 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -54,15 +54,15 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } .noHighlightSVG{ - fill: #7937DD; + fill: purple; } .highlightSVG{ - fill: #D9BFFF; + fill: blue; } .noHighlightSVGtriangle{ - fill: #FC7B1E; + fill: darkorange; } .highlightSVGtriangle{ From f7a112780e533764ebf486c00f8c5088562816f2 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 19 May 2022 01:51:07 -0500 Subject: [PATCH 039/103] Redo Keyboard Checker Mode from overflow menu to button --- .../src/ts/devtools/Header.tsx | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 7ad861be0..b8047ee76 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -21,7 +21,7 @@ import { IReportItem } from "./Report"; import { Column, Grid, Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal } from '@carbon/react'; -import { Information, ReportData, Renew, ChevronDown, View } from '@carbon/react/icons/lib/index'; +import { Information, ReportData, Renew, ChevronDown, View, ViewOff } from '@carbon/react/icons/lib/index'; import { IArchiveDefinition } from '../background/helper/engineCache'; import OptionUtil from '../util/optionUtil'; import PanelMessaging from '../util/panelMessaging'; @@ -317,7 +317,7 @@ export default class Header extends React.Component kind="ghost" hasIconOnly iconDescription="Rule set info" tooltipPosition="top" style={{color:"black", border:"none", verticalAlign:"baseline", minHeight:"28px", - paddingTop:"8px", paddingLeft:"8px", paddingRight:"8px"}} + paddingTop:"8px", paddingLeft:"8px", paddingRight:"8px", paddingBottom:"8px"}} onClick={(() => { this.props.readOptionsData(); this.setState({ modalRulsetInfo: true }); @@ -401,7 +401,26 @@ export default class Header extends React.Component Focus view - { + if (this.state.showHideTabStops) { + console.log("DRAW_TABS_TO_BACKGROUND"); + await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); + this.setState({ showHideTabStops: false }); + } else { + console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); + await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); + this.setState({ showHideTabStops: true }); + } + + }}> + + {/* itemText={Learn more} onClick={() => console.log("Learn more")} /> - + */} From 30b497dee98f14787d7f0a49a51e508dca2b3eac Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 20 May 2022 14:38:31 -0500 Subject: [PATCH 040/103] fix duplicate ? trangles for an element in the tab chaing --- .../src/ts/contentScripts/draw.ts | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 4209ed3f7..26ea1e191 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -170,7 +170,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => goToTop().then(function() { setTimeout(() => { draw(regularTabstops); - drawErrors(errorsMisc); + drawErrors(errorsMisc, regularTabstops); }, 1000) }) @@ -180,7 +180,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); redraw(regularTabstops); - redrawErrors(errorsMisc) + redrawErrors(errorsMisc, regularTabstops); }); // Tab key listener window.addEventListener('keyup', function (event) { // JCH - keydown does NOT work @@ -326,9 +326,9 @@ function draw(tabstops: any) { redraw(tabstops); } -function drawErrors(tabStopsErrors: any) { +function drawErrors(tabStopsErrors: any, tabStops: any) { // console.log("Inside drawErrors") - redrawErrors(tabStopsErrors); + redrawErrors(tabStopsErrors, tabStops); return true; } @@ -337,9 +337,11 @@ function deleteDrawing(classToRemove: string) { } -function redrawErrors(tabStopsErrors: any) { +function redrawErrors(tabStopsErrors: any, tabStops: any) { + // JCH - FIX drawing ? trangle if there is already a tabbable triangle // console.log("Inside redrawErrors") setTimeout(() => { + let tabbableNodesXpaths = getNodesXpaths(tabStops); console.log("tabbable error nodes = ", tabStopsErrors); let nodes = getNodesXpaths(tabStopsErrors); let nodeXpaths = nodes; @@ -352,9 +354,18 @@ function redrawErrors(tabStopsErrors: any) { let offset = 0; // console.log("nodes = ",nodes); + let skipErrorNode = false; for (let i = 0; i < nodes.length; i++) { - - if (nodeXpaths[i].includes("body")) { // JCH - much be within body + // Check if already taken care of in the tabbable elements + for (let j=0; j < tabbableNodesXpaths.length; j++) { + if (nodeXpaths[i] === tabbableNodesXpaths[j]) { + skipErrorNode = true; // JCH - already taken care of in redraw + } + } + if (skipErrorNode === true) { + continue; // JCH - don't put up non triangle for an element if already done in redraw + } + if (nodeXpaths[i].includes("body")) { // JCH - non tabbable nodes must be within body let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -414,7 +425,7 @@ function redraw(tabstops: any) { console.log("nodes.length = ", nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers // console.log("##########################"); - if (nodes[i] != null) { + if (nodes[i] != null) { // JCH - tabbable nodes // console.log(tabstops[i]) if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle From e21a10cd7f14d6fcfb68d256a230e9ac80fdacc9 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 20 May 2022 15:46:28 -0500 Subject: [PATCH 041/103] Get showHideTabStops state right when changing web pages. --- .../src/ts/devtools/DevToolsPanelApp.tsx | 27 ++++++++++++++----- .../src/ts/devtools/Header.tsx | 17 ++++++------ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 9a184494d..e83d8020e 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -103,6 +103,7 @@ interface IPanelState { tabStopsPanel: boolean, // true show Tab Stops Summary, false do not show tabStopsResults: IReportItem[], tabStopsErrors: IReportItem[], + showHideTabStops: boolean, } export default class DevToolsPanelApp extends React.Component { @@ -140,7 +141,8 @@ export default class DevToolsPanelApp extends React.Component { + console.log("Function: onReport"); try { if( BrowserDetection.isChrome() && !message.tabURL.startsWith("file:")){ let blob_url = message.blob_url; @@ -518,6 +521,12 @@ export default class DevToolsPanelApp extends React.Component
@@ -1229,9 +1243,10 @@ export default class DevToolsPanelApp extends React.Component
diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 8b223ddf4..cdb1ec10b 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -34,7 +34,6 @@ import Recommendation16 from "../../assets/Recommendation16.svg"; interface IHeaderState { deleteModal: boolean, modalRulsetInfo: boolean, - showHideTabStops: boolean } interface IHeaderProps { @@ -86,9 +85,10 @@ interface IHeaderProps { readOptionsData: () => void, tabURL: string, tabId: number, - tabStopsShow: () => void, + setTabStopsShowHide: () => void, tabStopsResults: IReportItem[], - tabStopsErrors: IReportItem[] + tabStopsErrors: IReportItem[], + showHideTabStops: boolean, } export default class Header extends React.Component { @@ -103,7 +103,6 @@ export default class Header extends React.Component state: IHeaderState = { deleteModal: false, modalRulsetInfo: false, - showHideTabStops: true }; focusInfoButton1() { @@ -402,20 +401,20 @@ export default class Header extends React.Component Focus view
-
+
Select accessibility guidelines
+ diff --git a/accessibility-checker-extension/src/ts/styles/option.scss b/accessibility-checker-extension/src/ts/styles/option.scss index 238ad6789..d3d1e55f0 100644 --- a/accessibility-checker-extension/src/ts/styles/option.scss +++ b/accessibility-checker-extension/src/ts/styles/option.scss @@ -41,7 +41,8 @@ body { padding: 2rem 1rem; .icon { - height: 2rem; + height: 38px; + width: 48px; } h2 { @@ -49,11 +50,44 @@ body { margin-top: 2rem; } + .ibm { + height: 20px; + width: 130px; + color: #171717; + font-family: "IBM Plex Sans"; + font-size: 16px; + letter-spacing: 0; + line-height: 20px; + } + + .accessibility { + height: 20px; + width: 130px; + color: #171717; + font-family: "IBM Plex Sans"; + font-size: 16px; + font-weight: bold; + letter-spacing: 0; + line-height: 20px; + } + + .equal-access-toolkit { + height: 56px; + width: 206px; + color: #171717; + font-family: "IBM Plex Sans"; + font-size: 20px; + letter-spacing: 0; + line-height: 28px; + } + .op_version { @include type-style("label-01"); color: $gray-70; } + + p { @include breakpoint('lg') { max-width: 100%; @@ -69,13 +103,46 @@ body { } .cds--dropdown__wrapper { - margin-top: 1.5rem; + margin-top: 1rem; @include breakpoint('md') { max-width: 75%; } } + .checker-options { + height: 28px; + width: 305px; + color: #161616; + font-family: "IBM Plex Sans"; + font-size: 20px; + letter-spacing: 0; + line-height: 28px; + margin-bottom: 32px; + } + + .rule-sets { + height: 16px; + width: 265px; + color: #161616; + font-family: "IBM Plex Sans"; + font-size: 14px; + font-weight: 600; + letter-spacing: 0.16px; + line-height: 18px; + margin-bottom: 16px; + } + + .select-a-rule-set { + height: 22px; + width: 608px; + color: #161616; + font-family: "IBM Plex Sans"; + font-size: 16px; + letter-spacing: 0; + line-height: 22px; + } + .op_helper-text { @include type-style("body-compact-02"); margin-top: 0.5rem; @@ -99,7 +166,7 @@ body { } .cds--dropdown__wrapper { - margin-top: 1.5rem; + margin-top: 1rem; @include breakpoint('md') { max-width: 100%; @@ -134,13 +201,6 @@ body { } } - .rulesetDate { - font-size: 1rem; - font-weight: 600; - letter-spacing: 0; - line-height: 1.375rem; - } - .buttonRow { margin-top: 1.5rem; display: flex; @@ -171,5 +231,15 @@ body { margin-top: 0rem; } } + + .label-text { + height: 16px; + width: 119px; + color: #525252; + font-family: "IBM Plex Sans"; + font-size: 12px; + letter-spacing: 0.32px; + line-height: 16px; + } } } \ No newline at end of file From 44ebb73e6840909e44d0c1714662902cb57e5047 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 24 May 2022 19:55:29 -0500 Subject: [PATCH 043/103] Keyboard mode options now stored and active --- .../src/ts/devtools/DevToolsPanelApp.tsx | 2 +- .../src/ts/options/OptionsApp.tsx | 79 ++++++++++++++++--- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index e83d8020e..a6704d87c 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -248,7 +248,7 @@ export default class DevToolsPanelApp extends React.Component((resolve, _reject) => { - // console.log("readOptionsData"); + console.log("readOptionsData"); var self = this; chrome.storage.local.get("OPTIONS", async function (result: any) { //pick default archive id from env diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index 26549690d..04ce8f534 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -60,16 +60,17 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { modalRuleSet: false, modalGuidelines: false, // Keyboard Checker Mode options - tabStopLines: false, - tabStopOutlines: false, - tabStopAlerts: false, - tabStopFirstTime: false, + tabStopLines: true, + tabStopOutlines: true, + tabStopAlerts: true, + tabStopFirstTime: true, }; async componentDidMount() { + console.log("Options App ComponentDidMount"); var self = this; - //get the selected_archive from storage + // get OPTIONS from storage chrome.storage.local.get("OPTIONS", async function (result: any) { //always sync archives with server var archives = await self.getArchives(); @@ -78,6 +79,11 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { var rulesets: any = null; var selected_ruleset: any = null; var currentRuleset: any = null; + // Keyboard Mode options + var tabStopLines: any = true; + var tabStopOutlines: any = true; + var tabStopAlerts: any = true; + var tabStopFirstTime: any = true; //OPTIONS are not in storage if (result != null && result.OPTIONS == undefined) { @@ -86,11 +92,26 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { rulesets = await self.getRulesets(selected_archive); selected_ruleset = rulesets[0]; + // leave all Keyboard mode options to true, i.e., show all + console.log("OPTIONS are NOT in storage"); + console.log("tabStopLines = ", tabStopLines); + console.log("tabStopLines = ", tabStopOutlines); + console.log("tabStopLines = ", tabStopAlerts); + console.log("tabStopFirstTime = ", tabStopFirstTime); } else { //OPTIONS are in storage selected_archive = result.OPTIONS.selected_archive; rulesets = result.OPTIONS.rulesets; selected_ruleset = result.OPTIONS.selected_ruleset; + tabStopLines = result.OPTIONS.tabStopLines; + tabStopOutlines = result.OPTIONS.tabStopOutlines; + tabStopAlerts = result.OPTIONS.tabStopAlerts; + tabStopFirstTime = result.OPTIONS.tabStopFirstTime; + console.log("OPTIONS are in storage"); + console.log("tabStopLines = ", tabStopLines); + console.log("tabStopLines = ", tabStopOutlines); + console.log("tabStopLines = ", tabStopAlerts); + console.log("tabStopFirstTime = ", tabStopFirstTime); if (selected_archive) { if (archives.some((archive: any) => (archive.id === selected_archive.id && archive.name === selected_archive.name))) { @@ -114,11 +135,16 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { currentArchive = selected_archive.name; currentRuleset = selected_ruleset.name; - // self.setState({ archives, selected_archive, rulesets, selected_ruleset }); + console.log("tabStopLines = ", tabStopLines); + console.log("tabStopLines = ", tabStopOutlines); + console.log("tabStopLines = ", tabStopAlerts); + console.log("tabStopFirstTime = ", tabStopFirstTime); + self.setState({ archives: archives, selected_archive: selected_archive, rulesets: rulesets, selected_ruleset: selected_ruleset, currentArchive: currentArchive, - currentRuleset: currentRuleset + currentRuleset: currentRuleset, tabStopLines: tabStopLines, tabStopOutlines: tabStopOutlines, + tabStopAlerts: tabStopAlerts, tabStopFirstTime: tabStopFirstTime, }); self.save_options_to_storage(self.state); }); @@ -169,7 +195,13 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { // modal choices // delete scans and update ruleset // keep stored scans and don't update rulset (ali says don't give this choice) - this.setState({ currentArchive: this.state.selected_archive.name, currentRuleset: this.state.selected_ruleset.name }) + this.setState({ + currentArchive: this.state.selected_archive.name, + currentRuleset: this.state.selected_ruleset.name, + tabStopLines: this.state.tabStopLines, + tabStopOutlines: this.state.tabStopOutlines, + tabStopAlerts: this.state.tabStopAlerts, + }) this.save_options_to_storage(this.state); this.setState({ show_notif: true, show_reset_notif: false, }); }; @@ -351,15 +383,38 @@ class OptionsApp extends React.Component<{}, OptionsAppState> {
Visualization options - - + { + console.log("lines checkbox id.checked = ",id.checked); + this.setState({ tabStopLines: id.checked }); + }} + + /> + { + console.log("lines checkbox id.checked = ",id.checked); + this.setState({ tabStopOutlines: id.checked }); + }} + />
{ + console.log("lines checkbox value = ",value); + this.setState({ tabStopAlerts: value }); + }} />
From caff73161ff1beac3062fa1987364aded7fd2576 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 25 May 2022 18:24:59 -0500 Subject: [PATCH 044/103] More options completed lines outlines --- .../src/ts/background/index.ts | 8 +- .../src/ts/contentScripts/draw.ts | 246 +++++++++--------- .../src/ts/devtools/DevToolsPanelApp.tsx | 61 ++++- .../src/ts/devtools/Header.tsx | 13 +- .../src/ts/options/OptionsApp.tsx | 2 + 5 files changed, 209 insertions(+), 121 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index 32928c06b..daad87c21 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -254,7 +254,13 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) => { console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") - await BackgroundMessaging.sendToTab(message.tabId, "DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, tabStopsErrors: message.tabStopsErrors}); + await BackgroundMessaging.sendToTab(message.tabId, + "DRAW_TABS_TO_CONTEXT_SCRIPTS", + { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, + tabStopsErrors: message.tabStopsErrors, tabStopLines: message.tabStopLines, + tabStopOutlines: message.tabStopOutlines, tabStopAlerts: message.tabStopAlerts, + tabStopFirstTime: message.tabStopFirstTime, + }); return true; }); diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 26ea1e191..304094c5a 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -121,8 +121,8 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => const tabElem = message.tabStopsErrors[index]; message.tabStopsResults.forEach((errorElem: any) => { if (tabElem.path.dom === errorElem.path.dom) { - console.log(errorElem.path.dom) - console.log(tabElem.path.dom) + // console.log(errorElem.path.dom) + // console.log(tabElem.path.dom) errorsMisc.splice(index, 1) } }); @@ -140,10 +140,10 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => let flagMatchFound = false; message.tabStopsErrors.forEach((errorElem: any) => { if (tabElem.path.dom === errorElem.path.dom) { - console.log("============123===================") - console.log(errorElem.path.dom) - console.log(tabElem.path.dom) - console.log("=============123==================") + // console.log("============123===================") + // console.log(errorElem.path.dom) + // console.log(tabElem.path.dom) + // console.log("=============123==================") flagMatchFound = true; } }); @@ -156,30 +156,30 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } - console.log("regularTabstops1" + regularTabstops) - console.log(regularTabstops) + // console.log("regularTabstops1" + regularTabstops) + // console.log(regularTabstops) - console.log("===============================") - console.log(message.tabStopsResults) - console.log(message.tabStopsErrors) - console.log("===============================") + // console.log("===============================") + // console.log(message.tabStopsResults) + // console.log(message.tabStopsErrors) + // console.log("===============================") // JCH - this allows the web to scroll to the top before drawing occurs goToTop().then(function() { setTimeout(() => { - draw(regularTabstops); + console.log("message.tabStopLines = ", message.tabStopLines); + console.log("message.tabStopOutlines = ", message.tabStopOutlines); + draw(regularTabstops, message.tabStopLines, message.tabStopOutlines); drawErrors(errorsMisc, regularTabstops); }, 1000) - }) - // draw(regularTabstops); - // drawErrors(errorsMisc); + }); window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); - redraw(regularTabstops); + redraw(regularTabstops, message.tabStopLines, message.tabStopOutlines); redrawErrors(errorsMisc, regularTabstops); }); // Tab key listener @@ -321,9 +321,9 @@ function injectCSS(styleString: string) { document.head.append(style); } -function draw(tabstops: any) { +function draw(tabstops: any, lines:boolean, outlines:boolean) { console.log("Inside draw") - redraw(tabstops); + redraw(tabstops, lines, outlines); } function drawErrors(tabStopsErrors: any, tabStops: any) { @@ -411,60 +411,63 @@ function redrawErrors(tabStopsErrors: any, tabStops: any) { -function redraw(tabstops: any) { - console.log("Inside redraw") +function redraw(tabstops: any, lines: boolean, outlines: boolean) { + console.log("Inside redraw"); + console.log("lines = ", lines); + console.log("outlines = ", outlines); setTimeout(() => { let offset = 3; - console.log("redraw tabstops = ", tabstops); + // console.log("redraw tabstops = ", tabstops); let nodes = getNodesXpaths(tabstops); // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); // JCH - need for last line to return to first node - console.log("nodes.length = ", nodes.length); + // console.log("nodes.length = ", nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers // console.log("##########################"); if (nodes[i] != null) { // JCH - tabbable nodes // console.log(tabstops[i]) if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - // console.log("+++++++++++++++++++") - if (i < nodes.length - 1) { - // drawSingleCircle(nodes, i, 20, nodeXpaths) - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); - - // Create white outline - if (Math.abs(slope) < 1) { // Low slope move y - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset - 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + // console.log("+++++++++++++++++++"); + if (lines) { + if (i < nodes.length - 1) { + // drawSingleCircle(nodes, i, 20, nodeXpaths) + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset + 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - - } else { // high slope move x - makeLine(nodes[i].getBoundingClientRect().x - offset - 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset - 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); - - makeLine(nodes[i].getBoundingClientRect().x - offset + 1, nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset + 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } } - } - + let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -484,61 +487,68 @@ function redraw(tabstops: any) { makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); - // Make box around active component - makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); - makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); - - - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + if (outlines) { + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); + makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + } } else { // This is the defalt case were we just draw a circle // console.log("-------------------------") // drawSingleCircle(nodes, i, offset, nodeXpaths) - if (i < nodes.length - 1) { - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + if (lines) { - // Create white outline - if (Math.abs(slope) < 1) { // Low slope move y - makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset - 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + if (i < nodes.length - 1) { + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) makeLine(nodes[i].getBoundingClientRect().x - offset, - nodes[i].getBoundingClientRect().y - offset + 1, - nodes[i + 1].getBoundingClientRect().x - offset, - nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); - - } else { // high slope move x - makeLine(nodes[i].getBoundingClientRect().x - offset - 1, nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset - 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset, ["line"]); + + // Create white outline + if (Math.abs(slope) < 1) { // Low slope move y + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset - 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset - 1, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset, + nodes[i].getBoundingClientRect().y - offset + 1, + nodes[i + 1].getBoundingClientRect().x - offset, + nodes[i + 1].getBoundingClientRect().y - offset + 1, ["lineEmboss"]); + + } else { // high slope move x + makeLine(nodes[i].getBoundingClientRect().x - offset - 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset - 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + + makeLine(nodes[i].getBoundingClientRect().x - offset + 1, + nodes[i].getBoundingClientRect().y - offset, + nodes[i + 1].getBoundingClientRect().x - offset + 1, + nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); + } - makeLine(nodes[i].getBoundingClientRect().x - offset + 1, - nodes[i].getBoundingClientRect().y - offset, - nodes[i + 1].getBoundingClientRect().x - offset + 1, - nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); } - } @@ -555,24 +565,28 @@ function redraw(tabstops: any) { makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); - // Make box around active component - makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); - makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); - + if (outlines) { - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); - - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + + // Make box around active component + makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); + makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); + + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmboss"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmboss"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); + } } } } @@ -849,11 +863,11 @@ function convertXpathsToHtmlElements(nodes: any) { } function getNodesXpaths(nodes: any) { - console.log("Inside getNodesXpaths"); + // console.log("Inside getNodesXpaths"); let tabXpaths: any = []; nodes.map((result: any) => { if (result != null) { - console.log("result.path.dom = "+result.path.dom); + // console.log("result.path.dom = "+result.path.dom); tabXpaths.push(result.path.dom); } }); diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index a6704d87c..3f15c09d7 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -99,11 +99,16 @@ interface IPanelState { selectedPolicy: string | null, focusedViewFilter: boolean, focusedViewText: string, + // Keyboard Mode tabStops: [], tabStopsPanel: boolean, // true show Tab Stops Summary, false do not show tabStopsResults: IReportItem[], tabStopsErrors: IReportItem[], showHideTabStops: boolean, + tabStopLines: boolean, + tabStopOutlines: boolean, + tabStopAlerts: boolean, + tabStopFirstTime: boolean } export default class DevToolsPanelApp extends React.Component { @@ -143,6 +148,10 @@ export default class DevToolsPanelApp extends React.Component
@@ -1247,6 +1300,10 @@ export default class DevToolsPanelApp extends React.Component
diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index cdb1ec10b..bdd628c20 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -89,6 +89,11 @@ interface IHeaderProps { tabStopsResults: IReportItem[], tabStopsErrors: IReportItem[], showHideTabStops: boolean, + // Keyboard Mode + tabStopLines:boolean, + tabStopOutlines: boolean, + tabStopAlerts: boolean, + tabStopFirstTime: boolean, } export default class Header extends React.Component { @@ -408,8 +413,12 @@ export default class Header extends React.Component paddingTop:"7px", paddingLeft:"7px", paddingRight:"7px", paddingBottom:"7px", marginLeft: "8px"}} onClick={ async() => { if (this.props.showHideTabStops) { - console.log("DRAW_TABS_TO_BACKGROUND"); - await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); + console.log("Header: DRAW_TABS_TO_BACKGROUND"); + console.log("this.props.tabStopLines = ", this.props.tabStopLines); + console.log("this.props.tabStopOutlines = ", this.props.tabStopOutlines); + await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", + { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors, + tabStopLines: this.props.tabStopLines, tabStopOutlines: this.props.tabStopOutlines }); this.props.setTabStopsShowHide(); } else { console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index 04ce8f534..4b9003a98 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -100,6 +100,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { console.log("tabStopFirstTime = ", tabStopFirstTime); } else { //OPTIONS are in storage + console.log("OPTIONS ARE in storage"); selected_archive = result.OPTIONS.selected_archive; rulesets = result.OPTIONS.rulesets; selected_ruleset = result.OPTIONS.selected_ruleset; @@ -173,6 +174,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { await chrome.storage.local.set(options, function () { console.log("options is set to ", options); }); + }; handleArchiveSelect = async (item: any) => { From fe3d8a80d414d488dd146bd43164dda151334456 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 26 May 2022 16:43:30 -0500 Subject: [PATCH 045/103] cleanup logs --- .../src/ts/background/index.ts | 8 +- .../src/ts/contentScripts/draw.ts | 102 +++-------- .../src/ts/devtools/DevToolsPanelApp.tsx | 40 +--- .../src/ts/devtools/Header.tsx | 172 +++++------------- .../src/ts/options/OptionsApp.tsx | 29 +-- 5 files changed, 95 insertions(+), 256 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index daad87c21..8b2568d28 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -253,7 +253,7 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { }); BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) => { - console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") + // console.log("Message DRAW_TABS_TO_BACKGROUND recieved in background") await BackgroundMessaging.sendToTab(message.tabId, "DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopsResults: message.tabStopsResults, @@ -266,21 +266,21 @@ BackgroundMessaging.addListener("DRAW_TABS_TO_BACKGROUND", async (message: any) }); BackgroundMessaging.addListener("HIGHLIGHT_TABSTOP_TO_BACKGROUND", async (message: any) => { - console.log("Message HIGHLIGHT_TABSTOP_TO_BACKGROUND received in background") + // console.log("Message HIGHLIGHT_TABSTOP_TO_BACKGROUND received in background") await BackgroundMessaging.sendToTab(message.tabId, "HIGHLIGHT_TABSTOP_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL, tabStopId: message.tabStopId}); return true; }); BackgroundMessaging.addListener("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => { - console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS received in background") + // console.log("Message DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS received in background") await BackgroundMessaging.sendToTab(message.tabId, "DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: message.tabId, tabURL: message.tabURL }); return true; }); BackgroundMessaging.addListener("TABSTOP_XPATH_ONCLICK", async (message: any) => { - console.log("Message TABSTOP_XPATH_ONCLICK received in background, xpath: "+ message.xpath) + // console.log("Message TABSTOP_XPATH_ONCLICK received in background, xpath: "+ message.xpath) await BackgroundMessaging.sendToPanel("TABSTOP_XPATH_ONCLICK", { xpath: message.xpath, circleNumber: message.circleNumber diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 304094c5a..ffc9f71c3 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -156,23 +156,14 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } - // console.log("regularTabstops1" + regularTabstops) - // console.log(regularTabstops) - - - // console.log("===============================") - // console.log(message.tabStopsResults) - // console.log(message.tabStopsErrors) - // console.log("===============================") - - + // JCH - this allows the web to scroll to the top before drawing occurs goToTop().then(function() { setTimeout(() => { console.log("message.tabStopLines = ", message.tabStopLines); console.log("message.tabStopOutlines = ", message.tabStopOutlines); draw(regularTabstops, message.tabStopLines, message.tabStopOutlines); - drawErrors(errorsMisc, regularTabstops); + drawErrors(errorsMisc, regularTabstops, message.tabStopOutlines); }, 1000) }); @@ -180,7 +171,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); redraw(regularTabstops, message.tabStopLines, message.tabStopOutlines); - redrawErrors(errorsMisc, regularTabstops); + redrawErrors(errorsMisc, regularTabstops, message.tabStopOutlines); }); // Tab key listener window.addEventListener('keyup', function (event) { // JCH - keydown does NOT work @@ -322,13 +313,13 @@ function injectCSS(styleString: string) { } function draw(tabstops: any, lines:boolean, outlines:boolean) { - console.log("Inside draw") + // console.log("Inside draw") redraw(tabstops, lines, outlines); } -function drawErrors(tabStopsErrors: any, tabStops: any) { +function drawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // console.log("Inside drawErrors") - redrawErrors(tabStopsErrors, tabStops); + redrawErrors(tabStopsErrors, tabStops, outlines); return true; } @@ -337,7 +328,7 @@ function deleteDrawing(classToRemove: string) { } -function redrawErrors(tabStopsErrors: any, tabStops: any) { +function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // JCH - FIX drawing ? trangle if there is already a tabbable triangle // console.log("Inside redrawErrors") setTimeout(() => { @@ -372,26 +363,26 @@ function redrawErrors(tabStopsErrors: any, tabStops: any) { let y = nodes[i].getBoundingClientRect().y - offset; let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - // MAKE BOX AROUND ACTIVE COMPONENT - makeLine(x, y, xPlusWidth, y, ["lineError"]); - makeLine(x, y, x, yPlusHeight, ["lineError"]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); - - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - - // makeIcon(xPlusWidth-6, y-6, "test"); // 12px icon on top right corner - // makeIcon(x, y, "test"); + if (outlines) { + + // MAKE BOX AROUND ACTIVE COMPONENT + makeLine(x, y, xPlusWidth, y, ["lineError"]); + makeLine(x, y, x, yPlusHeight, ["lineError"]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); + + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + } // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center let triangleLegLength = 27; @@ -424,14 +415,10 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { nodes = convertXpathsToHtmlElements(nodes); // JCH - need for last line to return to first node - // console.log("nodes.length = ", nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers - // console.log("##########################"); if (nodes[i] != null) { // JCH - tabbable nodes // console.log(tabstops[i]) if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - - // console.log("+++++++++++++++++++"); if (lines) { if (i < nodes.length - 1) { // drawSingleCircle(nodes, i, 20, nodeXpaths) @@ -478,7 +465,7 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { let triangleLegLength = 27 let triangleXShifted = x let triangleYShifted = y - // console.log("Make triangle with x= ",x," y= ",y); + makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, @@ -509,13 +496,7 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { } } else { // This is the defalt case were we just draw a circle - // console.log("-------------------------") - - // drawSingleCircle(nodes, i, offset, nodeXpaths) - if (lines) { - - if (i < nodes.length - 1) { let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) @@ -547,7 +528,6 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { nodes[i + 1].getBoundingClientRect().x - offset + 1, nodes[i + 1].getBoundingClientRect().y - offset, ["lineEmboss"]); } - } } @@ -567,7 +547,6 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { if (outlines) { - // Make box around active component makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); @@ -709,8 +688,6 @@ function makeTextSmall(x1: number, y1: number, n: string, textColorClassName?: s document.body.appendChild(elemSVG); } document.getElementById('svgCircle')?.appendChild(textClone) - - } function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: string[]) { @@ -881,26 +858,3 @@ async function goToTop() { behavior: 'smooth' }); } - -// function getXPathForElement(element: any) { -// const idx: any = (sib: any, name: any) => sib -// ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) -// : 1; -// const segs: any = (elm: any) => (!elm || elm.nodeType !== 1) -// ? [''] -// : [...segs(elm.parentNode), `${elm.localName.toLowerCase()}[${idx(elm)}]`]; - - -// function getXPathForElement(element) { // same function as above but without typescript for use on chrome console -// const idx = (sib, name) => sib ? idx(sib.previousElementSibling, name || sib.localName) + (sib.localName == name) : 1; -// const segs: any = (elm: any) => (!elm || elm.nodeType !== 1) ? [''] : [...segs(elm.parentNode), `${elm.localName.toLowerCase()}[${idx(elm)}]`]; -// return segs(element).join('/'); -// } - -// UNUSED xpath evaluation function: -// function getElementByXPath(path:any) { -// return (new XPathEvaluator()) -// .evaluate(path, document.documentElement, null, -// XPathResult.FIRST_ORDERED_NODE_TYPE, null) -// .singleNodeValue; -// } diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 3f15c09d7..c0cce1f6b 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -232,18 +232,18 @@ export default class DevToolsPanelApp extends React.Component { if (message.xpath === result.path.dom) { - console.log("result xpath = ",result.path.dom); + // console.log("result xpath = ",result.path.dom); this.getSelectedItem(result); this.selectItem(result); } }); this.state.tabStopsErrors.map((result: any) => { if (message.xpath === result.path.dom) { - console.log("result xpath = ",result.path.dom); + // console.log("result xpath = ",result.path.dom); this.getSelectedItem(result); this.selectItem(result); } @@ -257,7 +257,7 @@ export default class DevToolsPanelApp extends React.Component((resolve, _reject) => { - console.log("readOptionsData"); + // console.log("readOptionsData"); var self = this; chrome.storage.local.get("OPTIONS", async function (result: any) { //pick default archive id from env @@ -296,26 +296,15 @@ export default class DevToolsPanelApp extends React.Component b.apiArgs[0].tabindex - a.apiArgs[0].tabindex); } - console.log("tabbable =", tabbable); + // console.log("tabbable =", tabbable); this.setState({ tabStopsResults: tabbable }); - console.log("tabStopsErrors = ", tabbableErrors); + // console.log("tabStopsErrors = ", tabbableErrors); this.setState({ tabStopsErrors: tabbableErrors }); // JCH - clear visualization if (this.state.showHideTabStops === false ) { - console.log("Function: onReport DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); + // console.log("Function: onReport DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.state.tabId, tabURL: this.state.tabURL }); } this.setState({ showHideTabStops: true }); diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index bdd628c20..c96361b3a 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -21,7 +21,7 @@ import { IReportItem } from "./Report"; import { Column, Grid, Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal } from '@carbon/react'; -import { Information, ReportData, Renew, ChevronDown, View, ViewOff } from '@carbon/react/icons/lib/index'; +import { Information, ReportData, Renew, ChevronDown, View, ViewOff, Help, Settings } from '@carbon/react/icons/lib/index'; import { IArchiveDefinition } from '../background/helper/engineCache'; import OptionUtil from '../util/optionUtil'; import PanelMessaging from '../util/panelMessaging'; @@ -99,10 +99,14 @@ interface IHeaderProps { export default class Header extends React.Component { infoButton1Ref: React.RefObject; infoButton2Ref: React.RefObject; + helpButtonRef: React.RefObject; + settingsButtonRef: React.RefObject; constructor(props:any) { super(props); this.infoButton1Ref = React.createRef(); this.infoButton2Ref = React.createRef(); + this.helpButtonRef = React.createRef(); + this.settingsButtonRef = React.createRef(); } state: IHeaderState = { @@ -222,23 +226,50 @@ export default class Header extends React.Component let focusText = this.props.focusedViewText; let headerContent = (
- {this.props.layout === "sub" ? - - + {this.props.layout === "sub" ? + // checker view + +

IBM Equal Access Accessibility Checker

+ + + +
- : + : + // accessment view +

IBM Equal Access Accessibility Checker

IBM Accessibility - {/*
- Status: - {this.props.scanStorage === true ? "storing, " : ""} - {this.props.actualStoredScansCount().toString() === "0" ? "no scans stored" : (this.props.actualStoredScansCount().toString() === "1" ? this.props.actualStoredScansCount().toString() + " scan stored" : this.props.actualStoredScansCount().toString() + " scans stored")} -
*/}
} @@ -315,69 +346,13 @@ export default class Header extends React.Component This action is irreversible.

- - { - this.setState({ modalRulsetInfo: false }); - this.focusInfoButton1(); - }).bind(this)} - > -

- Get started with the   - - User guide - - . -

-

-

- Currently active rule set: {'"'+OptionUtil.getRuleSetDate(this.props.selectedArchive, this.props.archives)+'"'} - {
}
- Most recent rule set: {'"'+OptionUtil.getRuleSetDate('latest', this.props.archives)+'"'} -

- Currently active guidelines: {'"'+this.props.selectedPolicy+'"'} -

-

-

- - Change rule set - -

-
- + { @@ -428,63 +403,6 @@ export default class Header extends React.Component }}> - {/* - { - if (this.state.showHideTabStops) { - console.log("DRAW_TABS_TO_BACKGROUND"); - await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors }); - this.setState({ showHideTabStops: false }); - } else { - console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); - await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); - this.setState({ showHideTabStops: true }); - } - - }} - - /> - } - onClick={() => console.log("Lines")} - /> - } - onClick={() => console.log("Numbers")} - /> - } - onClick={() => console.log("Outlines")} - /> - console.log("Alerts on")} - /> - Learn more} - onClick={() => console.log("Learn more")} - /> - */}
@@ -542,9 +460,11 @@ export default class Header extends React.Component



- You are using a rule set from {OptionUtil.getRuleSetDate(this.props.selectedArchive, this.props.archives)}. + Currently active rule set: {'"'+OptionUtil.getRuleSetDate(this.props.selectedArchive, this.props.archives)+'"'} {
}
- The latest rule set is {OptionUtil.getRuleSetDate('latest', this.props.archives)} + Most recent rule set: {'"'+OptionUtil.getRuleSetDate('latest', this.props.archives)+'"'} +

+ Currently active guidelines: {'"'+this.props.selectedPolicy+'"'}



diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index 4b9003a98..484a5705b 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -67,7 +67,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { }; async componentDidMount() { - console.log("Options App ComponentDidMount"); + // console.log("Options App ComponentDidMount"); var self = this; // get OPTIONS from storage @@ -87,20 +87,17 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { //OPTIONS are not in storage if (result != null && result.OPTIONS == undefined) { + // OPTIONS are NOT in storage + // console.log("OPTIONS are NOT in storage"); //find the latest archive selected_archive = self.getLatestArchive(archives); rulesets = await self.getRulesets(selected_archive); selected_ruleset = rulesets[0]; // leave all Keyboard mode options to true, i.e., show all - console.log("OPTIONS are NOT in storage"); - console.log("tabStopLines = ", tabStopLines); - console.log("tabStopLines = ", tabStopOutlines); - console.log("tabStopLines = ", tabStopAlerts); - console.log("tabStopFirstTime = ", tabStopFirstTime); } else { //OPTIONS are in storage - console.log("OPTIONS ARE in storage"); + // console.log("OPTIONS ARE in storage"); selected_archive = result.OPTIONS.selected_archive; rulesets = result.OPTIONS.rulesets; selected_ruleset = result.OPTIONS.selected_ruleset; @@ -108,11 +105,6 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { tabStopOutlines = result.OPTIONS.tabStopOutlines; tabStopAlerts = result.OPTIONS.tabStopAlerts; tabStopFirstTime = result.OPTIONS.tabStopFirstTime; - console.log("OPTIONS are in storage"); - console.log("tabStopLines = ", tabStopLines); - console.log("tabStopLines = ", tabStopOutlines); - console.log("tabStopLines = ", tabStopAlerts); - console.log("tabStopFirstTime = ", tabStopFirstTime); if (selected_archive) { if (archives.some((archive: any) => (archive.id === selected_archive.id && archive.name === selected_archive.name))) { @@ -135,11 +127,6 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { currentArchive = selected_archive.name; currentRuleset = selected_ruleset.name; - - console.log("tabStopLines = ", tabStopLines); - console.log("tabStopLines = ", tabStopOutlines); - console.log("tabStopLines = ", tabStopAlerts); - console.log("tabStopFirstTime = ", tabStopFirstTime); self.setState({ archives: archives, selected_archive: selected_archive, rulesets: rulesets, @@ -172,7 +159,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { save_options_to_storage = async (state: any) => { var options = { OPTIONS: state }; await chrome.storage.local.set(options, function () { - console.log("options is set to ", options); + // console.log("options is set to ", options); }); }; @@ -391,7 +378,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { checked={this.state.tabStopLines} //@ts-ignore onChange={(value: any, id: any) => { - console.log("lines checkbox id.checked = ",id.checked); + // console.log("lines checkbox id.checked = ",id.checked); this.setState({ tabStopLines: id.checked }); }} @@ -402,7 +389,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { checked={this.state.tabStopOutlines} //@ts-ignore onChange={(value: any, id: any) => { - console.log("lines checkbox id.checked = ",id.checked); + // console.log("lines checkbox id.checked = ",id.checked); this.setState({ tabStopOutlines: id.checked }); }} /> @@ -414,7 +401,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { id="alertToggle" toggled={this.state.tabStopAlerts} onToggle={(value: any) => { - console.log("lines checkbox value = ",value); + // console.log("lines checkbox value = ",value); this.setState({ tabStopAlerts: value }); }} /> From 99301f701899db5521dce5bce84b9bec511734df Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 26 May 2022 17:32:22 -0500 Subject: [PATCH 046/103] tuning layout --- .../src/ts/devtools/Header.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index c96361b3a..e704cf78d 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -278,7 +278,7 @@ export default class Header extends React.Component - +

- + {/* */} - + { @@ -388,15 +388,15 @@ export default class Header extends React.Component paddingTop:"7px", paddingLeft:"7px", paddingRight:"7px", paddingBottom:"7px", marginLeft: "8px"}} onClick={ async() => { if (this.props.showHideTabStops) { - console.log("Header: DRAW_TABS_TO_BACKGROUND"); - console.log("this.props.tabStopLines = ", this.props.tabStopLines); - console.log("this.props.tabStopOutlines = ", this.props.tabStopOutlines); + // console.log("Header: DRAW_TABS_TO_BACKGROUND"); + // console.log("this.props.tabStopLines = ", this.props.tabStopLines); + // console.log("this.props.tabStopOutlines = ", this.props.tabStopOutlines); await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors, tabStopLines: this.props.tabStopLines, tabStopOutlines: this.props.tabStopOutlines }); this.props.setTabStopsShowHide(); } else { - console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); + // console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); this.props.setTabStopsShowHide(); } From c5ea654641753b18b8d47000adc881b569dfd1db Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 27 May 2022 15:36:35 -0500 Subject: [PATCH 047/103] add element_tabbable_visible --- .../src/ts/contentScripts/draw.ts | 63 +++---------------- .../src/ts/devtools/DevToolsPanelApp.tsx | 2 +- 2 files changed, 9 insertions(+), 56 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index ffc9f71c3..bab843696 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -421,9 +421,8 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle if (lines) { if (i < nodes.length - 1) { - // drawSingleCircle(nodes, i, 20, nodeXpaths) let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - + // Create basic black line makeLine(nodes[i].getBoundingClientRect().x - offset, nodes[i].getBoundingClientRect().y - offset, nodes[i + 1].getBoundingClientRect().x - offset, @@ -466,6 +465,13 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { let triangleXShifted = x let triangleYShifted = y + // JCH - if error is rule element_tabbable_visible then need to calculate where to put + // the triangle at the intersection point (0,?) where one of the two lines + // pointing to the element in question is going off the page. + // + // if we have the line(s) for an element get the y for the line at x = ~ 16px + // now how do we choose which of the two lines to use? Higher on page or lower on page? + makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, @@ -777,59 +783,6 @@ function createSVGLineTemplate() { return elemLine } -// function createSVGErrorIconTemplate() { -// // This is what we are creating: -// // -// // -// // -// // -// // -// // -// // -// // -// // -// var elemSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); -// elemSvg.setAttribute("class", "svgIcon1"); -// elemSvg.setAttribute("display", "none"); -// elemSvg.setAttribute("xmlns", "http://www.w3.org/2000/svg"); -// elemSvg.setAttribute("width", "12px"); -// elemSvg.setAttribute("height", "12px"); -// elemSvg.setAttribute("viewBox", "0 0 32 32"); - -// var elemDefs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); - -// var elemStyle = document.createElement('style'); -// elemStyle.innerText = ".cls-1 { fill: none; }" - -// var elemPath1 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); -// elemPath1.setAttribute("class", "cls-1"); -// elemPath1.setAttribute("d", "M16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Zm-1.125-5h2.25V12h-2.25Z"); -// elemPath1.setAttribute("style", " fill: black; "); - -// var elemPath2 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); -// elemPath2.setAttribute("d", "M16.002,6.1714h-.004L4.6487,27.9966,4.6506,28H27.3494l.0019-.0034ZM14.875,12h2.25v9h-2.25ZM16,26a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,26Z"); -// elemPath2.setAttribute("style", " fill: yellow; "); - -// var elemPath3 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); -// elemPath3.setAttribute("d", "M29,30H3a1,1,0,0,1-.8872-1.4614l13-25a1,1,0,0,1,1.7744,0l13,25A1,1,0,0,1,29,30ZM4.6507,28H27.3493l.002-.0033L16.002,6.1714h-.004L4.6487,27.9967Z"); -// elemPath3.setAttribute("style", " fill: black; "); - -// var elemRect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); -// elemRect.setAttribute("data-name", "<Transparent Rectangle>"); -// elemRect.setAttribute("class", "cls-1"); -// elemRect.setAttribute("width", "32"); -// elemRect.setAttribute("height", "32"); - -// elemDefs.appendChild(elemStyle); -// elemSvg.appendChild(elemDefs); -// elemSvg.appendChild(elemPath1); -// elemSvg.appendChild(elemPath2); -// elemSvg.appendChild(elemPath3); -// elemSvg.appendChild(elemRect); -// return elemSvg; -// } function convertXpathsToHtmlElements(nodes: any) { let results: any = []; diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index c0cce1f6b..fedd5de95 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -532,7 +532,7 @@ export default class DevToolsPanelApp extends React.Component Date: Mon, 30 May 2022 23:01:29 -0500 Subject: [PATCH 048/103] added placement of triangle if y < 0 --- .../src/v4/rules/index.ts | 1 + .../src/ts/contentScripts/draw.ts | 87 ++++++++++++++++--- 2 files changed, 74 insertions(+), 14 deletions(-) diff --git a/accessibility-checker-engine/src/v4/rules/index.ts b/accessibility-checker-engine/src/v4/rules/index.ts index dc8fa40b0..cc6f48922 100644 --- a/accessibility-checker-engine/src/v4/rules/index.ts +++ b/accessibility-checker-engine/src/v4/rules/index.ts @@ -27,6 +27,7 @@ export * from "./combobox_popup_reference" export * from "./combobox_version" export * from "./detector_tabbable" export * from "./element_attribute_deprecated" +export * from "./element_tabbable_role_invalid" export * from "./element_tabbable_visible" export * from "./group_withInputs_hasName" export * from "./HAAC_Accesskey_NeedLabel" diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index bab843696..fd29ff1e6 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -153,8 +153,6 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => else { } - - } // JCH - this allows the web to scroll to the top before drawing occurs @@ -162,7 +160,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => setTimeout(() => { console.log("message.tabStopLines = ", message.tabStopLines); console.log("message.tabStopOutlines = ", message.tabStopOutlines); - draw(regularTabstops, message.tabStopLines, message.tabStopOutlines); + draw(regularTabstops, errorsMisc, message.tabStopLines, message.tabStopOutlines); drawErrors(errorsMisc, regularTabstops, message.tabStopOutlines); }, 1000) @@ -170,7 +168,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => window.addEventListener('resize', function () { deleteDrawing(".deleteMe"); - redraw(regularTabstops, message.tabStopLines, message.tabStopOutlines); + redraw(regularTabstops, errorsMisc, message.tabStopLines, message.tabStopOutlines); redrawErrors(errorsMisc, regularTabstops, message.tabStopOutlines); }); // Tab key listener @@ -312,9 +310,9 @@ function injectCSS(styleString: string) { document.head.append(style); } -function draw(tabstops: any, lines:boolean, outlines:boolean) { +function draw(tabstops: any, tabStopsErrors: any, lines:boolean, outlines:boolean) { // console.log("Inside draw") - redraw(tabstops, lines, outlines); + redraw(tabstops, tabStopsErrors, lines, outlines); } function drawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { @@ -333,7 +331,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // console.log("Inside redrawErrors") setTimeout(() => { let tabbableNodesXpaths = getNodesXpaths(tabStops); - console.log("tabbable error nodes = ", tabStopsErrors); + let nodes = getNodesXpaths(tabStopsErrors); let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); @@ -402,10 +400,13 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { -function redraw(tabstops: any, lines: boolean, outlines: boolean) { - console.log("Inside redraw"); - console.log("lines = ", lines); - console.log("outlines = ", outlines); +function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean) { + console.log(tabStopsErrors); + + + + + setTimeout(() => { let offset = 3; // console.log("redraw tabstops = ", tabstops); @@ -413,15 +414,18 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); + let slope: number; + + // JCH - need for last line to return to first node for (let i = 0; i < nodes.length; i++) { //Make lines between numbers if (nodes[i] != null) { // JCH - tabbable nodes - // console.log(tabstops[i]) + // console.log(tabstops[i].ruleID); if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle if (lines) { if (i < nodes.length - 1) { - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) // Create basic black line makeLine(nodes[i].getBoundingClientRect().x - offset, nodes[i].getBoundingClientRect().y - offset, @@ -471,6 +475,59 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { // // if we have the line(s) for an element get the y for the line at x = ~ 16px // now how do we choose which of the two lines to use? Higher on page or lower on page? + // console.log("tabstop ",i); + // console.log("Calculate coordinates for element_tabbable_visible triangle"); + // console.log("x1 = ",x," y1 = ",y); + // console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); + // console.log("slope = ",slope); + + // check to see if any tab stop has ruleID element_tabbable_visible + let yIntercept: number; + tabStopsErrors.map((result: any, index: any) => { + if (result.ruleId === "element_tabbable_visible") { + if (nodeXpaths[i] === result.path.dom) { + if (triangleXShifted < 0) { // need to get y intercept + console.log(index); + console.log(result.ruleId); + // Adjust coords for Triangle to put on page where line goes left off page + // console.log("tabstop ",i); + // straight line eq: Ax + By = C + // y intercept is y = B/C + // x intercept is x = C/A + console.log("Calculate coordinates for element_tabbable_visible triangle"); + console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); + console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); + console.log("slope = ",slope); + // find y intercept y = mx + c or c = y - mx + yIntercept = triangleYShifted - slope * triangleXShifted; + console.log("yIntercept = ",yIntercept); + triangleXShifted = 20; + triangleYShifted = yIntercept + 10; + } else if (triangleYShifted < 0) { // need to get x intercept + console.log(index); + console.log(result.ruleId); + // Adjust coords for Triangle to put on page where line goes left off page + // console.log("tabstop ",i); + console.log("Calculate coordinates for element_tabbable_visible triangle"); + console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); + console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); + console.log("slope = ",slope); + + // find x intercept y = mx + c or c = y - mx + + yIntercept = triangleYShifted - slope * triangleXShifted; + console.log("yIntercept = ",yIntercept); + // 0 = slope * x + yIntercept + // xIntercept = yIntercept / slope + let xIntercept = -yIntercept / slope; + console.log("xIntercept = ", xIntercept); + triangleXShifted = xIntercept + 10; + triangleYShifted = 25; + } + + } + } + }); makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , @@ -478,7 +535,9 @@ function redraw(tabstops: any, lines: boolean, outlines: boolean) { triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, i.toString(), nodeXpaths[i]) - makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); + // makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); + + makeTextSmall(triangleXShifted, triangleYShifted, (i + 1).toString(), "textColorBlack"); if (outlines) { From 74ea56e1017d55d9cd8683483300e03eae6d9f73 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 31 May 2022 14:42:24 -0500 Subject: [PATCH 049/103] Add quick guide link to Help button --- accessibility-checker-extension/src/ts/devtools/Header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index e704cf78d..3620f7630 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -243,7 +243,7 @@ export default class Header extends React.Component verticalAlign:"text-top", minHeight:"16px"}} onClick={(() => { this.props.readOptionsData(); - let url = chrome.runtime.getURL("usingAC.html"); + let url = chrome.runtime.getURL("quickGuideAC.html"); window.open(url, "_blank"); }).bind(this)}> From 655c04b78f53e19a8d038badee61a2e1e93fb8e7 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 31 May 2022 14:50:07 -0500 Subject: [PATCH 050/103] Make help and settings buttons closer together per design --- accessibility-checker-extension/src/ts/devtools/Header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 3620f7630..8c8f73a90 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -239,7 +239,7 @@ export default class Header extends React.Component kind="ghost" hasIconOnly iconDescription="Help" tooltipPosition="left" style={{ - color:"black", border:"none", paddingTop:"0px", + color:"black", border:"none", paddingTop:"0px", paddingRight:"0px", verticalAlign:"text-top", minHeight:"16px"}} onClick={(() => { this.props.readOptionsData(); From 58a8a1a9e902bf9c304b352733f86b2b520c2927 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 1 Jun 2022 11:10:44 -0500 Subject: [PATCH 051/103] first shot at the "first time" notification still more to do... --- .../src/ts/devtools/DevToolsPanelApp.tsx | 5 +- .../src/ts/devtools/Header.tsx | 52 ++++++++++++++++++- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index fedd5de95..b6a9873a0 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -1074,9 +1074,6 @@ export default class DevToolsPanelApp extends React.Component state: IHeaderState = { deleteModal: false, modalRulsetInfo: false, + modalKeyboardMode: false, }; focusInfoButton1() { @@ -192,6 +194,12 @@ export default class Header extends React.Component }); } + keyboardModalHandler() { + this.setState({ + modalKeyboardMode: true, + }); + } + render() { @@ -394,7 +402,10 @@ export default class Header extends React.Component await PanelMessaging.sendToBackground("DRAW_TABS_TO_BACKGROUND", { tabId: this.props.tabId, tabURL: this.props.tabURL, tabStopsResults: this.props.tabStopsResults, tabStopsErrors: this.props.tabStopsErrors, tabStopLines: this.props.tabStopLines, tabStopOutlines: this.props.tabStopOutlines }); - this.props.setTabStopsShowHide(); + setTimeout(() => { + this.props.setTabStopsShowHide(); + }, 1000); + this.keyboardModalHandler(); } else { // console.log("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS"); await PanelMessaging.sendToBackground("DELETE_DRAW_TABS_TO_CONTEXT_SCRIPTS", { tabId: this.props.tabId, tabURL: this.props.tabURL }); @@ -403,6 +414,43 @@ export default class Header extends React.Component }}> + + { + this.setState({ modalKeyboardMode: false }); + }).bind(this)} + > +

+ Shows current tab stops. Click any marker or tab through the page for element information. +



+ You can customize this feature in options and read more in the user guide. +

+

+ + + Options + + + User guide + + +

+ +
From 01565182c325496e3e92ebf413eec7c62f69f59a Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 3 Jun 2022 12:49:46 -0500 Subject: [PATCH 052/103] local storage of tabStopFirstTime --- .../src/ts/devtools/Header.tsx | 85 ++++++++++--------- 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index deb9f43c4..54b62e2cc 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -19,7 +19,7 @@ import ReactTooltip from "react-tooltip"; import { IReportItem } from "./Report"; import { - Column, Grid, Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal, + Column, Grid, Button, Checkbox, ContentSwitcher, Switch, OverflowMenu, OverflowMenuItem, Modal, ToastNotification, } from '@carbon/react'; import { Information, ReportData, Renew, ChevronDown, View, ViewOff, Help, Settings } from '@carbon/react/icons/lib/index'; import { IArchiveDefinition } from '../background/helper/engineCache'; @@ -95,6 +95,7 @@ interface IHeaderProps { tabStopOutlines: boolean, tabStopAlerts: boolean, tabStopFirstTime: boolean, + tabStopsSetFirstTime: boolean, } export default class Header extends React.Component { @@ -414,43 +415,51 @@ export default class Header extends React.Component }}> - - { - this.setState({ modalKeyboardMode: false }); - }).bind(this)} - > -

- Shows current tab stops. Click any marker or tab through the page for element information. -



- You can customize this feature in options and read more in the user guide. -

-

- - - Options - - - User guide - - -

- -
+ {this.state.modalKeyboardMode ? +
+ { + this.setState({ modalKeyboardMode: false }); + }).bind(this)} + > +
+

+

+ Shows current tab stops. Click any marker or tab through the page for element information. +



+ You can customize this feature in options and read more in the user guide. +

+

+ + + Options + + + User guide + + +

+
+
+
+ : ""}
From 288cc2abec1f91e085d55aa3b5f091709c8a9a87 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 3 Jun 2022 12:50:15 -0500 Subject: [PATCH 053/103] local storage stuff --- .../src/ts/devtools/DevToolsPanelApp.tsx | 26 ++++++++++++------- .../src/ts/styles/panel.scss | 2 ++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index b6a9873a0..6b42ef1ef 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -105,10 +105,13 @@ interface IPanelState { tabStopsResults: IReportItem[], tabStopsErrors: IReportItem[], showHideTabStops: boolean, - tabStopLines: boolean, - tabStopOutlines: boolean, + // local storage vars + tabStopLines: boolean, // repeated since both OptionsApp and DevToolsPanelApp + tabStopOutlines: boolean, // gets the states from local storage tabStopAlerts: boolean, - tabStopFirstTime: boolean + tabStopFirstTime: boolean, + // end local storage vars + tabStopsSetFirstTime: boolean } export default class DevToolsPanelApp extends React.Component { @@ -148,10 +151,11 @@ export default class DevToolsPanelApp extends React.Component { - var option = archives.find( (element: any) => element.id === archiveId); - var policy = option.policies; - var guideline = policy.find( (element: any) => element.id === policyId); - var ret = {deployment: {id: archiveId, name: option.name}, guideline: {id: policyId, name: guideline.name}}; return ret; @@ -1084,6 +1084,12 @@ export default class DevToolsPanelApp extends React.Component
@@ -1279,6 +1286,7 @@ export default class DevToolsPanelApp extends React.Component
diff --git a/accessibility-checker-extension/src/ts/styles/panel.scss b/accessibility-checker-extension/src/ts/styles/panel.scss index 3f9a907ea..63754b46d 100644 --- a/accessibility-checker-extension/src/ts/styles/panel.scss +++ b/accessibility-checker-extension/src/ts/styles/panel.scss @@ -288,6 +288,8 @@ width: 140px } + + .mainPanel { .helpHeader { From a7ba72f2609d0fe1fad70ef0001ee10ea0508fcf Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 5 Jun 2022 14:18:05 -0500 Subject: [PATCH 054/103] now first time alert only happens once and is stored in OPTIONS --- .../src/ts/contentScripts/draw.ts | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index fd29ff1e6..1586d0423 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -170,7 +170,10 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => deleteDrawing(".deleteMe"); redraw(regularTabstops, errorsMisc, message.tabStopLines, message.tabStopOutlines); redrawErrors(errorsMisc, regularTabstops, message.tabStopOutlines); + let resize = true; + TabMessaging.sendToBackground("TABSTOP_RESIZE", { resize: resize }) }); + // Tab key listener window.addEventListener('keyup', function (event) { // JCH - keydown does NOT work if (!event.shiftKey && event.key === "Tab") { // only catch Tab key @@ -401,11 +404,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean) { - console.log(tabStopsErrors); - - - - + // console.log(tabStopsErrors); setTimeout(() => { let offset = 3; @@ -416,8 +415,6 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo nodes = convertXpathsToHtmlElements(nodes); let slope: number; - - // JCH - need for last line to return to first node for (let i = 0; i < nodes.length; i++) { //Make lines between numbers if (nodes[i] != null) { // JCH - tabbable nodes @@ -483,44 +480,44 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // check to see if any tab stop has ruleID element_tabbable_visible let yIntercept: number; - tabStopsErrors.map((result: any, index: any) => { + tabStopsErrors.map((result: any) => { if (result.ruleId === "element_tabbable_visible") { if (nodeXpaths[i] === result.path.dom) { if (triangleXShifted < 0) { // need to get y intercept - console.log(index); - console.log(result.ruleId); + // console.log(index); + // console.log(result.ruleId); // Adjust coords for Triangle to put on page where line goes left off page // console.log("tabstop ",i); // straight line eq: Ax + By = C // y intercept is y = B/C // x intercept is x = C/A - console.log("Calculate coordinates for element_tabbable_visible triangle"); - console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); - console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); - console.log("slope = ",slope); + // console.log("Calculate coordinates for element_tabbable_visible triangle"); + // console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); + // console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); + // console.log("slope = ",slope); // find y intercept y = mx + c or c = y - mx yIntercept = triangleYShifted - slope * triangleXShifted; - console.log("yIntercept = ",yIntercept); + // console.log("yIntercept = ",yIntercept); triangleXShifted = 20; triangleYShifted = yIntercept + 10; } else if (triangleYShifted < 0) { // need to get x intercept - console.log(index); - console.log(result.ruleId); + // console.log(index); + // console.log(result.ruleId); // Adjust coords for Triangle to put on page where line goes left off page // console.log("tabstop ",i); - console.log("Calculate coordinates for element_tabbable_visible triangle"); - console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); - console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); - console.log("slope = ",slope); + // console.log("Calculate coordinates for element_tabbable_visible triangle"); + // console.log("x1 = ",triangleXShifted," y1 = ",triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength); + // console.log("x2 = ",nodes[i + 1].getBoundingClientRect().x - offset + 1," y2 = ",nodes[i + 1].getBoundingClientRect().y - offset); + // console.log("slope = ",slope); // find x intercept y = mx + c or c = y - mx yIntercept = triangleYShifted - slope * triangleXShifted; - console.log("yIntercept = ",yIntercept); + // console.log("yIntercept = ",yIntercept); // 0 = slope * x + yIntercept // xIntercept = yIntercept / slope let xIntercept = -yIntercept / slope; - console.log("xIntercept = ", xIntercept); + // console.log("xIntercept = ", xIntercept); triangleXShifted = xIntercept + 10; triangleYShifted = 25; } @@ -529,6 +526,10 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } }); + // console.log("before make triangle ",i); + // console.log("triangleXShifted = ",triangleXShifted); + // console.log("triangleYShifted = ",triangleYShifted); + makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, From b45976581880f188b57d575ec1deaacdfc85229e Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 5 Jun 2022 14:18:38 -0500 Subject: [PATCH 055/103] first time alert stored in OPTIONS --- .../src/ts/background/index.ts | 2 +- .../src/ts/devtools/DevToolsPanelApp.tsx | 56 +++++++++++++++--- .../src/ts/devtools/Header.tsx | 24 ++++++-- .../src/ts/options/OptionsApp.tsx | 57 ++++++++++++++----- 4 files changed, 110 insertions(+), 29 deletions(-) diff --git a/accessibility-checker-extension/src/ts/background/index.ts b/accessibility-checker-extension/src/ts/background/index.ts index 8b2568d28..af01896fa 100644 --- a/accessibility-checker-extension/src/ts/background/index.ts +++ b/accessibility-checker-extension/src/ts/background/index.ts @@ -216,7 +216,7 @@ BackgroundMessaging.addListener("DAP_Rulesets", async (message: any) => { chrome.storage.local.get("OPTIONS", async function (result: any) { let archiveId = Config.defaultArchiveId + ""; - if (result.OPTIONS) { + if (result.OPTIONS && result.OPTIONS.selected_archive.id == undefined) { archiveId = result.OPTIONS.selected_archive.id; } await initTab(message.tabId, archiveId); diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 6b42ef1ef..9899590af 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -97,6 +97,8 @@ interface IPanelState { archives: IArchiveDefinition[] | null, selectedArchive: string | null, selectedPolicy: string | null, + currentArchive: any; + currentRuleset: any; focusedViewFilter: boolean, focusedViewText: string, // Keyboard Mode @@ -111,7 +113,6 @@ interface IPanelState { tabStopAlerts: boolean, tabStopFirstTime: boolean, // end local storage vars - tabStopsSetFirstTime: boolean } export default class DevToolsPanelApp extends React.Component { @@ -144,6 +145,8 @@ export default class DevToolsPanelApp extends React.Component((resolve, _reject) => { // console.log("readOptionsData"); var self = this; chrome.storage.local.get("OPTIONS", async function (result: any) { + console.log(result.OPTIONS); //pick default archive id from env let archiveId = process.env.defaultArchiveId + ""; + console.log("archiveId 1 = ",archiveId); const archives = await self.getArchives(); const validArchive = ((id: string) => id && archives.some((archive:any) => archive.id === id)); - //if default archive id is not good, pick 'latest' + // if default archive id is not good, pick 'latest' if (!validArchive(archiveId)) { archiveId = "latest"; + console.log("archiveId 2 = ",archiveId); } //use archive id if it is in storage, if (result.OPTIONS && result.OPTIONS.selected_archive && validArchive(result.OPTIONS.selected_archive.id)) { archiveId = result.OPTIONS.selected_archive.id; + console.log("archiveId 3 = ",archiveId); + } else { + archiveId = "latest"; } let selectedArchive = archives.filter((archive:any) => archive.id === archiveId)[0]; @@ -361,6 +370,9 @@ export default class DevToolsPanelApp extends React.Component { + console.log("save_options_to_storage"); + var options = { OPTIONS: state }; + console.log(options); + await chrome.storage.local.set(options, function () { + console.log("options is set to ", options); + }); + }; + tabStopsHandler() { // console.log("tabStopsHandler"); // let mythis = this; @@ -1128,6 +1162,14 @@ export default class DevToolsPanelApp extends React.Component
@@ -1286,7 +1328,7 @@ export default class DevToolsPanelApp extends React.Component
diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 54b62e2cc..eed376df5 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -34,7 +34,7 @@ import Recommendation16 from "../../assets/Recommendation16.svg"; interface IHeaderState { deleteModal: boolean, modalRulsetInfo: boolean, - modalKeyboardMode: boolean, + openKeyboardMode: boolean, } interface IHeaderProps { @@ -95,7 +95,7 @@ interface IHeaderProps { tabStopOutlines: boolean, tabStopAlerts: boolean, tabStopFirstTime: boolean, - tabStopsSetFirstTime: boolean, + tabStopsSetFirstTime: () => void, } export default class Header extends React.Component { @@ -114,7 +114,7 @@ export default class Header extends React.Component state: IHeaderState = { deleteModal: false, modalRulsetInfo: false, - modalKeyboardMode: false, + openKeyboardMode: false, }; focusInfoButton1() { @@ -197,10 +197,12 @@ export default class Header extends React.Component keyboardModalHandler() { this.setState({ - modalKeyboardMode: true, + openKeyboardMode: true, }); } + + render() { @@ -415,7 +417,7 @@ export default class Header extends React.Component }}> - {this.state.modalKeyboardMode ? + {this.state.openKeyboardMode && this.props.tabStopFirstTime ?
hideCloseButton={false} lowContrast onClose={(() => { - this.setState({ modalKeyboardMode: false }); + this.setState({ openKeyboardMode: false }); + this.props.tabStopsSetFirstTime(); + }).bind(this)} + onKeyDown={((evt: any) => { + if (evt.key === "Escape") { + this.setState({ openKeyboardMode: false }); + evt.preventDefault(); + evt.stopPropagation(); + return false; + } + return true; }).bind(this)} >
diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index 484a5705b..37bf17940 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -67,7 +67,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { }; async componentDidMount() { - // console.log("Options App ComponentDidMount"); + console.log("Options App ComponentDidMount"); var self = this; // get OPTIONS from storage @@ -85,10 +85,17 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { var tabStopAlerts: any = true; var tabStopFirstTime: any = true; - //OPTIONS are not in storage - if (result != null && result.OPTIONS == undefined) { + console.log("_____________"); + console.log(result.OPTIONS); + console.log("_____________"); + + // OPTIONS are not in storage + // JCH make this test stronger + if (result == null || result.OPTIONS == undefined || + result.OPTIONS.selected_archive == undefined || + result.OPTIONS.selected_ruleset == undefined) { // OPTIONS are NOT in storage - // console.log("OPTIONS are NOT in storage"); + console.log("OPTIONS are NOT in storage"); //find the latest archive selected_archive = self.getLatestArchive(archives); @@ -97,7 +104,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { // leave all Keyboard mode options to true, i.e., show all } else { //OPTIONS are in storage - // console.log("OPTIONS ARE in storage"); + console.log("OPTIONS ARE in storage"); selected_archive = result.OPTIONS.selected_archive; rulesets = result.OPTIONS.rulesets; selected_ruleset = result.OPTIONS.selected_ruleset; @@ -155,14 +162,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { return selected_archive.policies; }; - //save options into browser's storage - save_options_to_storage = async (state: any) => { - var options = { OPTIONS: state }; - await chrome.storage.local.set(options, function () { - // console.log("options is set to ", options); - }); - - }; + handleArchiveSelect = async (item: any) => { var rulesets = await this.getRulesets(item.selectedItem); @@ -184,18 +184,36 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { // modal choices // delete scans and update ruleset // keep stored scans and don't update rulset (ali says don't give this choice) + console.log("handleSave"); + console.log("this.state.selected_archive.name = ",this.state.selected_archive.name); + console.log("this.state.selected_ruleset.name = ",this.state.selected_ruleset.name,); + console.log("this.state.tabStopLines = ",this.state.tabStopLines); + console.log("this.state.tabStopOutlines = ",this.state.tabStopOutlines); + console.log("this.state.tabStopAlerts = ",this.state.tabStopAlerts); + console.log("this.state.tabStopFirstTime = ",this.state.tabStopFirstTime); + this.setState({ currentArchive: this.state.selected_archive.name, currentRuleset: this.state.selected_ruleset.name, tabStopLines: this.state.tabStopLines, tabStopOutlines: this.state.tabStopOutlines, tabStopAlerts: this.state.tabStopAlerts, + tabStopFirstTime: false, }) this.save_options_to_storage(this.state); this.setState({ show_notif: true, show_reset_notif: false, }); }; - handlReset = () => { + //save options into browser's storage + save_options_to_storage = async (state: any) => { + var options = { OPTIONS: state }; + await chrome.storage.local.set(options, function () { + // console.log("options is set to ", options); + }); + + }; + + handleReset = () => { var selected_archive: any = this.getLatestArchive(this.state.archives); var selected_ruleset: any = this.state.rulesets[0]; @@ -204,6 +222,10 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { selected_ruleset, show_reset_notif: true, show_notif: false, + tabStopLines: true, + tabStopOutlines: true, + tabStopAlerts: true, + tabStopFirstTime: true }); }; @@ -217,6 +239,11 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { ...this.state, }; + // only show keyboard first time notification on first time + // user uses the keyboard visualization - note it is can be + // reset with "Reset to defaults" + + const manifest = chrome.runtime.getManifest(); function displayVersion() { let extVersion = manifest.version; @@ -411,7 +438,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { {this.state.openKeyboardMode && this.props.tabStopFirstTime ? From 36f6b50573c4b55dee976b862e518847d3fc0692 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Mon, 18 Jul 2022 10:47:38 -0500 Subject: [PATCH 081/103] add logging to determine drawing issues --- .../src/ts/contentScripts/draw.ts | 254 +++++++++++------- 1 file changed, 160 insertions(+), 94 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 4e80fa389..df44174cc 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -329,7 +329,7 @@ function deleteDrawing(classToRemove: string) { function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // JCH - FIX drawing ? trangle if there is already a tabbable triangle - // console.log("Function: redrawErrors"); + console.log("Function: redrawErrors"); setTimeout(() => { let tabbableNodesXpaths = getNodesXpaths(tabStops); @@ -343,6 +343,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { }); let offset = 0; + // console.log("nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { // console.log("nodes[",i,"] = ",nodes[i]); @@ -362,8 +363,31 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // console.log("JCH - skip out"); continue; // JCH - don't put up non triangle for an element if already done in redraw } + if (nodeXpaths[i].includes("body")) { // JCH - non tabbable nodes must be within body // console.log("Non tabbable nodes[",i,"] = ",nodes[i]); + + if (nodes[i] != null ) { // JCH - tabbable nodes + if (nodes[i] != null ) { // JCH - tabbable nodes + console.log("NON Tabbable nodes[",i+1,"] element exists"); + } else { + console.log("NON Tabbable nodes[",i+1,"] is null $$$$$"); + } + + if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes + console.log("NON Tabbable nodes[",i+1,"] tagName is ",nodes[i].tagName); + } else { + console.log("NON Tabbable nodes[",i+1,"].tagName is null $$$$$"); + } + + if (nodes[i].getBoundingClientRect !=null) { + console.log("Has bounding rect"); + } else { + console.log("NO bounding rect"); + } + } + console.log("--------------------------------"); + let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -402,6 +426,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { if (triangleYShifted >= -10 && triangleYShifted <= 6) { triangleYShifted = 14; } + // console.log("Not Tabbable ERROR i = ",i," so makeTriangle"); makeTriangle( triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, @@ -417,7 +442,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean) { - // console.log("Function: redraw"); + console.log("Function: redraw"); setTimeout(() => { let offset = 3; @@ -428,25 +453,43 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo nodes = convertXpathsToHtmlElements(nodes); let slope: number; + for (let i = 0; i < nodes.length; i++) { + if (nodes[i] != null ) { // JCH - tabbable nodes + if (nodes[i] != null ) { // JCH - tabbable nodes + console.log("Tabbable nodes[",i+1,"] element exists"); + } else { + console.log("Tabbable nodes[",i+1,"] is null $$$$$"); + } + + if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes + console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i].tagName); + } else { + console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); + } + + if (nodes[i].getBoundingClientRect !=null) { + console.log("Has bounding rect"); + } else { + console.log("NO bounding rect"); + } + console.log("--------------------------------"); + } + } + // JCH - need for last line to return to first node - // console.log("nodes.length = ",nodes.length); + console.log("nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers - // console.log("nodes[",i,"]"); - if (nodes[i] != null) { // JCH - tabbable nodes + // console.log("i = ", i, " i+1 = ",i+1, " i+2 = ",i+2); + if (nodes[i] != null ) { // JCH - tabbable nodes + // console.log(tabstops[i].ruleID); if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - // console.log("*** Tabbable Error Node ",i,"***"); - if (i != nodes.length -1) { + console.log("*** Tabbable Error Node ",i,"***"); + if (i != nodes.length - 1) { slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset); } else { slope = 1; } - - // console.log("x = ",nodes[i].getBoundingClientRect().x," y = ",nodes[i].getBoundingClientRect().y); - // console.log("top = ",nodes[i].getBoundingClientRect().top," bottom = ",nodes[i].getBoundingClientRect().bottom); - // console.log("left = ",nodes[i].getBoundingClientRect().left," right = ", nodes[i].getBoundingClientRect().right); - // console.log("width = ",nodes[i].getBoundingClientRect().width," height = ", nodes[i].getBoundingClientRect().height); - // offset to stay away from the outline? let x = nodes[i].getBoundingClientRect().x - offset; @@ -508,45 +551,54 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } }); - // Now deal with x2 line end for nodes[i+1] + // // Now deal with x2 line end for nodes[i+1] let y2Intercept: number; let x2Intercept: number; let x2OffScreenShift = false; let y2OffScreenShift = false; - let triangleX2Shifted = nodes[i+1].getBoundingClientRect().x - offset; - let triangleY2Shifted = nodes[i+1].getBoundingClientRect().y - offset; - let slope2 = (nodes[i + 2].getBoundingClientRect().y - offset - nodes[i+1].getBoundingClientRect().y - offset) / (nodes[i + 2].getBoundingClientRect().x - offset - nodes[i+1].getBoundingClientRect().x - offset); - tabStopsErrors.map((result: any) => { - if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i+1]) { - - // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); - // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); - - if (nodeXpaths[i+1] === result.path.dom) { - if (nodes[i+1].getBoundingClientRect().x < -10 || nodes[i+1].getBoundingClientRect().y < -10) { - // console.log("Adjustments for element_tabbable_visible for when element off page"); - if (triangleXShifted < 0) { // need to get y intercept - // find y intercept y = mx + c or c = y - mx - y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // console.log("yIntercept = ",yIntercept); - triangleX2Shifted = 20; - triangleY2Shifted = yIntercept + 15; - x2OffScreenShift = true; - } else if (triangleYShifted < 0) { // need to get x intercept - // find x intercept y = mx + c or c = y - mx - y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // console.log("yIntercept = ",yIntercept); - // 0 = slope * x + yIntercept - // xIntercept = yIntercept / slope - x2Intercept = -y2Intercept / slope2; - // console.log("xIntercept = ", xIntercept); - triangleY2Shifted = 25; - triangleX2Shifted = x2Intercept + 10; - y2OffScreenShift = true; + let triangleX2Shifted = 0; + let triangleY2Shifted = 0; + if (nodes[i+1] != null && nodes[i+2] != null) { + + + triangleX2Shifted = nodes[i+1].getBoundingClientRect().x - offset; + triangleY2Shifted = nodes[i+1].getBoundingClientRect().y - offset; + if (i+2 < nodes.length) { + let slope2 = (nodes[i + 2].getBoundingClientRect().y - offset - nodes[i+1].getBoundingClientRect().y - offset) / (nodes[i + 2].getBoundingClientRect().x - offset - nodes[i+1].getBoundingClientRect().x - offset); + + tabStopsErrors.map((result: any) => { + if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i+1]) { + + // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); + // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); + + if (nodeXpaths[i+1] === result.path.dom) { + if (nodes[i+1].getBoundingClientRect().x < -10 || nodes[i+1].getBoundingClientRect().y < -10) { + // console.log("Adjustments for element_tabbable_visible for when element off page"); + if (triangleXShifted < 0) { // need to get y intercept + // find y intercept y = mx + c or c = y - mx + y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; + // console.log("yIntercept = ",yIntercept); + triangleX2Shifted = 20; + triangleY2Shifted = yIntercept + 15; + x2OffScreenShift = true; + } else if (triangleYShifted < 0) { // need to get x intercept + // find x intercept y = mx + c or c = y - mx + y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; + // console.log("yIntercept = ",yIntercept); + // 0 = slope * x + yIntercept + // xIntercept = yIntercept / slope + x2Intercept = -y2Intercept / slope2; + // console.log("xIntercept = ", xIntercept); + triangleY2Shifted = 25; + triangleX2Shifted = x2Intercept + 10; + y2OffScreenShift = true; + } + } } - } - } - } - }); + } + }); + } + } // center of the triangle is triangleXShifted, triangleYShifted @@ -566,20 +618,22 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } let x2Shifted = false; let y2Shifted = false; - if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { - // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleX2Shifted = 14; - x2Shifted = true; - } - if (triangleY2Shifted >= -10 && triangleY2Shifted <= 6 && y2OffScreenShift === false) { - // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleY2Shifted = 14; - y2Shifted = true; + if (nodes[i+1] != null && nodes[i+2] != null) { + + if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { + // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); + triangleX2Shifted = 14; + x2Shifted = true; + } + if (triangleY2Shifted >= -10 && triangleY2Shifted <= 6 && y2OffScreenShift === false) { + // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); + triangleY2Shifted = 14; + y2Shifted = true; + } } - - // console.log("Draw Lines"); if (lines) { + console.log("Triangle line ",i," to ",i+1); if (i < nodes.length - 1) { // Create basic black line let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; @@ -608,28 +662,29 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo yOffScreenShift = false; } - if (x2Shifted === true) { - x2 = x2 + 14; - // console.log("Line shift x2 = ", x2); - x2Shifted = false; - } if (y2Shifted === true) { - y2 = y2 + 14; - // console.log("Line shift y2 = ", y2); - yShifted = false; - //@ts-ignore - } if (xOffScreenShift === true) { - x2 = x2 + triangleX2Shifted; - y2 = y2 + triangleY2Shifted; - // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - xOffScreenShift = false; - //@ts-ignore - } if (y2OffScreenShift === true) { - x2 = x2 + triangleXShifted; - y2 = y2 + triangleYShifted; - // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - y2OffScreenShift = false; + if (nodes[i+1] != null && nodes[i+2] != null) { + if (x2Shifted === true) { + x2 = x2 + 14; + // console.log("Line shift x2 = ", x2); + x2Shifted = false; + } if (y2Shifted === true) { + y2 = y2 + 14; + // console.log("Line shift y2 = ", y2); + yShifted = false; + //@ts-ignore + } if (xOffScreenShift === true) { + x2 = x2 + triangleX2Shifted; + y2 = y2 + triangleY2Shifted; + // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); + xOffScreenShift = false; + //@ts-ignore + } if (y2OffScreenShift === true) { + x2 = x2 + triangleXShifted; + y2 = y2 + triangleYShifted; + // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); + y2OffScreenShift = false; + } } - // console.log("x1 - offset = ", x1 - offset, " y1 - offset = ",y1 - offset); // console.log("x2 - offset = ", x2 - offset, " y2 - offset = ",y2 - offset); // console.log("------------------"); @@ -650,16 +705,18 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } // console.log("triangleXShifted = ",triangleXShifted, " triangleYShifted",triangleYShifted); + if (i < nodes.length) { + // console.log("Tabbable i = ",i," so makeTriangle"); + makeTriangle( + triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , + triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + i.toString(), nodeXpaths[i]) + + // makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); - makeTriangle( - triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , - triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - i.toString(), nodeXpaths[i]) - - // makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); - - makeTextSmall(triangleXShifted, triangleYShifted, (i + 1).toString(), "textColorBlack"); + makeTextSmall(triangleXShifted, triangleYShifted, (i + 1).toString(), "textColorBlack"); + } if (outlines) { @@ -683,11 +740,22 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } - } - else { // This is the defalt case were we just draw a circle - // console.log("*** Tabbable Node ",i,"***"); + } else { // This is the defalt case were we just draw a circle + console.log("*** Tabbable Node ",i,"***"); if (lines) { + console.log("Circle line ",i," to ",i+1); if (i < nodes.length - 1) { + if (nodes[i].getBoundingClientRect !=null) { + console.log("Has bounding rect"); + } else { + console.log("NO bounding rect"); + } + if (nodes[i+1].getBoundingClientRect !=null) { + console.log("Has bounding rect"); + } else { + console.log("NO bounding rect"); + } + let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; @@ -719,14 +787,12 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo if (outlines) { - // Make box around active component makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["line", "lineRight", "lineNumber" + i]); makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["line", "lineBottom", "lineNumber" + i]); - // Make white stroke around active component outline makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmboss"]); makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmboss"]); From f5ba7f9b6d041d82c9abb6661e35ac6c55601772 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 20 Jul 2022 13:56:47 -0500 Subject: [PATCH 082/103] more iframe drawing changes --- .../src/ts/contentScripts/draw.ts | 202 +++++++++++------- .../src/ts/devtools/DevToolsPanelApp.tsx | 2 +- 2 files changed, 120 insertions(+), 84 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index df44174cc..3189ff4db 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -355,8 +355,9 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // console.log(tabStopsErrors[i].ruleId); skipErrorNode = true; // JCH - already taken care of in redraw } else { - // console.log("Not in Tab Chain"); - // console.log(tabStopsErrors[i].ruleId); + console.log("Not in Tab Chain"); + console.log(tabStopsErrors[i].ruleId); + console.log("nodeXpaths[",i,"] = ",nodeXpaths[i]); } } if (skipErrorNode === true) { @@ -380,60 +381,66 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { console.log("NON Tabbable nodes[",i+1,"].tagName is null $$$$$"); } - if (nodes[i].getBoundingClientRect !=null) { + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { console.log("Has bounding rect"); - } else { + } + else { console.log("NO bounding rect"); } } console.log("--------------------------------"); - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + if (nodes[i] != null ) { // JCH - if node exists - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + let x = nodes[i].getBoundingClientRect().x - offset; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - if (outlines) { + let y = nodes[i].getBoundingClientRect().y - offset; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - // MAKE BOX AROUND ACTIVE COMPONENT - makeLine(x, y, xPlusWidth, y, ["lineError"]); - makeLine(x, y, x, yPlusHeight, ["lineError"]); - makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); - makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); + if (outlines) { - // Make white stroke around active component outline - makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); - makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + // MAKE BOX AROUND ACTIVE COMPONENT + makeLine(x, y, xPlusWidth, y, ["lineError"]); + makeLine(x, y, x, yPlusHeight, ["lineError"]); + makeLine(xPlusWidth, y, xPlusWidth, yPlusHeight, ["lineError"]); + makeLine(x, yPlusHeight, xPlusWidth, yPlusHeight, ["lineError"]); - // Make white stroke inside active component outline - makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); - makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); - } + // Make white stroke around active component outline + makeLine(x - 1, y - 1, xPlusWidth + 1, y - 1, ["lineEmbossError"]); + makeLine(x - 1, y - 1, x - 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(xPlusWidth + 1, y - 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); + makeLine(x - 1, yPlusHeight + 1, xPlusWidth + 1, yPlusHeight + 1, ["lineEmbossError"]); - // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center - let triangleLegLength = 27; - let triangleXShifted = x; - let triangleYShifted = y+1; // Shift 1 px to center the ? we draw - // If the triangle is being drawn slighly off of the screen move it into the screen - if (triangleXShifted >= -10 && triangleXShifted <= 6) { - triangleXShifted = 14; - } - if (triangleYShifted >= -10 && triangleYShifted <= 6) { - triangleYShifted = 14; + // Make white stroke inside active component outline + makeLine(x + 1, y + 1, xPlusWidth - 1, y + 1, ["lineEmbossError"]); + makeLine(x + 1, y + 1, x + 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(xPlusWidth - 1, y + 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmbossError"]); + } + + // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center + let triangleLegLength = 27; + let triangleXShifted = x; + let triangleYShifted = y+1; // Shift 1 px to center the ? we draw + // If the triangle is being drawn slighly off of the screen move it into the screen + if (triangleXShifted >= -10 && triangleXShifted <= 6) { + triangleXShifted = 14; + } + if (triangleYShifted >= -10 && triangleYShifted <= 6) { + triangleYShifted = 14; + } + // console.log("Not Tabbable ERROR i = ",i," so makeTriangle"); + makeTriangle( + triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , + triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, + "Error"+i.toString(), nodeXpaths[i]) + + makeTextSmall(x, y, "?", "textColorBlack"); + } else { + continue; } - // console.log("Not Tabbable ERROR i = ",i," so makeTriangle"); - makeTriangle( - triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , - triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - "Error"+i.toString(), nodeXpaths[i]) - - makeTextSmall(x, y, "?", "textColorBlack"); } } }, 1); @@ -455,25 +462,25 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null ) { // JCH - tabbable nodes - if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i+1,"] element exists"); - } else { - console.log("Tabbable nodes[",i+1,"] is null $$$$$"); - } - + console.log("Tabbable nodes[",i+1,"] element exists"); + } else { + console.log("Tabbable nodes[",i+1,"] is null $$$$$"); + } + if (nodes[i] != null) { if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i].tagName); } else { console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); } - - if (nodes[i].getBoundingClientRect !=null) { + + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { console.log("Has bounding rect"); - } else { + } + else { console.log("NO bounding rect"); } - console.log("--------------------------------"); } + console.log("--------------------------------"); } // JCH - need for last line to return to first node @@ -481,16 +488,33 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo for (let i = 0; i < nodes.length; i++) { //Make lines between numbers // console.log("i = ", i, " i+1 = ",i+1, " i+2 = ",i+2); if (nodes[i] != null ) { // JCH - tabbable nodes - - // console.log(tabstops[i].ruleID); + console.log("Tabbable nodes[",i,"] element exists"); if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle console.log("*** Tabbable Error Node ",i,"***"); - if (i != nodes.length - 1) { - slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset); - } else { - slope = 1; + let nextTabbableElement; + let k = i; + for (let j = i+1; j < nodes.length; j++) { + if (nodes[j] != null) { + k = j; + nextTabbableElement = nodes[j]; + break; + } + } + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + console.log("nodes[",i,"] has bounding rect"); + } + else { + console.log("nodes[",i,"] has NO bounding rect"); + } + if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { + console.log("nextTabbableElement has bounding rect"); + } + else { + console.log("nextTabbableElement has NO bounding rect"); } + slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + // offset to stay away from the outline? let x = nodes[i].getBoundingClientRect().x - offset; let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; @@ -557,16 +581,14 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let x2OffScreenShift = false; let y2OffScreenShift = false; let triangleX2Shifted = 0; let triangleY2Shifted = 0; - if (nodes[i+1] != null && nodes[i+2] != null) { - - - triangleX2Shifted = nodes[i+1].getBoundingClientRect().x - offset; - triangleY2Shifted = nodes[i+1].getBoundingClientRect().y - offset; - if (i+2 < nodes.length) { - let slope2 = (nodes[i + 2].getBoundingClientRect().y - offset - nodes[i+1].getBoundingClientRect().y - offset) / (nodes[i + 2].getBoundingClientRect().x - offset - nodes[i+1].getBoundingClientRect().x - offset); + if (nextTabbableElement != null && nodes[i+2] != null) { + triangleX2Shifted = nextTabbableElement.getBoundingClientRect().x - offset; + triangleY2Shifted = nextTabbableElement.getBoundingClientRect().y - offset; + if (k+1 < nodes.length) { + let slope2 = (nodes[k+1].getBoundingClientRect().y - offset - nextTabbableElement.getBoundingClientRect().y - offset) / (nodes[k+1].getBoundingClientRect().x - offset - nextTabbableElement.getBoundingClientRect().x - offset); tabStopsErrors.map((result: any) => { - if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i+1]) { + if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[k]) { // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); @@ -618,7 +640,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } let x2Shifted = false; let y2Shifted = false; - if (nodes[i+1] != null && nodes[i+2] != null) { + if (nextTabbableElement != null && nodes[k+1] != null) { if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); @@ -633,11 +655,11 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } if (lines) { - console.log("Triangle line ",i," to ",i+1); + console.log("Triangle line ",i," to ",k); if (i < nodes.length - 1) { // Create basic black line let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; - let x2 = nodes[i+1].getBoundingClientRect().x; let y2 = nodes[i+1].getBoundingClientRect().y; + let x2 = nextTabbableElement.getBoundingClientRect().x; let y2 = nextTabbableElement.getBoundingClientRect().y; // console.log("x1 = ", x1, " y1 = ", y1); // console.log("x2 = ", x2, " y2 = ", y2); if (xShifted === true) { @@ -662,7 +684,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo yOffScreenShift = false; } - if (nodes[i+1] != null && nodes[i+2] != null) { + if (nextTabbableElement != null && nodes[k+1] != null) { if (x2Shifted === true) { x2 = x2 + 14; // console.log("Line shift x2 = ", x2); @@ -742,25 +764,37 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } } else { // This is the defalt case were we just draw a circle console.log("*** Tabbable Node ",i,"***"); + // for line to next tabbable element find next tabbable element that exists + let nextTabbableElement; + let k; + for (let j = i+1; j < nodes.length; j++) { + if (nodes[j] != null) { + k = j; + nextTabbableElement = nodes[j]; + break; + } + } if (lines) { - console.log("Circle line ",i," to ",i+1); + console.log("Circle line ",i," to ",k); if (i < nodes.length - 1) { - if (nodes[i].getBoundingClientRect !=null) { - console.log("Has bounding rect"); - } else { - console.log("NO bounding rect"); + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + console.log("nodes[",i,"] has bounding rect"); } - if (nodes[i+1].getBoundingClientRect !=null) { - console.log("Has bounding rect"); - } else { - console.log("NO bounding rect"); + else { + console.log("nodes[",i,"] has NO bounding rect"); + } + if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { + console.log("nextTabbableElement has bounding rect"); + } + else { + console.log("nextTabbableElement has NO bounding rect"); } - let slope = (nodes[i + 1].getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nodes[i + 1].getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) + let slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; - let x2 = nodes[i+1].getBoundingClientRect().x; - let y2 = nodes[i+1].getBoundingClientRect().y; + let x2 = nextTabbableElement.getBoundingClientRect().x; + let y2 = nextTabbableElement.getBoundingClientRect().y; makeLine(x1 - offset, y1 - offset, x2 - offset, y2 - offset, ["line"]); @@ -806,6 +840,8 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } } + } else { + continue; } } diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 9adea1d1a..bc37960a1 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -551,7 +551,7 @@ this.setState({ tabStopsResults: tabbable }); this.setState({ tabStopsErrors: tabbableErrors }); - // console.log("tabbable = ", tabbable); + console.log("tabbable = ", tabbable); // console.log("tabbableErrors = ", tabbableErrors); // JCH - clear visualization // console.log("Function: onReport - &&&& DELETE TABS after collecting TAB data &&&&") From a94e16d2a9ac82b52bc15d0013a2e6bc62e32689 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 22 Jul 2022 15:39:25 -0500 Subject: [PATCH 083/103] Now can make it through test websites with no unrecoverable drawing errors --- .../src/ts/contentScripts/draw.ts | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 3189ff4db..6d70f5044 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -355,9 +355,9 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { // console.log(tabStopsErrors[i].ruleId); skipErrorNode = true; // JCH - already taken care of in redraw } else { - console.log("Not in Tab Chain"); - console.log(tabStopsErrors[i].ruleId); - console.log("nodeXpaths[",i,"] = ",nodeXpaths[i]); + // console.log("Not in Tab Chain"); + // console.log(tabStopsErrors[i].ruleId); + // console.log("nodeXpaths[",i,"] = ",nodeXpaths[i]); } } if (skipErrorNode === true) { @@ -370,22 +370,22 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { if (nodes[i] != null ) { // JCH - tabbable nodes if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("NON Tabbable nodes[",i+1,"] element exists"); + console.log("NON Tabbable nodes[",i,"] element exists"); } else { - console.log("NON Tabbable nodes[",i+1,"] is null $$$$$"); + console.log("NON Tabbable nodes[",i,"] is null $$$$$"); } if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("NON Tabbable nodes[",i+1,"] tagName is ",nodes[i].tagName); + console.log("NON Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); } else { - console.log("NON Tabbable nodes[",i+1,"].tagName is null $$$$$"); + console.log("NON Tabbable nodes[",i,"].tagName is null $$$$$"); } if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Has bounding rect"); + console.log("NON Tabbable nodes[",i,"] Has bounding rect"); } else { - console.log("NO bounding rect"); + console.log("NON Tabbable nodes[",i,"] NO bounding rect"); } } console.log("--------------------------------"); @@ -458,7 +458,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); - let slope: number; + let slope: number = -1; for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null ) { // JCH - tabbable nodes @@ -506,14 +506,18 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo else { console.log("nodes[",i,"] has NO bounding rect"); } - if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { - console.log("nextTabbableElement has bounding rect"); - } - else { - console.log("nextTabbableElement has NO bounding rect"); + + if (nextTabbableElement != null) { + if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { + console.log("nextTabbableElement has bounding rect"); + } + else { + console.log("nextTabbableElement has NO bounding rect"); + } + + slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) } - slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) // offset to stay away from the outline? let x = nodes[i].getBoundingClientRect().x - offset; @@ -654,7 +658,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } } - if (lines) { + if (lines && nextTabbableElement != null) { console.log("Triangle line ",i," to ",k); if (i < nodes.length - 1) { // Create basic black line From 29889bfe8e836917711be0bc84f788dfe140067f Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 24 Jul 2022 21:05:00 -0500 Subject: [PATCH 084/103] working on xpaths --- .../src/ts/contentScripts/draw.ts | 134 ++++++++++++++---- 1 file changed, 106 insertions(+), 28 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 6d70f5044..8131d63bf 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -126,6 +126,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => regularTabstops[index].nodeHasError = true } } + + console.log("----------------"); + console.log(regularTabstops); + console.log(tabStopsErrors); + console.log("----------------"); // JCH - this allows the web to scroll to the top before drawing occurs goToTop().then(function() { @@ -370,22 +375,20 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { if (nodes[i] != null ) { // JCH - tabbable nodes if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("NON Tabbable nodes[",i,"] element exists"); - } else { - console.log("NON Tabbable nodes[",i,"] is null $$$$$"); - } - - if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("NON Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + console.log("Non tabbable nodes[",i,"] element exists"); + if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes + console.log("Non tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + console.log("Non tabbable nodes[",i,"] has bounding rect"); + } + else { + console.log("Non tabbable nodes[",i,"] has NO bounding rect"); + } + } else { + console.log("Non tabbablenodes[",i,"].tagName is null $$$$$"); + } } else { - console.log("NON Tabbable nodes[",i,"].tagName is null $$$$$"); - } - - if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("NON Tabbable nodes[",i,"] Has bounding rect"); - } - else { - console.log("NON Tabbable nodes[",i,"] NO bounding rect"); + console.log("Non tabbable nodes[",i,"] is null $$$$$"); } } console.log("--------------------------------"); @@ -458,27 +461,39 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodes); + console.log("After convertXpathsToHtmlElements ", nodes); let slope: number = -1; for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i+1,"] element exists"); + console.log("Tabbable nodes[",i,"] element exists"); + if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes + console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + console.log("Tabbable nodes[",i,"] has bounding rect"); + } + else { + console.log("Tabbable nodes[",i,"] has NO bounding rect"); + } + } else { + console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); + } } else { - console.log("Tabbable nodes[",i+1,"] is null $$$$$"); + console.log("Tabbable nodes[",i,"] is null $$$$$"); } - if (nodes[i] != null) { - if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i].tagName); + if (nodes[i+1] != null) { + console.log("Tabbable nodes[",i+1,"] element exists"); + if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes + console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); + if (typeof nodes[i+1].getBoundingClientRect !== 'undefined' || nodes[i+1].getBoundingClientRect != null) { + console.log("Tabbable nodes[",i+1,"] has bounding rect"); + } + else { + console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); + } } else { console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); } - - if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Has bounding rect"); - } - else { - console.log("NO bounding rect"); - } } console.log("--------------------------------"); } @@ -1055,10 +1070,21 @@ function createSVGLineTemplate() { } +// function convertXpathsToHtmlElements(nodes: any) { +// let results: any = []; +// nodes.map((elem: any) => { +// results.push(document.evaluate(elem, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue); +// }); +// return results; +// } + function convertXpathsToHtmlElements(nodes: any) { let results: any = []; nodes.map((elem: any) => { - results.push(document.evaluate(elem, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue); + let element; + element = selectPath(elem) + console.log(elem); + results.push(element); }); return results; } @@ -1081,4 +1107,56 @@ async function goToTop() { left: 0, behavior: 'smooth' }); +} + +function lookup(doc: any, xpath:string) { + console.log("Function: lookup"); + if (doc.nodeType === 11) { + let selector = ":scope" + xpath.replace(/\//g, " > ").replace(/\\[(\\d+)\\]/g, ":nth-child($1)"); + let element = doc.querySelector(selector); + return element; + } else { + let nodes = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + let element = nodes.iterateNext(); + if (element) { + return element; + } else { + return null; + } + } +} + +// @ts-ignore +function selectPath(srcPath: any) { + console.log("Function: selectPath"); + let doc = document; + let element = null; + while (srcPath && (srcPath.includes("iframe") || srcPath.includes("#document-fragment"))) { + if (srcPath.includes("iframe")) { + let parts = srcPath.match(/(.*?iframe\\[\\d+\\])(.*)/); + let iframe = lookup(doc, parts[1]); + element = iframe || element; + if (iframe && iframe.contentDocument) { + doc = iframe.contentDocument; + srcPath = parts[2]; + } else { + srcPath = null; + } + } else if (srcPath.includes("#document-fragment")) { + let parts = srcPath.match(/(.*?)\/#document-fragment\\[\\d+\\](.*)/); + let fragment = lookup(doc, parts[1]); + element = fragment || element; + if (fragment && fragment.shadowRoot) { + doc = fragment.shadowRoot; + srcPath = parts[2]; + } else { + srcPath = null; + } + } + } + if (srcPath) { + element = lookup(doc, srcPath) || element; + } + return element; + } \ No newline at end of file From 2d52c8401aade6051b76391ea9eb3cd8eb09b344 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:41:15 -0500 Subject: [PATCH 085/103] more iframe work --- .../src/ts/contentScripts/draw.ts | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 8131d63bf..24e9ad34a 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -463,6 +463,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo nodes = convertXpathsToHtmlElements(nodes); console.log("After convertXpathsToHtmlElements ", nodes); let slope: number = -1; + let iframes: any = []; for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null ) { // JCH - tabbable nodes @@ -470,7 +471,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i,"] has bounding rect"); + console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); } else { console.log("Tabbable nodes[",i,"] has NO bounding rect"); @@ -486,7 +487,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); if (typeof nodes[i+1].getBoundingClientRect !== 'undefined' || nodes[i+1].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i+1,"] has bounding rect"); + console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); } else { console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); @@ -782,7 +783,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } } else { // This is the defalt case were we just draw a circle - console.log("*** Tabbable Node ",i,"***"); + console.log("********* Tabbable Node ",i,"*********"); // for line to next tabbable element find next tabbable element that exists let nextTabbableElement; let k; @@ -834,10 +835,48 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let y = nodes[i].getBoundingClientRect().y - offset; let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + + // adjustment for iframes + // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe + console.log("xpath = ",nodeXpaths[i]); + + if (nodeXpaths[i].includes("iframe")) { + + // find and store iframe + let iframeStartIndex = nodeXpaths[i].indexOf("iframe"); + let iframeString = nodeXpaths[i].slice(iframeStartIndex); + + let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); + + if (lastElement.includes("iframe")) { // this is for the iframe element + console.log("We Have an iframe"); + const iframe = {element: nodes[i], name: iframeString, x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; + iframes.push(iframe); + console.log(iframes); + } else { // this is for elements that are within an iframe + // get the iframe string iframe[n] + console.log("We have and element in an iframe"); + let elementIframe = iframeString.slice(0,iframeString.indexOf('/')); + // find the iframe in iframes + const iframesObj = iframes.find((e:any) => e.name === elementIframe); + console.log("iframesObj = ",iframesObj); + // add elements coords to iframe coords + console.log("iframesObj.x = ", iframesObj.x); + console.log("iframesObj.y = ", iframesObj.y); + console.log(nodes[i].getBoundingClientRect().x); + console.log(nodes[i].getBoundingClientRect().y); + x = iframesObj.x + nodes[i].getBoundingClientRect().x; + y = iframesObj.y + nodes[i].getBoundingClientRect().y; + + } + } + + console.log("last iframes before circle: ",iframes); makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); + if (outlines) { // Make box around active component @@ -1112,13 +1151,14 @@ async function goToTop() { function lookup(doc: any, xpath:string) { console.log("Function: lookup"); if (doc.nodeType === 11) { - let selector = ":scope" + xpath.replace(/\//g, " > ").replace(/\\[(\\d+)\\]/g, ":nth-child($1)"); + let selector = ":scope" + xpath.replace(/\//g, " > ").replace(/\[(\d+)\]/g, ":nth-child($1)"); let element = doc.querySelector(selector); return element; } else { let nodes = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); let element = nodes.iterateNext(); if (element) { + console.log("element = ",element); return element; } else { return null; @@ -1133,7 +1173,9 @@ function selectPath(srcPath: any) { let element = null; while (srcPath && (srcPath.includes("iframe") || srcPath.includes("#document-fragment"))) { if (srcPath.includes("iframe")) { - let parts = srcPath.match(/(.*?iframe\\[\\d+\\])(.*)/); + console.log("srcPath = ",srcPath); + let parts = srcPath.match(/(.*?iframe\[\d+\])(.*)/); + console.log("parts = ",parts); let iframe = lookup(doc, parts[1]); element = iframe || element; if (iframe && iframe.contentDocument) { From 9e95e0d56b82fec8c4c56c72a792a23676e6f2e3 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 27 Jul 2022 14:52:25 -0500 Subject: [PATCH 086/103] Finished iframes circles and triangles left is to work on lines and outlines --- .../src/ts/contentScripts/draw.ts | 230 ++++++++++-------- 1 file changed, 128 insertions(+), 102 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 24e9ad34a..d43e4d23e 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -127,15 +127,15 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } } - console.log("----------------"); - console.log(regularTabstops); - console.log(tabStopsErrors); - console.log("----------------"); + // console.log("----------------"); + // console.log(regularTabstops); + // console.log(tabStopsErrors); + // console.log("----------------"); // JCH - this allows the web to scroll to the top before drawing occurs goToTop().then(function() { setTimeout(() => { - draw(regularTabstops, tabStopsErrors, message.tabStopLines, message.tabStopOutlines).then(function() { + draw(regularTabstops, tabStopsErrors, message.tabStopLines, message.tabStopOutlines).then(function() { drawErrors(tabStopsErrors, regularTabstops, message.tabStopOutlines); }); @@ -162,19 +162,57 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => window.addEventListener("resize", debounce( resizeContent, 250 )); - // Tab key listener - window.addEventListener('keyup', function (event) { // JCH - keydown does NOT work + // Tab key listener for main window + window.addEventListener('keyup', function(event:any) { + // console.log("---------------------------------------"); + // console.log("main doc key catcher"); + handleTabHighlight(event,regularTabstops,document,false,""); + + }); + // Find all iframes nodes + let frames = document.getElementsByTagName("iframe"); + for (let i = 0; i < frames.length; ++i) { + if (frames[i] != null) { + frames[i].contentWindow?.addEventListener('keyup', function(event:any) { + // console.log("---------------------------------------"); + // console.log("iframe key catcher"); + handleTabHighlight(event,regularTabstops,frames[i].contentWindow?.document,true,"iframe["+(i+1)+"]"); + }) + } + } + + return true; +}); + +function handleTabHighlight(event:any,regularTabstops:any,doc:any,iframe:boolean,iframeStr:string) { + // console.log("Tab key listener"); + let elementXpath = ""; if (!event.shiftKey && event.key === "Tab") { // only catch Tab key - let element = this.document.activeElement; // get element just tabbed to which has focus - // get xpath for active element - let elementXpath = getXPathForElement(element); + // console.log("Got TAB Key"); + let element = doc.activeElement; // get element just tabbed to which has focus + // console.log("Active element = ", element); + elementXpath = getXPathForElement(element); + // console.log("elementXpath = ",elementXpath); + // Let's try node match + let nodes = getNodesXpaths(regularTabstops); + let nodeXpaths = nodes; + nodes = convertXpathsToHtmlElements(nodes); + // do node match + for (let i=0; i < nodeXpaths.length; i++) { + if (iframe && nodeXpaths[i].includes(iframeStr) && nodeXpaths[i].includes(elementXpath) ) { + elementXpath = nodeXpaths[i]; + } + } + // console.log("matching xpath = ",elementXpath); + // get circle or polygon with matching xpath - let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - let polygon = this.document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); + // console.log("circle = ", circle); + let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; - if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]) { + if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); - } else if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVGtriangle")[0]) { + } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG @@ -208,22 +246,29 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } else { // console.log("No circle to highlight = ",circle); } - // Inspect active element - // console.log("circle.xpath = ", circle?.getAttribute("xpath")); - // console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); - // TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); - // Returm from elements tab to browse page tab - } else if (event.shiftKey && event.key === "Tab") { // catch only SHIFT TAB - let element = this.document.activeElement; // get element just tabbed to which has focus - // get xpath for active element - let elementXpath = getXPathForElement(element); + } else if (event.shiftKey && event.key === "Tab") { // catch SHIFT TAB + // console.log("Got SHIFT TAB Key"); + let element = doc.activeElement; // get element just tabbed to which has focus + // console.log("Active element = ", element); + elementXpath = getXPathForElement(element); + // console.log("elementXpath = ",elementXpath); + // Let's try node match + let nodes = getNodesXpaths(regularTabstops); + let nodeXpaths = nodes; + nodes = convertXpathsToHtmlElements(nodes); + // do node match + for (let i=0; i < nodeXpaths.length; i++) { + if (iframe && nodeXpaths[i].includes(iframeStr) && nodeXpaths[i].includes(elementXpath) ) { + elementXpath = nodeXpaths[i]; + } + } // get circle or polygon with matching xpath - let circle = this.document.querySelector('circle[xpath="'+elementXpath+'"]'); - let polygon = this.document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); + let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; - if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVG")[0]) { + if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); - } else if (prevHighlightedElement = this.document.getElementsByClassName("highlightSVGtriangle")[0]) { + } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG @@ -263,11 +308,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); // Returm from elements tab to browse page tab } - - }); - - return true; -}); +} // Debounce function debounce(func:any, time:any) { @@ -340,7 +381,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { let nodes = getNodesXpaths(tabStopsErrors); let nodeXpaths = nodes; - nodes = convertXpathsToHtmlElements(nodes); + nodes = convertXpathsToHtmlElements(nodeXpaths); // console.log("tabStopsErrors = ", tabStopsErrors); nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent @@ -375,23 +416,23 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { if (nodes[i] != null ) { // JCH - tabbable nodes if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("Non tabbable nodes[",i,"] element exists"); + // console.log("Non tabbable nodes[",i,"] element exists"); if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("Non tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + // console.log("Non tabbable nodes[",i,"] tagName is ",nodes[i].tagName); if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Non tabbable nodes[",i,"] has bounding rect"); + // console.log("Non tabbable nodes[",i,"] has bounding rect"); } else { - console.log("Non tabbable nodes[",i,"] has NO bounding rect"); + // console.log("Non tabbable nodes[",i,"] has NO bounding rect"); } } else { - console.log("Non tabbablenodes[",i,"].tagName is null $$$$$"); + // console.log("Non tabbablenodes[",i,"].tagName is null $$$$$"); } } else { - console.log("Non tabbable nodes[",i,"] is null $$$$$"); + // console.log("Non tabbable nodes[",i,"] is null $$$$$"); } } - console.log("--------------------------------"); + // console.log("--------------------------------"); if (nodes[i] != null ) { // JCH - if node exists @@ -452,7 +493,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean) { - console.log("Function: redraw"); + // console.log("Function: redraw"); setTimeout(() => { let offset = 3; @@ -460,53 +501,52 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let nodes = getNodesXpaths(tabstops); // console.log(tabstopErrors) let nodeXpaths = nodes; - nodes = convertXpathsToHtmlElements(nodes); - console.log("After convertXpathsToHtmlElements ", nodes); + nodes = convertXpathsToHtmlElements(nodeXpaths); let slope: number = -1; let iframes: any = []; for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i,"] element exists"); + // console.log("Tabbable nodes[",i,"] element exists"); if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + // console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); + // console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); } else { - console.log("Tabbable nodes[",i,"] has NO bounding rect"); + // console.log("Tabbable nodes[",i,"] has NO bounding rect"); } } else { - console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); + // console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); } } else { - console.log("Tabbable nodes[",i,"] is null $$$$$"); + // console.log("Tabbable nodes[",i,"] is null $$$$$"); } if (nodes[i+1] != null) { - console.log("Tabbable nodes[",i+1,"] element exists"); + // console.log("Tabbable nodes[",i+1,"] element exists"); if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); + // console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); if (typeof nodes[i+1].getBoundingClientRect !== 'undefined' || nodes[i+1].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); + // console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); } else { - console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); + // console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); } } else { - console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); + // console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); } } - console.log("--------------------------------"); + // console.log("--------------------------------"); } // JCH - need for last line to return to first node - console.log("nodes.length = ",nodes.length); + // console.log("nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers // console.log("i = ", i, " i+1 = ",i+1, " i+2 = ",i+2); if (nodes[i] != null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i,"] element exists"); + // console.log("Tabbable nodes[",i,"] element exists"); if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - console.log("*** Tabbable Error Node ",i,"***"); + // console.log("*** Tabbable Error Node ",i,"***"); let nextTabbableElement; let k = i; for (let j = i+1; j < nodes.length; j++) { @@ -517,18 +557,18 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } } if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("nodes[",i,"] has bounding rect"); + // console.log("nodes[",i,"] has bounding rect"); } else { - console.log("nodes[",i,"] has NO bounding rect"); + // console.log("nodes[",i,"] has NO bounding rect"); } if (nextTabbableElement != null) { if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { - console.log("nextTabbableElement has bounding rect"); + // console.log("nextTabbableElement has bounding rect"); } else { - console.log("nextTabbableElement has NO bounding rect"); + // console.log("nextTabbableElement has NO bounding rect"); } slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) @@ -570,7 +610,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo if (nodeXpaths[i] === result.path.dom) { if (nodes[i].getBoundingClientRect().x < -10 || nodes[i].getBoundingClientRect().y < -10) { - console.log("Adjustments for element_tabbable_visible for when element off page"); + // console.log("Adjustments for element_tabbable_visible for when element off page"); if (triangleXShifted < 0) { // need to get y intercept // find y intercept y = mx + c or c = y - mx yIntercept = triangleYShifted - slope * triangleXShifted; @@ -675,7 +715,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } if (lines && nextTabbableElement != null) { - console.log("Triangle line ",i," to ",k); + // console.log("Triangle line ",i," to ",k); if (i < nodes.length - 1) { // Create basic black line let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; @@ -783,31 +823,29 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } } else { // This is the defalt case were we just draw a circle - console.log("********* Tabbable Node ",i,"*********"); + // console.log("********* Tabbable Node ",i,"*********"); // for line to next tabbable element find next tabbable element that exists let nextTabbableElement; - let k; for (let j = i+1; j < nodes.length; j++) { if (nodes[j] != null) { - k = j; nextTabbableElement = nodes[j]; break; } } if (lines) { - console.log("Circle line ",i," to ",k); + console.log("Circle line ",i," to ",i+1); if (i < nodes.length - 1) { if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("nodes[",i,"] has bounding rect"); + // console.log("nodes[",i,"] has bounding rect"); } else { - console.log("nodes[",i,"] has NO bounding rect"); + // console.log("nodes[",i,"] has NO bounding rect"); } if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { - console.log("nextTabbableElement has bounding rect"); + // console.log("nextTabbableElement has bounding rect"); } else { - console.log("nextTabbableElement has NO bounding rect"); + // console.log("nextTabbableElement has NO bounding rect"); } let slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) @@ -838,7 +876,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // adjustment for iframes // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe - console.log("xpath = ",nodeXpaths[i]); + // console.log("xpath = ",nodeXpaths[i]); if (nodeXpaths[i].includes("iframe")) { @@ -849,29 +887,29 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); if (lastElement.includes("iframe")) { // this is for the iframe element - console.log("We Have an iframe"); + // console.log("We Have an iframe"); const iframe = {element: nodes[i], name: iframeString, x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; iframes.push(iframe); - console.log(iframes); + // console.log(iframes); } else { // this is for elements that are within an iframe // get the iframe string iframe[n] console.log("We have and element in an iframe"); let elementIframe = iframeString.slice(0,iframeString.indexOf('/')); // find the iframe in iframes const iframesObj = iframes.find((e:any) => e.name === elementIframe); - console.log("iframesObj = ",iframesObj); + // console.log("iframesObj = ",iframesObj); // add elements coords to iframe coords - console.log("iframesObj.x = ", iframesObj.x); - console.log("iframesObj.y = ", iframesObj.y); - console.log(nodes[i].getBoundingClientRect().x); - console.log(nodes[i].getBoundingClientRect().y); + // console.log("iframesObj.x = ", iframesObj.x); + // console.log("iframesObj.y = ", iframesObj.y); + // console.log(nodes[i].getBoundingClientRect().x); + // console.log(nodes[i].getBoundingClientRect().y); x = iframesObj.x + nodes[i].getBoundingClientRect().x; y = iframesObj.y + nodes[i].getBoundingClientRect().y; } } - console.log("last iframes before circle: ",iframes); + // console.log("last iframes before circle: ",iframes); makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); @@ -1094,9 +1132,6 @@ function createSVGCircleTextTemplate() { return elemText } - - - function createSVGLineTemplate() { // This is what we are creating: // @@ -1108,21 +1143,12 @@ function createSVGLineTemplate() { return elemLine } - -// function convertXpathsToHtmlElements(nodes: any) { -// let results: any = []; -// nodes.map((elem: any) => { -// results.push(document.evaluate(elem, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue); -// }); -// return results; -// } - -function convertXpathsToHtmlElements(nodes: any) { +function convertXpathsToHtmlElements(xpaths: any) { let results: any = []; - nodes.map((elem: any) => { + xpaths.map((xpath: any) => { let element; - element = selectPath(elem) - console.log(elem); + element = selectPath(xpath) + // console.log(xpath); results.push(element); }); return results; @@ -1149,7 +1175,7 @@ async function goToTop() { } function lookup(doc: any, xpath:string) { - console.log("Function: lookup"); + // console.log("Function: lookup"); if (doc.nodeType === 11) { let selector = ":scope" + xpath.replace(/\//g, " > ").replace(/\[(\d+)\]/g, ":nth-child($1)"); let element = doc.querySelector(selector); @@ -1158,7 +1184,7 @@ function lookup(doc: any, xpath:string) { let nodes = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); let element = nodes.iterateNext(); if (element) { - console.log("element = ",element); + // console.log("element = ",element); return element; } else { return null; @@ -1168,14 +1194,14 @@ function lookup(doc: any, xpath:string) { // @ts-ignore function selectPath(srcPath: any) { - console.log("Function: selectPath"); + // console.log("Function: selectPath"); let doc = document; let element = null; while (srcPath && (srcPath.includes("iframe") || srcPath.includes("#document-fragment"))) { if (srcPath.includes("iframe")) { - console.log("srcPath = ",srcPath); + // console.log("srcPath = ",srcPath); let parts = srcPath.match(/(.*?iframe\[\d+\])(.*)/); - console.log("parts = ",parts); + // console.log("parts = ",parts); let iframe = lookup(doc, parts[1]); element = iframe || element; if (iframe && iframe.contentDocument) { From 1678e05f2f52149ae15ed9f4479db0ca2b62f015 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 3 Aug 2022 10:56:39 -0500 Subject: [PATCH 087/103] iframe work line work and hover done --- .../src/ts/contentScripts/draw.ts | 855 ++++++++++-------- 1 file changed, 495 insertions(+), 360 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index d43e4d23e..799ed317d 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -4,11 +4,11 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => injectCSS( ` .line { - stroke-width: 1px; + stroke-width: 2px; stroke: black; } .lineError { - stroke-width: 1px; + stroke-width: 2px; stroke: red; } .lineEmboss { @@ -43,9 +43,10 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => top: 0 !important; left: 0 !important; overflow: visible !important; - pointer-events: none !important; + pointer-events: auto !important; z-index: 2147483646 !important; visibility: visible !important; + cursor: pointer !important; } .noHighlightSVG{ @@ -135,8 +136,9 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // JCH - this allows the web to scroll to the top before drawing occurs goToTop().then(function() { setTimeout(() => { - draw(regularTabstops, tabStopsErrors, message.tabStopLines, message.tabStopOutlines).then(function() { - drawErrors(tabStopsErrors, regularTabstops, message.tabStopOutlines); + let iframes: any = []; + draw(regularTabstops, tabStopsErrors, message.tabStopLines, message.tabStopOutlines,iframes).then(function() { + drawErrors(tabStopsErrors, regularTabstops, message.tabStopOutlines,iframes); }); }, 1000) @@ -171,43 +173,34 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => }); // Find all iframes nodes let frames = document.getElementsByTagName("iframe"); + for (let i = 0; i < frames.length; ++i) { if (frames[i] != null) { frames[i].contentWindow?.addEventListener('keyup', function(event:any) { + let iframePath = getXPathForElement(frames[i]); // since iframes in main doc // console.log("---------------------------------------"); // console.log("iframe key catcher"); - handleTabHighlight(event,regularTabstops,frames[i].contentWindow?.document,true,"iframe["+(i+1)+"]"); + handleTabHighlight(event,regularTabstops,frames[i].contentWindow?.document,true,iframePath); }) } } - return true; }); function handleTabHighlight(event:any,regularTabstops:any,doc:any,iframe:boolean,iframeStr:string) { - // console.log("Tab key listener"); let elementXpath = ""; if (!event.shiftKey && event.key === "Tab") { // only catch Tab key // console.log("Got TAB Key"); let element = doc.activeElement; // get element just tabbed to which has focus - // console.log("Active element = ", element); - elementXpath = getXPathForElement(element); - // console.log("elementXpath = ",elementXpath); - // Let's try node match - let nodes = getNodesXpaths(regularTabstops); - let nodeXpaths = nodes; - nodes = convertXpathsToHtmlElements(nodes); - // do node match - for (let i=0; i < nodeXpaths.length; i++) { - if (iframe && nodeXpaths[i].includes(iframeStr) && nodeXpaths[i].includes(elementXpath) ) { - elementXpath = nodeXpaths[i]; - } + elementXpath = getXPathForElement(element); // get doc path + + // if we have iframe + if (iframe) { + elementXpath = iframeStr + elementXpath; } - // console.log("matching xpath = ",elementXpath); // get circle or polygon with matching xpath let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); - // console.log("circle = ", circle); let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { @@ -250,7 +243,7 @@ function handleTabHighlight(event:any,regularTabstops:any,doc:any,iframe:boolean // console.log("Got SHIFT TAB Key"); let element = doc.activeElement; // get element just tabbed to which has focus // console.log("Active element = ", element); - elementXpath = getXPathForElement(element); + elementXpath = getXPathForElement(element); // path if not in iframe // console.log("elementXpath = ",elementXpath); // Let's try node match let nodes = getNodesXpaths(regularTabstops); @@ -356,14 +349,14 @@ function injectCSS(styleString: string) { document.head.append(style); } -async function draw(tabstops: any, tabStopsErrors: any, lines:boolean, outlines:boolean) { +async function draw(tabstops: any, tabStopsErrors: any, lines:boolean, outlines:boolean,iframes:any) { // console.log("Inside draw") - await redraw(tabstops, tabStopsErrors, lines, outlines); + await redraw(tabstops, tabStopsErrors, lines, outlines, iframes); } -async function drawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { +async function drawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean, iframes: any) { // console.log("Inside drawErrors") - await redrawErrors(tabStopsErrors, tabStops, outlines); + await redrawErrors(tabStopsErrors, tabStops, outlines, iframes); return true; } @@ -373,9 +366,9 @@ function deleteDrawing(classToRemove: string) { } -function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { +function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean, iframes: any) { // JCH - FIX drawing ? trangle if there is already a tabbable triangle - console.log("Function: redrawErrors"); + // console.log("Function: redrawErrors"); setTimeout(() => { let tabbableNodesXpaths = getNodesXpaths(tabStops); @@ -387,8 +380,6 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { nodes = nodes.filter(function (el: any) { // Removing failure case of null nodes being sent return el != null; }); - let offset = 0; - // console.log("nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { @@ -412,7 +403,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { } if (nodeXpaths[i].includes("body")) { // JCH - non tabbable nodes must be within body - // console.log("Non tabbable nodes[",i,"] = ",nodes[i]); + console.log("Non tabbable nodes[",i,"] = ",nodes[i]); if (nodes[i] != null ) { // JCH - tabbable nodes if (nodes[i] != null ) { // JCH - tabbable nodes @@ -436,11 +427,58 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { if (nodes[i] != null ) { // JCH - if node exists - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; + + // coords for nodes[i] and its bounding box if not in iframe or shadow dom + let x = nodes[i].getBoundingClientRect().x; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width; - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; + let y = nodes[i].getBoundingClientRect().y; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height; + + // adjustment for iframes + // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe + // console.log("xpath = ",nodeXpaths[i]); + + if (nodeXpaths[i].includes("iframe")) { // this is for element i + // find and store iframe + let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); + + if (lastElement.includes("iframe")) { // this is for the iframe element + // console.log("We Have an iframe, lastElement", lastElement); + if (!iframes.find((e:any) => e.name === nodeXpaths[i])) { // already in iframes + const iframe = {element: nodes[i], name: nodeXpaths[i], x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; + iframes.push(iframe); + // console.log(iframes); + } + // no need to adjust coords as the iframe is an element on the main page + // console.log(iframes); + } else { // this is for elements that are within an iframe + // get the iframe string iframe[n] + // console.log("We have and element in an iframe"); + // console.log("iframeString = ",iframeString); + let realIframeString = nodeXpaths[i].slice(0,nodeXpaths[i].indexOf('/html', nodeXpaths[i].indexOf('/html')+1)); + // console.log("realIframeString = ",realIframeString); + // find the iframe in iframes + // console.log(iframes); + const iframesObj = iframes.find((e:any) => e.name === realIframeString); + // console.log("iframesObj = ",iframesObj); + x = iframesObj.x + nodes[i].getBoundingClientRect().x; + y = iframesObj.y + nodes[i].getBoundingClientRect().y; + + } + } + + // If the circle is being drawn slighly off of the screen move it into the screen + // Note: here we assume radius is 13 + if (x <= 15) { + x += 15 - x; + } + if (y <= 15) { + y += 15 - y; + } + + // see below lines as we draw triangle after lines + console.log("Triangle x,y = ",x,",",y); if (outlines) { @@ -491,37 +529,19 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean) { } - -function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean) { +// @ts-ignore +function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: boolean, iframes: any) { // console.log("Function: redraw"); + // JCH - do circles and triangles coord calculations before lines and outlines + // as centers of circles and triangles set the basic coords setTimeout(() => { let offset = 3; - // console.log("redraw tabstops = ", tabstops); let nodes = getNodesXpaths(tabstops); - // console.log(tabstopErrors) let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodeXpaths); - let slope: number = -1; - let iframes: any = []; for (let i = 0; i < nodes.length; i++) { - if (nodes[i] != null ) { // JCH - tabbable nodes - // console.log("Tabbable nodes[",i,"] element exists"); - if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - // console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); - if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - // console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); - } - else { - // console.log("Tabbable nodes[",i,"] has NO bounding rect"); - } - } else { - // console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); - } - } else { - // console.log("Tabbable nodes[",i,"] is null $$$$$"); - } if (nodes[i+1] != null) { // console.log("Tabbable nodes[",i+1,"] element exists"); if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes @@ -539,271 +559,372 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // console.log("--------------------------------"); } - // JCH - need for last line to return to first node - // console.log("nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { //Make lines between numbers - // console.log("i = ", i, " i+1 = ",i+1, " i+2 = ",i+2); if (nodes[i] != null ) { // JCH - tabbable nodes - // console.log("Tabbable nodes[",i,"] element exists"); - if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if this is true we should draw a triangle instead of a circle - // console.log("*** Tabbable Error Node ",i,"***"); - let nextTabbableElement; - let k = i; - for (let j = i+1; j < nodes.length; j++) { - if (nodes[j] != null) { - k = j; - nextTabbableElement = nodes[j]; - break; - } - } - if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - // console.log("nodes[",i,"] has bounding rect"); - } - else { - // console.log("nodes[",i,"] has NO bounding rect"); - } - - if (nextTabbableElement != null) { - if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { - // console.log("nextTabbableElement has bounding rect"); - } - else { - // console.log("nextTabbableElement has NO bounding rect"); - } - - slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - } - - - // offset to stay away from the outline? - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - - // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center - let triangleLegLength = 27 - let triangleXShifted = x - let triangleYShifted = y - - // console.log("Top left of Bounding Rectangle"); - // console.log("x = ", x, " y = ", y); - // console.log("triangleXShifted = ", triangleXShifted, " triangleYShifted = ", triangleYShifted); - - // JCH - if error is rule element_tabbable_visible then need to calculate where to put - // the triangle at the intersection point (0,?) where one of the two lines - // pointing to the element in question is going off the page. - // - // if we have the line(s) for an element get the y for the line at x = ~ 16px - // now how do we choose which of the two lines to use? Higher on page or lower on page? - - // check to see if any tab stop has ruleID element_tabbable_visible - let yIntercept: number; - let xIntercept: number; - let xOffScreenShift = false; let yOffScreenShift = false; - tabStopsErrors.map((result: any) => { - if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i]) { + if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if true should draw triangle instead of circle + // // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center + // let triangleLegLength = 27 + // let triangleXShifted = x + // let triangleYShifted = y + // let x1,y1,x2, y2; + + // // console.log("Top left of Bounding Rectangle"); + // // console.log("x = ", x, " y = ", y); + // // console.log("triangleXShifted = ", triangleXShifted, " triangleYShifted = ", triangleYShifted); + + // // JCH - if error is rule element_tabbable_visible then need to calculate where to put + // // the triangle at the intersection point (0,?) where one of the two lines + // // pointing to the element in question is going off the page. + // // + // // if we have the line(s) for an element get the y for the line at x = ~ 16px + // // now how do we choose which of the two lines to use? Higher on page or lower on page? + + // // check to see if any tab stop has ruleID element_tabbable_visible + // let yIntercept: number; + // let xIntercept: number; + // let xOffScreenShift = false; let yOffScreenShift = false; + // tabStopsErrors.map((result: any) => { + // if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i]) { - // console.log("getBoundingClientRect().x = ",nodes[i].getBoundingClientRect().x); - // console.log("getBoundingClientRect().y = ",nodes[i].getBoundingClientRect().y); + // // console.log("getBoundingClientRect().x = ",nodes[i].getBoundingClientRect().x); + // // console.log("getBoundingClientRect().y = ",nodes[i].getBoundingClientRect().y); - if (nodeXpaths[i] === result.path.dom) { - if (nodes[i].getBoundingClientRect().x < -10 || nodes[i].getBoundingClientRect().y < -10) { - // console.log("Adjustments for element_tabbable_visible for when element off page"); - if (triangleXShifted < 0) { // need to get y intercept - // find y intercept y = mx + c or c = y - mx - yIntercept = triangleYShifted - slope * triangleXShifted; - // console.log("yIntercept = ",yIntercept); - triangleXShifted = 20; - triangleYShifted = yIntercept + 15; - xOffScreenShift = true; - } else if (triangleYShifted < 0) { // need to get x intercept - // find x intercept y = mx + c or c = y - mx - yIntercept = triangleYShifted - slope * triangleXShifted; - // console.log("yIntercept = ",yIntercept); - // 0 = slope * x + yIntercept - // xIntercept = yIntercept / slope - xIntercept = -yIntercept / slope; - // console.log("xIntercept = ", xIntercept); - triangleYShifted = 25; - triangleXShifted = xIntercept + 10; - yOffScreenShift = true; - } - } - } - } - }); - - // // Now deal with x2 line end for nodes[i+1] - let y2Intercept: number; - let x2Intercept: number; - let x2OffScreenShift = false; let y2OffScreenShift = false; - let triangleX2Shifted = 0; - let triangleY2Shifted = 0; - if (nextTabbableElement != null && nodes[i+2] != null) { - triangleX2Shifted = nextTabbableElement.getBoundingClientRect().x - offset; - triangleY2Shifted = nextTabbableElement.getBoundingClientRect().y - offset; - if (k+1 < nodes.length) { - let slope2 = (nodes[k+1].getBoundingClientRect().y - offset - nextTabbableElement.getBoundingClientRect().y - offset) / (nodes[k+1].getBoundingClientRect().x - offset - nextTabbableElement.getBoundingClientRect().x - offset); + // if (nodeXpaths[i] === result.path.dom) { + // if (nodes[i].getBoundingClientRect().x < -10 || nodes[i].getBoundingClientRect().y < -10) { + // // console.log("Adjustments for element_tabbable_visible for when element off page"); + // if (triangleXShifted < 0) { // need to get y intercept + // // find y intercept y = mx + c or c = y - mx + // yIntercept = triangleYShifted - slope * triangleXShifted; + // // console.log("yIntercept = ",yIntercept); + // triangleXShifted = 20; + // triangleYShifted = yIntercept + 15; + // xOffScreenShift = true; + // } else if (triangleYShifted < 0) { // need to get x intercept + // // find x intercept y = mx + c or c = y - mx + // yIntercept = triangleYShifted - slope * triangleXShifted; + // // console.log("yIntercept = ",yIntercept); + // // 0 = slope * x + yIntercept + // // xIntercept = yIntercept / slope + // xIntercept = -yIntercept / slope; + // // console.log("xIntercept = ", xIntercept); + // triangleYShifted = 25; + // triangleXShifted = xIntercept + 10; + // yOffScreenShift = true; + // } + // } + // } + // } + // }); + + // // // Now deal with x2 line end for nodes[i+1] + // let y2Intercept: number; + // let x2Intercept: number; + // let x2OffScreenShift = false; let y2OffScreenShift = false; + // let triangleX2Shifted = 0; + // let triangleY2Shifted = 0; + // if (nextTabbableElement != null && nodes[i+2] != null) { + // triangleX2Shifted = nextTabbableElement.getBoundingClientRect().x - offset; + // triangleY2Shifted = nextTabbableElement.getBoundingClientRect().y - offset; + // // coords for nodes[i+1] or nextTabbableElement if not in iframe or shadow dom + // console.log("1st = ",triangleX2Shifted,",",triangleY2Shifted); + // console.log("nextTabbableElement = ",nextTabbableElement); + // console.log("nodes[",i+1,"] = ",nodes[i+1]); + + + // x1 = triangleXShifted; + // x2 = triangleYShifted; + // x2 = triangleX2Shifted; + // y2 = triangleY2Shifted; + + // // If the if the 2nd circle is being drawn slighly off of the screen move it into the screen + // // Note: here we assume radius is 13 + // if (triangleX2Shifted <= 15) { + // triangleX2Shifted += 15 - triangleX2Shifted; + // } + // if (triangleY2Shifted <= 15) { + // triangleY2Shifted += 15 - triangleY2Shifted; + // } + // if (k+1 < nodes.length) { + // let slope2 = (nodes[k+1].getBoundingClientRect().y - offset - nextTabbableElement.getBoundingClientRect().y - offset) / (nodes[k+1].getBoundingClientRect().x - offset - nextTabbableElement.getBoundingClientRect().x - offset); - tabStopsErrors.map((result: any) => { - if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[k]) { + // tabStopsErrors.map((result: any) => { + // if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[k]) { - // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); - // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); + // // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); + // // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); - if (nodeXpaths[i+1] === result.path.dom) { - if (nodes[i+1].getBoundingClientRect().x < -10 || nodes[i+1].getBoundingClientRect().y < -10) { - // console.log("Adjustments for element_tabbable_visible for when element off page"); - if (triangleXShifted < 0) { // need to get y intercept - // find y intercept y = mx + c or c = y - mx - y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // console.log("yIntercept = ",yIntercept); - triangleX2Shifted = 20; - triangleY2Shifted = yIntercept + 15; - x2OffScreenShift = true; - } else if (triangleYShifted < 0) { // need to get x intercept - // find x intercept y = mx + c or c = y - mx - y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // console.log("yIntercept = ",yIntercept); - // 0 = slope * x + yIntercept - // xIntercept = yIntercept / slope - x2Intercept = -y2Intercept / slope2; - // console.log("xIntercept = ", xIntercept); - triangleY2Shifted = 25; - triangleX2Shifted = x2Intercept + 10; - y2OffScreenShift = true; - } - } - } - } - }); + // if (nodeXpaths[i+1] === result.path.dom) { + // if (nodes[i+1].getBoundingClientRect().x < -10 || nodes[i+1].getBoundingClientRect().y < -10) { + // // console.log("Adjustments for element_tabbable_visible for when element off page"); + // if (triangleXShifted < 0) { // need to get y intercept + // // find y intercept y = mx + c or c = y - mx + // y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; + // // console.log("yIntercept = ",yIntercept); + // triangleX2Shifted = 20; + // triangleY2Shifted = yIntercept + 15; + // x2OffScreenShift = true; + // } else if (triangleYShifted < 0) { // need to get x intercept + // // find x intercept y = mx + c or c = y - mx + // y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; + // // console.log("yIntercept = ",yIntercept); + // // 0 = slope * x + yIntercept + // // xIntercept = yIntercept / slope + // x2Intercept = -y2Intercept / slope2; + // // console.log("xIntercept = ", xIntercept); + // triangleY2Shifted = 25; + // triangleX2Shifted = x2Intercept + 10; + // y2OffScreenShift = true; + // } + // } + // } + // } + // }); + // } + // } + + // // center of the triangle is triangleXShifted, triangleYShifted + + // // What if triangle is is bumping up against top of viewport, or left of viewport or right of viewport + // // If the triangle is being drawn slighly off of the screen move it into the screen + + // let xShifted = false; let yShifted = false; + // if (triangleXShifted >= -10 && triangleXShifted <= 6 && xOffScreenShift === false) { + // // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); + // triangleXShifted = 14; + // xShifted = true; + // } + // if (triangleYShifted >= -10 && triangleYShifted <= 6 && yOffScreenShift === false) { + // // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); + // triangleYShifted = 14; + // yShifted = true; + // } + + // let x2Shifted = false; let y2Shifted = false; + // if (nextTabbableElement != null && nodes[k+1] != null) { + + // if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { + // // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); + // triangleX2Shifted = 14; + // x2Shifted = true; + // } + // if (triangleY2Shifted >= -10 && triangleY2Shifted <= 6 && y2OffScreenShift === false) { + // // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); + // triangleY2Shifted = 14; + // y2Shifted = true; + // } + // } + + // if (lines && nextTabbableElement != null) { + // console.log("Triangle line ",i," to ",k); + // if (i < nodes.length - 1) { + // // Create basic black line + // // let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; + // // let x2 = nodes[i+1].getBoundingClientRect().x; let y2 = nodes[i+1].getBoundingClientRect().y; + + // console.log("x1 = ", x1, " y1 = ", y1); + // console.log("x2 = ", x2, " y2 = ", y2); + // if (xShifted === true) { + // x1 = x1 + 14; + // // console.log("Line shift x1 = ", x1); + // xShifted = false; + // } if (yShifted === true) { + // //@ts-ignore + // y1 = y1 + 14; + // // console.log("Line shift y1 = ", y1); + // yShifted = false; + // //@ts-ignore + // } if (xOffScreenShift === true) { + // x1 = x1 + triangleXShifted; + // y1 = y1 + triangleYShifted; + // // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); + // xOffScreenShift = false; + // //@ts-ignore + // } if (yOffScreenShift === true) { + // x1 = x1 + triangleXShifted; + // y1 = y1 + triangleYShifted; + // // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); + // yOffScreenShift = false; + // } + + // if (nextTabbableElement != null && nodes[k+1] != null) { + // if (x2Shifted === true) { + // //@ts-ignore + // x2 = x2 + 14; + // // console.log("Line shift x2 = ", x2); + // x2Shifted = false; + // } if (y2Shifted === true) { + // //@ts-ignore + // y2 = y2 + 14; + // // console.log("Line shift y2 = ", y2); + // yShifted = false; + // //@ts-ignore + // } if (xOffScreenShift === true) { + // //@ts-ignore + // x2 = x2 + triangleX2Shifted; + // //@ts-ignore + // y2 = y2 + triangleY2Shifted; + // // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); + // xOffScreenShift = false; + // //@ts-ignore + // } if (y2OffScreenShift === true) { + // x2 = x2 + triangleXShifted; + // y2 = y2 + triangleYShifted; + // // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); + // y2OffScreenShift = false; + // } + // } + // console.log("x1 - offset = ", x1 - offset, " y1 - offset = ",y1 - offset); + // console.log("x2 - offset = ", x2 - offset, " y2 - offset = ",y2 - offset); + // console.log("------------------"); + + + // makeLine(x1 - offset, y1 - offset, x2 - offset, y2 - offset, ["line"]); + + // // Create white outline + // if (Math.abs(slope) < 1) { // Low slope move y + // makeLine(x1 - offset, y1 - offset - 1, x2 - offset, y2 - offset - 1, ["lineEmboss"]); + // makeLine(x1 - offset, y1 - offset + 1, x2 - offset, y2 - offset + 1, ["lineEmboss"]); + + // } else { // high slope move x + // makeLine(x1 - offset - 1, y1 - offset, x2 - offset - 1, y2 - offset, ["lineEmboss"]); + // makeLine(x1 - offset + 1, y1 - offset, x2 - offset + 1, y2 - offset, ["lineEmboss"]); + // } + // } + // } + + // coords for nodes[i] and its bounding box if not in iframe or shadow dom + let x = nodes[i].getBoundingClientRect().x; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width; + + let y = nodes[i].getBoundingClientRect().y; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height; + + let triangleLegLength = 27; + + // adjustment for iframes + // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe + if (nodeXpaths[i].includes("iframe")) { // this is for element i + // find and store iframe + let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); + if (lastElement.includes("iframe")) { // this is for the iframe element + if (!iframes.find((e:any) => e.name === nodeXpaths[i])) { // already in iframes + const iframe = {element: nodes[i], name: nodeXpaths[i], x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; + iframes.push(iframe); + } + // no need to adjust coords as the iframe is an element on the main page + } else { // this is for elements that are within an iframe + let realIframeString = nodeXpaths[i].slice(0,nodeXpaths[i].indexOf('/html', nodeXpaths[i].indexOf('/html')+1)); + const iframesObj = iframes.find((e:any) => e.name === realIframeString); + // adjust coords since in iframe + x = iframesObj.x + nodes[i].getBoundingClientRect().x; + y = iframesObj.y + nodes[i].getBoundingClientRect().y; } } - - // center of the triangle is triangleXShifted, triangleYShifted - - // What if triangle is is bumping up against top of viewport, or left of viewport or right of viewport - // If the triangle is being drawn slighly off of the screen move it into the screen - let xShifted = false; let yShifted = false; - if (triangleXShifted >= -10 && triangleXShifted <= 6 && xOffScreenShift === false) { - // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleXShifted = 14; - xShifted = true; + // If the circle is being drawn slighly off of the screen move it into the screen + // Note: here we assume radius is 13 + if (x <= 15) { + x += 15 - x; } - if (triangleYShifted >= -10 && triangleYShifted <= 6 && yOffScreenShift === false) { - // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleYShifted = 14; - yShifted = true; + if (y <= 15) { + y += 15 - y; } + + // see below lines as we draw triangle after lines - let x2Shifted = false; let y2Shifted = false; - if (nextTabbableElement != null && nodes[k+1] != null) { - - if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { - // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleX2Shifted = 14; - x2Shifted = true; - } - if (triangleY2Shifted >= -10 && triangleY2Shifted <= 6 && y2OffScreenShift === false) { - // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); - triangleY2Shifted = 14; - y2Shifted = true; + // for line to next tabbable element find next tabbable element that exists + let nextTabbableElement; + for (let j = i+1; j < nodes.length; j++) { + if (nodes[j] != null) { + nextTabbableElement = nodes[j]; + break; } } - if (lines && nextTabbableElement != null) { - // console.log("Triangle line ",i," to ",k); + if (lines) { if (i < nodes.length - 1) { - // Create basic black line - let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; - let x2 = nextTabbableElement.getBoundingClientRect().x; let y2 = nextTabbableElement.getBoundingClientRect().y; - // console.log("x1 = ", x1, " y1 = ", y1); - // console.log("x2 = ", x2, " y2 = ", y2); - if (xShifted === true) { - x1 = x1 + 14; - // console.log("Line shift x1 = ", x1); - xShifted = false; - } if (yShifted === true) { - y1 = y1 + 14; - // console.log("Line shift y1 = ", y1); - yShifted = false; - //@ts-ignore - } if (xOffScreenShift === true) { - x1 = x1 + triangleXShifted; - y1 = y1 + triangleYShifted; - // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); - xOffScreenShift = false; - //@ts-ignore - } if (yOffScreenShift === true) { - x1 = x1 + triangleXShifted; - y1 = y1 + triangleYShifted; - // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); - yOffScreenShift = false; + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + // console.log("nodes[",i,"] has bounding rect"); + } + else { + // console.log("nodes[",i,"] has NO bounding rect"); + } + if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { + // console.log("nextTabbableElement has bounding rect"); + } + else { + // console.log("nextTabbableElement has NO bounding rect"); } - if (nextTabbableElement != null && nodes[k+1] != null) { - if (x2Shifted === true) { - x2 = x2 + 14; - // console.log("Line shift x2 = ", x2); - x2Shifted = false; - } if (y2Shifted === true) { - y2 = y2 + 14; - // console.log("Line shift y2 = ", y2); - yShifted = false; - //@ts-ignore - } if (xOffScreenShift === true) { - x2 = x2 + triangleX2Shifted; - y2 = y2 + triangleY2Shifted; - // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - xOffScreenShift = false; - //@ts-ignore - } if (y2OffScreenShift === true) { - x2 = x2 + triangleXShifted; - y2 = y2 + triangleYShifted; - // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - y2OffScreenShift = false; + let slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset); + let x1, y1, x2, y2; + x1 = x; + y1 = y; + + // coords for nodes[i+1] or nextTabbableElement if not in iframe or shadow dom + x2 = nodes[i+1].getBoundingClientRect().x; + y2 = nodes[i+1].getBoundingClientRect().y; + + // let check if the next tabbable element is an iframe + if (nodeXpaths[i+1].includes("iframe")) { + let lastElement = nodeXpaths[i+1].slice(nodeXpaths[i+1].lastIndexOf('/')); + + if (lastElement.includes("iframe")) { // this is for the iframe element + if (!iframes.find((e:any) => e.name === nodeXpaths[i+1])) { // already in iframes + const iframe = {element: nodes[i+1], name: nodeXpaths[i+1], x: nodes[i+1].getBoundingClientRect().x, y: nodes[i+1].getBoundingClientRect().y}; + iframes.push(iframe); + // adjust coords + x2 = nodes[i+1].getBoundingClientRect().x; + y2 = nodes[i+1].getBoundingClientRect().y; + } + // no need to adjust coords as the iframe is an element on the main page + } else { // this is for elements that are within an iframe + // get the iframe string iframe[n] + let realIframeString = nodeXpaths[i+1].slice(0,nodeXpaths[i+1].indexOf('/html', nodeXpaths[i+1].indexOf('/html')+1)); + const iframesObj = iframes.find((e:any) => e.name === realIframeString); + // adjust coords + x2 = iframesObj.x + nodes[i+1].getBoundingClientRect().x; + y2 = iframesObj.y + nodes[i+1].getBoundingClientRect().y; } - } - // console.log("x1 - offset = ", x1 - offset, " y1 - offset = ",y1 - offset); - // console.log("x2 - offset = ", x2 - offset, " y2 - offset = ",y2 - offset); - // console.log("------------------"); + } + // If the if the 2nd circle is being drawn slighly off of the screen move it into the screen + // Note: here we assume radius is 13 + if (x2 <= 15) { + x2 += 15 - x2; + } + if (y2 <= 15) { + y2 += 15 - y2; + } - makeLine(x1 - offset, y1 - offset, x2 - offset, y2 - offset, ["line"]); + // console.log("x1 = ",x1," x2 = ",x2," y1 = ",y1," y2 = ",y2); + makeLine(x1, y1, x2, y2, ["line"]); // Create white outline if (Math.abs(slope) < 1) { // Low slope move y - makeLine(x1 - offset, y1 - offset - 1, x2 - offset, y2 - offset - 1, ["lineEmboss"]); - makeLine(x1 - offset, y1 - offset + 1, x2 - offset, y2 - offset + 1, ["lineEmboss"]); + makeLine(x1, y1 - 2, x2, y2 - 2, ["lineEmboss"]); + makeLine(x1, y1 + 2, x2, y2 + 2, ["lineEmboss"]); } else { // high slope move x - makeLine(x1 - offset - 1, y1 - offset, x2 - offset - 1, y2 - offset, ["lineEmboss"]); - makeLine(x1 - offset + 1, y1 - offset, x2 - offset + 1, y2 - offset, ["lineEmboss"]); + makeLine(x1 - 2, y1, x2 - 2, y2, ["lineEmboss"]); + makeLine(x1 + 2, y1, x2 + 2, y2, ["lineEmboss"]); } } } - // console.log("triangleXShifted = ",triangleXShifted, " triangleYShifted",triangleYShifted); if (i < nodes.length) { - // console.log("Tabbable i = ",i," so makeTriangle"); makeTriangle( - triangleXShifted, triangleYShifted - (Math.sqrt(3)/3)*triangleLegLength , - triangleXShifted-triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - triangleXShifted+triangleLegLength/2, triangleYShifted+(Math.sqrt(3)/6)*triangleLegLength, - i.toString(), nodeXpaths[i]) + x, y - (Math.sqrt(3)/3)*triangleLegLength , + x-triangleLegLength/2, y+(Math.sqrt(3)/6)*triangleLegLength, + x+triangleLegLength/2, y+(Math.sqrt(3)/6)*triangleLegLength, + i.toString(), nodeXpaths[i]); - // makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); - makeTextSmall(triangleXShifted, triangleYShifted, (i + 1).toString(), "textColorBlack"); + makeTextSmall(x, y, (i + 1).toString(), "textColorBlack"); } if (outlines) { - // console.log("Outline: x = ", x, " y = ",y, " width = ", xPlusWidth, " height = ", yPlusHeight); - // Make box around active component makeLine(x, y, xPlusWidth, y, ["line", "lineTop", "lineNumber" + i]); makeLine(x, y, x, yPlusHeight, ["line", "lineLeft", "lineNumber" + i]); @@ -823,7 +944,49 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo makeLine(x + 1, yPlusHeight - 1, xPlusWidth - 1, yPlusHeight - 1, ["lineEmboss"]); } } else { // This is the defalt case were we just draw a circle - // console.log("********* Tabbable Node ",i,"*********"); + // coords for nodes[i] and its bounding box if not in iframe or shadow dom + let x = nodes[i].getBoundingClientRect().x; + let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width; + + let y = nodes[i].getBoundingClientRect().y; + let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height; + + // adjustment for iframes + // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe + if (nodeXpaths[i].includes("iframe")) { // this is for element i + // find and store iframe + let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); + + if (lastElement.includes("iframe")) { // this is for the iframe element + // console.log("We Have an iframe, lastElement", lastElement); + if (!iframes.find((e:any) => e.name === nodeXpaths[i])) { // already in iframes + const iframe = {element: nodes[i], name: nodeXpaths[i], x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; + iframes.push(iframe); + } + // no need to adjust coords as the iframe is an element on the main page + } else { // this is for elements that are within an iframe + // get the iframe string iframe[n] + let realIframeString = nodeXpaths[i].slice(0,nodeXpaths[i].indexOf('/html', nodeXpaths[i].indexOf('/html')+1)); + // find the iframe in iframes + const iframesObj = iframes.find((e:any) => e.name === realIframeString); + // console.log("iframesObj = ",iframesObj); + x = iframesObj.x + nodes[i].getBoundingClientRect().x; + y = iframesObj.y + nodes[i].getBoundingClientRect().y; + + } + } + + // If the circle is being drawn slighly off of the screen move it into the screen + // Note: here we assume radius is 13 + if (x <= 15) { + x += 15 - x; + } + if (y <= 15) { + y += 15 - y; + } + + // see below lines as we draw circle after lines + // for line to next tabbable element find next tabbable element that exists let nextTabbableElement; for (let j = i+1; j < nodes.length; j++) { @@ -832,85 +995,67 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo break; } } + if (lines) { - console.log("Circle line ",i," to ",i+1); if (i < nodes.length - 1) { - if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - // console.log("nodes[",i,"] has bounding rect"); - } - else { - // console.log("nodes[",i,"] has NO bounding rect"); - } - if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { - // console.log("nextTabbableElement has bounding rect"); + let slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset); + let x1, y1, x2, y2; + x1 = x; + y1 = y; + + // coords for nodes[i+1] or nextTabbableElement if not in iframe or shadow dom + x2 = nodes[i+1].getBoundingClientRect().x; + y2 = nodes[i+1].getBoundingClientRect().y; + + // let check if the next tabbable element is an iframe + if (nodeXpaths[i+1].includes("iframe")) { + // find and store iframe + let lastElement = nodeXpaths[i+1].slice(nodeXpaths[i+1].lastIndexOf('/')); + if (lastElement.includes("iframe")) { // this is for the iframe element + // console.log("We Have an iframe, lastElement", lastElement); + if (!iframes.find((e:any) => e.name === nodeXpaths[i+1])) { // already in iframes + const iframe = {element: nodes[i+1], name: nodeXpaths[i+1], x: nodes[i+1].getBoundingClientRect().x, y: nodes[i+1].getBoundingClientRect().y}; + iframes.push(iframe); + x2 = nodes[i+1].getBoundingClientRect().x; + y2 = nodes[i+1].getBoundingClientRect().y; + } + } else { // this is for elements that are within an iframe + // get the iframe string iframe[n] + let realIframeString = nodeXpaths[i+1].slice(0,nodeXpaths[i+1].indexOf('/html', nodeXpaths[i+1].indexOf('/html')+1)); + // find the iframe in iframes + const iframesObj = iframes.find((e:any) => e.name === realIframeString); + // adjust coords + x2 = iframesObj.x + nodes[i+1].getBoundingClientRect().x; + y2 = iframesObj.y + nodes[i+1].getBoundingClientRect().y; + } + } + + // If the if the 2nd circle is being drawn slighly off of the screen move it into the screen + // Note: here we assume radius is 13 + if (x2 <= 15) { + x2 += 15 - x2; } - else { - // console.log("nextTabbableElement has NO bounding rect"); + if (y2 <= 15) { + y2 += 15 - y2; } - let slope = (nextTabbableElement.getBoundingClientRect().y - offset - nodes[i].getBoundingClientRect().y - offset) / (nextTabbableElement.getBoundingClientRect().x - offset - nodes[i].getBoundingClientRect().x - offset) - let x1 = nodes[i].getBoundingClientRect().x; - let y1 = nodes[i].getBoundingClientRect().y; - let x2 = nextTabbableElement.getBoundingClientRect().x; - let y2 = nextTabbableElement.getBoundingClientRect().y; - - makeLine(x1 - offset, y1 - offset, x2 - offset, y2 - offset, ["line"]); + // console.log("x1 = ",x1," x2 = ",x2," y1 = ",y1," y2 = ",y2); + makeLine(x1, y1, x2, y2, ["line"]); // Create white outline if (Math.abs(slope) < 1) { // Low slope move y - makeLine(x1 - offset, y1 - offset - 1, x2 - offset, y2 - offset - 1, ["lineEmboss"]); - makeLine(x1 - offset, y1 - offset + 1, x2 - offset, y2 - offset + 1, ["lineEmboss"]); + makeLine(x1, y1 - 2, x2, y2 - 2, ["lineEmboss"]); + makeLine(x1, y1 + 2, x2, y2 + 2, ["lineEmboss"]); } else { // high slope move x - makeLine(x1 - offset - 1, y1 - offset, x2 - offset - 1, y2 - offset, ["lineEmboss"]); - makeLine(x1 - offset + 1, y1 - offset, x2 - offset + 1, y2 - offset, ["lineEmboss"]); + makeLine(x1 - 2, y1, x2 - 2, y2, ["lineEmboss"]); + makeLine(x1 + 2, y1, x2 + 2, y2, ["lineEmboss"]); } } } - let x = nodes[i].getBoundingClientRect().x - offset; - let xPlusWidth = nodes[i].getBoundingClientRect().x + nodes[i].getBoundingClientRect().width + offset; - - let y = nodes[i].getBoundingClientRect().y - offset; - let yPlusHeight = nodes[i].getBoundingClientRect().y + nodes[i].getBoundingClientRect().height + offset; - - // adjustment for iframes - // if element inside iframe get iframe coordinates the add coordinates of element to those of iframe - // console.log("xpath = ",nodeXpaths[i]); - - if (nodeXpaths[i].includes("iframe")) { - - // find and store iframe - let iframeStartIndex = nodeXpaths[i].indexOf("iframe"); - let iframeString = nodeXpaths[i].slice(iframeStartIndex); - - let lastElement = nodeXpaths[i].slice(nodeXpaths[i].lastIndexOf('/')); - - if (lastElement.includes("iframe")) { // this is for the iframe element - // console.log("We Have an iframe"); - const iframe = {element: nodes[i], name: iframeString, x: nodes[i].getBoundingClientRect().x, y: nodes[i].getBoundingClientRect().y}; - iframes.push(iframe); - // console.log(iframes); - } else { // this is for elements that are within an iframe - // get the iframe string iframe[n] - console.log("We have and element in an iframe"); - let elementIframe = iframeString.slice(0,iframeString.indexOf('/')); - // find the iframe in iframes - const iframesObj = iframes.find((e:any) => e.name === elementIframe); - // console.log("iframesObj = ",iframesObj); - // add elements coords to iframe coords - // console.log("iframesObj.x = ", iframesObj.x); - // console.log("iframesObj.y = ", iframesObj.y); - // console.log(nodes[i].getBoundingClientRect().x); - // console.log(nodes[i].getBoundingClientRect().y); - x = iframesObj.x + nodes[i].getBoundingClientRect().x; - y = iframesObj.y + nodes[i].getBoundingClientRect().y; - - } - } + // draw circles after lines - // console.log("last iframes before circle: ",iframes); - makeCircleSmall(x, y, i.toString(), 13, nodeXpaths[i]); makeTextSmall(x, y, (i + 1).toString(),"textColorWhite"); @@ -945,15 +1090,6 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo } function makeCircleSmall(x1: number, y1: number, circleNumber: string, radius: number, xpath: string) { - - // TODO: Find possible better way to deal with this (Talk to design) - // If the circle is being drawn slighly off of the screen move it into the screen - if (x1 >= -10 && x1 <= 6) { - x1 = 12; - } - if (y1 >= -10 && y1 <= 6) { - y1 = 12; - } var circleClone = createSVGCircleTemplate(); circleClone.removeAttribute("id"); circleClone.classList.add("deleteMe"); @@ -1147,8 +1283,7 @@ function convertXpathsToHtmlElements(xpaths: any) { let results: any = []; xpaths.map((xpath: any) => { let element; - element = selectPath(xpath) - // console.log(xpath); + element = selectPath(xpath); results.push(element); }); return results; From 14d1bbe16e9a972669269f0040afaca503529cf9 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 4 Aug 2022 16:36:35 -0500 Subject: [PATCH 088/103] make outlines default off --- .../src/ts/devtools/DevToolsPanelApp.tsx | 6 +++--- accessibility-checker-extension/src/ts/devtools/Header.tsx | 2 ++ .../src/ts/options/OptionsApp.tsx | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index bc37960a1..7b264e09e 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -157,7 +157,7 @@ tabStopLines: false, tabStopOutlines: false, tabStopAlerts: false, - tabStopFirstTime: false, + tabStopFirstTime: true, } ignoreNext = false; @@ -1085,10 +1085,10 @@ } tabStopsSetFirstTime() { - // console.log("tabStopsSetFirstTime"); + console.log("tabStopsSetFirstTime"); if (this.state.tabStopFirstTime) { - // console.log("setState tabStopFirstTime to false"); + console.log("setState tabStopFirstTime to false"); this.setState({ tabStopFirstTime: false }); } diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index 1579a60a1..ab95460a7 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -408,6 +408,7 @@ export default class Header extends React.Component } }}> + {console.log("openKeyboardMode = ",this.state.openKeyboardMode,"tabStopFirstTime = ",this.props.tabStopFirstTime)} {this.state.openKeyboardMode && this.props.tabStopFirstTime ?
lowContrast onClose={(() => { this.setState({ openKeyboardMode: false }); + console.log("tabStopFirstTime = ",this.props.tabStopFirstTime); this.props.tabStopsSetFirstTime(); }).bind(this)} onKeyDown={((evt: any) => { diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index 9fbe244ca..e6f32ad57 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -61,7 +61,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { modalGuidelines: false, // Keyboard Checker Mode options tabStopLines: true, - tabStopOutlines: true, + tabStopOutlines: false, tabStopAlerts: true, tabStopFirstTime: true, }; @@ -81,7 +81,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { var currentRuleset: any = null; // Keyboard Mode options var tabStopLines: any = true; - var tabStopOutlines: any = true; + var tabStopOutlines: any = false; var tabStopAlerts: any = true; var tabStopFirstTime: any = true; From 71ba7ebdad54a2c4a3a84dbf8a5123fad4dab829 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Fri, 5 Aug 2022 11:48:33 -0500 Subject: [PATCH 089/103] New Colors, Mouse click highlight --- .../src/assets/KCM_button_disabled.svg | 32 +++ .../src/assets/KCM_button_off.svg | 32 +++ .../src/assets/KCM_button_on.svg | 37 +++ .../src/ts/contentScripts/draw.ts | 212 ++++++++++++------ .../src/ts/devtools/Header.tsx | 3 + 5 files changed, 243 insertions(+), 73 deletions(-) create mode 100644 accessibility-checker-extension/src/assets/KCM_button_disabled.svg create mode 100644 accessibility-checker-extension/src/assets/KCM_button_off.svg create mode 100644 accessibility-checker-extension/src/assets/KCM_button_on.svg diff --git a/accessibility-checker-extension/src/assets/KCM_button_disabled.svg b/accessibility-checker-extension/src/assets/KCM_button_disabled.svg new file mode 100644 index 000000000..35bd2a15e --- /dev/null +++ b/accessibility-checker-extension/src/assets/KCM_button_disabled.svg @@ -0,0 +1,32 @@ + + + Group 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/KCM_button_off.svg b/accessibility-checker-extension/src/assets/KCM_button_off.svg new file mode 100644 index 000000000..35bd2a15e --- /dev/null +++ b/accessibility-checker-extension/src/assets/KCM_button_off.svg @@ -0,0 +1,32 @@ + + + Group 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/KCM_button_on.svg b/accessibility-checker-extension/src/assets/KCM_button_on.svg new file mode 100644 index 000000000..196c49e4c --- /dev/null +++ b/accessibility-checker-extension/src/assets/KCM_button_on.svg @@ -0,0 +1,37 @@ + + + Group 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 799ed317d..fe87ceabc 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -50,31 +50,31 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } .noHighlightSVG{ - fill: purple; + fill: #E6D6FF; stroke-width: 1px; - stroke: lightblue; + stroke: black; } .highlightSVG{ - fill: #0f62fe; + fill: #B76CFF; stroke-width: 3px; stroke: black; } .noHighlightSVGtriangle{ - fill: darkorange; + fill: #FFB077; stroke-width: 1px; stroke: grey; } .highlightSVGtriangle{ - fill: yellow; + fill: #FC7B1E; stroke-width: 3px; stroke: black; } .textColorWhite{ - fill: white + fill: black } .textColorBlack{ @@ -163,14 +163,25 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // For softlaunch use notification or just help window.addEventListener("resize", debounce( resizeContent, 250 )); + // left mouse click listener for the circles and triangles + window.addEventListener('click', function(event:any) { + // console.log("---------------------------------------"); + console.log("main doc left mouse click catcher"); + console.log("event.target = ",event.target); + handleTabHighlight(event,document,false,""); + + }); + // Tab key listener for main window window.addEventListener('keyup', function(event:any) { // console.log("---------------------------------------"); // console.log("main doc key catcher"); - handleTabHighlight(event,regularTabstops,document,false,""); + handleTabHighlight(event, document, false, ""); }); + + // Find all iframes nodes let frames = document.getElementsByTagName("iframe"); @@ -180,84 +191,143 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => let iframePath = getXPathForElement(frames[i]); // since iframes in main doc // console.log("---------------------------------------"); // console.log("iframe key catcher"); - handleTabHighlight(event,regularTabstops,frames[i].contentWindow?.document,true,iframePath); + handleTabHighlight(event,frames[i].contentWindow?.document,true,iframePath); }) } } return true; }); -function handleTabHighlight(event:any,regularTabstops:any,doc:any,iframe:boolean,iframeStr:string) { +function handleTabHighlight(event:any,doc:any,iframe:boolean,iframeStr:string) { let elementXpath = ""; - if (!event.shiftKey && event.key === "Tab") { // only catch Tab key - // console.log("Got TAB Key"); - let element = doc.activeElement; // get element just tabbed to which has focus - elementXpath = getXPathForElement(element); // get doc path - - // if we have iframe - if (iframe) { - elementXpath = iframeStr + elementXpath; - } + + if (!event.shiftKey && event.key === "Tab") { // only catch Tab key + // console.log("Got TAB Key"); + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // get doc path + + // if we have iframe + if (iframe) { + elementXpath = iframeStr + elementXpath; + } - // get circle or polygon with matching xpath - let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); - let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); - let prevHighlightedElement; - if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { - // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); - } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { - // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + // get circle or polygon with matching xpath + let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); + let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let prevHighlightedElement; + if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { + // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { + // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + } + // for prevHighlightedElement remove highlightSVG and add noHighlightSVG + + if (prevHighlightedElement) { + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + if (prevHighlightedElement.tagName === "circle") { + prevHighlightedElement.classList.remove("highlightSVG"); + prevHighlightedElement.classList.add("noHighlightSVG"); + } + else if (prevHighlightedElement.tagName === "polygon") { + prevHighlightedElement.classList.remove("highlightSVGtriangle"); + prevHighlightedElement.classList.add("noHighlightSVGtriangle"); } - // for prevHighlightedElement remove highlightSVG and add noHighlightSVG - - if (prevHighlightedElement) { - // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); - if (prevHighlightedElement.tagName === "circle") { - prevHighlightedElement.classList.remove("highlightSVG"); - prevHighlightedElement.classList.add("noHighlightSVG"); - } - else if (prevHighlightedElement.tagName === "polygon") { - prevHighlightedElement.classList.remove("highlightSVGtriangle"); - prevHighlightedElement.classList.add("noHighlightSVGtriangle"); - } - // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); - } else { - // console.log("No prevHighlightedElement to highlight") + // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + } else { + // console.log("No prevHighlightedElement to highlight") + } + // Highlight circle + if (circle) { + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + // console.log("circle highlighted = ",circle); + } else { + // console.log("No circle to highlight = ",circle); + } + if (polygon) { + polygon?.classList.remove("noHighlightSVGtriangle"); + polygon?.classList.add("highlightSVGtriangle"); + // console.log("polygon highlighted = ",polygon); + } else { + // console.log("No circle to highlight = ",circle); + } + } else if (event.shiftKey && event.key === "Tab") { // catch SHIFT TAB + // console.log("Got SHIFT TAB Key"); + let element = doc.activeElement; // get element just tabbed to which has focus + // console.log("Active element = ", element); + elementXpath = getXPathForElement(element); // path if not in iframe + // console.log("elementXpath = ",elementXpath); + + // if we have iframe + if (iframe) { + elementXpath = iframeStr + elementXpath; + } + + // get circle or polygon with matching xpath + let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); + let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); + let prevHighlightedElement; + if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { + // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { + // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + } + // for prevHighlightedElement remove highlightSVG and add noHighlightSVG + + if (prevHighlightedElement) { + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + if (prevHighlightedElement.tagName === "circle") { + prevHighlightedElement.classList.remove("highlightSVG"); + prevHighlightedElement.classList.add("noHighlightSVG"); + } + else if (prevHighlightedElement.tagName === "polygon") { + prevHighlightedElement.classList.remove("highlightSVGtriangle"); + prevHighlightedElement.classList.add("noHighlightSVGtriangle"); } - // Highlight circle - if (circle) { - circle?.classList.remove("noHighlightSVG"); - circle?.classList.add("highlightSVG"); - // console.log("circle highlighted = ",circle); - } else { - // console.log("No circle to highlight = ",circle); + // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + } else { + // console.log("No prevHighlightedElement to highlight") + } + // Highlight circle + if (circle) { + circle?.classList.remove("noHighlightSVG"); + circle?.classList.add("highlightSVG"); + // console.log("circle highlighted = ",circle); + } else { + // console.log("No circle to highlight = ",circle); + } + if (polygon) { + polygon?.classList.remove("noHighlightSVGtriangle"); + polygon?.classList.add("highlightSVGtriangle"); + // console.log("polygon highlighted = ",polygon); + } else { + // console.log("No circle to highlight = ",circle); + } + } else if (event.target) { + if (event.target.tagName === "circle" || event.target.tagName === "polygon") { + let circle; + if (event.target.tagName === "circle") { + circle = event.target; } - if (polygon) { - polygon?.classList.remove("noHighlightSVGtriangle"); - polygon?.classList.add("highlightSVGtriangle"); - // console.log("polygon highlighted = ",polygon); - } else { - // console.log("No circle to highlight = ",circle); + let polygon; + if (event.target.tagName === "polygon") { + polygon = event.target; } - } else if (event.shiftKey && event.key === "Tab") { // catch SHIFT TAB - // console.log("Got SHIFT TAB Key"); - let element = doc.activeElement; // get element just tabbed to which has focus + + let element = selectPath(event.target.getAttribute("xpath")); // circle's element that we want to have focus + // console.log("Active element = ", element); elementXpath = getXPathForElement(element); // path if not in iframe // console.log("elementXpath = ",elementXpath); - // Let's try node match - let nodes = getNodesXpaths(regularTabstops); - let nodeXpaths = nodes; - nodes = convertXpathsToHtmlElements(nodes); - // do node match - for (let i=0; i < nodeXpaths.length; i++) { - if (iframe && nodeXpaths[i].includes(iframeStr) && nodeXpaths[i].includes(elementXpath) ) { - elementXpath = nodeXpaths[i]; - } + + // if we have iframe + if (iframe) { + elementXpath = iframeStr + elementXpath; } + // get circle or polygon with matching xpath - let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); - let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); + // let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); + // let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); @@ -295,12 +365,8 @@ function handleTabHighlight(event:any,regularTabstops:any,doc:any,iframe:boolean } else { // console.log("No circle to highlight = ",circle); } - // Inspect active element - // console.log("circle.xpath = ", circle?.getAttribute("xpath")); - // console.log("circle?.getAttribute('circleNumber')", circle?.getAttribute("circleNumber")); - // TabMessaging.sendToBackground("TABSTOP_XPATH_ONCLICK", { xpath: circle?.getAttribute("xpath"), circleNumber: circle?.getAttribute("circleNumber")! + 1 }); - // Returm from elements tab to browse page tab } + } } // Debounce diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index ab95460a7..b2001b978 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -30,6 +30,9 @@ const BeeLogo = "/assets/BE_for_Accessibility_darker.svg"; import Violation16 from "../../assets/Violation16.svg"; import NeedsReview16 from "../../assets/NeedsReview16.svg"; import Recommendation16 from "../../assets/Recommendation16.svg"; +// import KCM_On from "../../assets/KCM_button_on.svg"; +// import KCM_Off from "../../assets/KCM_button_on.svg"; +// import KCM_disabled from "../../assets/KCM_button_disabled.svg"; interface IHeaderState { deleteModal: boolean, From 9fb752a2fb41f7e91a8f597d2d00764ad663de04 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Wed, 10 Aug 2022 14:13:00 -0500 Subject: [PATCH 090/103] Error checking --- .../src/assets/KCM_button_disabled.svg | 32 ---------------- .../src/assets/KCM_button_off.svg | 32 ---------------- .../src/assets/KCM_button_on.svg | 37 ------------------- .../src/assets/keyboard disabled.svg | 25 +++++++++++++ .../src/assets/keyboard.svg | 20 ++++++++++ .../src/assets/keyboard_white.svg | 25 +++++++++++++ .../src/ts/contentScripts/draw.ts | 31 ++++++++++++---- 7 files changed, 93 insertions(+), 109 deletions(-) delete mode 100644 accessibility-checker-extension/src/assets/KCM_button_disabled.svg delete mode 100644 accessibility-checker-extension/src/assets/KCM_button_off.svg delete mode 100644 accessibility-checker-extension/src/assets/KCM_button_on.svg create mode 100644 accessibility-checker-extension/src/assets/keyboard disabled.svg create mode 100644 accessibility-checker-extension/src/assets/keyboard.svg create mode 100644 accessibility-checker-extension/src/assets/keyboard_white.svg diff --git a/accessibility-checker-extension/src/assets/KCM_button_disabled.svg b/accessibility-checker-extension/src/assets/KCM_button_disabled.svg deleted file mode 100644 index 35bd2a15e..000000000 --- a/accessibility-checker-extension/src/assets/KCM_button_disabled.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - Group 9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/KCM_button_off.svg b/accessibility-checker-extension/src/assets/KCM_button_off.svg deleted file mode 100644 index 35bd2a15e..000000000 --- a/accessibility-checker-extension/src/assets/KCM_button_off.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - Group 9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/KCM_button_on.svg b/accessibility-checker-extension/src/assets/KCM_button_on.svg deleted file mode 100644 index 196c49e4c..000000000 --- a/accessibility-checker-extension/src/assets/KCM_button_on.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - Group 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/keyboard disabled.svg b/accessibility-checker-extension/src/assets/keyboard disabled.svg new file mode 100644 index 000000000..b9380bb78 --- /dev/null +++ b/accessibility-checker-extension/src/assets/keyboard disabled.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/accessibility-checker-extension/src/assets/keyboard.svg b/accessibility-checker-extension/src/assets/keyboard.svg new file mode 100644 index 000000000..a554910ec --- /dev/null +++ b/accessibility-checker-extension/src/assets/keyboard.svg @@ -0,0 +1,20 @@ + + + + + keyboard + + + + + + + + + + + + + + + diff --git a/accessibility-checker-extension/src/assets/keyboard_white.svg b/accessibility-checker-extension/src/assets/keyboard_white.svg new file mode 100644 index 000000000..28a7bd231 --- /dev/null +++ b/accessibility-checker-extension/src/assets/keyboard_white.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index fe87ceabc..4774c12d7 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -56,7 +56,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => } .highlightSVG{ - fill: #B76CFF; + fill: #BB8EFF; stroke-width: 3px; stroke: black; } @@ -608,21 +608,36 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo nodes = convertXpathsToHtmlElements(nodeXpaths); for (let i = 0; i < nodes.length; i++) { - if (nodes[i+1] != null) { - // console.log("Tabbable nodes[",i+1,"] element exists"); + if (nodes[i] != null) { + console.log("Tabbable nodes[",i,"] element exists"); + if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes + console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { + console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); + } + else { + console.log("Tabbable nodes[",i,"] has NO bounding rect"); + } + } else { + console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); + } + } + console.log("--------------------------------"); + if (nodes[i+1] != null && i+1 < nodes.length) { + console.log("Tabbable nodes[",i+1,"] element exists"); if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes - // console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); + console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); if (typeof nodes[i+1].getBoundingClientRect !== 'undefined' || nodes[i+1].getBoundingClientRect != null) { - // console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); + console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); } else { - // console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); + console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); } } else { - // console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); + console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); } } - // console.log("--------------------------------"); + console.log("--------------------------------"); } for (let i = 0; i < nodes.length; i++) { //Make lines between numbers From be8a39e4f39c6a8214dcca1f6392ac789360481c Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 11 Aug 2022 15:16:21 -0500 Subject: [PATCH 091/103] Updates for cnn --- .../src/ts/contentScripts/draw.ts | 246 +----------------- 1 file changed, 10 insertions(+), 236 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 4774c12d7..346c7df8e 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -64,7 +64,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => .noHighlightSVGtriangle{ fill: #FFB077; stroke-width: 1px; - stroke: grey; + stroke: black; } .highlightSVGtriangle{ @@ -607,6 +607,7 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodeXpaths); + console.log("Tabbable elements: nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null) { console.log("Tabbable nodes[",i,"] element exists"); @@ -643,235 +644,6 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo for (let i = 0; i < nodes.length; i++) { //Make lines between numbers if (nodes[i] != null ) { // JCH - tabbable nodes if (tabstops[i].hasOwnProperty("nodeHasError") && tabstops[i].nodeHasError) { // if true should draw triangle instead of circle - // // Logic used from: https://math.stackexchange.com/questions/1344690/is-it-possible-to-find-the-vertices-of-an-equilateral-triangle-given-its-center - // let triangleLegLength = 27 - // let triangleXShifted = x - // let triangleYShifted = y - // let x1,y1,x2, y2; - - // // console.log("Top left of Bounding Rectangle"); - // // console.log("x = ", x, " y = ", y); - // // console.log("triangleXShifted = ", triangleXShifted, " triangleYShifted = ", triangleYShifted); - - // // JCH - if error is rule element_tabbable_visible then need to calculate where to put - // // the triangle at the intersection point (0,?) where one of the two lines - // // pointing to the element in question is going off the page. - // // - // // if we have the line(s) for an element get the y for the line at x = ~ 16px - // // now how do we choose which of the two lines to use? Higher on page or lower on page? - - // // check to see if any tab stop has ruleID element_tabbable_visible - // let yIntercept: number; - // let xIntercept: number; - // let xOffScreenShift = false; let yOffScreenShift = false; - // tabStopsErrors.map((result: any) => { - // if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[i]) { - - // // console.log("getBoundingClientRect().x = ",nodes[i].getBoundingClientRect().x); - // // console.log("getBoundingClientRect().y = ",nodes[i].getBoundingClientRect().y); - - // if (nodeXpaths[i] === result.path.dom) { - // if (nodes[i].getBoundingClientRect().x < -10 || nodes[i].getBoundingClientRect().y < -10) { - // // console.log("Adjustments for element_tabbable_visible for when element off page"); - // if (triangleXShifted < 0) { // need to get y intercept - // // find y intercept y = mx + c or c = y - mx - // yIntercept = triangleYShifted - slope * triangleXShifted; - // // console.log("yIntercept = ",yIntercept); - // triangleXShifted = 20; - // triangleYShifted = yIntercept + 15; - // xOffScreenShift = true; - // } else if (triangleYShifted < 0) { // need to get x intercept - // // find x intercept y = mx + c or c = y - mx - // yIntercept = triangleYShifted - slope * triangleXShifted; - // // console.log("yIntercept = ",yIntercept); - // // 0 = slope * x + yIntercept - // // xIntercept = yIntercept / slope - // xIntercept = -yIntercept / slope; - // // console.log("xIntercept = ", xIntercept); - // triangleYShifted = 25; - // triangleXShifted = xIntercept + 10; - // yOffScreenShift = true; - // } - // } - // } - // } - // }); - - // // // Now deal with x2 line end for nodes[i+1] - // let y2Intercept: number; - // let x2Intercept: number; - // let x2OffScreenShift = false; let y2OffScreenShift = false; - // let triangleX2Shifted = 0; - // let triangleY2Shifted = 0; - // if (nextTabbableElement != null && nodes[i+2] != null) { - // triangleX2Shifted = nextTabbableElement.getBoundingClientRect().x - offset; - // triangleY2Shifted = nextTabbableElement.getBoundingClientRect().y - offset; - // // coords for nodes[i+1] or nextTabbableElement if not in iframe or shadow dom - // console.log("1st = ",triangleX2Shifted,",",triangleY2Shifted); - // console.log("nextTabbableElement = ",nextTabbableElement); - // console.log("nodes[",i+1,"] = ",nodes[i+1]); - - - // x1 = triangleXShifted; - // x2 = triangleYShifted; - // x2 = triangleX2Shifted; - // y2 = triangleY2Shifted; - - // // If the if the 2nd circle is being drawn slighly off of the screen move it into the screen - // // Note: here we assume radius is 13 - // if (triangleX2Shifted <= 15) { - // triangleX2Shifted += 15 - triangleX2Shifted; - // } - // if (triangleY2Shifted <= 15) { - // triangleY2Shifted += 15 - triangleY2Shifted; - // } - // if (k+1 < nodes.length) { - // let slope2 = (nodes[k+1].getBoundingClientRect().y - offset - nextTabbableElement.getBoundingClientRect().y - offset) / (nodes[k+1].getBoundingClientRect().x - offset - nextTabbableElement.getBoundingClientRect().x - offset); - - // tabStopsErrors.map((result: any) => { - // if (result.ruleId === "element_tabbable_visible" && result.path.dom === nodeXpaths[k]) { - - // // console.log("getBoundingClientRect().x = ",nodes[i+1].getBoundingClientRect().x); - // // console.log("getBoundingClientRect().y = ",nodes[i+1].getBoundingClientRect().y); - - // if (nodeXpaths[i+1] === result.path.dom) { - // if (nodes[i+1].getBoundingClientRect().x < -10 || nodes[i+1].getBoundingClientRect().y < -10) { - // // console.log("Adjustments for element_tabbable_visible for when element off page"); - // if (triangleXShifted < 0) { // need to get y intercept - // // find y intercept y = mx + c or c = y - mx - // y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // // console.log("yIntercept = ",yIntercept); - // triangleX2Shifted = 20; - // triangleY2Shifted = yIntercept + 15; - // x2OffScreenShift = true; - // } else if (triangleYShifted < 0) { // need to get x intercept - // // find x intercept y = mx + c or c = y - mx - // y2Intercept = triangleY2Shifted - slope2 * triangleX2Shifted; - // // console.log("yIntercept = ",yIntercept); - // // 0 = slope * x + yIntercept - // // xIntercept = yIntercept / slope - // x2Intercept = -y2Intercept / slope2; - // // console.log("xIntercept = ", xIntercept); - // triangleY2Shifted = 25; - // triangleX2Shifted = x2Intercept + 10; - // y2OffScreenShift = true; - // } - // } - // } - // } - // }); - // } - // } - - // // center of the triangle is triangleXShifted, triangleYShifted - - // // What if triangle is is bumping up against top of viewport, or left of viewport or right of viewport - // // If the triangle is being drawn slighly off of the screen move it into the screen - - // let xShifted = false; let yShifted = false; - // if (triangleXShifted >= -10 && triangleXShifted <= 6 && xOffScreenShift === false) { - // // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); - // triangleXShifted = 14; - // xShifted = true; - // } - // if (triangleYShifted >= -10 && triangleYShifted <= 6 && yOffScreenShift === false) { - // // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); - // triangleYShifted = 14; - // yShifted = true; - // } - - // let x2Shifted = false; let y2Shifted = false; - // if (nextTabbableElement != null && nodes[k+1] != null) { - - // if (triangleX2Shifted >= -10 && triangleX2Shifted <= 6 && x2OffScreenShift === false) { - // // console.log("X Adjustment if tab element circle or triangle very close to top or left but within viewport"); - // triangleX2Shifted = 14; - // x2Shifted = true; - // } - // if (triangleY2Shifted >= -10 && triangleY2Shifted <= 6 && y2OffScreenShift === false) { - // // console.log("Y Adjustment if tab element circle or triangle very close to top or left but within viewport"); - // triangleY2Shifted = 14; - // y2Shifted = true; - // } - // } - - // if (lines && nextTabbableElement != null) { - // console.log("Triangle line ",i," to ",k); - // if (i < nodes.length - 1) { - // // Create basic black line - // // let x1 = nodes[i].getBoundingClientRect().x; let y1 = nodes[i].getBoundingClientRect().y; - // // let x2 = nodes[i+1].getBoundingClientRect().x; let y2 = nodes[i+1].getBoundingClientRect().y; - - // console.log("x1 = ", x1, " y1 = ", y1); - // console.log("x2 = ", x2, " y2 = ", y2); - // if (xShifted === true) { - // x1 = x1 + 14; - // // console.log("Line shift x1 = ", x1); - // xShifted = false; - // } if (yShifted === true) { - // //@ts-ignore - // y1 = y1 + 14; - // // console.log("Line shift y1 = ", y1); - // yShifted = false; - // //@ts-ignore - // } if (xOffScreenShift === true) { - // x1 = x1 + triangleXShifted; - // y1 = y1 + triangleYShifted; - // // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); - // xOffScreenShift = false; - // //@ts-ignore - // } if (yOffScreenShift === true) { - // x1 = x1 + triangleXShifted; - // y1 = y1 + triangleYShifted; - // // console.log("off screen line shift x1 = ", x1, " y1 = ",y1); - // yOffScreenShift = false; - // } - - // if (nextTabbableElement != null && nodes[k+1] != null) { - // if (x2Shifted === true) { - // //@ts-ignore - // x2 = x2 + 14; - // // console.log("Line shift x2 = ", x2); - // x2Shifted = false; - // } if (y2Shifted === true) { - // //@ts-ignore - // y2 = y2 + 14; - // // console.log("Line shift y2 = ", y2); - // yShifted = false; - // //@ts-ignore - // } if (xOffScreenShift === true) { - // //@ts-ignore - // x2 = x2 + triangleX2Shifted; - // //@ts-ignore - // y2 = y2 + triangleY2Shifted; - // // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - // xOffScreenShift = false; - // //@ts-ignore - // } if (y2OffScreenShift === true) { - // x2 = x2 + triangleXShifted; - // y2 = y2 + triangleYShifted; - // // console.log("off screen line shift x2 = ", x2, " y2 = ",y2); - // y2OffScreenShift = false; - // } - // } - // console.log("x1 - offset = ", x1 - offset, " y1 - offset = ",y1 - offset); - // console.log("x2 - offset = ", x2 - offset, " y2 - offset = ",y2 - offset); - // console.log("------------------"); - - - // makeLine(x1 - offset, y1 - offset, x2 - offset, y2 - offset, ["line"]); - - // // Create white outline - // if (Math.abs(slope) < 1) { // Low slope move y - // makeLine(x1 - offset, y1 - offset - 1, x2 - offset, y2 - offset - 1, ["lineEmboss"]); - // makeLine(x1 - offset, y1 - offset + 1, x2 - offset, y2 - offset + 1, ["lineEmboss"]); - - // } else { // high slope move x - // makeLine(x1 - offset - 1, y1 - offset, x2 - offset - 1, y2 - offset, ["lineEmboss"]); - // makeLine(x1 - offset + 1, y1 - offset, x2 - offset + 1, y2 - offset, ["lineEmboss"]); - // } - // } - // } // coords for nodes[i] and its bounding box if not in iframe or shadow dom let x = nodes[i].getBoundingClientRect().x; @@ -928,12 +700,14 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo // console.log("nodes[",i,"] has bounding rect"); } else { + continue; // console.log("nodes[",i,"] has NO bounding rect"); } if (typeof nextTabbableElement.getBoundingClientRect !== 'undefined' || nextTabbableElement.getBoundingClientRect != null) { // console.log("nextTabbableElement has bounding rect"); } else { + continue; // console.log("nextTabbableElement has NO bounding rect"); } @@ -943,8 +717,8 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo y1 = y; // coords for nodes[i+1] or nextTabbableElement if not in iframe or shadow dom - x2 = nodes[i+1].getBoundingClientRect().x; - y2 = nodes[i+1].getBoundingClientRect().y; + x2 = nextTabbableElement.getBoundingClientRect().x; + y2 = nextTabbableElement.getBoundingClientRect().y; // let check if the next tabbable element is an iframe if (nodeXpaths[i+1].includes("iframe")) { @@ -1301,7 +1075,7 @@ function makeLine(x1: number, y1: number, x2: number, y2: number, CSSclass?: str function createSVGTriangleTemplate() { // This is what we are creating: // - // THIS PART-> + // THIS PART-> // // // var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); @@ -1311,7 +1085,7 @@ function createSVGTriangleTemplate() { elemCircle.setAttribute("class", "tabCircle"); elemCircle.classList.add("dynamic"); elemCircle.classList.add("noHighlightSVGtriangle"); - elemCircle.setAttribute("stroke", "grey"); + elemCircle.setAttribute("stroke", "black"); elemCircle.setAttribute("stroke-width", "1"); elemCircle.setAttribute("stroke-linejoin", "round"); return elemCircle @@ -1321,7 +1095,7 @@ function createSVGTriangleTemplate() { function createSVGCircleTemplate() { // This is what we are creating: // - // THIS PART-> + // THIS PART-> // // var elemCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); @@ -1337,7 +1111,7 @@ function createSVGCircleTemplate() { function createSVGCircleTextTemplate() { // This is what we are creating: // - // + // // THIS PART-> // var elemText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); From 1c6c31780a176e7d77007c9c358f68032c16a4f4 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 14 Aug 2022 21:07:34 -0500 Subject: [PATCH 092/103] Shadow Doms now work for Checker and KCM but still need KSM highlight --- .../src/ts/contentScripts/draw.ts | 23 +++++++++---------- .../src/ts/devtools/DevToolsPanelApp.tsx | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 346c7df8e..2ad0ff783 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -1135,9 +1135,12 @@ function createSVGLineTemplate() { } function convertXpathsToHtmlElements(xpaths: any) { + console.log("Function: convertXpathsToHtmlElements: ") let results: any = []; - xpaths.map((xpath: any) => { + xpaths.map((xpath: any, index:any) => { + console.log("xpath ",index); let element; + console.log("xpath = ",xpath); element = selectPath(xpath); results.push(element); }); @@ -1165,16 +1168,14 @@ async function goToTop() { } function lookup(doc: any, xpath:string) { - // console.log("Function: lookup"); - if (doc.nodeType === 11) { - let selector = ":scope" + xpath.replace(/\//g, " > ").replace(/\[(\d+)\]/g, ":nth-child($1)"); + if (doc.nodeType === 11) { // document fragment + let selector = ":host" + xpath.replace(/\//g, " > ").replace(/\[(\d+)\]/g, ":nth-of-type($1)"); // fixed from original let element = doc.querySelector(selector); return element; - } else { + } else { // regular doc type = 9 let nodes = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); let element = nodes.iterateNext(); if (element) { - // console.log("element = ",element); return element; } else { return null; @@ -1184,14 +1185,11 @@ function lookup(doc: any, xpath:string) { // @ts-ignore function selectPath(srcPath: any) { - // console.log("Function: selectPath"); let doc = document; let element = null; while (srcPath && (srcPath.includes("iframe") || srcPath.includes("#document-fragment"))) { if (srcPath.includes("iframe")) { - // console.log("srcPath = ",srcPath); let parts = srcPath.match(/(.*?iframe\[\d+\])(.*)/); - // console.log("parts = ",parts); let iframe = lookup(doc, parts[1]); element = iframe || element; if (iframe && iframe.contentDocument) { @@ -1201,8 +1199,8 @@ function selectPath(srcPath: any) { srcPath = null; } } else if (srcPath.includes("#document-fragment")) { - let parts = srcPath.match(/(.*?)\/#document-fragment\\[\\d+\\](.*)/); - let fragment = lookup(doc, parts[1]); + let parts = srcPath.match(/(.*?)\/#document-fragment\[\d+\](.*)/); + let fragment = lookup(doc, parts[1]); // get fragment which is in main document element = fragment || element; if (fragment && fragment.shadowRoot) { doc = fragment.shadowRoot; @@ -1210,11 +1208,12 @@ function selectPath(srcPath: any) { } else { srcPath = null; } + } else { + srcPath = null; } } if (srcPath) { element = lookup(doc, srcPath) || element; } return element; - } \ No newline at end of file diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 7b264e09e..60a854578 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -932,7 +932,7 @@ var script = `function lookup(doc, xpath) { if (doc.nodeType === 11) { - let selector = ":scope" + xpath.replace(/\\//g, " > ").replace(/\\[(\\d+)\\]/g, ":nth-child($1)"); + let selector = ":host" + xpath.replace(/\\//g, " > ").replace(/\\[(\\d+)\\]/g, ":nth-of-type($1)"); let element = doc.querySelector(selector); return element; } else { From 5fdb65982af8f6b62b7af78efc3b0ba7c17981e2 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 16 Aug 2022 21:53:38 -0500 Subject: [PATCH 093/103] iframes and shadow doms level 1 - not nested --- .../src/ts/contentScripts/draw.ts | 133 ++++++++++++++---- 1 file changed, 103 insertions(+), 30 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 2ad0ff783..43f425967 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -168,62 +168,114 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // console.log("---------------------------------------"); console.log("main doc left mouse click catcher"); console.log("event.target = ",event.target); - handleTabHighlight(event,document,false,""); + handleTabHighlight(event,document,"click",""); }); // Tab key listener for main window window.addEventListener('keyup', function(event:any) { - // console.log("---------------------------------------"); // console.log("main doc key catcher"); - handleTabHighlight(event, document, false, ""); - + if ((event.target.shadowRoot instanceof ShadowRoot) === false) { + // console.log("CALL FUNCTION handleTabHighlight for main doc"); + handleTabHighlight(event, document, "main", ""); + } }); // Find all iframes nodes let frames = document.getElementsByTagName("iframe"); - for (let i = 0; i < frames.length; ++i) { + for (let i = 0; i < frames.length; i++) { if (frames[i] != null) { frames[i].contentWindow?.addEventListener('keyup', function(event:any) { - let iframePath = getXPathForElement(frames[i]); // since iframes in main doc - // console.log("---------------------------------------"); // console.log("iframe key catcher"); - handleTabHighlight(event,frames[i].contentWindow?.document,true,iframePath); + let iframePath = getXPathForElement(frames[i]); // since iframes in main doc + handleTabHighlight(event,frames[i].contentWindow?.document,"iframe",iframePath); }) } } + + // Find all shadow dom host nodes + let shadowDoms:any = []; + let allNodes = document.querySelectorAll("*"); + for (let i = 0; i < allNodes.length; i++) { + if (allNodes[i].shadowRoot) { + shadowDoms.push(allNodes[i]); + } + } + // console.log(shadowDoms.length); + + for (let i = 0; i < shadowDoms.length; i++) { + if (shadowDoms[i] != null) { + // console.log("Got shadow dom: ",shadowDoms[i]); + shadowDoms[i].shadowRoot?.addEventListener('keyup', function(event:any) { + // console.log("shadow dom key catcher"); + let focusElement = shadowDoms[i].shadowRoot?.activeElement; + let focusElementPath = getXPathForElement(focusElement); + // JCH TODO 1 for the doc frag ONLY works for 1 level doc frags + focusElementPath = "/#document-fragment"+"["+"1"+"]"+ focusElementPath; + handleTabHighlight(event,shadowDoms[i],"shadowdom",focusElementPath); + }) + } + } + return true; }); -function handleTabHighlight(event:any,doc:any,iframe:boolean,iframeStr:string) { +function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { // doc type is main, iframe, shadowdom, click + // console.log("Function: handleTabHighlight"); let elementXpath = ""; if (!event.shiftKey && event.key === "Tab") { // only catch Tab key // console.log("Got TAB Key"); - let element = doc.activeElement; // get element just tabbed to which has focus - elementXpath = getXPathForElement(element); // get doc path + // console.log("TAB doc = ", doc); + if (docType === "main") { + // console.log("Got main doc element"); + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // in main doc so just get xpath + } // if we have iframe - if (iframe) { + if (docType === "iframe") { + // console.log("Got iframe element"); + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // in main doc so just get xpath elementXpath = iframeStr + elementXpath; } + // if we have shadow dom no need to do anything special + if (docType === "shadowdom") { + console.log("we have an element in a shadow dom"); + let sdXpath = getXPathForElement(doc); + console.log("sdXpath = ",sdXpath); + let element = doc.shadowRoot.activeElement; + console.log("element = ", element); + console.log("focusElementPath = ", iframeStr); + elementXpath = getXPathForElement(element); + // need #document-fragment[n] + elementXpath = sdXpath+iframeStr; + console.log("elementXpath = ",elementXpath); + } + + console.log("elementXpath right before matching = ",elementXpath); // get circle or polygon with matching xpath let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); + + // console.log("circle = ",circle); + // console.log("polygon = ",polygon); + let prevHighlightedElement; - if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { + // find previouse highlighted element which is either a circle or triangle so will be within document + if (prevHighlightedElement = document.getElementsByClassName("highlightSVG")[0]) { // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); - } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { + } else if (prevHighlightedElement = document.getElementsByClassName("highlightSVGtriangle")[0]) { // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG - if (prevHighlightedElement) { - // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); if (prevHighlightedElement.tagName === "circle") { prevHighlightedElement.classList.remove("highlightSVG"); prevHighlightedElement.classList.add("noHighlightSVG"); @@ -249,27 +301,49 @@ function handleTabHighlight(event:any,doc:any,iframe:boolean,iframeStr:string) { polygon?.classList.add("highlightSVGtriangle"); // console.log("polygon highlighted = ",polygon); } else { - // console.log("No circle to highlight = ",circle); + // console.log("No polygon to highlight = ",circle); } } else if (event.shiftKey && event.key === "Tab") { // catch SHIFT TAB - // console.log("Got SHIFT TAB Key"); - let element = doc.activeElement; // get element just tabbed to which has focus - // console.log("Active element = ", element); - elementXpath = getXPathForElement(element); // path if not in iframe - // console.log("elementXpath = ",elementXpath); - + console.log("Got SHIFT TAB Key"); + console.log("TAB doc = ", doc); + if (docType === "main") { + console.log("Got main doc element"); + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // in main doc so just get xpath + } + // if we have iframe - if (iframe) { + if (docType === "iframe") { + console.log("Got iframe element"); + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // in main doc so just get xpath elementXpath = iframeStr + elementXpath; } + // if we have shadow dom no need to do anything special + if (docType === "shadowdom") { + console.log("Got shadow dom element"); + let sdXpath = getXPathForElement(doc); + let element = doc.shadowRoot.activeElement; + elementXpath = getXPathForElement(element); + // need #document-fragment[n] + elementXpath = sdXpath+iframeStr; + } + + console.log("elementXpath right before matching = ",elementXpath); // get circle or polygon with matching xpath let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); + + // console.log("circle = ",circle); + // console.log("polygon = ",polygon); + let prevHighlightedElement; - if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { + // find previouse highlighted element which is either a circle or triangle so will be within document + + if (prevHighlightedElement = document.getElementsByClassName("highlightSVG")[0]) { // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); - } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { + } else if (prevHighlightedElement = document.getElementsByClassName("highlightSVGtriangle")[0]) { // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG @@ -301,9 +375,9 @@ function handleTabHighlight(event:any,doc:any,iframe:boolean,iframeStr:string) { polygon?.classList.add("highlightSVGtriangle"); // console.log("polygon highlighted = ",polygon); } else { - // console.log("No circle to highlight = ",circle); + // console.log("No polygon to highlight = ",circle); } - } else if (event.target) { + } else if (event.detail !== 0) { if (event.target.tagName === "circle" || event.target.tagName === "polygon") { let circle; if (event.target.tagName === "circle") { @@ -316,12 +390,11 @@ function handleTabHighlight(event:any,doc:any,iframe:boolean,iframeStr:string) { let element = selectPath(event.target.getAttribute("xpath")); // circle's element that we want to have focus - // console.log("Active element = ", element); elementXpath = getXPathForElement(element); // path if not in iframe // console.log("elementXpath = ",elementXpath); // if we have iframe - if (iframe) { + if (docType === "iframe") { elementXpath = iframeStr + elementXpath; } From 34d64f5ad1870269aca7a93eeab7815cedcdac8f Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 18 Aug 2022 09:41:15 -0500 Subject: [PATCH 094/103] Add content scripts to firefox manifest --- accessibility-checker-extension/manifest_Firefox.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/accessibility-checker-extension/manifest_Firefox.json b/accessibility-checker-extension/manifest_Firefox.json index b7daa8696..ab0806151 100644 --- a/accessibility-checker-extension/manifest_Firefox.json +++ b/accessibility-checker-extension/manifest_Firefox.json @@ -35,6 +35,12 @@ ], "persistent": true }, + "content_scripts": [ + { + "matches": [""], + "js": ["draw.js"] + } + ], "options_ui": { "page": "options.html", "open_in_tab": true From 716a1b7801639ec7dc27fac006d33a313e2c121d Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 18 Aug 2022 14:57:16 -0500 Subject: [PATCH 095/103] debugging FF --- .../src/ts/contentScripts/draw.ts | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 43f425967..e1d3426a4 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -189,7 +189,7 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => for (let i = 0; i < frames.length; i++) { if (frames[i] != null) { frames[i].contentWindow?.addEventListener('keyup', function(event:any) { - // console.log("iframe key catcher"); + console.log("iframe key catcher"); let iframePath = getXPathForElement(frames[i]); // since iframes in main doc handleTabHighlight(event,frames[i].contentWindow?.document,"iframe",iframePath); }) @@ -391,26 +391,31 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { let element = selectPath(event.target.getAttribute("xpath")); // circle's element that we want to have focus elementXpath = getXPathForElement(element); // path if not in iframe - // console.log("elementXpath = ",elementXpath); + // if we have iframe if (docType === "iframe") { + let element = doc.activeElement; // get element just tabbed to which has focus + elementXpath = getXPathForElement(element); // in main doc so just get xpath elementXpath = iframeStr + elementXpath; + console.log("iframeStr = ",iframeStr) } + + console.log("elementXpath = ",elementXpath); // get circle or polygon with matching xpath // let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); // let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { - // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { - // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG if (prevHighlightedElement) { - // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); if (prevHighlightedElement.tagName === "circle") { prevHighlightedElement.classList.remove("highlightSVG"); prevHighlightedElement.classList.add("noHighlightSVG"); @@ -419,24 +424,24 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { prevHighlightedElement.classList.remove("highlightSVGtriangle"); prevHighlightedElement.classList.add("noHighlightSVGtriangle"); } - // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); } else { - // console.log("No prevHighlightedElement to highlight") + console.log("No prevHighlightedElement to highlight") } // Highlight circle if (circle) { circle?.classList.remove("noHighlightSVG"); circle?.classList.add("highlightSVG"); - // console.log("circle highlighted = ",circle); + console.log("circle highlighted = ",circle); } else { - // console.log("No circle to highlight = ",circle); + console.log("No circle to highlight = ",circle); } if (polygon) { polygon?.classList.remove("noHighlightSVGtriangle"); polygon?.classList.add("highlightSVGtriangle"); - // console.log("polygon highlighted = ",polygon); + console.log("polygon highlighted = ",polygon); } else { - // console.log("No circle to highlight = ",circle); + console.log("No circle to highlight = ",circle); } } } From 0afc7bb80faade3e6b4b520b85c3e2823974a936 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 18 Aug 2022 16:23:44 -0500 Subject: [PATCH 096/103] new images --- .../src/assets/img/1_Checker.png | Bin 0 -> 78344 bytes .../src/assets/img/2_Scan.png | Bin 0 -> 90477 bytes .../src/assets/img/3_MultiScan.png | Bin 0 -> 90595 bytes .../src/assets/img/4_Focus.png | Bin 0 -> 85183 bytes .../src/assets/img/5_Keyboard.png | Bin 0 -> 77758 bytes .../img/6_3_AccessibilityAssessment7.png | Bin 0 -> 415621 bytes .../src/assets/img/Quick_Intro.png | Bin 0 -> 78819 bytes .../src/assets/img/Quick_Look.png | Bin 0 -> 93949 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 accessibility-checker-extension/src/assets/img/1_Checker.png create mode 100644 accessibility-checker-extension/src/assets/img/2_Scan.png create mode 100644 accessibility-checker-extension/src/assets/img/3_MultiScan.png create mode 100644 accessibility-checker-extension/src/assets/img/4_Focus.png create mode 100644 accessibility-checker-extension/src/assets/img/5_Keyboard.png create mode 100644 accessibility-checker-extension/src/assets/img/6_3_AccessibilityAssessment7.png create mode 100644 accessibility-checker-extension/src/assets/img/Quick_Intro.png create mode 100644 accessibility-checker-extension/src/assets/img/Quick_Look.png diff --git a/accessibility-checker-extension/src/assets/img/1_Checker.png b/accessibility-checker-extension/src/assets/img/1_Checker.png new file mode 100644 index 0000000000000000000000000000000000000000..86c7341cc419b4beba58f0f102b6a5949ff1b5af GIT binary patch literal 78344 zcmd43Wn7d`_XjMYfJ%v|NQ<Nt$xw5-gH;MVea#53eeXDeUY7_HE+CoRcQc39+8|F9uEvyimTe!cAU_MVVA58Uc zShsL6-&nt|eZ&6eE{?!AoPT~}9sMpSshBc#>(;AV3eu7q9$4FRcuf}CuIuMlZ{p)z zh%{K4NqPwsKH;+X{}?jqtB#Ut%=5bMFe5ffM&(#5!J8|Q?!bL=Um*An+5Ol4xY*B0 za{QeKbaPV8H46$g7W=Q$N5H8K4O|mm$2(p%CwUHO=z(dg-5Niy43`PN5EpcB!*|e} zM4$D|4nXWi5nF+d;CaCF&$wS+J&^zXCo=SvpIq?(jM`z>&W~23uKISrvaVvZ5OEeV8NU{b9e3<;!_b-2PH+o&5RxXtT$ChQ2j~a zbEpp#wF@DJazUou$T?6~^vae^G__amoe@6!?p{c*;Qu4l-%XO>FFx>_3HAsp@v+lG zUs1!CE?uF#T^?dVuWUd*ponA#KRNIHXPqr)BDH@i_8bfM_2+6>txUwOG@%md!pwT7 zr&H53^ivc*y}Z58>#?csQzcwZ5-i;ItCh+=zGF)EtaE}{);9F(fC_#}DA{`TsI^t{!k^tIkBuLc6b8&oqJO_} z7cDh5R;GmS#7k$p9YvZ#!gz8{W0u2V*%_tc1=}Tsao8?-iKWv2zsDFO)DQ{2q}ki- zsqT$PRN=*Ut__S7PD|#nU8KF#)Yugc{R4uE*L9(S$YWq=%2aT9MZAai)+E!Jh}2(Z z@?X6u1+mPYzYdK%ktbALmeMXR&VWKf&nlwKp-K((_S+jL^bW75el{IdvJawn++jXv z6Z$}1%b$)c|MMgTlS_i8z4m)5zSoBtH;KsyR!C;tC=Q;7ADN&y>cd+VOaQuSIlDVS zN`8KRRK}F-H!A;QzKXX3CTryGS9ks(5;HUAeKR@$b(xasJZqAi%`Uge>f8Ni82%Yt zMQ$ua=ZmT#Cg^u<`%jiLtoBR(fligADVAfou$554R}}x0{72;}I^5S0Q&5?xpHjd0 zf~!9%QCWkQS8Cds@-q2{4q$&;EmP{NjV~npJbMq&lRV!z>=Ag+oKu_JQrdI-Szyfn z*Yz+Ba97|Wz|Z;Kc!_-W5;SGVBw>~|i&OhwPiPGy^YHPJPQ)av5FMp;?QA*tn0`8g3Ey9W0+k5DCLyV_i0Hnmdd8F+A|cYiX! z(yZI1n_e2QL4RHXKvT6 zvgC(ALkc_=Ki_{;<^qFhm*{C~l^M-ZB@4M&PQQ;;YLKxz2}3Rih#AZ-+J`G<=TJeL zpOnM)yD9quiN$r+2GaDE#m`qNk0s_AH;Dw?*%%%%8pfL6G2svmZSEr(YsuNvyM`umMWtAot3Kz`U2i% zO$WUPQ|8h9z>6_;73!&*r3kKsJ}y{O(+R?E6?22bYo~raoBtlrwC4+B|CP-^s*ptl z2h<~w15@=){n=6kr5CaA#v<#<$Dzm|Nk*Fh|p$(ZVw8BqS~vm-cx%h-sse&x%-K_6Ec8P^+GfPEth zx?0{rWVa+oT=D@Rmg+We>d=VN0;r_`p}MKU<%UpuUEMlIQ_saukDq>bJsOrv^f{fY ztuUukLq;6=UW{f42z;6=>FC!!??W2yg0;2ta(J)bU-oyer+bw;k_dfb*D8JzPmww- zvQw8;@YrTi#P9l&>U{I{{#H>LXT&28TOFG$#OZ*@u4wV$JYxZCGjc5j#CbaFqT-T9 zIt=ofnMp<}ihL+(NQVe-<(E!^t=f28Z-z`I@u{6UNtNRA(!qtId#yMYhy8-IB=bbG zu9JqVCo>?>fm^iAy_B4{iH}}C+hLY+{rCaFlMH*zWi&f`8j8C>K$UiPo7vz5GYA1I z_}sv?acyHDqPI0b;bO_?a!87p{It)|ZQ9~X@elidmX^!#SA+PJkUic((NR$rAuzqX z=ue@?H0d8zu^@Nha3S27l2(Fn7aT@!^PWbVY z`QY@yuY`pFJQ~1fxmZ=W-+|TW;h@Aqr;GB`L)EM1aV>qqDUqaG;b*ZmUD0G#B2Ov9 z8qqtAWlk^B`XrZAQ8klBIG4;tip>dJ@GP|cLxm-&$`Y# zU!YuhlmKAFZ9|WlUT%km1`OIGj}bl>i7p?~GShhHHEo#!yi->@YROJH79+r*cB&D+k#ybGK-q4MUHC!nIS58V=O&~%h)yR zeqHE#<4K5L9^rttgMhnHR!mumGWle-2gtKeKe-^(DJ@0T?m3)KY*kedMVjv>j3`0l zc^P;;A$}AW0qlKlIH_9;jyN2zg3`ALk7%v(ej%Z%c3*90!w$Aj5ICtb8>g6JORJlh zE>x-tLH!%Be0Z=yVM-S4lq!0k!6Wp%F(uZ*PoxwuF%T3uB>re~dYv9czbOea#J3s= zoD4kLY20-H+gzc(_l8jb_vmQCa7?5-mh_2IngEQCc&c{8*-NcE$EU3_<|1z?L}!_& zk*x2E?Ru(AVnyKQ=L#ej|7)%1HH(gsIklxC@iy^c|L_#Z{1p!uB z99)afeQaDxBSl$KUQUC2)C6gwMGxdF%Jt7XC|1gKLcM35;3dl|PlwBYh%UWRF$$pp zTMMlvnNK*GMIm&{$en8NoH!hyJDI4Tq!l_L-0F9fX`v%&+A_&a+wcWApZowtUP3eY zdOSs7v?LAc>AYsP70=I~suziW+aeA$(*l@8Ffx2jwYLfFsMn@}I0B}&`IcBX;kpe= z&XHa5#+~tQ*>-mm>v|#a!|M0OW}L#tib@-7{o@a71Sbt5p|WBwvxfRxbUKTHK#3iHqUr z(os$ZKcJ!R%J-`$HsM|gfTS6@vj(>@1*_IiB@*cA!KdGQw6c_iHMt$|Cch(p9?5-d z7fbL#=rtvMr#Aj-NQNjlqYwHZ9JV0TFfKmnjv~|cp0iVyxH@8zfEye-4aP=0+ud`b zuANCiUSZ}qyPb$#?{$$BA}mx_bH5npztOrfwivU$Fd@|zNI9DZ2Ibu}eG};j74oGi zhPXV#)rWlCG^6=Kr3Wd;V^{64IUW+^?_4k^6^K!pDP=mG@H-f0FVfc7bF`vdkF4rA zUwr5I`Wa?9#W@k0AWD4I8td`Y*1R96eBY_I#9F3Q|qVq>>bX;2lg zpE`{&zRV1>i&HU(>{_+2kZhO|N*ra0j`m(*h+^mpe#_NdO=^cA{_fA^HU9O`e9?d_I7xXgF(OR!+@sgFjgKji4>*HrETXsLXh5{Sdn$O!HEvP z*f{YHE|6uQv&B+he2&e^7?4u8X3mwr2lVP!;{lRy^^cv9#*y6x!>(5G5hUQ1q9B@Umvu&DAcbv+OKQ(zlch zDzw1AXvA*4yl``UN~vE%h93X!R(yCn(Ykz}wb21f``nujWPrhDyqIK!AvMVZDCx$Zz7|;v0e7$xHK-1BPiV#iBW8B-b^195gTn5N(L94AYcFT8 zcG~}4kQlggK1GFOhgbt-Xo7HW=Z)ihA=@&Yqv%|Z^ssjM47jE;R;HEfIC?>RIeh2b z3m?uG3&~uqqm~x%ff7$#+s_N zpb0X0^`FEAaLyeqlAs-A4HjMLQSa0Hy1z^9H^t z=ST&im51ueY;ZoFtXzDEEJ-3j1beSUq}jz9k~(TKZQA5*G5os*wBajG=LO->gpA`P z2Qqrx>aJ$VVxl5$PTqHPkRs6r!%?L`}b20n&>0i!6FVDtbJQ4F5TjAz6Z6&^8I z`6XP|B*i%h$HW-W)KUieTq+8<45Gvvhx^hh6F)L1^f1qfl%|BF@^5bGuD;)#Ueh?& zPhXNg@AwY66#B%|-y;rTK=0k(pM+2@0Ha=)OU=sEOn!~!`k_881peqT!p9*uLl017 zX1EU+==~1t+(uA$h=PCv&eV{*es(R)NL^NRg z5tp?2iqx$dsW=H-Ikb)lr|j0NUo6gS1Z-IBKfBskbSktdgfhVM75G}I+xc?XLM`Sr z#baVxOOPN<^Pk9@Pd`F^0ClocukTm#0%TKvS#2AJ2Yvq9#tboW zTYMt43N)|5gd(j|zuBzAA7va9fD43}dLNA%Jrf&ij4v($6~ zHN0-yCNTzYy`ow$WPV*4?0Uo~Pk=ulkE9v~GJZ?0p52c^=;Qlj_H!R*tG9=x(9 z)J|s#Yu$a;y7&JZa^$pa8zpV$j)Ya|ccz35=2iO6mJQjo&8_S$PcoMNch& zN#u^sC;q#Q`tTsBvYqMf64sNCZQ|`_My@Xanp7bhSX4jv>A~JVcLnsMUX%<N^RhWukIqQ#l+{(6XH2>pMWx``aG4o=Sjmo0~vXeRj6d00tH9~ZM_T>{8cvsheG?QF^M5T0v!F5Pk3 zy3O45OSKemaT|HBe3F3@m!>4T+zjcb&`zv%V~~J8J}!hSB~EJBuQM^Rf#J!~hD(c3 zxM`Kqf}6p*bAk{sDVQamQ!ZRR-$%L}=E4VYvFW9NEAI)$^qqHy&84~qj0%(q+Z`hL z_?xQd!4?;h~f+$(YuDVIR#lT}>jdE>rQB!6F}D$J05p#GR=Rms3+smsmJ zi#_G6?adYBIg5&jHA5+dq*yJ=0Uognw4B>wS|Ws^+#r>vr3PCOburPb>L)lTKqS8Wp;^24vhft4&z*(u;z`84v9ZTW7iK8UP$i^;;O>qH=H13if z0dY)x$d2b_#us323y!W7(WaPMKw%ATlEf)d4ZQajn;z4m|Y4`QF7<{8Xj&bCS14{BO(4b%&r$hzX=4X2;At zcz#em9&9g^v2Z@%p3Ewcs%voO-S13>!oh5GPSRU(TbFi#}LiaR|db4y8h@A zY&ROCJjLucnJb*=hkJVWKFWooQbk-E=_uLcaqn5nR`(bOP(wJV2Kh=v^YNDV3(2%6 zQBc>pe5=>8?`V$EQ6TTE`s;0V_lXxv&sApQjlG7i2PJMUa|yfjo~`3A*)?uyG6y1! z91Xq9(|;i}v`4CP`+SrgOJ6pwl|;m8|GR-OXB^^X5TNnMt#bU(@%7~Ms9g{1!LkQU zGO1`W0S$47Ba_&3Asnc2`Vr9H_x?b}8i1kpA#Jb&L`zIWGA^r(6rvrfcljNtJ;zTKY zLa(TF%l41mvK)_|`M63ezR@3SOrLh7V}NkL!(FnBrrvHiwv_bzvOjmU1xz1k2-rM$ zxTVyb#JM(JP4&%XP^@-Slj(h@1-sFbFr4o(15PU2=7V>LM{onr8Vc0M*iYw~4YIFA z7=)+ks0VoUtJ6GdtaNn=7;S`QLmzzYefY6;EV)gVZmK{#gZcnpb!IJyTA-6sguv}M zFFh{oFha2HTk6(l5)GIKf-N@P4+3NTm@8yD3h9$|5=usVvx6Ke(iQljqMPkaxU^0h zIai~}El+I7dO@`MLbW=Z2KZVNq!okLCON4CR&Ym2no`o^(%G#~Kt$+eaLNgzk3lGh zfHfH+-NrTW)2}QalWju#-e2ThvZuJ2Z&KjcR>h&VRI(4&#@)Jz)L-wr4Zagcy_(S? zMq~=M76ew@c_uYS${_pBdy;8IvMFB#{eg}}a2N$b4IcH9FqP7-TT9S~&Iok*gkF_u zr_l`1=SDizCn$azt$!5O_S1jaoESNGX+h;O)%xiZ@_TfTk1WGP6JpS|1gkKsEA(yiF{LDGRA(Wdd6Y z-J&_6q7bW3Wl@%~`t{8z7?71J0(r*VwJRe%$eF_6$P$U`sJzlv!2Cez?P%3c-L)hq zwk1*ZYs7jQZ8xsOdzt&WiZjzw@LN0m#GOT`QHCu5!~r`3mSe7t?{shoD|8H%D^O;(!e^(C7hd_mbb1+Llzk-ON`m0pFG9$R^&d9Ho!7aQb%FU>#V zX83FP5r5#gm5bVS;@_yxw|fCKDpeP=h44_S`52Dq5t87ZCGmNS#_28z{j;unoM+c< z`kW2>zZsTO@>k`A;j$HEIHilp-jW?;`!_8utyNR+IiRYUiD^-eJRYH z0XWn7ZbNJ8`)C76+@7$gOf94yUHC02+_SR@EfSqOi26|BY|tXURlzIIyY*^jcw*|8 zmq@CmUqou*@-p-c(IpTOH2?~09iw$k!8S&U@HBZzY zl~8t+NrX?n-wB#jkCT~=sca|UDy}BpbVIy)7<3kiR5Suw0!&oihfk?ckn1 zwL0zA3*4H6O3fKZ1Imen8Jj8`uT#_Q)df$n;F5Z!zwp(~x8E+P2E7;W8P|PF*gHI4 zmb*=GTRErZ!5SBGSg_aBcA_wyRA4;mei<1zs%Pfs9Wns|HVkOn!`$k5gP3fYh_odk zSWk5spiDjNseQ>I|2J&Q?Me`-HFfk;qq-nMlmioMn3z8^2~XZMmko{df8xshsmi6( z)ZFZg#oux~AG(LDHg)uxPw66(5T(t8H^2T>|8a^3ja;xTm{d9uo~rm(;65N z7(cgLI-k4u&!xn_$Y!)H=GuUAW+KDtc`@=4Fq<@oKGwpYsP~AG^lI)4qWnzp50^k5 z+mIl;d^6m_*?kMk0fqoOm-NhHP&sR|@+qJENtxQ^wbOq=a+40yJ%Q@KqukH`2ghbr zGI=d)?~AVWYdmj;uqrV{{nkf5l zvs$G|JPvx8`*@dm1fGT}4P*x`Df z_;G<{IO6@2xOU5z`Bv%w8D*Mhj>wYQ1lp?&xm672%PvRd)R`^z8H}%x{89!#DZypG z>#?9%ck@`Rn9N?z*VtFT!kE)pg2ITh=iC>XDSE!*^5y~)&b6v-^lNm>f7@2;9_|b2 zW{iS;rXkc?%3{Z35BWP7`ksi%wuYJqKj+rOC;5e2uX@1vHbIfRDlamP)jn5IGw1t% z#Mx)w`^}Nyx0~S0;$O}H=O+E-adY?{9n+N-eGSyTK1fN7@q=6Y)c<4r>S_KoQuowq z7ktqLMsd{=zwL|L0>4@Qf(za*p2y?beW^k&$xSZ|j14vO zP;N6oZDpa=xYsKlZ~wb3zzj=daBKBL0jgQevaC0SEqnqD+{ji+Xb z(@?e7_y%k&^r1{m{6O$(_1DD-Lc$YdEVLY|mJY7)HDX(>XR|$-D~MY@VYQe$mkmJO)p)A^auZ~X!@#ZAX0AfW8`vgQ*+W>jsLGFLnga2kN0MExDd2}7}9$IK_o z!k>(qJe)lD+VCQ*YL$Bmp5(@tFUIXOSg_tq!qL6D$GS((s5HNp@MP3h%Yv^Q>p~;6 z%zLfzYISiv&rCC?pMk#IS(E%lW5U7e0@rFG`px-r*>PfHhMw0Nljctc)x1Iuecj$n zHfPMnGmesGgX;!G=CcaBEK*BFXX#IrcJ;)h#0=30Lt>KbO6zmCs|LkC<$o2aZTAza zb24)7VO-tFigv(_nt!Gom{L;ixY%Ba(JfAjSgd+e0en?GtLTD_+jWnti93_FWE9=s zc0{-K4#SJ`jpnt{CuTz3SMVp9#-#fDFo50c2Pg?k5J<$DcgIOKYYvTzu6{efU>c`x zKht@D4rcmA;dQZ@Cpf5?7SVZnJZZd8?0#IU+>PnKqD>9q?edOZ^Jp6}Z% zZ`F-8XhU6Bm{PT~MEjSVn~wt(bs3Vi^gORGwp>OL!iiX+3>@#!MP&Un_a>|+RB@GE zSF|y+2^}`M-&aHSUl(|9&Z|JDiB^SmbI=Lcg_cBnq~2rks;!HZ$3`5h>c*Q~H>X0H zv);vJqKD3`lbnU5#%1d@Rx3AIjC%;XvUv8grb<#qkRN(xl9YdBDHJ^Aj;tSR+?2Hy zBT`+lOfg-iZ#_p&a0(MRKF#pG*z9hr7O)fj6xB4v{Xj$*)eFmejD`C7W1q8ed&E0* z^Ebh3bNu8%oEu4Ep!Ez<1+1A1!@wj|@c$)_i5ruxDy)jWk_v-_1I??f207t0UiLh8 zOYXkw?!CWZ1JP)a<&&+2Q49-BPp}NK<%BmOvq+qHP-2{LAYH->Y6dsBHC)YAU9BE8 zUi6NZ9VM=ojc?KM+0to23y?{ti0^SFg*caHQC>Hrn%~B*q#-8FkWFC7j)BaG<+ws= zL_aOKG%j&#BBdsKRRC(C1n0}kD@rOng*v}8EN+pRtIdbp7gf)D1$;JwJf8qjbbr0o zWQ6_hD&_zh__ltV*Uofd-BD?A36`2Jk(&Q&4&c>7X}Vke4pJm+9}; zB5OW1&heyqm=}y;_6Z2kdhfLf*^Uy9@l9FjK~zcA8SWta*I0<$BF(4!W45Iklm)-P zoVp%3yy_R?_ZfNkT%C>Ao(i{`@>JCh=Xc||qo2x$Ei=Gd1(Gvs-IC02g~;)@E8sM% zlYUo|eVCAt$-mh`I{YLaC=+!9WMoyi+kRr#@|OjH{erSTDK>>nnsPi!g^k9P$bsl8iHt1~t} zSJ~xSrR6Hv)Pi5+H@uqTs|zVCKQB7mdYaK_3xb52T3;obUgGDc_!VQXGS?RS=t`Ry zH8sWM9FzIEuhrQYb~}w`s&Tf|Oia(`{49HR3WeLgh_Wn?6(*bZ_iOC&K8VeD;kWJRsY_0;4{@8l*mi{D+=Y=!^iT0P8o zu{teWd1&0CU&}xLQR>Zk=f?(tJV?W3ZNwX0qde{__=RQ3Rngx0Y;+OMJrH<2 zT14bhCOEOU&3oZ|$Y3XPSLs0;ixR^JJW^IS%KFA{MrCarK0bp=*E^)JdpbtCNUoE@2DC@&40)li*0@9>_*v?Q^Dyl#? z?y^%ni8IM6WC!iF<8rxMIPH28(vDt;nXluB?$uDzwIiI`ov(Q=_w-4OU2ROLIbk3x zY3iE@ovMD%67~5XzI1XUg zrN%@UQm*Vnv5SqYes@%L)fG{K>`n$4*X(KX$)o1!&Zq*h9Vc+x49a~go|_}R6!*i^ z2aM9a5?7-V{6PL*+Y3%rmvK#Peg@thza8K%c(O5ky)uScvQg0MHKn^^UXGU~SBMRR z{j0U9YgE^j#lUvUfkxf_;aS`O?DQ%I37TD*1r&b_bD1Hv*r{(Un1MB2zfB+Gzl<7qtH zxR`n3_U59Wp`*Fqd5CebYl3lO0p#H4CVPf((KY0a&%MdO@pL2Cq#_G-;SKvahXKSf zUyZCRd2u56SG};3lcw=kUOUvQe(TXEn!!lYuYsp{etURP3@2X)y>lt{9m!rQ$?lb7 z)V~@%@PeIst^VHmozJd|3l6=lqM3$lX$)k!@==WraAWwvmL4LVO6&V)DN=m_p$qj2 z>-0Yq`#EC13;rfqgAnR3|?%knWozr&!3-It4-KxK$bdp z5DN0GQ#=2lkJ)zHx&ArcD6-PbXp#`Xfo3BTnr#MfakN7(1( z?|+G?ZAJn6uaFpWHx0{9l;HeS_=4gh%iu|Y@0^$>9|aGh@cKmvOY;^tJ5qy?-PVu_s?C~st!pgg0IT7` zdqQZ<<<6Z6{l$guV|1-95fWsB;(hmMy&k5$Qa$fc@g0er^C9n19l9KDTf+ zXKDAr>gD|QisT?GK66#n=PVNhG2ZtSbxNlhv4aY(TJ`8#rna4*JoW@ciN4RjW}prn zhlNzQJquk10aJ#kUwn8QK^H#!5IB-jVn4%GI>ew7l;S3NdH?ZB$D{Tw49(s)sP=rr zDEdv4MUpsfHThB(3;m*9Tr>%jWi_%cS}Eg!l|t@4tWz6*^|1;9NPsaLm%yf zP3_(c{@&$x)1wb1ZVoL=u=DmAXwT(&ueL!qC!iGijh^!HrxXnGoeH(wQ`c?=&6y)S zsq_6dKzRRdvx0v)KRA#1Gk_=FzRs0(tD&mpO3D984~5c(V&2S{{3b=tFjFJJe%nDT zl+{5xCWZw>RynAD^-|FX8}acZ6H=qQaBNm&4zeA46y}0-2wnP}H9NW!fZ1O?jZu>c zB2D`0S{?Lli0o#;4`B>J)Ry_anQplI)J)2Nft`bTWbDn{9IpDP+jK)Zx<~D#)Xu^e ze27TA)1)S{N|d4PH+LQMwB&H5Ca-1jhE&$8!?WJ}J#MIM*$Gr&Yfdh~*))xFLoo8r za;bw#F@xK@+2o^C*p;`d!1`W&LQ_cGI z$SdX9dk3z(iqSSI0xIN(Vw+#@-X}HSDlUvHm(b#PqFSou zfFGU;)4()GEzSG0tQoXEd7$%M&}Q$uK@XrEOHm6$S+YVn$8xoWjs?{1IK0uJX}bK^+ZUeoxh}l{HFyq2hAQfLwLYtr zTYD4B>{|_~RYixF^I1h0BD68r4gM!?xq!Z+D^J|6y9HZ#%I7UB@7IX8 zQnm&b0FebvZlbXnalaoHikH>fAjUH$UZV$cL6YzGrBW9nKdAo&=vMa^K9}6ye zD41eiF}$|D?Snc{8vrOapTvvMAVI#MAAQe+HN$Cj#MVJ}R})e*U8efbgCQ}v(Z9RIPJVF{l zE<^_Y@}d_?WQNJ{O_K@pXjV(A^T)$+CYIEfW(}T9+L6CIKok1f{?HkN# zhMjZ4%nC0|*eDTq{=vs(I+2TY_2yFkDquk6I9?q4(B4UF9)(+0QLLw0nH zQJ3DVhsb;Qk0ysx*S9p7k#0sh2yI_CD?i?ns0$kvAhyuN_Si{`DK>#M&Z*d_@%3KO zF`lkpW0`m91k&$}_BejQb*x%kJDFBp6Hj)|+o%|2k#`{?<#+MD#ku#p-K15Rpk^SR zCD(1i*Ja1Y6XeZe;2lCMG<7<(q{YkCR`jyDzW22u$awJxkzu+;_AVOSDkeY972wjt zn8=qUNY$BdMf6R@YGanGWz(2SWt66d3mXi`b1JVEIgEvFejX8cunbaXKXyp|$OoEl zT9d)=D52O=6ujBN%%ur7pJXkTfYu1jYE{M|B(MQ8ESJW;e+OQdVM8lh?D~tO1Ci^t zLxsvu)7m9dxR=L3kn6FL zhv`=~OyVABfCAInPV{@{T)XwduD#Q~Xx#2mK0cLK7RrwkgL17Rwc`#bjdjo+5$RuZ zX~neiIImLtSXMq{FQ=?%a8Ue&DA}9%M~Am zNUrn0AwNA%jJ}pQ26`}`#NS*{9>dRUo5c-p=T7>843X0aHi>kwE4ifK<=|C6h%Bw@ zTbXX)ad*p7Se0u--Zs`v%V~3&2X!g!`O=FAFTq@5zc^SX*>}3_@Mnk4MKA;%%PFtA z^wZ4&hla$#jk)h3G>9=zKopfE@z?;}4hDRv8*o@B>71|bwmEY5j=WF7Xn*g?f)WMN zTc+#^kH*8~5Y1;AQX){u@kXBttthh82^}?r=Uv{W zOLZV0%-Qg#EWD&r_$hCY9^TnG=5mzbCwz`-z6#is{{F)qFmxk~Jukx-yf0#udk6kh z^5g7}OjS^t%ua|=>UST?0;e5~yQ6QWa6QBhu8t4ikkjXs<_ufGr%{jaztzYpG{QZT)9fRh(!)at2tGAeQSIo~DG0(UoEH z%obmJ^BbXTWyaYS$kJD3kIl54R4+q6&rC=rX_0TohC6ISQe);dIrR8E)-)BrP8EE+ zh92ZHuEbyUZdh*cbBF}q_!z&SK4_@7e4k{)AmwF}^%HvutBTS6Z7A{Z_Y;u`3gKn< zwNVO*n{*n?Vg1N#KC1SCAt0?}EIolD6PBGpN&W9Ln}^8+Q9#a98%#vXsB9jqm7&>;6lPLYyVH ze0fj%X8esb!7k>1Y1GfT>v4-|y)XxZm?lG=27GXL<^k(TJ&b=Gdj5>t{q;96dMEjR zZj~=$;N$7NpS=f1>X!0PoUBPaiX(7+G&%oC*h8KOli z(^*$H{{xLZ=T^h^{R|LJkOeDuQ>J5NTcogv{7>;}#&S$LP5{R60Rs#s{07!$oGsh_ zgC#bKe_6etno zdzkXiVPdP3=gLUE4DnA4-7Zg8j|v7ijlPgDqEWTRLYPCceVD_30)@{gSEp@@N)F(~ zA>R_(E%5=KEWfd_avqYY-+6VR^;GpooCZ3Wba3U`WS*Em`r@(^h`|B*@r#X`!M0D5 zwH)GbXH|Y98kINK=tKqxAk)68Um$C(eA38^fBo`uU4pAGfrIk+oU(&JjNU$>S*tgE zHRpw~dd#}Z2Xkw8N_PrD)*Qc{5w(dU6#^o#6rrD0(mXB{gT5YIpJLF~%Y(jt9A2b1 zc+x$A6C)g>gC8D0gXAzf8QlLN{hzK@Fww!zxIW4YiK?oQ z-5@Y^841Wa!^EtV!~whl>6w-a{|99($HHIH9~QW^^7GlBKw{W$T7%iS<?gx)(bf?|6NMpE|y6DZVP!g zM4o(4^ztXb574ldWIl^tK+N|3=JvJ^knw4o^mltlaryPf{`VQusfT0Rg0s)h#*`9( zI30|9tRM7^{D{BAK4PNVBGbn-!1<<@uM6d zR$xgyQzfsJM9<%A0;JvyfHRMc%!P75M+iTrxB)CcGJg$_eZjl$RB3LxbtQxs&!#jzwJYJ6l0O zcHfsBEvEHopio-c_z0N{d0$j?zR}i`5Lj?Ex?Z?!65y0E^&0Ct6~IA+pFc`&LM{Cb zejrnzi2W_ohmLasy=d{M6P(~Z@=YevOmHO>)H??x|2jeBA2qJ!fI6J7aV5pNZrhi~ zB(QU9ph&X<<>F_wW?tPJ3olvk$*y1#mmU0J6!bt#0o9U&(Ut%734M1wKyrOL?=Zv% z;;KKWv)I;=TRjAdT}STF&xP%#I!p=hCXlV^!F17j;4IOgEiQViKDJ-vctWFIOMa-m z0Aa>$JO94InR4<>(Q@!Y>sx#^|K~GKaaF)F`GGu!^L>}sP80ytC(VxSB6gxFi^L>O}7Vg;5eWr zJa`lacm=i{#Jq6C?~Wezzvb5(DFT|IjE(Dk2?9Rao1lT!DB9G(s%cE+Elo0vhT|$&Lwe{s3+w z(>Zca4B_l{ajQiYgIXaxDh@!i2zYv4s#qU$;b*i{nhWRkKN3%%ubeN`#d?b<(Z07L z#u(a(njk;DNW@o}bjK%<4gv2d>xXa?qy;i)k7JTmGV_;7Y3&42$Wl0s3ptw!TzPFt zQGK4hwEFdX68>jk@ooSz|9a>ckYE2`PPlo`ZmdECw;O+&68bHIqp4;d=%@qUZJlQW z0M|Xa+_|tJ_n*Ac$I*dVJ~KZsas9 zc)s?Qh>7E?h1A!G(t@FcZA-yq)=a1rj>=<3gXks}Pyc>haoAh|R@vDq)t?$>;gI<);`;FcK!`sTN_s1`R)%Cs zdp2O>?cg>yw=h|Wo&9>WlWdbXtR*B6e8h5RIm18&G`Ay1U z73xaue8l%T*J}C?AV@D=9<=74F?D2jop&5lh_vOyFous5U~s*BcvL|%Xw!mL2wZv} zlXnDe6@|8QI-U1F%zbHgS1krSU4AO)Uj2x`WUt9w76o91;7CVKwJC^5oTe9^@XolK z<-p%3x9^HTQ(>dtQyjX=uI|}c3I?VMD)Jy0k>ce;9c1_LIHMd+&e|L{MI`Z}V$!I|u87 zip~ZJKBlhQ+JY8atKr1LAd0B^?{9jIVa&(~s7ahW-wcFQr^6WS?0_MaH>xE4;dNnJ zzJr1fh#0&9PxejtZnj77h&)!n`JQOHD>SsuKHc15@A>$;d4AetDE>N5Jv0ZOrB_nF za(CQKIz}a`dkhA?=zx{!TS%h@tVWA_>pRL*=u1fS_>}4+_rSP7vSKkrCh%ktn07tw z85+Zdoc2rr2tlg*^W34^kOzu1k@M)+kQhlfX^&VOd`28XE8z}C{YX*+BBxiWsX)HN zdZFI^XVA+ko;@zQPBhXfHCVtC_+6jg!-+ncz0cobpSFz9~_Nnkkj()Ns{Y?2J#snGk zDs3ew62dA8m7Z^{UU7;t!KZ{Eae}_CnfEO-;)F%;qnaDB5=WXlSUER60Ahow-m(Hk za|<4$Uq&&-D%@_QF*~f;=7x}xHa~R~!pu)S%(@xc7{#^y3_Q9DEo|U+Fkq4Tp1a9!jGCX!W z#iHerVyPT>8J?VF6u;@GH#5Td`GT?@G}g4uuNnXD2bUO*?EV?f@Wj3bnq#{Fu7)7U z&(#9sa& z0%7=oG|FJkckxso3sL!qlMU8ZE!wfR*|8Fa-gx5UEppMYyHG+Z5g-G5h1BZU5LvQy zu1ekpL<`>NeFN_S1@^oqH*xzxr8+epAynm5Y_!j;VQ^?x4RH?Dk2s8U#Ounl!>6CD zOe|(>w)VrGWF}dE=aW}w?&7~~@(7%PY=c=gZSS&mq2*2(Db~(1?pKb&Ay&OPP)pEf ztB{HcZQWXqzb#f&!z7e2Q}|yG3dBfkZ3R*GqPtKsj+ljYoK21s+i|{lEd*h_8_ws2 ztjJgI6SH~?bdB)R?&^c@Qyld{cFk2cj6_N)fP0melyQmBP@Fz}f+M;~LhkjihyL6RDTv}GblP@>ky)t7M;ld` zYr$bonsCzk`iV5h5=gD-l)gDRAT;!W?-J%W;_5*gz@UY@ zDY1h@XA1I(!e-(8?he6#IMJw0{=YwDkc86Dva&(n>^}5;Lc=Xq$Cody1oF!N8~*RsFy@Y2>D=98lVRa1SX4%DD_C)# zX(nfEH;NpV`mtYtoym;{8T0G+TapP)#u-yLt+yS8{7%kI3av4>*amGlv=SD+)jcd* z=-q1ZM1D{E6+`CZQv8amqwlq(2fmv?J)}Nb^`NRncfj(k8hCfKwF3<~{|^xUQoz2e z1X0~Bp$>FIPh^#Gx=Ios#PB=xPm_VZ{C2J320b{ zNmkSrf?>M!{WBNIrixS{U)uYVHUb4reoJXjgOzLq7>6pEjvE&eY&k!4Sp?ks8s1rB zZ4Pz^>ADOSE{c~;wuK^;t%(4ik&l1#mUjpUghZpflq%e>W3{jH!JYK##l238@?s)ZB|xO=(=fM4OwT?>GD7k@=nfD zL>CJ95(DHs!6she_$U^E;J%$ujkfOR%yvhY;TFwlhIJX=buI*zyupcs48`B|$32auuLIu&GRavQHM4PS9|WNW(M?)-zdMf07DJAX z%i7#08O4rMOcy;4e+v)(RGikwF^Ck{Xj!I(fZe1+o-T@|@(*Up?Bt18rAe$%lN(0y z=O>275Oz((Z!M?pjFrmGGlZEQJ6tYVv|O5+qw@j5(!S5m#NZK1h6{Edf}t2J+j z=1Ou5M1#GgaW~_U`d)3~RYdQ5+vMD*a9MJ{ePxM=mo!bA!=&Bdu?gjG^+ZFn zqsIMsXGYlc14v@X&WS9uDXNpgIN0_fwd-;%Wg{-mB+TU-a_+rFI)AM`8cL-+qMgZ$ zRub9jHz#6@Q9ix(yw?b9Zt!l1=~;2M`9W(NN`YwlVMt!4u(OB&T$?unm0kKm>O@k~ zQpWd^bF?MwoaANci0QX>GpobOkVwcU2q`r28tcX6R9@Dov!&MYX9cV?!Qa?|J9=qSCzUs&773m zPyE2AOZ)$+H~@GJZYc;F2it$;uBLc$7t@$Zll(2mJk?hHPO%v#i_BGd`HF%?2A8e!GB{ zW}Q6Bn8KKi^OFC4av&aYUu9VsXO3xLWZQWg-lVj|An)HI(=U$~Bx)eWij!Cy_9cA( z+uZk87b|`2E*1Fi?FqU5* zTj#;l!xe48tF8d}lJE%06#=3O9gV-tP60@d^^rX6qHmP{v`Uw0^(Zj|LJvL5z{{I= zrC`AQw3_8HxCUT_kCOtmBI4-KM2YHk{OsP)|LJ(8e&|qR{cO|xZ`;^DkFu^G9|}9M zS0CkS0Q|~ty=^Q>#)x3$&>)TN&pv-_y-Q{~@aem(98g5FFyp)b9V3hpMTHI9XUK-k z&0ZRaG)KB-M5h8gH1S#4ET=XC>^4SZOOE zj_^2%U7{#61maj&|;UBRdJ`oY+EJDl(Qfm|)p zyZ$8TQC$L2lRXTiT08*zH zO47)sHkwlDUf>tRj69I6q7 zZJpAeuF9XpQ{SJ+S13qmj#Y(?DupznarZOkN`q*e1>2;6d#!ANrqpBx^r5GO>B9sx zqSP+?+zkL&Q82zM45r;eWZyNIbyerhR?VGgEXav}G51bVLst8+@AbP;uFrv^q}VFY zr{8$ax=*1uU3idGZQ3k_5Tnh!-gQWC+Ool?;eulTXZqY=70 zbL&xThRVsF50NefumQ{(VtQ;z~DBys=;BSe_PX_U2!aFAaDg!9)9n@dY;;5 zQp!?Vl~JI1bH=ltD_of9wlQ<^`33L(upU*s9F{7C)>YrHa0DcgjwE!lX5|V`MQUHo&Otozzn_d4(FPF?;#3uex7(pbk8nEsxf7D$4 zYFKCM2ry?AC_HDEW*Bxr2EXQDV+ibG|NML>sN(}*qa4^EFAJcr^^ckAQ(&Cbm;2LR z7eF>StM<6crDclfl>BHWCGC>XiD5qQQhk3EI}TLkoH`AOURoX;KT?ro>F5Scrw0I4 zv2k5`*mTQ3mA)zYi+cZ&7?}rH0HhF6;nZJ%DYC#&j33h27N+>{y*U8=chnuFxh&MW zmML>AB#7*06g`w~-bD!?O!FXGYGIJkw#aNCe!H1sBu>-3I|8j=li9Er>S=4)n5a0IL;ag|6l{4G#aK&wP)-K%8I_1=Qq|cXDc@F@*f8f%r&w4sP)&8wRHs#Ajk;z-+N@M?X zpgL2Ojg*8OPs_)uEj-MI8uxO!)^n}we^e@5YBy$*b2erp*W4E2ahjzvN!}uBZB9OGn>;JQQ_J>OCLP2NN z$q}iAM(x=|`CaX1U$4+SL!xu_8wz{v#sbUlS#DTq3{rpf{CA$iN|IsznRVwZZLMH(%B*s2AC|=O48bDCW?rD z3)R{a;6D=&U6v{7tu}k)Ha=5FK53~UJ1eQ6-o-M!K zRds5lGi99xb7fdLn5DZpuF@|F+52po)^=$lJ)45za7@Km6!2`Faa;8W9`9`taty}i z;gfDhY}#B>h<)81tLPDxtt&RVU73->>cAqJs`l(~isJo^YMIOYT8eV?m)_B@&G^$? zq9&rbeO0w<$P9(4b}9=8D;)ba?jvQ44Z-#KANcVznoT_Z-j#aZxDLC^8N9$=7Pe}c zrmuzxB5_=I-Oie8`-#+E&O(cVqw(s~Bv>6CN)Nqz^(R94MD3N&_+MH+N`0e6FPI(; zTgP0j8;(2k%Ail1n9cgqJ%2Pfs_!F|WR;YJlVUqeeeC@zOUZU$<*LMP}Sd`&n(^QJM3^lQqS;P0{$bK`SsM!X}7yJP(I zfc<)QtVMhrpA+e)NqyQd5%^&S5Eoiyue!& z#z@Or$U&%4XX)g%6eW6Ymcp3k_-?i4YOYJ_cjJ^-;%RnlSjDh+X0+&(2oJhE2Vybi zw>&Qj<}43UMoq>LrF^}$8+U-AOWuv}F%l}+wJBH1F~F4mcB^Fl{{{y6 zFKWha5QruwVWNThu}jEzQ#0|9uN{@gtnYsaj>=MbIgSwsd~L%e+Pr>grt1|hRm0!^ z+q|pX?FF+im503B!^K=5rof_>ZsA*>($a?Ft`S$gpOHQl6fQqj@@|9nRtR`4iFA>P z0#MkMkB$Kl%=t5(ZTkd&wD`kSr#Wd~kkHq!#ouitwJR)DrV0uZ<~2<$N7VUA05zGj zsC<;@#q>trHp3uB$N|` zl8jd27|7=U{(cjxDB`REH(MXRue~EZ)q?MmNo zsl54v3bDIlUR3p30hM=DYIvH%>s#cP9agz|o!DcqUi6fLhKrzOLxki4u1#%v5x{Rh z@@8VVi!@&RR7Z10$VbNN3A|@TmWp}KO!`9yyVpuj`IR4Py~&84$8g%8(T|rf1q&OO zMX12aWa7*oq*aXw=|eGBE%=Nd?O~Aepg7UPBtIom$e~Pj*k}ckX;pW1j+1ip&D6we z)+C2&ZbFW#;M+#)XtSZpo|b9-MirynV)%YvvL=uLWY_wA zkQIew=P;kJUI}PD>zX9`06v31!KeP{51|}E=pq^qGpP34Of<#yi9uTQR>VHnap><7 zJRoc8lXAN<7TWn%5$J0a?HNXJDbHWlbq$x42c${jw;e>X%6YD3h)wC)LL}&dh9MLu zWwseDn2Xc3QBIf_zoM@X(tiO-1N_GJhq2;|(wate-QBPga_4D-0kI}%ol}!N{%e94 zo%Z71+4-U>lRr)CF!H|%h9M5aa)V`viKE7R-}64*@!JJ&8DX;!HJ{vQC08*QeaCH$ zD`73R5%(x3@k^>-#jzlpsu)U``aFNrMOJP9f2asj(@A-wGQx-2?AQ|VF8#iD}0k2(QbJlFRN8Ih6 zbTGxQBu)OpX4TW)(JIi~Zi>1Hw0-*+tLF<~+pvWWuY#jHH(wSVv0|CR{;WT|I{ijvBPfmM(cxe{4SweVQ_2rL^~|BS@uNWYFApcGK3<&e zMCn2=%JK(~hU3y~h^>P-n%IMn<<->0o-Pwy>wyTOL}cEHn6dLp+I7QBvxfsBcF{pGrZU!MD%5KD-nb9UArBx^slDY_vLYNlTObY zrI&)VtqYq~cq%M?x@nAyBMQ_`9Hw;CLy03BDb%LC`hI-lcOPS8ih%6!)x5t1G~wfx ze1wsq?u4>NERLj72l740A{uV= z3UM>u`3UQuUOP>>vucDQhfLS?xF-^O@$yLs^E;NPGh2sCrKX24gh|x1?Xt};S=D|x zh%3D5vxNjI$gwDztQucVbA2KA;&y7X;D>l5fjAtRGF-P#E#P z1p|U+CUMqupFw*a({v|tlX2U&$oMUChoUicQjz=vSu`dP<7C-ZKLhD}$r=HoUwg4? z40f?YTC~vAl^VR$EL~=g-cqD*pur4v-7z)5rcZAUSR?cTf#;M6>dbn&5prPj<^%Vr z2i7a8=|CmoZ;%I-N$1q+kDz-oqt4lL!If3R_ivJ56CtG|Z&(ibc@{ektA;%Yu_Z&Z zKXnhV9Pz$)0PzuGYX=1=^+Rv{_t-DaN{UMynjZ2tP=y6bhfHc+^V>5tqu zJ6vEB5haD${v|j`jz0Gv$!rv~EAEnRveSeom)rDy_XmsEVWA#Vk1D91P}7{~)bFRP z5Puy|Wk{4T)pj15(YLDAp7|_3(kry@bv~TjIF}S~u&Q&-M8voT=<+Op6-JZUujBBU zR|MUUiCw%yd=yCPdR|Tr18`WWgc02o-+K0H64IU~aa*v`ruV8%7i4Ek_9mSLj@7CU z@5V&DQe2ijCJ^;e0{k2DDpH<|`Pn^+{U|Jp9maYfr1LCLlRzf(xjwy9J3SRbF=mx2 zAg_x5^0^zwkFoL8)nAL#{natZ&{A5!IIlrOwVi+N7;V4&jp_pm(d=y(C?o8x(OYz~ z@D#)GOx*9;^y4MHlRTC=!386}yn)APx`e}e`Cpu(W?y?Kybvgvckt0XCSP9=-%3tV z_`LeN5`)m@J=sgM)ZVs1alCNRTbCm{OH7`V<*4l(r&3z&~RhNCwagz0F23R5>RfzN7ctFn-@uL zOM-d*Cy~_YOS&r{_C=WQh~Qe&&b5tW*piX30pHh5@=w!LuZkRa47D`{XrO&T7O*97dH1ZUFRI8jqJ%H~YVCu) z{prJl=;c*vYD0Pw-Q}mR@*;!eveoo`Uyb*LnGbFi{ij_VhYn9Io?n&DJRw!!9me*Q z`|O;Z;r{u0{6zc5j`>auR?e?^AqDPxN%4e81F5Im#N_>X$6N0mxh2MyI>5h_Z5DjD zX*{f5CY>wMJU$1a5=@^Mo%Bc663Uh=Cf=r{UGAm8NAW&t?TXypZoqVKyc#?J&X)hsFx>R{w>`%`wsha|UcXP4jb>m8RTGeB}?4 zIWips%1jX`*-mSOJ1rKmgJ-9oZwM>tdV>Q+i2w=(L{OLYhJ6vVg=S}{h|&7hyx&Rp z%U%<7%7OmIzN`%7Im6J_j+dxPl0P2d-7_tdmG$RyI-9c`)4e?d-li86X~SW|7K;Gp z(uq5TuF?wZoKic4qmr;J>OB}$F}%1&@Jp|3A9MAoTi{BxXLuobH(RHuJz6b6U-W9C z1($84$8c>T3lo9e8;;4a8!l74Xy5W7&sL`mycNhMMMje9Rf@+-W54J;)mZ2?$C)A} zv2JM|`*_^YnjF~|HOFyf>lM|E8Y}irg-PSAyYdnh=aaPujiK(Z*Rk<1+hMD6Uvc z6129fu^#ce@(RwYmeb7~@+tQGCLtB0lQRxMYe^|MbCl|;i+GS?T^^&&x{{0c<%ktw zvZ5RfhElUwOhUM(TpDV*r%U&nwVRIYL8A=5qt9P}ZWz4c98^RL+4p?qow)_Y{lood{UsXCq5ZpYz@ ze4lVGPX;ejKN!n9h>@%YA2OkKA^~PL%gR6wHOFQYd*&KJNSR_P@wB9(XX=-tcSf(j zaB!zOqR&UfCM^!M+I3}l9khRGQ#Ks@LgNRc_HoX65PB(B#U zq_0whr`Ule@~yUqGC;ttc?di1`XtoU`ie`5&+T8eCA4QBoDMMClN(>8@KiRP%Z}c8@gCx zzoy2K}JXfnxlEvFAl1Z9dA#$pb!pjQ=Wd-ik-(GuS_hLmUl5 z2ZamC{?=#SCgic!B;`i~6Fz_&FUr>z+WdAbNlruFozxthg2B(;_ zh_64SS}>5?iB2nX)4=eaVt|%^Gu*@^b(vZ4n`iMq>-%`I+c{!%${8dp&XvSHv)t;j z8Yw_nBtSrWubowiUi4Z|_sJ^-Cu8uaHc_?9RB$|GuqE&)mPo5zJ7Z4wv}c}W>y$p^ zo&SozWcyp}w>TUy>zld#?sXW+qbLDrGrT3>?5d$wl zdz72s$+4IHC4xD_IqwO*(Iuv1z2!}`Vh;sorpxVzAhD5BL4clt%HekPVj5B+cf{ z^)}VEwi4to8cwj~T`?>IB#v)SR#FdeXLmC0!Hk=o>2$*hDlfPC#xV_`ZN9b}$&W)$ z8?v&kivCRT2Q&R5gDX}-;)I3`?U{VmW1%SPPVSO5jSU_YgjLEkd`4IHry>g}ydqcZ zFK>IwpM?-@f8{Wy*5zJIq`V>=3`x5x(203pT(BPf2)-HqmbVE{$1Y70w0Q#~ojK zI$QVa34-XF=puhyKYI&bHF|#cX2@9W`8_ittuh4Jo`j`mg=Yhu=_(?qV>JAd$K~4| z2O+0tJdbjS=gzD2>q+{>6Sg3uCUbVe50aD9;6bDrGPK?l5%1#n(LU_UQrR6LR#nD7saAaE3J@oL!BqhQPLps65 zlhtdl(H7)4dP5$FyheG&o6X|p)wqW~h^t!$v^Vdgkk#rr#xCcy_E4j42U3JoYqB%5 zb6@W5>FPfHMn0!%Oo)Jw=T{~Dgrsa-xjYzqPSg7+fT~7CHMAoh6PdD3r_Zx?#l)ve zkVMyM-zsY?eJ0(#H{I5t?~8YOXN&sG=%+|4yMm%JDtRpvOwoGQ8xJS+VF5w%p7IO( za|LL!XZ+^oXLh4cI6-3174@rb?G>D4t`>DaS5Pgl34kz4P`AgY*grlYOwT@e4wM7| zpGgLh-eS6RypyKt9VW3r)z9cdKh`SyA0izfiN!VBG=DUhu;0W%Uz|zAnd9f&-1*y> zUJgWBYQ$Vg36I>jx%BUG9&huvgHgG=n3#lrM+7+O?+3k1<`*7*Zp*hn&_59W{Q{su zB+|Lc5&v@#W{zy0Oo-82%AD-A2yQ$EH$R`GuhzftnSR3Mwj5bOG_d&Y+jdY-$oa z(%M(%4#vLS+S%DrO9?q4`pZ-Y{|ELk#QWNwo z=s>cS)(3fHX^HZ{JZ%-KdAogNr1M(Le#sU;*eb)Zv zuYY_U+CmO|@4$2hOa*@{zI5huv@N@#++mED0slHboM1S7ARMF~{I4qQQ;-NAuqXK7 z{;%(qq$Qe-PNlCLEB<*SiP~qw;R?0Ysl9CftWr+dO!tFWF|Z%ddL||&ZD(hW1>e7; z$Hm1xJWFQ;J(>Fc{dWtM0VItBf_yTR&se&=tWxXJ3XzW?yy zr#jXT;AvY(sY}_h$S8?Io>dGRttwk44l^<^v<(j{*LYl7Z*6a*M@B|w6&G7$^PacA zY@sRFU=G5`-niJGGjMeUTP`+<^78T3;(2Mj^m=KENLL@zOE!Z!ho?Zqc286*rlH3Ab5|E)aBvio%}%j;5=&89;I;?vz(F&s2nss9vmNC*{}l0ttf%1<44_7~QB^ zd7UM%R_D;QfJ3)otH)}gLGVax*RM>eQC3#AQS{S1Oew->JXP3baMLCk&bhZwPl7FI2(RA8sa!vYJTWHeLg?J-j3nEv zt{C26QhCn0U_6_fz~dj`Y-0)EOl}Bm_bU2=M@0W4H@BmY zTTJZW5QZBNVF3^Gb7T@Iq*#*`6ufM|Z|J(yFs7w+Tegchu2q}~9WouQaXCyUa|5)I z#|>_qlqU=WpE7k|!Y_;92ImpJjAGV{%R){xUOR6^bUAbTBcApSMmQGmV7b!oz9B_B z)=)p8Z6UsZ(PuQ=G2B<|A%F9i@yX^G^FGS}6K=_#wdNSKi!vFNDcPk}LsuCHzlzBS z<+KXl!>So@i#w_r#cxo39M~>GT*bXui%DbD8z|LdR_=3#BJ4X{b9&CFhhp!eYhZ#X zC)v85O6hkBA4v${tG609qnkE66nz9^G#m%{gY!d;c9wQjG#ee4TpUf=4RA(<75hjx zfIJ)0>sP9LF%{M)I-Wpu-5SlyOm>J-DCgTGOE$t@X`!v1Lc~-(2Xx)vZW7{#clgAZ z6MU0Ve7Nfv$L4xBQkFi^B17V5!Z*l9(L>M|H%O~Y7q6`8MRnoyl>%nw~qBBNXbNgf_7suK0;9dJ(DohtEYYHV!uBa%GXo2h6*gxAvT_zT2bbwyL@Ird?m z!)pv>_5mZ~bN4p%Y^KTBa?mt>@uO$t{0`Zo3WLaDz4QJkVfeId;aSuuK^HQH9o8BC z4VMuk%8ed5(HYqd!rS4=pW63Wgcw@9U{2TV`puyXm(>I=f5V{Vi1H?206XN!>G_O2 z_m(8#j0W*O_?E<>D~iIQ;|q7$=QsM8xaRiaMk&oCxH{2q$;}P>OV^{02O^&sh}L~ML^zWZH=XyUms5$wi^fyMyk`3pekZBcphCtYZ@Z(pk4c)=h`Jh0 z^L*6Op6m}!hX!Lm{U*9yZ}~ya8kDWaiL;`nyu#4c=7)spiFNE%EI~ylcCs>iZed+B z{(j1}S$~fIg#JQ(jmAhssNb+@Z2b)g@ha(CMyC~< zK)P_H=gQuzd*bj{G}-KHk)u)+%7J(qYckj1XlV(Owxe%Q`06>}%hvyN$?|J-gNp9x z1K^{#biVG5%+RUoEE;wT>}ndMny*;P-HC+8#DhV5IKF(e+#a1%BK|hu$!cU1?7gkB zuX4_|6!AhO$2~FX6F=`j#G%VdLG$4dTuPBG^Q>VbN2AyHArh21TwH?7;psl+e>ioy zuxdiU$O}oBXiUM#O(3c!Mt1XTi4#RqSirG_crH1-)^^!H+M$yMLgEE1q@>c%R1dnQ zm%KNS!TOvc_h(~b5R%<-GTA4+wCe^%D&ncg#Ma2q)jLs)V(zky0vfsrR>ReKiIW_b zUhA%rMEYP!calJ`SA%^=r0&DyJd_nTUSbJ0_3?>cMc$ZBpb!7y^4?B3%OKv$SjaHp zzE3#}BkMx+GRbP0hhk-MP>R}*-;&)YdiOL$>tx}^;FQ0NQtHHV0Q&7iI704UAt;NC z{%;a~Ce;kjlOB+#iioc3a*!a+pKh63Bm>`N-%`f2*|$%7QDQ{^)JTW`9InCpQu&!O zYvLN$Tjd(%etdo=S|$d#OxUtb6Qk$@WJaP)Rs%mY!X>VmOZo^N!?B%R`h|!iP~%L^ zArg#6+#C61MYngr1r5|B)%wb9MXMNZY=d+=+fzlUVHWm+Mplc-iAfQjbq9O#6za0F zfsv!&A&np}`X+_9Mqo0w*&NiA&GtIlK3m?9msWW-{Z!|At3HlKVs3b9tNsjOmWUps zBkkcuWB(c1Y-$aZ{yF!GJ+2)w3)3jmxFWVeLD0 zu!U4uY^CFoY}t=A{+M$_M~LmD#?0yxegR~b1(?S9>6{y)no2M}5#KerG%nu)D$nfY zSQcEbU-rmmN;k+DcpMLT&13o7NK8A(4|#tK<};xq3&=MdcFMCgL{Fi&+e(#O!ARTB z48=2TI9xJ)RExpYOqeKyPDXRgtG*IR1w>O^(i_j;)I+Yf#-Lm)9mi6QVO@OwQ(e!M z)Eo*J{aiXPv!p^K!+e)b1wSS65b~B@@%`;cj6DuYy4lPU|o<0*O z9_exgRv(KU_U!6Ou&BpSoE7r;PT6I+Kf{XUlk{qOlNd%ukFf0b&i_}q6)9YH*??Qt zZ_}Oo3p)oQ##2dDV}u}okM39^e?%mNrx|C;FS~L5WW0-Xz7X}wKDT7j)KNltE`31H z9*n?oz{rlc^#+j=j8$ZoLw&>vXX1fiFRBtDp1;bXwSkphpKJ(`FUx(ziwBbY%B;)M zk9PPD#r6bM;i|qG^oGL7*LE3gJI^w)%@}Wl{P^KCM}Yddo|dXPe-SR`hd?g1hYCeN zybpMY@_W@Bbsu5D#UaMwqVL&hCpT+1A0v(;&r4VXp}0=rR(<%SFVgAV<_i@Hg;BtbY}0RnTLw(%n;Q=??QsdU%t0IA$8d)6Ji1cBV;=2Y%Sfc(Z!_ zrZ?LI2$iL&^$>RlOP9&9<_5p|p$mT(p({Bic^c7^dU+-Il2Lx1=?%yl=k-2Xg1((sN;50Y!j5<(ikPx#y7P# z^q&(jD%KE097ox;&+w>W&(!r?m_7Y#q0jtSE3cN{x(l5mM1E@#m0xP$e5uTSmEJ?O zo{H`*_zNMElSbloMjZNRG=|*S*N%x;&z;hFyRYeP4c$dca9_#3h?94?i33DS;V#KH zDnm6dg0E)I*GTOO1ax0L=L8UG=FTXrlxwDv{>w@MulVXUnb2NtBP1Cn-FzjyjJOsZ zzlRQ|g>CKm1d4AfFPfvTvtb6Itm@Pscci?}8fzk1lf>)@cQ$)!FukI-zfh&yrV_;% zH$;OYB3V{g={c)4)@e9S=xjP)aCCA{B_waWJ5is%LmTc|Azs0`0TsS18Z5J??82T3 zmCa!L#QFu-yu;fMAr332FEPq1cDGFL9m5UdDj_Ni3rIHe0zzLVem^JE=}gwHeeyRo z@+%E!D!xXg(pkW6sZ;oOOw;lYa08YnQ}~En-rW0=VzHESHOenJbCmO#h_+8f7gf?F zPa-gg+t8P#gmNf$)0EuslgEh=I{C>1S+ogWlLZ7EUP1kz$Bib6S+zvm;`>{!f^gni zzbCEOeWTeEaQ6)n;%$dXr7IaUN-L4FQWhzWBA3$TEtQe&GyG8Yr{jV6miCai=}bk8 zXEIby1WNQUh;xQ}Vla;veVaZ$oRyj*r^V!OrqcV0n&X59@9+(hTT7^WR}-bW2?;?% z0WJo;T>?n@U`@_L-?uHEv8wC?XVk=cx12dE2f~K>hC=lQ1c~=TVMBd3-iB4CY z$(iv%e)I@YjDTm<?&iqu?Lv}?(vI41hDlhO-IrSH0goKcIa#BrIeKX&LgjC>y^ zp||SmRsLs;ahv5>hv@Ph%8B>0rxCnNxF~#X+!ul&ZLaXrC=>xF&_OK9sJ;jNDl#az zX}|?Knkvv^dc!w3&Cr?6|c#KLVm}tWqCx%`j$zP9S>gV2f@6RmeM9{ zfi{r8!NbY->_Rl>Iv~y_Zs@MB!3ZE<7Z@Y%%5l4xpBer=vA-JYO_GLpM*r74%mjPF z{rNkvi88ICj>ETX8>9?(PgXH<@(_UH;2y4wNs-otd};?)63 zbSVVp9Q?1wVHql^XlSg}+F8TW9HiRCD`K|=zVKT@57`<6x-8;0e|Jy7cDBE}$yoRC%5~6N9 zvp`PZ+A(K08k*WDjaASnNWy2UDnzXG10Klt0&@In)OT-Qi@CQ;?UwnOK>R^DN@`mNbn%V3qgt( zZE=TE3KX~C8e9t$4X(wCyM3YOea?H@-}9UK{`_X{$z*ntoh|F$_gdGw)>`5t!w5#` zf(La6Q>g)4^}&4SJUKt}n`6~WhwC}g(axl9e7d_e^kYcGldbnm8SY7{XxRMc`B6 ziN{sqkQAo?v#`2EpBFT=b2Wo?GIxyjl(EMQmnP2PH*pe>fM|!&MWKV3@Fu`1@jYsn zrGh;0Q~_tZz0Bm(TKB$+-5YXh#UXU0K%`jySV4JgG%f=zoJiG!C;cJh87+H(B~OevND93jkI~MV z*1?08JxnUgU={Yl{BTXIPqK;o$w9C>M<2>q4+BE!5{jTW^nZxdyc)Z@LwY>?9`Vrs zK|{t^K4^wyrG5FR%cYT|8wZjJU~-JS+7zx5_ZO2~U=Xv;%I_3=K_mAV(6Q!oDGFM8 ze0E?sz!`-%`f2!4PqbGr4a56uQ$f*pH!#=b>>cjt82$xSl1t&uBYywAPqBgC=mrdi zB_Lsj+CQW7pf($URf4x-!8JpmOTEGW+q8g>$IR1&O~ zGs>)lt%w8ZlHuqHg!XhvhrWa^FUczwk_eUI_*OEIJex|1bxei4tFZ8;B}Rr4Z??Np zvDwMzDd#1l@0e_D%~u{X$FU7l&J^3D;l%@t< z*qa=dG<4ugT8K;CSkzkd-YT&%8}})>deuWSN5SOI%O8+6j1BwK2R8NnOxgvVK8X5Biv5M9K!x z8Uf*;dp9Pt5vycq@w7;8Nt1gHG94ej;$3)4pXJGdz%H3zT%cac8h9G8->NNhBxs$w zjtCvbELDv02Py8y)3trgo(>-BSK|2;7}PN{}`&YRHI8TxNy1d<@RAdNn>Urx^o!u*mF+_AB-{*01G z2-g(Xg{JN%XF0xqCwg3j2`>+I``wAr+w#LLgjpzognHYJ$0ljGW==*^h<*XVLyK4r#rg<^^$2hpbrB{Blr?|h|G@V-@usr76AJM>klEc2=~o9#+rz`DA5C&FFD z9N~A$OxmU79wy;~x+>5U9cy~8R!Eei_n>l+=;pHhzKLa~h@~qcvjIK%y*&ocUy}Na z9mYsg@g6adfA5USDB>q^E=T!}zcte$U*N}>#Ns`@AI1OryAb#_H}WM_DzQ{?#2`koC%S69-G= z!~ebi5}S{{sgKClfHio2>l@#n{@#H@u*7QpM|(US!UF{oU?csbo&FI*$Y0jV>-~1G zyaa*}gV!Y=>XZJxJu4KkYD5GjAOCQ0>5wBPr4?NH=8silrbkGxbYS7xv`y53Zm2 zrefSsl>0hwOyRY%{zyWEBLBa?gLqFAD?!I5!DIJ+nqFT2w}HF_O5e|vV4&~i@9kMh z_cM(x8U1snJP0?bE)UP#zlG^utZh(Ty1snZd%5<<66g>h&%B4yC&h>THu6vj?)yW4 z(J=Q9S6i7mvXEJ&xq1B`-ap_o#5pynXC*!U`v(((h$Y@`M9IJWO^^}eIo7CBvn7a^ z{e5DH32T(far`si_Y#Xg)8QF5N=iyrwtLKyxVB8a2yY%2H#hYqjR-mw6&1n{C#IpP zfTJV)tSAMsnsEaWU9otK_x`#?pj@t+^Ruz3?_@T%wh-iuD>a(G_j!WD-vynQmv?Et zsX=f%R58D_6b~mda;Yt#8K2!p%1mmS9I#?$Mi>7&XlpA)#Wq+sKi{LMc}#uG#L9|G zQR%hXV4aGtCb^A`BH%HWz$)RFygbA)WK|2fN?1?_duj!JR7E)~c(;7N)vfOkXO4_Q zGCu6+^dN*Lu)KW4FI!z#mmHT;gc1Orp?nJk>zC2jGyggR%Cyiw!+uQ3c^pmNZNBk? zO!PKQr1Cppz}{#IGPZZB zM+dSrwcd(v@{0?x($gtmjArG&cSsGBQ3GQ3q@Cv1kkPb|qKUN2bz9?dYp#_tDD>wC zflI0Tz35Ap=p_Th$7^OguXH({_l!86Y^^!o%{P_p72Gi9y9KVVufMS>4HfGEgzS#*FzqvD?lL4!WR-+mT_ZgB7~R*JjZRB`bTdE8RB>$*j9J z$kDqw449PE(&AE1^Bj1z(GmueT57*=HW^6R*&fIlpQ)$YnQjrPfmd0C`K=r+5Wy;+41}nEY^3Fvf)}k&47F@U%#^6UQ7ue-B7`i9Cr~lX22Wr zHa52HT_yJX*k4%-Vdv)_wN5K3y?(dfMy5^R^J+`$k=xk_FX8ge0hLK2r=g4Px0x9d zK*|_+EP;C1vi)bevP_w@J)#yJ4lZt>0_ji)81DXd_V!jRmd4fO>U1}I`VbhuTB$6K z>u$e*cxQ>IU?XgAt8shrQAuDpsv6TL_x~6(OfQpZ#2QdAyPTL1G`O4+10sx&+F-k+i~;_ zxAykWMoNrSw${$wzp7oGtd^v z1bjV}vGziEEWn?KSCnwnHQ8Crd(!d>N&u`jbIkz2S6B=6ybJ#d;k??(xV?SYjF$!( z@*r#gxLp}JDD8*4Y8u{iG5oL5fgKufBzJfA!TEOg9zO#lrm4?^yLNTUopq0}Q(1+( zD{?Ihd&5~XYeELH$KCHr^7`wB9zxD;#IR{cH-r}GC~7mG8KY9#9`&NHk`8gKKESQV z0q@#dVISjpq=2b*6SRugbho?k&>pN&(NN$qSg1IbST(DdfK0E*ql6>_dg+GNljM%B zMo(E1BHu(uD<@T!Oq51OMFnZ~^J*{NayLYcyi=s8CjNYIz|Eiaweahp)08<67atqj zUIR9xx>g7m$5>j}Nj$wSpzeH27%{2%r!o3GMRw#QgON;ivwXu7$-E2oA)({3qF1Lu zFH%Fh?U1RZL)jf6qY?Ch4~?Fq;=YS&%~r%!qyMb7Nq**LSnopTeRvR(-G$1s;k7S! zG7YU&7QgM$b`#hM2BPUa)7FRKz+1ty)Ph>yEivL<@D3sop z!?+gcTDv9ldU#^j!sC0glge%sH+0ryf0aVOD)_sgabyXj@>*!} za+vbn&*~pWifuEn><&cm@DLa`Ka!jCGrqW?_k)s8YjmBv61EN=@c{rKLs5}XNEYwT zOjCCTx>+GNfSc2Ws;!+6M1pm;H;==0`X2-({{>>i#O>a;^i(<(8s(3eu8dr(& z$EX&`>C2iaYKNf*d^zu{HLD2TYXFnq5G0D(Zv0M$s~t9{0(N zIs4GE@lWu>m9~d=pnl>|UZCqGOxPjFM(Y*(Balhw7Z^2dEBTY5Tr~$Gf3xn)(~3%p zC5xkz{oMj}j+TlV*Rn@2smD_vn{sOSUEsRu#TJg`PxoS@#g2EU&VJ7I67}+c9)#>J z8ycpz56#aR;h8(q^~sjJy%%jH0uME0kjYfp?3~?|H{vX_6P`BI2a%Vbc{TGtR;Hvb z4JxS=rOj+@w$%!m%JaTh?sP2t*|p=d`GP;=T#V{542{?0>(`Pg>fLRmXyW;b*GJIm z>hT}@7Ghb%zf_CECw?CX3rE)P$UKnsq(Sz|)bM@$ApbfX7IJJr93$kqms{bA0csX+Df^sDL;bNI%tDy zDdp7j6b0Th1?_f?$SS~qXNYqB&>sQzFy!k7wYLV`m4OpiSX}H5Y;7||QEWk3Vwm@; zlL{tkUw4@`_&_s7jMpkjgW#{ZfK(|dshrZU&p92bU<|Jtf0nn;#WT>lOnqtwQpi45kWEqCKente*gVK~@pdGHk+WuQVJ_Ssd= zM#B&fBplfu(U$Q) z2hs=T2M$CqDr5X2fSu-Ij4C|51Q`stlDJbg*wOtRm7M_2z_F@l zdzDR#X;d={7SWm(pgoZ70 zDZ#Kfydpd5@ezlbg&M!ic9{CeLTP&bhlwxhdWPuL?20?0$`fG(>@+TIu=!1ZQ|F;b z{{>}7m6TxNTuGnty+%2KibVbM%~+iK`UP1G5}9!EY3yHiN2ad9n$Fa?D-~_e5B2#S zf(sKluUH>q-WKcg+g)kor87(u#p)gk^B@P9ijg~g8@eqs{iw|4+*T7~A`mfsxT)<*l+b4`OUJgPI$7m+OJp4ZJ$#b0Wvh%owkRhoEH#bx1Y!3DKiSy zw<^?AOxgt^AODs)5UonjteQ}8q*AS7mAzdODJBY%GSP-jl1uWApuY3kp)|jh$07El z4w|JtS$yW6Q2&WY%14xJ5u}j3^|b1RY!hp-KH8V6#kRk3{{M;$2rUhWCbgtEW~&xKz%2#->vg=Xa+@ zY?V!I4FrfAkn*T`EZ=SgPf`G`=dl~m7X6m^?BB3tV9ZQ6^g|Wl@1uHod=_JQ1>ASe ztkh23L(VJ;MAzU!k3++fU&le{i{Kq;v?JYL z=AgX4#3mU45XNJIJ40=Zjd)OsDARCKJ!I4cn@~tBK!g{6JbcaunQol(F^CMC@l|xr z*uL%|Q$JdNmMRL?0&%5y%rX-4%EWT^!e6|~cq4Oroy24$nSmUTH4QZjp^v}I*N*41VRv?vqUuv)iHR5sH zTOuE5&Orlj(dQ#8tD!#NKCLVlrd;YmV4EO`ww$9H_aq_H&`P`o?Ew%e+LDdRZg1J3 z*PG{^i>Ff;=rvTQo{Y0Ox1?YMluA0=oVz11CotBF8?>3x0oYW0(h?<-mNAremV6`R z0^T}hN>O@!kTVLi09H-2zE14@>>}e6IeUC~xEPe)Fi^%VDE-2bs2!alSXM^;j!M|A zzHyhIAttYn?hJZ-JoWx{jzdeAiMFl&v`jGgX*YFBEL0>WUZgRE27Azl`2~Bx39GVY2hEfS^_FlGT{VF*oDtn+_!XwF=PVO$%y(-)tpQ|KO2% zy@B=iy-r)Ll-0H#8GJb#UF7>QWuek?=nj#x_B=QDKzuhS#CFz*@O1evy6EK9#K;3o z6Urp4{DF7M- zH12+X#FxE8?HejPaOS{5((BP#YVIsy8nt+2%r$i)ZOZP^z;O>1BXFA!e#+lEQ*%k< z38af=Oka^|0Hmt(HS`rZIJCI_Hb)SES6It`<(ng@&wY+s9DhGh{(1F$#JuV>%wu;L zSZMW6@pq^&h6#bNc)nA6{s(pzPp8r&rGfw+72(YP&){l)*s1YL zMFxL^F#o*1m&>Y;sbXW5EW7*Vo%$CPhro~Q0@TnSkOPz=ak5LGUx@ljdHyy_{&_88 z^rzPWY`VPdHAaF<`#Q&tGGHL&xIy{UwK{5ct?0Kzs8y><~Ce@QwVx{328WQ8Lr?zW}$)*7ta8 zy{Cr2Z`-Hii@@vt%Yf*Ch;DN1|JL6Ac~v>RM~nYI&I5$6;YWd$ZK0?p#c!SC`-@;` zY>+FD{LcmeHPI2A^1!gLuy6D8)NefZYXO3S4$D4;mR!_3i#)ZDW(tAfrbH&@MH?L2%`>b8;9EC@Gt$^a+B@ z|3bpj?)}sdZw_hu@uIfL+aKoWo5}R+pMQb8K=7laj0`vFD}+NbO}(|!c4lFLMkgDX z>#rGdLd0d$e6dc!FUO^4TI;r(LcxfrG$5Z}T8{gWp;WvMsCa@$!;Pkg|H4PmRXAxQ)|5%h*jgWt5+PONreoY0PINad@v#C>D z)x9jmQTYqI|2)T3R904=j)y$Oj3_@u(AI+xhkh**j1`-%WWJ+C_e99^&>Z-51MvwC zf&*Mo+PBJT*2q7}2VuHD1acJ-M}n#z6S3M#4fun_)Wl6Uq}sw_RWaXg)(om-rus(X z)BR0QMuJiHAoAPv^yXd>$NpTC*O~W;2`m`Lzu2mG9CJBq-?-j|r7Q);2Q}E8Z-Ngm zX6+D$R0`WQET_lgAquR5Q!}5LtZg7luQYF!dmdQ~r&fv}$fWz{_uTtE`}sz4u4Y7l zfvC8aC_;2Y8?jpTkx;5!Wq^<*gMO(5%SN%LT;36|p0& z_vWIJ0~DSnC|_5R1I!W)%Z3y+gD@NNOwT_*n{}DqicGKed>2oF`rIpvAOl@;{@1nu ziyzhc-Zisbrk&AdW#xR!6!ij>&0$KXAJH;jas%VAad14-^lR+vOke>Ix$Hxuomvh0 zvzS{Mi;Kl-K6W9JGwq_ukCwH?(A`;0mEGXvET12&P}AguRhR-*#FpRO zh7c1+kPIPlyT>k^Y){?@fmWM0Hwz?;$YjV!@{}{(7`DD;OEu55pM7rAWjOR3L{!&k z-`{r>@V#xE#K8Tax!NXt(&h-SvW^uGM4D~`i2u!iQb7GoOq#>DD>68+&$I;Zk2C>( z=KZdb2MZJBmm2SQMyNGzu}E|pM;?ej-*O)l%kcyeT(CLcX{zzU`u>3>!GhoF2s{ZO z#zQV7^X~RO=l4D0w|`Q0>F58hT^Sg^j!3zmL%||`H9b80!vwTG$iILsj;N26Rd)Gknj>=t2wG?v0M86YIvOQW$`712ypR0s;=p-bs?*?JnFtyG9hY#FdSr zbjn#yY`M`982ZXbvo5wDp?&;VVgNemz66q@}*q%?9@e6P&(nbdHqf{i4`@>!iL6HJg3j)8dHpM`- zZFU-oHxHPOKIhQ{a%s|xj={1&rBnhg5~)l=%f8Ip#P;9?BtX5|))^--b1ssb>BsVs#E#k#91tox>DIRx^Sa!BfdSll0cmNjkA`X@h|yALgjibfCBsakd2a?>nwX+kHEr49u0N2YNTHASe-sUa2DI+PPa1eY^h5eCQ~W5^9~U)Q=nRla2A+k zF}qIn2uvb565S+J{@W$B=!6V1n_AqwygnL+gi$}p45NvjFE{I6hcbv5HH}^ckEbMO zmr4eS%4L0G^}XIHSeIZ{-a%wmbT<&Fd;^;9V4|3sFFG7)mki@yZkPG zy0>gA^Q=_<5`oaxSi&CP-o@S{R)Ggl;K2Zd+Wi7C%8-`p{uXR;M8WTCg4Am(3a@x= zz9|^;mxnFf0c&RPVCX)>bFd)OXU5WL_%rxNz(?(J?yaekRwPyEa_7wineg3Z>D?Bb z6~FNpgj7a?&XrltN`SXk$wPw@{e1ngrPXp{NL%|0Z)D{MFcqM5CNTjvZ3N-+{xNsS z0q`%}xg!l8x4+8Xz9Zbd0(O5dZ%W87=XfbI^*~w50wo_TS8S+4_ zCz*w0pHJBsbu`IWn+tI81?dpJ8#;KadqrsaZ3xg}Ja`Y^0^K1(lpKJEv5hcsBrYBS zhhUCNNZiv$kE4CMvOBlB5IPe?Gf0qt;b~VVt%+-9w_s((pbd5*PY<@1iOS*!x{ix| z7@lGI2DN#&d-D;Md&-B2`$!tuRT z)h%D*_l$8blHnfiK8~@R_ODuTE%_j>Y;d(0fOp+%hbWO2Ck|ws55Zodjv&)4)qw=@2vwYhhEw>4hQ2hBclZgfL%ZUwo@mEf8agE)iq?0n*dOM;r zsSu^;+wac1{Zy!l{FLe z%;W@qFB5)8gD3qHh|TirmK7vO@(tEs)8o>uR10{N>HXcZ#FYDjH!SCv^SSj#{n@K# zh2g2@pPO{ToJafG`LUaP{N`FtU+r=&enu$KBU`>1Rd?U@xq_tF49%?0e+-r|ze0T% z4=W)PAan9q-p4)cd+JE2yP5M#-^M{Aa;F3gfK`)+HP5}*o4l7}x+O1S+{HFmSyxOK z)?&|0tyk-Z5_rrz)cTb?x#Ff~YCbm5ycvJ7@QX66h7ng}5>Vbg3TgK5C1bF9DrIy0 zk*cr`;E-_jmM7%-Mr5naaK~p+rQKAOrX}*&v}l_1h_edPG|{!4oM0TI>iPNkI@xRs zFO(I?-w)3>46RxmMwmf_iz4f4C{Zt<{70eSznQYK_wo60CWD0n7dWYnTR>&i zRPswMjcUq@h3&KjL_JmUoo<=MG8~*0G`heS3^|A}p7;MI7^yI#F6*}D5@`nys#$?L zi|y|!yE6h4h@b9>vwbDG^#?!+_uG?9QvD*58%J0_{mZ~@6{4kutz$f{t8fF=G}N{bAVMwlzQ ze2JKU@S|eF5mvT=#&P=pcJxa=bnhu{T7$Xmf5R>R{L3nWwZ=$F{I?DC&yeUT{oBovz>w9F`;&aNG46_DbxM&GA?F zO8h_91o=I&sHjcT@V7P62}cOQ|9$6bOfejb+Tx(8xVMF0y?>LNvY}rTLfwGE`rq1V zk;xIPH&x|(RQX>Qvll{Y`kFB`|JC;Ea|9U^<&O^jf5@1&;SzMp(uGF)=<eip&!YWEwQM~FR zM66bj98+<&hRvH`F>|YLOBc`c`u6(7bYgH6Dk4%^jphgyJFdI93K^ffGUFyMW!LGN z(<>b7d&FKoTO?{dwsTR{A+O8R$r2aepQlT%$rImONju>1_{g&z0XOypAog8^mY5Q> zrIDX>{mm$IMo+1Z46x~VGL!pl!FSn-VckgtLBD*}B<@o0;sm)j0_0g0hGOV-9pMjh$mrt%2PxvL3ly+yUbG_ws zO&k{LHbM5bws^$EnoFZ=M&*~hp$!jFW68wO~3Ol;+QC-cNI)yrPxL7`$I&O3GAX1`yO z*`jVwJ1+#M1XO2Oy1F7bKXOk8@l!DaU?>^d?%L5#hWaqizRPY)V{bA*mEK*MSSGfI zK=)u-oh_uBAfI{Ua{}Q_wUo^`j?bqe21}9Du2#S&s0JL6`FKT6`I8WfMqo7G=4Yx!z)=C*;y`IJ1g93 zY3idN7-uxI)t)Cg`y0Neu?X0*c2(#H8UeE_;(lh4$I6xL9EjxN0T5ow+Q1gAH06{R zu<7{h>WF_TnJ#yGK{kFC$E0|=JV4(&L1Y3UBirF$YjjlR{8ZH3yhM;=4a{GN>v2-A zU{w+<;FOzAc`mgQMUKZC=LPkMtMpxLd(`9{&Oi12`{z>gSzb=+%-)hwq7D}Q@zzTB z1+7dj8(`PQLoKw3>b^cq{&{9LG!!ybMdp>otQ+uMc2*2+*CX(Ueqp&8r|K_B@D4fQ zk{R}@(YPmQ&V5nZE_T-k@iFGJ<2M8H`mD#P-KlQx?HMA3m7G(gl=wT&iJ(UB#Od{wEgzn=wj^V6taYoi`&N z7&k^HQT=GGd}e_cH#j6@9b2F;Knhbfxj%vai~#Br9T^#vy8gtlB%QQyP~#$80^nc0 zwmeue_w_m*8lTdu!hPc^;9JanjF-AmEktD`;K-!$**^8wfN(T^?m>J}wP%2rr`Y9j z^wMU|aH^WN<)*nsyVn;H?C3=tI58_&8mTQ%o8m!OFHH{WT1Gq;vOL4Wm1TH8lQzlj zW%iA%RFJ1uT}ZD(PovezI=2Jwu!n*|A;p6NBI^`o2d#nuGWCSK+;D9GOOi@+$bd?% zSI!aT?urV!&pqBR}Y*9_&QFz^2Wa zgujKC%6}4Q8P&4Lh7z|j@eD2mY>(4EwLx~JZ$&k88I53@K{+K;#!J?v@Mz)zuezSS z6+N~Y<0&8?;sDsPf}tpv16Otw-;4{3GIc4Z-p<|Z=~&LtjIb&C)aNu&6eYt@CeLY0qoPNmGiSW7;|11%{^|s8IFz|{ z(lbcm8z@jQ%MyyKRS~=0IR{W@9m11C4RzSX8Mo+gt#ZHyL&NtdXFxrVz9hSaBs z7-Re^iJ~0e0$=%$683{-Pr~)6gTBf|PXVgb0j3rY-9Amlk6D6glPwFNT(B>7b)8JF zp|2xnCb$sz;vfbdwtR>ObfmEcnBSv5r>SlYTH2%k+< zQNy*m`b%RA(e1YTox_j0a;BZ>CUNiE@$RL83w4e_T~=QkV;O(j%3ZT`DherWOBu&# z9Z#-DTqLJ^!jyUg=;2E@(LN4vRSvk=GR2bi-AUP0sd zMfr9nf*DG4@T3m70lA!o9d9PmBuivgczLx)ft!|Ma%0(M>%4>wDvl&L#m=Y}ZV8y` zaf+#yPQ-~=n)3PX1*cHc&NDs)Co{)Q(`5o+3b%`GH~Y6C zdx8Gh4~=9a)<~7TyR{*EXLDFBzI!d#2J`T}>zOp3xuwv98Ea=OOc@@72J52$us>qB z3g7WEOUYKQzzWR%i6Afcp>9Ne6?20~rcR@k@g# z5ZtXdx;e7OJCXb-!jb};davI>%rzH_dYZCk#$&E>n`N)mZslTNowgYc#!VsPFcjSL z6uUYOFEQvAgPka74|#f8ql{+T6(L{MLa%f>tpMG92DImE zQXlKJ&x=mN%3(~6RC}{celvdaD(j<3*MgO zPTtUw4cVJ-Fgse({#mp&ZD-cA?gAYgX-;do?&utOR|<`-ObCx1y3ShFf_$`HuXkTzqG?xtsXr^Nx9;t0+%# zR*de*-SxKefYVWNe_B_Uj61&lv>m)B@nowDiHC>n|Ga8Bsl%OqH&iigep}8koHF!nYaq6>OG0vptJI9r`3|&# zRhT{@o20+e*gU>&N7=xYebbX#**2g&fLCSq#-}|DA0%hHjTSDx3twxwYs#!2>6^M9 zll3igtG8#f0W72%c&tg=qQHGJM17z37Y+9-_}x~0->>xb z5t3*Im+m{o)1FfEoWTym9Ksf1o!xkpvVnq3NH=LuI2nUs6?d4hu9qso6Vj9H2$<@4 z*D6B`{FY^)`=vyH_abL!iN)0PWsh?$@ty$$oKtEL!^cL%{LDiK;0iwNO(6b@(dw3Q z?iHLTK#dTGf{2Ha7FF&vOE#=sczWTEc84byZ4VsF@+ol2`hp_J=UX5t8;2r~Fq9Ae zvTHiKp*a#KhzRy!vlYmpe(q#ZgHIYWX? zgpW#t$#W9*o_WJJDJxkqRgt`X(T3+m*91~cjD>ptNpRK^yuMKFgWzIhI(F5sD)?Me zi?a=8HO@eKP&`KSY=E}Ix0#JE7_M6N`vPjd(Bs`IFJ^6?)&TJPV*<_`PZZr}LY|j} zWuShoqmL=FGmR68B^msnw#Ly3<9&cB>MWmG44C#Az?wmX+f8+GI-|mU_yvEc6%31X zI5_gl%aOAm4h$0^Dwnb9!&zXnx|hBnHi~x`{-Kg+#t{SIUo_}ZtzT}1 znpQe@b2vPN8sh4DjaXEntXOx<1iL_!cuL&iGnOID4pF?sbv>sB_jF651^eYu=fUL%jX7nbjl&D;?+t@v8Y z{g7IUE%Q#AgtmnzEVLeWIdQ-&$^n(B#ly3QM-p>}sk8Vd@d0({Am@g1kizzBVdWQ@ zt2UC+9l1IWXP%io@6K+A<}FgKO7*H8CEcP3d#%^KailO{0L3kIHbFuATIaD*!A{YDYWX6UaQdVVEL&g6q9Is4e@(iL%@?(5IEv(w*OV z0cdq5#t(81^gJsDt3tW8evnSbBE$7Ox$#C4lij;_e4uAPc~(-&yLAM-4)jwg&Qe}9 zJyV>S7F%DZs401Ce0VFPTae1~!BNzEzxE8&^<(-dZ!oNKVi=MTdNNdelbZrB=0(wt4hs$GF~1RfFM5uTUJGQtYdp2@J7 zX9Kdydjvt_ej2P}dcrD-{U_L_FKs1f&x;0J#Fgyw{phnD^CZ>! z0Bkcv@^uS{jd#cHU<}R!HcWMMU747o4XHW#j4aQ;2BL12VA%P|$1vW-2YKi7m+WPa zw^>HT3Q=I?nc+5`sHnP_B@>7#$F_gH9g#kW@M6UZ-q4+v1gPPiaQp!brKd^WBOgN) zaPSZWN_kZprusxV#~g&uei>dowgE6b-Q}@!es+^|c=niS-E?)e>B@bMP9J`nANzp1 z+;_y7oaP7Sz&8IB--ooxVx<^mIP~Z9+i@{VUggouP2uSyLYc>J(Sn7AP|dR8>+)L5 zj*cp_E}>HEKnCi=(<;G>sAOk{;j=n3U&1y^p+_4=lgl=@>tI1(PA zoM;(&<1i28`qK2NNd<_$qcFNAtTzUO!o-g!_*37a?8O=eH@c4q1(O}txC~(eGf$#Y zK_}Kb(}0Jl(K3}vM9r6`l3{*X78M{iR6?Fu$!Jg8q;D6gYd&Z~?`5$Sb5Qf^|6vtzX&9EO8SH`pp}iKrhz@g-u5(7jYmWGV2#d8o); zYbh_-zL-=TN?CEe>F$xHi}S=`OSvVr+`aUhoo-h#Zd}O3Q()-wc+RsZwTIhSvtFGd zN#6;F9~as&cc6PUrYR?LuXV-b?VpQ(j(GEqXJZ%WJ7&SG&Rp;1wu{A-;nPN}9A|8F z1+M-;tb{GlB^zu!6VHz=p_LRxk;9?iB+r#g5?i z`-gGCE&}9*_=9Id2Y5g#>qVmiAv|^Ih8YtA_bsY*#hRh|S%nWb$YY*`) z=wUi9h~z1rTlg9d(^mg%8N61+k`2jYbh;~$?jsxfgoVfyQd@Le^oK!tYHBzmh4aSX zVh)X2SzDY_=!^FE((C?D@DS07na$m`z{YRgo=e#lKA#L#^i`&bIv~x7mhjMWSsjYk~`3A5Izu~Ko+7sxF3C? za{FO~E|rtjJLs>qG)>u=yLZJgF?dJvVrltI2V@TgYykSkK%+dG(TCQn1j$$zygR%6Y!~>2*}l>x13FH5NqG|s?M$v3?&5{uJ|)e;-gr>K zPW}Vy197IO(hMv5HH(>BDl!oh&3ks?M{n8pnxOrDM~YR>Z)Uj|$@z=K%>H6vQ`NXi zvQ;8kx#<4Eq$1wu-v|QP)QnSwbZ$B?Oq~~1j~~Ls5>SFgE-ceH{P&^XDheL~XdS^vF_y;CPlBY{ELJc$N^Cr4Nd0lHa{b~*iC#~FcNK%HH zPq)orAT5L;^!5SiF}hd|o=Qj#BTWp_KvR#h(1Qam4kvUlmu{6cp|gJaa9)J$hSi&B zZa)|j6Nal7yN;e?8?D9Kdy$Rw$>O_%MPh93q-6=h$-+E4w!IMW{p*wnL>snBg9g+2Yb;Hw1kIb*~asUK!@hPRM2Do&x184vWCbc!zmo}siH&t_h@ zGmm;CE+=H~RM5UWnEAjY&y!(v+oc{r;MYB8$$gdhDl#ua^lpbO+LKpjPJ%_^!*UTW z++%9Y#&n+P+P)AaeU6`Z9Zmmf2c4aEe5|6{@3aWf|DT1ucF+9UhS#-s-jf1Ivdh_aRCsWR^_G!;Fbl z=W@Y9{-fvnx$}N5>4VSn$4u?6Y$)$8^T|PjUn0I4?VGdQeJy_eoUbCD>CSH>p_qcK z$wTwt%W10G3vvQ_<|*c;2Cp-(Pv24eQ@}|aaSR#IQ#V^)^$EQcU26=eXJz^;N7Bd?VXOt(XO%Q-PLW9Y`xsNI~cxO#1w|#UB9xL;24k=0FXKN`i-{NVL`K&A>D9=#k2*wqlB^HVMBr4 zo4;V8+^-}s*09m_9Zv^N$+v<~&;s6bcc*pAKV_>3=!$z5%q%NFq*B66*vBa&JcP9s zH%O2NBL)2AoH01+!&*4f6lIH}(C`AU`D-=`aQq*#-ZCJrXz3Qj-D#k43l@UA6C8p= zaQ7g=L*uSNL*woc+=9EiyIbS#K74QH&CI*^*ZFb!>|M3CRi9I}R;!WwOOM{*U!3zO z^s(`{UzS`XQsA`9hqGt? zMDr3cb%xiowgJhYDLL7ovIu3x5%k*pP;9w!n?dW3(pc{giA3vR?HtTL$JI)aer)sJ zPpto5c^l|asd-x_y+OTqiFu9TOn3don|i6R3{)!?^e6JN7nRWekH-eu{J;RZ?S`9a z2p%;F9q-U043QgFFO|xQ9~QUUerEx=3cq@E06ECG_z{petFyUC3)o6lHQo$2S>K6P=W09G z+3|2=+sO$lrF3QAno|?t(seMmGwZ(<#@Ybk_ty1gw-s0H-7o!Ej~os0N_Q_o)hOau z-oyQTQfU5fJrSQVMmrw544>Qv(Wf7Jo;x_CN3thaz=k;wa8`K*Aq6(`-^PsfdwI-_ zk91c8?wXni*yV=2<|<^;>P4KH)C+$uiNkS^{gh2(x!c*G23|Z=-Q!YDP?*6;hZ~h7 zBY#wqZMpxezfd&F-oe`@wWsmNh;M7&Ccu9T6>679vGp`%7e}UH`j>2M_N9Q@Bk4BU zrch3D8J=Q&(@|HFqAIo98u{DKhSzg}ZzvA}{8+F`;?5`MFt%$e%hoe_VIbT!{4i<@ z?nLYE^Xk%ZOzuV3z_iz)6=fy9q-{xg;7q`KAHy0 z+wYvQAYrmerj z7L_|HWgLvg2wYKe}f(GzqyaG~4`fduf6K z)FlQf!*xgAb)~JC2Bi3j9GlzMi;WPyXv#HmTh9IMWw^>fBBmKu2 z1201EbTqn<^OWZ{8tBuBXQW|M`sZ;1F9`FxfzTO^L_lFF%)ds;oHQ`T$(#hp*1vOJ zMZtuo#4Cd4H~1n+YGX&Ta~TZ{>-XIdOrU{i5*E3=kw4-J0SpgV!|9d`y4AYJT^>zi z(2w!j)bQb8D%BL(9A?MrbM#^65%h#G`OxbTno>iWA3ST)N%9NRfjDp#Y?xJlMBiFp zo<}839yVSAu?K+Ww-E_ZQfWy9`(W)yr9@-qt};yeU2ktUFZ1X*^hmL%0`jXYCW3~= zxYMS$p^ecNUZq0YcCYDJ{c*E2i=wD6CR{{$Gz*PgSVq6?z2x-0M8$sbr?hAN!2HGh zF!B`heL8Qt(s5Bin|y$`D5{td6OcpBCK9Q`r?m$0ghYCY6`nK=2%1~2(?k<&JR zP8SAeXry}83=<-z4E@{PczY93_?hZqHCNy>$n-?`*m7x(&};52GkMO+N=U6w`<{Yo zD%xOFF^r+;@DG)P)|>gCPvY@m(xt(N3G$y1=MwR;Zi_6 za+*NDxNfb`P(N+P@G$SvVoRU#hz@`9^!J2I<$h0mPs`ZtR}-fJ8RJs?2-<*<)6Z}K z_i;H+F3wO=+CkF`t!R@m7nMM^mXqCwynwvz_j*h^%^;$#iNTAmqwcTc{J#Tv z+-Brs7{$_)jBuo(*jujQXdAEn-~m-XS8BTc2qALqqsGjC+3~l;g#I5SrZQpr_0 zSh@;Ojkg)6vYn(i@O0Y)JGmwrNa6ksMxae|>my6Q z!h@UtRXiZ98AF2OSgmvH5bFblb%3d(e1J9(~ zMtj}ygS6til?CObXb)5A9eAaZYk!qLPdR)V8wGGG!1SvhIt&5$02+W6cvSq7iYKaM z$Ml5o7#m8Cr(vZ$A40Vw7pg=n_&r_Na_pjR1a>=>1PtmXm-T6~Ata+n`pEoY9EP&b zO-Iup>*Tk;*8OkFLPd|qhX^;E+s#vYsn_DpLtG_UlDFz1V9@tHV*F3{s))%w4cbci zV%^f&1SE79iE)bOqYXp*)lcK8m4l1&zApBEGA2Fpf}0)lFZzHP9&P-1<_XO6>Ki=GIB9o_c~;hh2Kh0TIPhZp&0rO8cur#o@FV8l$wVUL;y?USRVg)Ru# zlF(z|sMEvJi|sJg_HHU44b?V~m=k`_pGLz4?bwE~Z7yY%Pd=Y6kIIBUlksZs7fSD? zi5eIABH`WPWv}*J7>(yY`XORUAFI7_yWia`wVtFB-XUcO@QeWPm%lFIXcbUnq9nNpTovd_*eT7o6*@DiAfMU`uSluMGfQt|4DpZ)R2TErF zYID1VNv2DcSCRIASIsVfj)5NA~T^-TZ zWv?FZ#=>E(o9_EAToC_sP^1R;saiGxE3I7jdcZZTrC8DYveaJEgvJw~Q8W+4IRk5y z0?bpJBk!}20v$0m=74LYL%nW*^m0W7yWU#5bPD5k{6NmWK*o zP5Bw@{sPSCYKTX*Sin?ooUI*kn%fT&Zbl-&E-|dRf%5Xaw2Z*^C>cFAVa@+`(}bU3(`Q6QzT0O86;Bm>27}E%NSY#Qss;^e>f~ULmk~WK8<2lf_W|nV2f!BT+b5ovc1O42ugKtdp4sry+ z<4q!`)m_OZz64UQ#)RdQsErOVlyo~e%DqCAc@1OhM2arkS_ZD80D@_4KAM;(B8JE$ zB-H0lt#6Y^Y1Vu~k*`!`zjXxXfYp;T45WWLUrZ;JW%joK^sK!Po1P#jmq8$_Fdts{ z%OkJ^=m}^{4jWWKOj}-Bsdak%Ea|qSrYaa}8)3;Z`;)<`q$(?@4M1+|tNCn_m@>fs zIzOt3_Jt}ueNoz3P{> zUCfVs{{CyB54B*fCAuR0ZFC^l%D)a%L2P%ELpOGONGu)|B2jB}HD*k7WD(s?3xPDI zA|?n0^AppqQtp1PSpMfTx}UYLioo7gO#Ah}09UGYgF=xr@cB%5`-(IBwrEv?b)IS%;UpOJUcdk{?#F!sT49$;T@{8^4DH!qHU?k!7 z7FC320#+;{DwpItFLpm-925|0T|@9}*F(3tA4$lv5;0BG_kG%almp{>w+Y=8@2rVx zFUFGoealbFQ+|Ai8GD6&Uq{yN)Jq=42=oy zop8qXO-ZJ?e*?-Mn$p;elGh6OUBKn#%LH)g?b5S<75jvh54d5f+iv`L`*=5F8JRla zI(zlO5X~)#-e;O}H(>;|4X@K~n{Ybz5VP@Wb1)hHrQv{A?~WQ2&Sm{gCJV5mimuDv8gu61tzQ|C@?- zExMJu?g@1+#Ze=&1mFDxvP3fwIH!Q$z1BYn8ie zF^3dJZfTJcs&Qc&PO5VQ{CXzG|3(UVtHYDjHk0FXuO?w*bW$g5>|245QSXiZv9}nI znP+Pt7;9Q_13=2r0TiRZ6U+-w|0Vc4KQVfi``RBh+4TzIS$X7>v6^2mE_B1xQdv?Q zL+u?(Irc4(}P8lx4o z!Kj5Rq+TT*U+eFl@yeh#aU`07>_u&TH~p1{|1d{OtV zvg5IXA8p5dr}ke=ULwj-D{VzuO3(Zlhmz2Ts0Vgp_?HXRhqHfI&bHZx^Gp2#=N!wg z7d!X$TW^FM0es5Fm1Y>ypF|!HctTxG^SP8Zw66z|s1T#@&4AJ4hVKItrDoi8d^Jh2 zZKfalr@rUVZq=+uKV_BjxGDtGK*6}Ivi&x9zB)IVNC5H4#g)7YiJZM<38SRCKUxim zuVc@ju6NpDzc^jS{JR-y-m2K)uqm>RoB?z3xa$oR<&NtIhdU# z_n7QzjR}=_i*T3TfP~VzE;qJ&W@N$seRb|g^wQy~MpU5C!|NA!52S2>v#LmAmJOjz zyOGhQZGf(;3+php6sf@)2AcpHDuTJ)QJ?RlJ~Gwof9It+KN67^v&lo!pePcMEl&BtsFqvPeh0Ak11W9Tb9jR z^ij5(WxwFKMIz?E5aF@d8R00|0Yqf5OD74I23u|EMM3LGxCaZ<({~!Bu6cGJDw5ct z>HG8Xf+Z&Yb^~A_A?=RC2EoFr=h>*I)bRu<)afNW?|k}0g1LaA_KUXDmg(2ok##r# ze}50ck`-@1F1+lmY|(`S34?T<*uD{Fxf_(#my-IUO{7b;P0hg$Bm)|0Ib3l`bs{Lb;b?1A;}o)uid z%C3P-$B0D68)OK4FO0eeN~t}w4KJ4SdcPD?o_R%TXYYr7zRfHBTHB;BF25!L5ZXv~U-@>O4;FG(Qd zs!72tpw3!c1sN-%S7OZX8;>95d5(dCV@aq{%=KxBjO?bFL76Z2j$%>vyrToS|dW=uiEH=W*`3zf{Zf}(o zery!CpA$mhUy|xoD}}jx?e?pJ-*U$u)EA%ZquUii3Dgbw9J8?g(7Um+018th`eSkj z+gPu*se-Z7^KTr{ZwV3>eMT4dz<+g6Uca9@&a@?eUaz!eGym=_ejtUQ^Xl2m{TZoO ztT(%_%7)?akwOq0TciPY&*xF9KzOH8Dq= zFoOB-mOv0zKdBZ)GHqq7$)KP^Gw!uv7wp7mCE@|yF%FQjB9L(kZ~6r*cf;o{w7S&X zLp-Gf9d#raR=w0Wn zr9VfhS2IQ=Q?}SJ41Ro?Tv9jtvXsMZB0ecObzWb`M!3*f>e#BnD_FEHhK~p|@=^_B zSH(ogO#0yOO~21p>!xc>pA_HqxvR};%Z_+g^j)4M8$|qM8;+Ph6kNPx0Nutd%U&Fw zmTfd?v=~|Buqk?YG|xKeQwi9N1DyBk`mxOw8qF;r4B!^Ma#6d_9hW+uloG4D7=I|Y z~0A!Nx_8BYb&*5TX~ekV}yD#Qb} z(dM(0@jBo+oeDzXzgrtsET(WRP7i&!Ph*4EelX!hFtA?8ia#A(4P-ns5PTH;Wh6=LVLSsj(Ag(xl_E)CNp1@(;&b)oi$tK$wX zcV#8=mt||X4^0iXdvOnq1;`Qk%MAEyCwiKryyW{0`N7$8E4e8bht^-kYog;Pn^%Eh zGGiMul0jrM?Mg`fSy}@*HU(*(!o(5CWkfB}!d2T7a3L5c*G-n&=>MWOYOF**-b6E7o$(h2>v=gG|S$#s86Te%(M-fj)=Kb&U+A&0Q zRhkbQDfX^G{n_dLW#GLW5;i7L=Se*uN5##vy;!)N9M(9eyINI3P(6AZSg`$aGfKmA zqI=cN_VeV1nqg#VHiP)rEvdP-CTH)%POl##v>a1O^ zGwl0K?T|;k88Q|n+@nB5o_73j&0dc!%3vAz$=85L8j578_;e2}8Q%Gy_7vsoYJQk#Kk7{+-v9T~=^FD9iY&YWo}fse|JMWm`{GZG z>MwP-*l6r*I^`GB|IyU{zVko7Yh=K7=z$cb|01vZKic!7W_88B5aL#I``K#wAAR{z zPfEZEn#@Qzv|0ZjUHwmk#pKW%rfMP3*7b@A|NOfGQZVPcjIrrA~)D2HU|K+&@EM=9;(x0lj>qHx2 zs+dK+YlaJq|F#T-ZAEWVYjW5;sgcUP{_pia-TDB296OoYbQ_VCmsiWJfULTNn7yOx zKL*DEE;ZawWS}tRz+>&dEMYarz6cuwXAqqy{|B0zNV5?ilcAn!Z-MXsogn`kGqB{x zB4rTZT4(zYq(6oZ51Pl;T5`D3`M=Y?~Thv2gnTo5laPk!twRF^lp`C703vWxi-RQlqgNqpDBFfB7u0 z4YyjAQlqv*`k&_iRD^qJ+)r~}_n!R^6gw4S{G@Gvdf+(x*Qz-t{{W-no$m(wKS!4b z024)Wzxqp@lC=+EX1YNDjKK0&vplE6JFrc$n%TqcKb-X^hWYS^(~;=gtA5UG10(p! ztu(=(_8({U_bg%0&o?)EM1NfzszmgTnt+NK!r0@P0=NhWw7y>g17Wwe3sCPCRyit_;$&=3K$$w+ehC{TZw|Iga zU=WkVOH`rAT5j=--gd>4QsA2{LL%Vv>Efs$Ky;guPKlI<%zaNzX>Wk|gw!TjnUd;dMH&?wA+CxK_ zGPz?003QU&TE{%{`)tcJeu4jpHkM1ssoSQD#Py%)(ltVtaWh0KUkY6LZ**}tSofbX z&r<4|?6;L^>#RRmPY&}zyL^|!;Sd$vhyeX`)0UC*)Y8p>C|<%Rx*><+0>i`9x3{;d>k*|MS;_N@MMWt-8W!IE*{18F&|Hor zW_>h6uUlFL8U2!wYGVr~`5(2sUj@W(oOru)R;D9w|138u z9A0)+2zjOs`HDv|YN%qn;;Sn#NtTJ%*Pe71Th2=%ge6PR&z{moI9MMiivm6;j+)^zhDEOKnbj>7$_^eSt9+g!5Hl5$K zd%8}eLJL<%M<=ws@?PQFw{MO2XNYEGQD2H$Z>5Qhb(Xnulh^+0DvmQSblR<;V@V^q3|_pnmA>o6U|QSu)p!-f;(~+-6AH%5m)d zwjQlIOkO9n7)!M?Fj5t}Nbf>o_|QlGZrxc>WwhQsNtH9n!a^W-^?1GiB??hIxMPW9 zU#mBm#GzFJ2}W?eHTTO{Cf7puhv;g)Z$<}b9`2X4bSRvXbYuRYl=2fuS64Tg*0iWi zh)7dH{a^-9lEh*(nQ*x`zc!eg+3+kb^tEhx+7SgOjKf@FG?{NCXdbHLo4ZhvBi7fi zRb%OFBmFC?WTyYxZ!%f=r|^#~&{jG0c`02OBzN-dIV{H&zxQhPd_6RDQ4D^I-S@hU zxN|rVIqQ1(F_Wz8976p{vrhtz2GPVDGBSXSX67|zS-||}PpKrkjVG~wQph;%c8NyQ zxR9F6Qc0t`=sp&?=uaNI$D@g$mnyn2Z3VyiCl?MHPZ)Ygv&;O2vMnn;r8?#N#@asjn>(nY5v+BbWQEK`7j<$C+Xk@~@Gg znFeN_P2Wx->jx*h>Mq-Mt|zlW9a|vk@lOv#&hIsEhK->0e$!W+J4rhZ1e6=>d+HmT zG5K28!TZPwi1ZD+?>bd`P5147LNvR6@)S1;Ce2(9v3SwEmK?l%2-%IZr1O}E72a7{ zIfn66j*sE@PyQR7$bl&^8F%-Xi%*tgVz8q;aZ3hcZl&|Q_Y*h@vwu6qcIXtzFlQvh z1GmWum@^vqAu_V?=fAtrmyM#jV{l%l$*ug^ZU*DJKbxVgB6>Tpfcn}TEa#M_DG=LD@3H~DS|pK?1kdv#=a>AbQ7 z#}7F|Af&c4J{5em`-BQ=l_qK-I2~-#vtuOJ{Q8Z*tTW>yvo|&s|B|%^7c(vdlnX=T zh9Gg?+(S{&_Q4|K0DVJ1bXoi$HP;HEMaIK*H2c4yN% zi|#%7zSK;xgb@7*!(9h&m`?@)bFpriWj?_2h7~T)avz%{TG8-%;4;e&7`0KjZQ2`+ zrRzoJv-%stDFRO0%f&J>y^s`Y;2-KoOL6ltwpz93H?&f;8LB<9)ugkq?hbo&G z{8uC1S-x)z!xVq05UC9sja0On&4R~>3~FX96@&5yFh=6NVvu(^Gg!F+ot5`q*urW= zq>*SLEpPJz-D_@Z_T9L_zUOb1J#+&92w}gLG@HKa6HNrtlBnq~X&#*(31i(cz{hCz zcMI8QRwfbHez%IlVj-e~F`m&+3;jzq=U?2pZ+OZ&v89LnGw5vI&VCv6kwyFxW9vRm zW#KLkyDIWeX!~mm*SLPp@x|9t=c!y8 z<7*+^ZYoLYi*?dz-uBftj?sfm!tqRD(nKbGl{rm7K&i<=Wyh^kqxiM6n>z`x-ZL2X zIXlz+icgI~M&ae?IOE?^+GDfp=?9lqH~cqwEmGlm^H;uN7dSZb#?{&%&RVtBZODOE zv*{T2ZTEkXjp3g8=h!qN(xdW@{pwfd*YSTEHgvVdHXxxc8+Xhvc(#8it@zML-nAY$ zxi=~-lo@)qSaE#Lf(l{Hc{e=540f|vIB~e_c9#T@?^?#4_phH04kg0n2JQ@>1@4`Z}qQd^1`(a z54m^EcN^;xed&#eWyJ(B^0icZa9}}0S=HO6ZWe&SDs!X#d5pYZM4@Z>v2VaQr9yH^ z_NHe!mudcp^eWkYXY}Y8VzoChQ>tI+@WqLnD?TFMIsXI8WqVyN~Ga6*CXm zYqSb}QpVx2Yn*5|%^GZ3S+9DO;xmrijB=3n2bLPyzFtOcXs1n1SQ`3#5w7MHeA&ch zzgp?pH}oRHa5?4h&?%aiM}$U{FEextomzaVchk9#iMVGQ z5a@W2I1B8mvVJ5Q8*$S8Mj!PUa2Z~G_l9U6Id1yBjnB`6%eW6 z-f(|M&x?0$SSQn9Hq`x&_ZnCj{nu`u4)D>$|?mdfcts1 zfGffjHq}qF+@NV3{3ub{@H?sdo}T`Y{QRL4Felw0h$sBylJ?Nc&yl^!G#gWc9P{u} zs#K0%gE)VbYOWIli1h1`t9{+vxtFN?lh94XcQLBA!9}ykJp2-f=6O0M5|s6JVSnN# z+;R1E-fb~;zTfgIIUdQD3_NNQRe1A}bF}O=5eT91-)BdNgreFW6{tfeGm`u4ydHUCnSgdJcRkSJSi&Nvyju_OfW8Ci#O-Kn?r{# zG7o=cv!9d&#(N_>Jr}?_m=H=MV{IP?5;F|NeH6&r6Y86!k7`O>#f4_ppka_`0@Jg6 z?sB#|oAt9tqodr`8Q<_8Sq1Stpq)`}l)xxW!}dU9lDYtu2`%oQjSDVFAp7=D+AX5d z6zs$pj6xa0LT?v5qnp{$N|L{UcM@%zE0e%^IfH@DxDX7djl$4fqjZaFxObzBX$;dM z)}ld-d3aZG>e)8c8`$>xi@q1$7iVW|tH|ZFm7?Q+cZuyn{9m%asczz)yl?FQl|QG# zDU`f}fVO?&x`sgVubpH`^(I=od)**oe59)x6I-O}4`O-a+;e;11#Uy(+unvRa@WCd z&>^D(S>9M=t>-G&n>cZu6pIeeYge7490)Q+*c2e)%TH^Jk_0U9QWI265H7}rh!iW# zXmG5!YW5%F9t&0cH?dp9{!AtkUI+CMf~JWH@9P0^u_J2al)1l^^#x=7*Ox`-p>*WW ziS8;!iMk?QD`=m<(YxB;ZfPgR5Xn1;6NehbntD(Ngy@r^X=WY{jG>C)$}fCQ{$Fq zml=UK#a3d%<{xf{H6-RRpz6Ex+;|KhV}QZm`w(ggCW@gnxXgMxuvcIZ{o%E9s@WZ| zPr&$@T^ivgrAh&0av)Uqc*%}Y)VEqc@XdRa;P=H~&v5d`pB7TG1j;bg+imjqo=7k} z4mWTc2@ya6)(4ZLQ3{)uS)vmQTBn^gYu=O({s|I@c(X=+BfNs>w|PuMPQ@nN>#ytF zb6YUZleTNdT7!RoF=5482kplcuKMl_ohSdfi?fPUYhx`Yo8%uPa1e01sUnQ={ma+n zwfDz?AA3E%Tkc(DoAsoVum=e`hCp!T&cr*53CRGCErNbnD1=}y?1C1C)l!iLrtd!g zDb{J&qkAU>jo2ZT22+F=3)_#Dq0B8EL=N;eenIrVpzCjph-WAu#RS zo8INA7NC?Tiw zgH_U{CTmEh1FNVA5DEbB1+P9{uXJY#zH9csM<0;QQ-`2mH+h~X85c!no_ilF^)6Th zSKbny$V&HUjWUMa5C@Z{<}O--64PlmVMW9%zT&#Axi`4)pJTUCw$xmqq*ndII6>Zc z>%Zp4hk4-0VN559BZ%fUa4&CLntttmt*!5_yV?g)(i3&gf_g7|e(x=?MIqex z=+d5Wqvyisu>KwA^|h(Wmd7KVcKPv+$Hyp|!X^Hc+zy?CJd1QQINYFuU{r`;VbH9vq!L%rWc!}uIfg7S+K@=qn#;8{uncKT;RNeEO8h)?D~*S`xJY zLg*euwHwQ05#caN)^Sy_eyYtDe@l~A;l2t%H$H~FQp~mLoHUX^k^-XvX)?c|rM>VL zecKu=`lD^=O1YqlHIJkcB6UO<04v4sYmmiIc=`9pw+q!@OopTwt>J5Sc{WsB@B{IELu`{er9A`01bfEim8y>O#0K)%=xCj(;T1pp>?iEBpXU{ zt{<*;cAM&m4#$Ct*h7!FJpa5`fn_f5^!`WOMA)8~8_~(gZktUEdD37=0j_+U*^m7aA&<3bY)`ci@qu>*_`P0HRotW6h;jCtCVIgc?q zJL?&E0buW%r+iYsAtf{wtf|WWU?=TvHxH3KXk<=6b6?cFbPl$_nx5o8#%1J-ZF*a8p)fa z*ZfOC1gtd9mm&@l33%)LNIoK{L)(BSm`CvK@ZE#wV2-bYKC9j~0=UqiLDY7q>-PnhR1dH&@?95wjlnF;`2DL& zpVH|$hc8X|n3ZLcSai*S8SyYYN{cGwt&O@WZBY?_2iinW3L<%T5+Fn%C{7t243$s0 zV)|={3gJ6sox^X^SrU>?*<%r_H+Y%oLVuXiS&W4VXPTVl&b1ZM zd%gwt@7O!8{TO2mj&yC7YK0YtHO0~vgJWW;yd!-Wou;bw)QqJ2-LD+sSfShrtrtf; zO7}uvPOcgf{&(wyn%Ix?1hzYwjiM3?Dpfd#Z6eV*;*ojR&?!qL( zj;O`vO^#4M+NsLb&A_78F(=aN8l|=ve}YVBq_S%7L*V^K08m4x)WBu7$ZE-}#M39=c zZgf*|F5^s%3upT0cIf^QMwr&7uTrMmkVVM2C2|;JtwT?RDza?vn`Vk*7%U9zL9z>Z zWMNq}G>c*FQNSTe8FiIp2=*St=ODo6Z27fm3PFm|Wxxsu`=j-Mxs~Nl=%df`em~a7 z*I^xN$DTrbaDS_ml%Jv~BYHX$`LW;?dI3eSc3j$Yc5A+>*iqDSCmK>M4*RK!4iF8C zMGys9?7NL3%Aq7Kc(-w9sVKRIPD*@OiwXebyHClb_^PIUkvmz~Ciis*&)nY=8v_VM zFVm{&Jp8)XaO8p^c9_pj(Q6d3x-yj`f{g0uwDR8hLo8p6QVZLI6$s#^qLZ8m>UUm(jFp>knv8*$UTg1N;IAIedbkoJ~=Rrfm@r zWRROoB8j0RP3AwNb>hIo!<#rLBXS@a2I+Q_z*okx>vurzHklM*L^gQZE$xvE`euq)QrN}yU$EDUV#U#! zE%VEaNvL12*(Db-wv3bOh=ghT$_uT4IYEvrAw1o{oM=(=6IkyAOIAlz22Y^vi-vl3 z2~8^Q0sZ`nH3|m`HAt!;KtTGZ05M*;=J2N4`xhE9)SCb>dagh48R_;Uld{FYG|IHA zGum@cCMmzJlnf3858IxgQq1=?o8zp48nND2;aKd2f?R0tC@z99?eFhfIf>7b!_3&X z#&HXJa;iw%?RaOVQDP#Svcv!|TUF3oacUdy1;;^17?KpsDaZRL!40h4S4LpSBrO8s zf+@Xa%n#|ufS5%h>l6!{lbSQhsa&>5Nh*8^0A#eu%r!MPLD%Ny_dgZ0WEK!qUpo8W z!1nteXsr4mG(lAA`G>6K5qyWvNsCv>9tCIGKtfDGDMl3f2s}%}g2sb0ztcU#WeYg;OhM_>il=Wpe5;dd zne4XJ$DN@MPahESo{w78E8`PL`8SWk%pS!adg1Rp=4<9;)>LR?<8%`Bsz zbrf&oBy1L79p_I+0#-O=0CSn5G1O=MF4r&($q}#&NA<)g`bT`8Co-j&_;!H$5(YMl zl+3+d9r96}CwwJT)-Mx)L=Sw(;3>{wC!trnaacOa@44d zSH&BS3PVZ2t#GC3=BVU;XEjo^#iB!HBt7vWDUeSzfC6b@N>w z8BS_`x=`Z2B1thUjsZpONDYMu5fS{&1~qN`@%K8xvjJ-^x@!gD$@dDsfoc zPjwJMnS0<5tsl>i95m>lFO*u~@A#kO#6GirR&$A6{LHGF3_aSMX%e6$@BB}!&(=r6 zin{J%ns$#~*HBgTk22wt!l_yXeK3k-Fu169RV5c&f|WK|uRR+rI~^-70*21Oe_FmC z>014Wlx{R`_0=1(L*wsAX$baXT|Vk&j`$z|Z+T0E(IX~STI-Gh9qGjQfc`?ZX@?&U zTdodSf`JP6`vtSE&iGW|mWc1WJ^m0?J-R(LnUhsutCOG(J?tcuSlBEgu9YgjY1R&8 zqs%`6Qe0d)2~*;i-%y22YK}pagWj40P!(!ltyepQ$qG>d=Z(Lm&Rs>vIVDq3NxBkv z6FjT->%oAZ4`C6Y5tgTR)^t#%!3I?}2fw(-#D62@pENdhs#@dAGGLJw1YC80#gdNx zE|Tn&|BtPVbJL}zO$;&LC>t%-GsYRF@)P#JqjPR|>QBEAWsf2AqI5ym)dSP&J5y~P z9YyFOatV}h1J{w_$DR=u`qX^yZ^t~zTN3>6G!-76x(}F~VfX1SBzHyG*+#6N3aT#( z16b^K#owz`h%Mm}Joik%aILkY@t0r55(;E)>2vLNerMW{P>nokXaN#@Vm%}|VS=O7 znZX+Kv=IuQ>*5Pk!0Kn_q|?Z`c);1pwnx?E0(bqQFmzyCzp4UeTv9H5cbY1tEB=HK z3it4lmgo41@YE+1DwkOO_nT009ad}Q;$nigR1^js`m+lcY}+TDN^JRx;KUS0pT5Db zveeCP-{VRe-FA!TlT>|zc}`=wZ{O}3LLCr%BgLtHmAy-p@``LCUx=$7DBnOvQ!Rf) zr$n2rM>x%VI!>S`cE%LGkiRe)4^QmAPPRWd!I)xjDof=EAy{V=>AFj0hTLm3_;q#bN3J z3GczdwPd;JG8Y-~_G&lm!$^`fN#2wqr&%3e@OW-nlnVmW;=@P+jWkNhWLX*&X`ri+ zv=^DSmZR3t+?R~7Cslu+FqiGvW+n|9$Qu&}b_l7fu$oB)+Zm}tOFHru*vt*!d!GY%0>7R=1QfuVOc zu)ELx=z|T6FNR9~3%}&g!=zFHsHPFtfiU8dTgHkJRmAhrM*#>ID5^2oS}7@(m6DsL zqE(LM1)+lka=mPX>=VMT-aTjB1?G;nya<}X?wj5}YnxeqtRj^ZFD4@Mt;n1S1t6Kf zmRA1KA?l5f5wz(}XhTYuN<=}KO++MLfUGcC$W)#G2J=9knHe&0Rg%TQgsQl*Llj)B zcvh%`R}oMhxC~njz=Gdo0+6s`_~UTCi1saYUAxK~#GR;DsAr7RT5x0myYS+Q1vgWNwoC=zTZN&y zwX3_zal&_qVfO)ti7qAq#|gM&A4&6sfoWV_PxVM*UHp~S;^f&sKtmCGrQLi{r&VbB z+}azJQHS(Sy#HhnpXND4st!C{Y!e(cIN{IvT}4YzG<(?)><1|Sv~E3e+q||~7pOj( zVR;pM$4SUL$l0kzP?rcw+EmYb3^Yg2lxCYl81bn5lGtby&IG3H#K|R|HAv3-eK)?LTQ+)A-cD1=mW|X-XAybbGSuXP&IBIZ{2owpz*({&T~hdj z?DJSk@V0bNepG1l0G-ECX^M4t6h|3R!J2A3Mp8EC&kszp0V^uWMgy!6duB#v#j;Hj z70Z3}dD^;?e;oD^M=pFS*{gnTY2oh~X!&3;xElpK(GO`bJ64VvOWK94rpp;FTHAJb~pxI^Qk-bDj!U?*^%Wdbx zbN&4Eoeb)8lD+zk?h6%_#e$iRai`%}AOc$5H*b#fqR&0VF3KpIURU-BI&mzlE^t&$ zwUIMmuPt9KZ_3nKE%%xzd;s#Dh|#AwTB)EwZy44SFpj#?+9)#Rowmsns9G8SfW^66 zu$nMgJx&Ms$>8(d9u{A2KKd@ukiM>@>IXQ~t0v12zz^o@KF&{4=Ix4Vq9PJ)nM6Wa zs94**8KCB5laaOD{J+|`%cv&%umRwLNJ%)U(ZcAE9vu>c5sn5?delQpw}5nq(g=eQ zN{N6vDQT4$pd%C*A+6MC2JfCP?>XUH`hyxzGK-ewQK9UyXcw&4Jw5MH@Ar z_x`No-0_R41yc1kVC>IQUiU`;_L3e*-&=$8J3!g-Te&K;B{ea`+6`bbc$s)JXM#jF zCU_I)JK}9&Z?es)k!8^JZtvxH{`F!!vw(9Nz3UAp8nGiMq#O1Wq?@_=w&o%CyVzLX zpDnuZwC}@+Wi3E6(~6mL$Yy?s#h&InZ!&!YXx@$Y0wojtmco@8hB{+98@%BVsJ)lb zU#MVQkeX_a(R2_o%w9PM(fj1HL6L|G`9J!DpJEC3fik%}3KZ5~KwveU4E17;RN2eG~9lE297tB%qxd4hy+gX2RMqP)p6 z$`Mw+l-{T)rA9O&}p5vCYuEi8s&%h>f}``tLKg4<^W_M&U-s zrUa@&%Vv13e2Vs_aQLf$v3ZkJo!xGoRevr2*Z$82bdJxDmo>`FFH1f94Ms#*(%Lz{ zzf&MZ@g_(D3Z5#jg<17(94HOO({nyIzT3V1B@1C0**0RQ7a*i7I@dkLTa$fuEwIZi8OqCV)8R(7Du>l0u^0y zbtk!CbjfNJadDbg_u0E#tFu4X>|uL>Mn{A`Uf>iN#!b?jB*Xv_dhcAbCd~&+w7;3- z;B6BshAOVIkB8pch(~2nxNj~oOF2)I_nJ0PcHK@UdGS@93^Lq#>$%7+y1F zaqJT8>+LZ8b&w;ZMid>urtsOt7`jWJ-shShLc%Exsf_lQo?oWc07}04rH8wT`Y4i` zbRVJQw}1m6Jg^T6>HT1{=3s+iQj=X;xxlt}<>9F3h8gRxf6l6tR}elAnHX}-N-cVv zJ&mF3vbDfE;6w}rC1%S+D!}1IrJVbS3OJCs#tsu8<<)+jQ6+*9$m|((3lb4_ZA71# zt?jBHNDfkOQTeRKYytX)+5hx_#A!UJDT9pVC7g2x^DO=nfl_%-ZhbgVt}Ve8p?0y$ zSzeRxG|Ebn1T>!&NKuiVFwfhq$7n#am%3RHf8JRwS7NJ783r^}nZH@a`DQuvw`Uh> zmC%Eq&Z9C| zXPw1j>5X5iqie&hIPJXr>jFM2B-P4lwOT|CDg)g$Cl@&drre6_qPVNDR1tUU`_amv z$lh^WEt->q-)9j4&u8PQlrcx5k+-*k`#%zmXvGD0+Y~6SQ?2Q3I#8fI##K#mmuiRzf_|B)NR)S35wreaOhApqKq_1=s@JIMgusXH) zR(19aF|!U+JH;P;#+K09=7{GZ?$_Cc9t#GStIQC;lk^++hyd< zSHv1G4OZye59j72TFJS3J2QTNGmrbJ#grRROv5K88pRfoEJ;-rxRl{jDJHOA^dcLF zNMBgN-P?RXqy?4LP|%h`lb^$bNpA}p1oq@_S|M8)_cxCJ*%^Sa%ipdFj?O5R^QfLJ z3!g(l#_;F>tvH=qy29EE%`k`9QasTp!0)$tp0@)>8SiSbDu(DB(ftJzy-tpNMmKhs z=JW`&bqca;-r5rL=N!{aqD3v^xJ+U^RJ6T|XvQyvLPq4B89`XzkQzY&iebUAN$kpf z#c_d!q$B-I~fU>!kldBOqGzmsu-5#=~oh40>$$PGk{sbfc_H~MrZ3e|z zxSD@|fbe@%afij(lc!Eo_l<_y`pXgm3 zmj9xT;8!Y>a%EtXZ@!wNotJ*{+U*c->GN`}ZXGAO2M-2~r7zVupYU&SkN8%09scvC zcb%4>>5urlOKIdNjT$!dUQ@X$PLy%Q5;Bn2HPYo{(8VqMDv@*Vf~&&z2a)xa&R`vg z7OU#LUZ4mxlWWTlniyRtTX-9|5P6*O6!F!q_S`aowU23fEl%QrLU^goy0+O>Jc`=W zx7$!jlYhbXjOjG8weFVKU%mcSoq*|IwSPkn7#~$>m=AUfJSW9$Jp!l3=I(0VL~96D zo;VII;=;@bl~d%}Nawgxut|jytiPM5QR!M*(lBib(=dKtKN6mYI-QP zse6z~A!PLAgJy09Z%XysJHT;jM!6KQ(5zbqWE*NVTx(ky*4^^qC9#wvy?`Dxb5Ggr z-U>kMaht>XDOtF!>7CN=jy7iY>ek|lmjW9>?V$oFwcanfhma#MwuUipN}a|PIYMoJAl^q7AK9E?mmxrkq* zjHdhf<5{;F{y~U-sZSA|$z5*0%KJ*L+X;5z;szwpPRpyh`)RiMb|R27?qhkc)WMXD z2RB#Aqh^zdW7~oiJ`L1_HP*cHG(I^QIWs8@nw4gm*a;MRVWl>1*HCx=5LPlAG?GfT zO0o@*Bd16;8W@Na6fd)h97JO&wkoIk(~!Me%Qi)v*0z!;dX7SqqZA)bV70?Q2}VOH zN&7&cJT2S9A0e%9=Iux_8PjP(i(d*=%0&YXo{1Z5aZPMadrE;D;`p+CqpOQ^*;2zx zqt)p>S{y9hXbcSXd|al2b$3#dnE)>nLy{q7eeXu^;`@A)IHd1mbgUkmzgL;GnAp{M z|D2SXe_Uxnf|L#$ii~ufaV>iWhR&!1UP-8t2bSdqpN3Edk|fg&|?vVTYnZ#te}z4Dd?{o7Y=% zIz+?e^6Ny7^*u#8ld0k0h`d_F1vot;aFN>XJKx0w%lo}I-UC6>+C~r3x9+l3qDdX0 z$=-dU`z#pqHqR5e<7mB}7zOUpy-M|YsYutj)8YAr9}(T$G{Du2%@7g05?#*r5ey`k z0HVqY(_(SZ(`W5p|gGsXQ%Hnb<@36M@7zX|JCXJ zbYysVI5TLM?pBQ$Lr8x|yyD4*vZIV+n9gN)2KS%c$8DyKQnRT8_u6Hci-#$e$1~d6 za1x^xvr;PeLtePbj0R~%j>|T{0GelGD45?caM2MGg{`|vEbUpF3^&p?j~tJ}00B>$ z9<~cBHk7-6_n!T>&uHc$nGx`O@%tMUU&^AzcoBM0psFG7qfmq>eU!~<>7}n{sg3bZ zRG;oGKMXmUW#31=y@oY)5sI<> zLA_8>dGsgtl2DSyhEAyAOp5=C%W3#DV_WU!{;nBBz=LwWOVeWnKFDOcx3H0s_FdPJ ze5HY|ia#O0U7Jyb{)fe)>DdZWg+$k>*SYf3Y%>`t{S&xR@q-aqBMpb^Cu=F=jJJtQ zrjvO9@C=`RSyDld>78Ja?|md6?hCIsAMdG1e8)uqOnCZ6=Wic9-8GaR&Ec%?*0dv@ zK{e~YIXfQulPwNA+?U@`t{~iOWADwY0Nu2{{O%kdDA;V>^0!U#(dDJ&e6Ib3`!sYi zpq=|pGL0PY$hzRmq|2t(V&h%D-zXp~ZrtVZ>vmWV0BLV$rB6|F@mj@A$+IwOy*IsV zbWy$WbCpx!Y<4yTcG7h*W@y&pNcl2XyrRthkjh#CH?Ye5OTX#G8mQt%kzv!Agsr?_ zw+6$?e7>xi^6&&r$(PW)Nzq{NyEp->lw7}FXcw=2aR=YkypPcpqFbZ;X&l}$4`Nl1 z)~%-PiJSMYl7SazFRY_3MqT_- zA4*$DW#H>{l3y8{*y?$-q^%uWrp>Lt>;_Pb20OlUrx_OhaKKSY#+NHCHiLSqP-~rM ztC!`H7&$8giDwpWc2Bu1zpB3oNX#poU_3AEc&Q*>s4eE3Zh0OYe&FxD%+z+lQE}%7 zB{;xhOnyQ0Z1}(p}^a+n&yDf>#CZpb^t$n|}VU3{SmNT*X;jj21`JXI6vd zegy_`_%#rk)6Vq=WY?;7v2uR@5DiAKhIoC{J922r$E)vvA|M}oVX1Fhc~G1P)y{AA z{H(S#s`WXWZ(g&`UVaJ7UeFdXYdgzZf&sm7aa{=FIm7)3VbqaTWI{CE;lkND%Z^j# z1*b2zyjQ8$wFRF&^|XB|?59Tlltkv&&Dv$Yu9nni2+?wg3Y>Gefh#k8sVIHSv!6 zhkeIVS`ouiSz^^t+p2nKBMZPcB1d#8TAw`n=yAA}~AUEOO~s^NN@rm4?;oVgnvVn>+%cdtyuez2ClSboph2 zSZ2rj|L`~h^n60HDd|!8lc90$8t(gF6LxX`Ito-L%tO23lkZoQ0Lvl6?u3s`b}IpU8d&|J_zUsZ&ML}8 z3@${-DrUs?nja>NKQ|-nVIW1DPFA$ZkMMuzTS+-FVoFb4gbnk!t8=+|?erOF-<#q7 z@&VdLN$s*gtEZ)>y07r7X|MNYp^D%9|ApNDzEN>Kv!1B#f*0);wm$lhImUJM?BTib zf}aL7$`Ya(P@@mv%9ti6yS`LtILX&GvOs9^EKdbrhxy@+<+vVUQmRHJ#oXg|LWxnY zZP;qWS^CuW;jdShI1J^hj%(@AJ(8wIiFl@-jIyhQr!l1hV}v?BT68XZ^MG7#^zzu& z03CTcp85&R&{RTl>~p9<4I`|w8_MaxJ^saC!5FwK3ut#W1YRp zqDxo+yUg8E)@0o?QD&(P8D^PBvGKvkXsSH9;S^kOyi^$$&-JQ8I0Py-~%J@jK)3PG^Nf-Sjy@FqDXWGt&buii zvRCzR>P&deuEv>4heHcI3I@?X`h++?8BMunoaKlqqPZM-BFd-gK4(XcvB*9t?BI*w z2sMbmZCiP~AroPNlaI)=nQU#Z%EpUEtTkRsCLcdgCRLsY<;Ev?`|eN61*b-4NoQl^ z7a+7TTorS^y;I9^eJcq`Yfh34$Z3GRI%vEo?R*pZN>+E^Tt1-hdU_BTIazew=bnhu fvD2N`kylqPDBUN-6G3w~2oF^2p=N`+UCjRg70^oC literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/2_Scan.png b/accessibility-checker-extension/src/assets/img/2_Scan.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4625a8976fac16786c24c17c6e150e9c5c231c GIT binary patch literal 90477 zcmZsjbwFFo*7jSVkQOg(afech6C?yL+Tzd_C=fhAaS1L(3Zz((LUFeicXxLP8mzcG zgyLWNzW1DS-|yZ(k{y|ynLT^Wnl;b*P2j4^a`=xZ9^Jcl5C65iwEDe!n0)u{-A4hi z(VyfD_Aa3h_Z`*cUfnAiqS`{gkv7$O4OLRQ_Y(aYaPNMQ#XYP)MbHll^aFi*+WmW& z=;QrApQT~^^(`h}8s=ZG@1y<{JSfrfxpzK~zD@{i%kM;Q94rIi>VbnabUSjo(hDlY_i9;)>+TY0= zk#hV0t?u3|MQ|5hzK4sA&1_8xKV9E;5g3Xye;9y^oO}w zdjkQO<;Ky|XQ1kc6+732v_dM%4c7m^&(J*>!1!3+3Cy+BQ(()`!EfjpzTIF&u;F3V z%SM%8XOdvaFS*-pQMxfwalU6syeM}3rLiRDKRWk&Jiy9cOdyeVW2ptS(E+Od+|Dpi zD!Q1tH_n%v$V8O@B4p_hqk0yu=t07%cUAYh^r6b@|8sl(=VqmaNq~4!rJqSi2$Vov zDEj3pYHDw})pyj)S*@XYR3JC^oLx9y>4UZ==fl|YA z8|gzIbRT|zR=4!fJ$@II(+gTw{$3WZ_8$#r!q6l7<>3SdUdK#VF>N`iGrXG3hld7a z{};>Qjt2yAJ@%GYtOzJBdpDCz5Eeo_3V9wWSzWXI-z<$g5^yN`n_+3L!Yc+;v<3sS zaz+K4=mTdPVhbSyKL5qE6d5pX+yT#fBJNxebTWJD}CI9K_ zQ}M}0 z^3k!#e~xzFUI{wSZ-!ox!Q)E4LjlPf^JD+Tn3ym~KDPvm_1F;%O0z~@{I@&t3`^F@ zgrVHY90UGejA4=fD}mDDJMEWA|L*So=id8Dfcbo-|I>q|9T0t=ccI8_i}q_FQ4vvl zU!<#T(|m&}>*uVG5k*aB+C-~sK@$L0vIY}B-mSIb(6UE}9LvvmozM3-UG3{Y2NT{+ z7V2mgHQ!#A8MX%^X$VD6M~Hc%r!WacRAagHo0yBKou|_a^y;fDA;<>nnKD!Ureji0 zU67GbG`Zo~_QdC*Dr%QG`^1d7%m`7GR_#WL$4gEXw?2(NW#PRFrH1@Rs^Wr+o{qjZ z4Q?lW_i?CH&(wncc2F&E>ACj^!U%|$B&4aTWpaz6=NyMcEe|sz#6G+)&?;3DA%&#@ zTIOmU*;wO6J)H3!m2S~ZRMjqrh9Sz#M>BYRZm%h-v8`^Wu3uV&`Rl@eUU!C&PPvBH zKlD5Ly%I51I14jOpB1~>)i|Mgx!@GY_|>X*C0zK&pfUaHZG2*lAZgKocwp{stMRkvDOA)F-Fv-H70DUxC4VS-E7BD^!a>4iXS%u6KVHKl5f$H+RlydXo0 znZaD{erf64&)J`rX6~STapf$5U2?(XOQ-F)jeiXqAf~T{i@DQC@S)H~lE&)?(?ZX{ zFzS`ts{{QZ@J_)8$|*e;y^Es=A6>b3!thjr)M%rC^Y~#;D9kUQH-yot^#SSI48}|i z712s|y}F97LUP;Npx<+_DZRC;#XIl4tjO=0joa@`d!v|VLE@47RkJp1rE)zH7O@(ml^9{mEAE@?XcR{XYslwC_TIew~fAEuMkH@ePG zvTPA?2)?^M`B@9?2nTQHAvuX>;+d$3wC3D*3Sl|xJ&X|r1Su%jl`z4{RzT+Mus5n) zE32L&DDN= zzmnj5#W$&Tdg1HC_Mgg2N%3kK=lFtiss!N8G>2)!ps?V66WL!QdE%EIP?58ImHFfA zlmQ3e!Cww0Ev%)YoFy}b3WvHX`~!~dEV@f}6#H!I_a-M@`t3u%J6M4@WVMKozjFxP zoFamf=xb0&%bzC*A>)j>pG9>)!jU$tF9>C&TL6VhqC~JX&M+i{e>8uYXois}#eGgF z?JJ`hk})v^6~)jOkLky9Ljg0vM_(E$_<`We-u_=f8zJ$%H>g?Le#MgGsRD>bEWg5N zQSEwy!(l5q|x`XHwPG*lM~`CS(3j2 z^Qlax5nC%z5Wi!*1r)?fez(VnJd(6#QOP)5jnsY@9;~f;UN)mh7ACj4M#HB{?Djc& zoS=~#%UyrXj;A;TeNI%% zU=b^|DiBZRR5)80$k%#RDPpKW&$2u0_!XhYS}0Q_&g?`nYLGMQS)dfhnTEHH${H2~ zwTGfGZHcXsZ4O=xXVYJ6*97y%C>4c}PQU4gUUa<&n%}}H_r~lyK3f{F*#syY)Fc8T z1fB|v^6W>HnDMz)o|EBhhHRhp7m4lr4#cyRWz zqLqJGUKYNVb7Ge)dlDfAEgpDP$|CD9(=My9*?{wF<)K|LXi- z?+?%htoi&E^Wi0{s#XuxBvn@mm~&GBxn7RtFLE~qKKbcC-sG|gQ)l8cu{lsA>6OCQ zS20V;_s@)LpBX(Lq7R}{x3;5dTi3Cv&E{O;Az>(L*kp!y8octn_;M1RdTqkyIq-}M zJ&{e+1`|^Dk%ea5KeU<1b*$%&`E-d8;<+F#Ji`(p@;=4so4qQ&P6I%z(1u3;?JKq4AUQ& zUoBt0iLcpx7mHd-{%Ra9ltUAOOL*|r{G<;?NLOfW7(JuWUp`kYO)a{kJ&fd4U@Opp z>|N<6Rn-U@FzcIIs!%=ZAE;0|XBHU`aotzzZ=O>~!XNrFLv1as1F+Zc*YRrj-N{w- zTi7P#GJtt@fT>*Wg5J(FmA4|&nKA-|S~~q6A6Sku?ovQjDW?c6k5DW3#c|DN7R`dk z6q0L#thWlZgqI#}NpU=oEE8Mt-9pT<7Qpce#L0JgdnY`N>Wf!o^ zWWLCN*39a|@}*ProtW-_&0zi^EiE8EKmdVWu2qh7ZZKX&XD|&$L$(c@C?EGm0A z{|%r(ghlFWc?efiO%$%QFC9eudWn$Deq@P}3I&Fl5T(C@I9)s8+T$OMwK4`vwq(m0 zd<9x?Sg2t~Ej_T(q9@8tcK$%U6?)xOmP_fE&z^;0@m@?Xsr{{6pLI0BG-G5EcL#i7 z`_X;Wt7;Jlsw{58$?Dm2@2`#lN%-5it?sS35Y^rs?f`u9Z(NCy+?RB+Jw(T0SfhG3 zjJic~iM}ihI6#YGk&^*r&e!3e#Z7fxG6NI-A`G0ocWtCicDU)ZkK`^}QwFKwkoZrioYO}ulCyF1UVnwP(@eN67tp|+m}b(fs_KD%hq z_AvgrLARm#+hP#-dZBF=*7wZ%J(xkI?w`ep*UkvpJmO;O6!sBp#v~`V#|)unjv9SN zoy9E;$qmWcqJvdPa)$ElbilHVi7!U)x0*-0xY79pGi7|y#qveKcWQ*RoFr61_njnP zPCuoty7mvPXkVG;msSz+`%XtM|HxyH7$b`Xkmq19`Fw=`=*1mt;^4080>ooa+gh{8 z-2hjIc&$bHBA9MBTTsFG@Jl8qhKmP`*=I>UbkrWyszEJ7(`Q!iXwqLxPHv*1yBAjpUR5mMKN}8$N6i^*(V)f??%Uwk}d}%21iGyYI0J)6$DPGZ;O-!+-$z z1*VvjqjJn^TKA6#ByJF)0JQMe8?(gACsUB7-M6Gg_8*Y;l~Q$ijPBh9aCawLd-)iA zl|8AHq3ji>z1ods*;Kus9LMRJAWmXU>b7@Rv0S9Wn{^e)Vh<9r z<6PsIlg-TjL{ycBwMzTi#L!e}gY~u=xO@9EFpX;O;XaazeIgDY`*6zp7YB8uoIzI6 z9Hvy|L)1&D4=^V0T=}1kFp{kbg`wKI96`B9&rcl}TeO9c-&`=Mf8q{R9|x4G=yspl z(S8|r_E@Vw=!mPX*?tERSgU$~jSNLGiZ$RlwR|1gm$Yu-xv3y@t6^z-J)Tl=C(o#I zj-^-GDHHN+(gOiI`}((@b6P0npSA_?=iU?{rp=6^N}$UG4=Io4Gctm$8H2(5n+>q0 z;3+McjiOB1UsAa}nB)jzMw-5F&7yvA-6XrVhu^L@dm@Pg3_N5O0GOjk2uZTz(BE`8 z;lywolaG9Bj1*R~cE1{3k5Vd?i5S=D`}+*5!%B4Y=)HTwiv`IovMG z+xrEu$?1aH1-4tuGV>VS7>fXc86hL!s>qx3#bS%=aE5tmYE zbx7_BuB-mVS^Q#HOxp9D-b{n48~MX5=@j|%6d8mv`YK2HF6a1H@9Vf&oBc|nDp#8i zWt&a03un$3#DeF4Em#PBn_%Wn-pPKdbi&}b$<$FZN<>eRU-FV-N#MZEXFv)o#7sSt ztdb0$cVeuQXiVu(f;l8g(}Us2s~$a%c-qmakIP5(pAo2?cKR+;qy=ZDC0T;K!E_ zE|h93R~nF{N6}ul!vPpU@}o-B9qP#mZYL_bSh^|8S`>^l^XJJwNn9yq_km3(wL6dw6bOFQH4y(p%KX|JeKJe^%>vPEBJm} zh7!c*244yJuJU%;_ic6Z@8F-Dp85Tdt2E(P$ne?8{8=8IuZGHjPF7KbMnyv)(*8Kx zyT-A?T^mEEk!RER<$0+!LGy$u_qpwS2$`3xLeCd6g9J9cM-%5HP z`5=5>3G*&CtFM9%0Yt3}gqDvxWXJ=g{GZUfacB5*>;?_0GSG-FVT)VTJyd_eDH_wx z3Ob)duTPFBHH$==J|bX4SjlTaP85Z*Ee#PFRNzO|1&`7-a-B^4wQ2j$8ffVhb%zpb z07WQ)m=WBW@*qOpro+!%ag!m6zNjFVc<;apeE2c4*>@hpPSF& zjJ1wIQJ+%mvQw|x&&ck5Ds}nttG8AQ`KyB!kz>GIjAqD1&}%%CoJX1AhNTS~cAv6tBrMMurZkRo zlYwtxy9_T*=?webwn{prIA{>ygS2aC&f)k$8xE9XJ~b+K*h;qskaF$oUCJw@Rs~Cu z?!EY1SKO2~Fn1m&FYg|L*#IQJGMKz(2@PNf2Wv78NeS_d(No8A(aC`IHddZeb8cXf z6C^WmO=U1TTQQzi!rtf};6(y4h39o{Ru~iLQ*v2<%_H5TusJo0IPNv)Ht(k9Y;qmt zoWKoYADe6wxHB#equKw4mZwU=#Y-Zir0KbAB1>x!t8N%qTi?y*!rK%S!@euC6)t60 z;;<{Clpb0EI@xzS>*E}LJfv9BYhzmT9RFsXl6(6(l2nAzren)f)+q%?Y!9_ElSNIq zW^UnfY*Fps!_r4>Q7jVPScQ+^UNJT$V}MgZ@U-yWA|GH zKQ>Q|SD*Qo;WGyph9k^*kMkU1O`;hHd<@WAv0#0tZLlZP3oN&i&p@Ij)M$J?&8lFL zOUUqy1Wj0;&JV*5+J_od4#wjG$7DM+(BPypV*xs+7)>I2)4~sHjqyQjuML~SY9=SC zp9xq@M7Rcjb+q5JwzCN;eeJnc-<8fY8_51yT4>pv@wn3d)wrk`W@$hoIqtzTt+s4k z)NB8@ZDah>G&83R<&N%G0mU^==D2zjFoIUl|{35-3YK~gnZApz`xB<>-Ynp$9+*&cy2%L}cHGCtPPoc*3NOdK!> zHBSzggBc%5x`f?VxJ^GtmK?9swLC#okF1exmX^1*YOFQ>XCVhKio{XYj ztVMiC2>ajQ3f&~92&XGp#m<|)U9%0 z*vu$w?UAo_=H%RX1}VX_nq5;Bj#caRPw~a2CR+YJQ!zJiEQVr@D`7q)B5ifCbueI8 zhzW9#V_asX+>(ohH*9rtp7rj-pRIa;e5rE-fq7x(8mCO$j@BSGE`>PG!h?7j_j7*A zZya0)06m9Z<_YcNq(kk)(l1vmDb~o`%STjeYbj&vZN#QH^AoijZw44-b-|pLP2fEI z&r+n|*Bd8GyHmFr*5q&PeMY5bQYexBS8_DStSkL1Ck~{w$O^;VKLWPY|46vXct@yX zZlhp6hL=4Fb{)MeuEJ}_{anQ+VT=+^;lTtBX+YTwt9H0603HrJCg;4ho7yY@-cD9G zRVqOMk1$rMDZi?@gQxP#h2?=6K>(*H){WqMW%p^NgPPhRyUC7hc37I!jF}KUpt2>Z zqX4!t-vK&GZi$zEAW9{{V@{vUpUHlkXm8q~Oih2e^dh(z63Il1O*AZD&TUF>*=JO} z$S?UZ2_Yj|HaOKl^zMSeP=1`y`_TWxGo9(r<85kG()w;r(BhhHS_1B|lvh(5A{#>Q zd}=PdC@msiOl`fGqk+hi=?o(69(Bl!EoI*_a2gF_uem%L@c(5W{)-u%zgz1i-HPFA zFyhm@;v2J$jpJWWzkHojQ%@cXut=#iKa*Mfz-sf z_Ax;Kx@dVJhfhQdJVmq9%FrY{MP9?N-}Jf;Z-X0)=Z$r70} zb-+v%sZ6llw$?}J=$D?*-}D)1>fi|UD1eeXH+q6qxR^rl*AlsF=oa!R*4jHyrZO;!Yfdmdl#YqUc8aPv7aO~(YguQpZ((UQ!hvd~)0o1~;! zv^eV-IyOf8TDpW?$~PkN-O-k>IT6-$p6IdPSF)!vX#p2=2P!_7h!4-p=);|Q0<%@2 z7^^`BP9!FY3&%jCuwPEg(i>!j(0csdSlQqCxhWsyY$J_f5xb8B`(MeeCepo^7oZ*# z2@a7Cn%~x@Fj~KN!DyvQLpl9CMQufkv+MoYF0)Iy{HX-pOuE%UdrwG{fP&R-Cx3Jv zep#f=@)+XG#;>GQ#Un#*dNQ1iYl_HRI$|N1&jB8q;(fUVyC6=iczQ%E1sl#W|G6x7 zcQL&9SW|5GiRKmYl#nlQV1~;2O??!p;ufRWHK=NzWpxrvg!gE?YgSZlmJf9uH`?!A^0qLQZy6 z7%tX{3rF=z;S+GL30oUrVyOutO2lxC%Q`mlK~vc!gRKSCzn09-*eMca$mk(&+Y3N0saFSLVea5qjTGuw z0X!EK=?F^a{bq)E-*FzwYmnCXo%x;F{!LFJX9|ne7Z3RSJ|?VVp(Gyxsmu90zeyB) z#zW@2KtMR(K4Ls}#7{OI&Ce3Y}1WW$;<07!FPgV^&4&qW<1l@n$e6lfM5PUMyx(P5651OhmYZgyb8e)x=@dNlQ)wY^ zOww#}=7`{FH8rQtszC*BEU#0GF+EqhKY>V3a`>Wz-(1%u^Hgv0#Lf*_3q= zt3QZkewmOILSlVOiX!+XC%ms(Q%)lJrD2n_d+#*7^Ihx?ve$g&B_(lG5oJ-EZh0k- z!vd>s_95yFWp9=MA~oYX+5|p<^to`HJ`vpJ?Sp#>+X%CV&w5ARX7fmKGQ;tHPWkV#S#W1%p4k-W;&}Ug;7*$q*G0aZp;{A&Uai@l=IRA- z$e4>T(Q}JWcY#=NY+dXxKwvYlrAk!4T8mu30^r05Xnz{WG~LCp@){U>UCpwuwM!d9 zP3%%}5g|aMQy)o?#_&p|8}A8Cv2r};|JIy#MMK8K1m`=U?myw+tXl3MeBHQANh()=e77uD_-03`BbJ zLeM1?X)wgh_7p6jW(|%e_l!Ku%$}>v4ha2qrDRrEW9eI^muoHGv*9j;4uLt{FJDZ& z#-hMlHU`+Iu3LQ+2>C0yYH*2e9rUu~;6s_(0@c>uBPHzT7^40ys$6a7p?>-Df49e< z$o2Rt6WFuK$NyJ7f0JC;n7&ErOVXK{clo{V zQu+_FBjpwPEB7B@^>|4sgGH}%j^?|o=H_qOjoi59-(F>kYza6zqI2ipBD{8uGY9B1 zng0#d;y(J*O-J9M;qVp#H08yEM#l{D4$&IGl}&g^NtMm~vf^hOZP~vr;}4paj6MYc zmrr5AKzzDqmcGZW=>Mp)$4+<5FusVQ$KfCD%%I@UkH7EW^=9Cf#cET7H?Hoj@IVFg zN98g#!J^S09>lx-^TVOUzE0*{04-S+tS&zZ5FpvZ4KQ0`*#2ze`En@p9XxzCB_3`p zPBFu}H0~6*@o#4`VQ7S*i4l!3*H}SgA^=XOSUCAG{Gr_QHb&*7YRT%J0Nj8f9nfuX-9{0qbAkOj3I$PK4>huoP^%gUAZ4eKOV9wT9=<t*cAdh#&_Eu$jsFP_m9Pcq@z7cA(-We?pf;ZQ2Ps5mKn7A{lPyRdgy~<{0YG3x>eQ@YQ}O79&dJ{ zoG(_g=TH)Hxa2Vayn7hc#V^+i?q+Lv!phaF$Jlu+q2}*X?pRE38cEMTe-3%Z@$wH$ z;RUic5eXI24rl3~*~T@%R(xF^IHl{TRJ)lG@`&YqcTD)sr+3Hq65H?VSAKj~HFLjc zMUrRG5jK=0w1%`S<}gdLmz}XJZtOBa*1>i@ri$c9Ymi+;DR8pdy7lYyd0*{m;=IcJ zv5Ceya{5NtS%|-jVGZ|og2^86ee?E&K%dhU-9Sj%VuL(O|TD5Yd$GpVw{ev7N zxh%M?#b_wAvZS~gE%l(M-y6RcG;E{uaM@M1;i|K1+_8j6tIA6I0==So2f0E{#U?u= zEz&|mBuCIJk6qs`5@o%}$_B=LgN03fznnKLEH=s->E@dww5<}9bF&|ju+p-MhtG7W zkLGUFLVqNqMfSB*go=t;&fQO^F72Ijb;>!lK4HE(EY$(ifI7Q1N4i^@KR>rIsuaLQcnUcSTgbxaawt87oMG`j2 zS^jt68(GYw};!hAH!d(6~(EAiU-{-&_W4TA}@57B=dOp6l(5gRy1J;=#C z=kXr92*?Mu7#LFA%j=Z>w7)cdfd;)+6W#s}gwSKAq!B&9%NqgEOKAgX ztN}E{*dW}VUmEs3kA<-#PhmqW=4r~`Igmd!y=C}HF!(kj*>q49OCZ{_zOGa9uEo$f zXRqTlVm;sDA7_9E#<)=XBw4&vQ7lI^eY&+iNTU?7$>+}B7EkW=B{cpY#|Up3r~3-z z)9`nUjRI5%N)X;g7le+t&d}(JnT=7ABs_u3wQBL!DS0wl`u`FCgAi ze+*Zrv2BW}$(YGi#K%ZtNX2QoyS?gPi4cdNkuV5uinx#WjN3*s8Zz5ek7d_Z7snUn zr!Zx0{37A`%(G4$p9UB$y!+MIrxE!+=R@)DCxul)Z?8g8kL|anIjnxbhL0cnDr2n= zCTjY~T<1gSn{UKjV_ddZA`=U2FC$5Xz>g-I+7j0#noLTe%jNwi^clmUFbTNfGd` zIM=^Dj;oCJL6xV9TDzOHHu`@ODBUTlf9B8KvzWkdS!Mqb#A%k|20b#a6u;S0`FV^y zWz9`eN6ot|I-t?3C*ojG3~*d{GUvJfmlhh2UA2^>P_vkJLh*(_teH-Htx@L}hm%3U zDYKHMx>P3W1n(b(<1lHg*xmPi@x$NWiFq7#mCX*7_t6hF)~S$m*<0N9U3OX2Hpi2J zoO%n&`mdo?Iq|i%IkjfRH85lCrjH%F)xcMGUU+GVt>Cj#G;SrLP92YKa*?-Ii`40e z6k(zA(1OQ-o|)A?+H)kV#WkH~GwlBIC*W^!tS{e-|mMQl_ z;>)=*Jg`^`K+g>+9@x5&kqN_#|)$ zT-rF@Zr(t@i8`~IDjQR8S2n~;>Nwv$Z>zgLvUtxMlKK`4#3?Lj{cHNhY@({9L>uC~ zqDR@^7!g}Ggr|t08|WFZhT2rbT`0|w5GK3}w?+QnW&+}xS2jB`{H)P@-xv4~&1X4>h!`32&`htGR$sHga>=0u|O=N1}1%{9pR zW{H`eca6??z1N;*=c+p&4LdVE+}`ASw|w*H-~(Up&tO|7@giKlDBIP=E^&v!_j1>k zKa}oPpZdM+pZXM9vm=-b->FR%!D>stxUi<|=XbGsDc9&64I8u?{M3<4q3D7Wv zuA?d4pUNek><_`~-;MkH9^n39w02gd=QeQ#nr?uH~zEedPG5P=QCmja5;Y84muT3!8X%CMsc#C@9z7^c2I_ zG9~;fg#B>wIJSD+Y|~8aBpzJfBVvt`;c{0y@=i0e4n}zn32lrM{&wv`b5^Mw#cqR^ zeZ_Z|#Z#{HvD&i8tp&nRsrGnosd7YvdQrWjac$<(8x=mr)72DcfcIp9Qs^^Zd>i3n z?cU?i>};y4gMx%fz-=;q{Fzv1`yg*6IAd}A1VQk90wkT3(FL~{6R$BcuC4FA>zhrX zI*Xe^5F%H}MvWJev|+1vw@(L!DF=63DqZ;81j-*ICC2p1d|Ij9$WT|dOp4i{uFNk` zfz*_WfCn7fDfbt&P!?iTcGqLtYm-3~ybJ9FgNW4I(~oZ(?7)u`{-jH{$B)FX+r<^* zHH@FkUe1vygVL$oRwK`{@2XOQv-#_?Zn$AK$y|P{NeF*~s$_b5^-Ie82RXW4XA>~% zDy~^=#QY2a`_7TNSkR<8EdhKjn9FkscPEq<3p8}J5W4dHv%Qj;CmMUTakJOywwWA$ zk?CTS1@tg?iqgo+6qwCyBw(R>xp$dhS;Shs=@W!(%-I~ehTPPnjpuJtJn(0dHO?6&ewUA_!lrI}-wJI)Y_^1LV(h!q5a}(I9oA+|4X#T|l75 zB@iGv+Iw6!d}F6mZ2t}+5J++`O_l|^W(`|Gf&^mo3T=?mTwj91)iwm1j>6WsZkM^X zJy@i+E(Co}1YxI?LP>9q?4-qn7-)X%so9#0SrMBt$0m}i5lZ4^NwSBfAVjGXByyY2 zlR^`1>hg!`>~vMo>yXRG9|eDQR0hs!9t6jK`vYculmAHBlMP#-!p;2hC%T3OGIH(p zyvRB&652QgtXN(35q1ZBmx&Q9>l0eCBV~=465^S`7##J zFT_vR(-%>ZTkL!0jcdorC1^kC@Ax=3c%&(CFmI>cQTsDK{%DptiT1$aw{ z{l3QcN;U+meM4=+%&y^L=izvwTa(Vv7~>~NQY+`?Ahx7bWl1p(DF@Nm99UQH$*trk zM*CUo>Td^L2Oh9VG;M)U5%-ce3p9nkYKyloGOps|@otu%me0@yN+3x}U54^4xa<+K zgBbQ1b(P&VYj$lyGP~TF=Hv-8v|JNoF%R>TS4lG}zlG=82H6Zl$avKv4S5;;){=-xp`EZ%yL&1Mpu z`$u1s<6%|clyfIhNJju^hPipHRkh@H4Ks zF8OJ9at$XwM2Z|%XID+xI0rDacmSdP9rO9*7y1aIJ-bi_<$V_H`{F4UlY_Pco;yFn zn3JYP*Y~}0i*-vav<=4Z%n`~kk<9r6kHxFL)Z4ApSeNFjd06jY{lZz%k1ooE!$6}G z^~Q53hyX#~L!aAat~|@iGd4sXqLyJ(NB>!NWOl2rv%ln4qUD%7U}X36nl_YFh{&IT z%Ju+ZUc8VmPfmp;5;D+cXLSvN<{~nN2*rN?x-9)PG_%<%Nzbt*h;`bG&8LFi%mSVr zOUXXs2TrY2Ly=YX)1ry9M|u&a9~VqR7sD)bcRv3K*6w`?rbreXHHuwBK|8$lPUyfz zZpB@MtehW{Lb?-8UsFY{7lTQYV!xtFLG}FM{Y!%$0`*oYdpzz3**^M2drnY>2vm~= zP>1UIS~gmjgPO5lB_hU$&9`$jNMN>sIkX+^JyAsw-lv&ov&T>qvD0+IcN4IdNtDkj zBW?cBfR4OLisl(-5)kCH(`G)WfTScjpE&fg0$E3&;!QDd?RP;FvlZf=3=G z`%SCFx|1gW2ETC4my~#4<9i%nim(*yK(tk^zU4Gi#d#56j0(l z8T;Zb^DAooWH~8Tv-xsjZH4ykcWeYk$1x8rURgrhK$(~4la@4%s~d7us@r-z?D=ux z;x%-*jR$R1k1bcE$0M-#uDTP~^ko+aZDX(FnUBN<6V^MAh?0IpEyik;uYHJ)Z9L<5$YUE_SA8AGeIe$GOHL$hPHs z|D=V^A*vG>3!W!~XP)3&^2$?XKW2)Rt<~(K*ZR^R?@TCow}+R7;J$U+)WG%QN*EHX zW8Fdc#KGJDMR=vOwG6VCg8CpQP7*^o)MF4vOMN)A(K}{X@ZIDZF4;0Q2m)@u)1!W`u%4sM049q7-B^2d7tAvIsHT2&A9gQ#QxL%=t;KfL-AO@iZG*+>Z{KH`!eyi?s zT?2hZgY020x}hD3z1m|91&1Zh;(v7hsMONDE4MAgV&hd>$8iu&dG&G z?~?6kh{R{jrDu8T%-^cj1En4_mFbAhw`C*^@d_C(D3uSiSw)qxC$5CLahY$8WmhIg zRC~$Q)*dKfRWRPUXId(vU_A zuaEoyz;AoY@KD;x)p5^#$JC#DF&bXC7aOGFcWHa>lbwW?f%Blxw38w=+Ujl#ZW|Nl zbSodY_Hnw>XBxFB)=&C!1;h*7WKIYMmBL82G#ZnV7!%2#0f9Z+^I(~Lc zL6(FATW`&-sh+P(xzr;KjOB=evJ86%?@3RCPY7W3Ma;}x-Q28vnu`(iTVrCGx;x>0 z@f>%h6aR!D!Df!P&eNa*sg)2|66tXRV?u;9AHk5{(b2vIPTPxgLaeV_T1Jx(B?d+| zOJH-dAdX&ovAfOI{AiXU@^l|W;=#=8*xYuw3BL4mY>oixa(i5G_i>q$F**jx=)zr6HyK@1x3^6O_%8IYGzy4P2nVn>On>?n}q$g+8!qm1CfQ{swszkc;;Wg9-u!re2Qce!Ou30}TuBGco=` zN>xZ6(Ee`B21GxzsJNDEN;-FfVzkbwJiv&x^ZDIQTcjU<8cncJII7H{Gc_dYUl_nyN4g&#LPK9rVn@EHw7UNw@J^L1>* z3yEAE@cg8j_Vk{43EY4}_aRNC7ls2$L;ci*HtZe(;#n4fX6Ne~!}jx zPOt#TQ(go+5o#SUhpwMAkz`u0^CqK_p8E8p&*^PjMP9Hs)xYQ4vM689RXQ&u*VU!) zeh0X6&d5d$xgyo8xi9S8)gSwANwml*f+iL%y$J_$*Umb{utuH%N1#j`q}94*sU`+g z6lsp{ZR(~buay;z$(KLsl)Amo(c=l`!nitH2M(Pi)Eq4+ZgBNc?lpUy(OB=Tdo-$S^M*v`1^AIdJLFYG*Y%%m9zgENty`4so%2O~^HqIO{Z;m9HGQLy+MI0RdBkAb z4EuwMh5?6imW1=r9UMA}vqsyMMdzdqn+K-S3S1z0*`Vv+IsEmk z@D_7o?sC$8-#?tilu6^EWa#L&c#11jWYFNl>|Y}KArl7X&WMPG5e+lOprYbQxZ+KL zXiY)EVKI2wm(Vu8!(%fs#?C$zgjiS*b*NPG*cEr zO&fbarb=IK%9Y+M%>AA2z?1z%veG_+(%~B2#!(e<^@0kCRZ?v@ZLC(v8R;tgG00xY zmWag*!-kkbVy*I=3o)NJ3?nRnO@&@y>cxP=@1>w~_++LgLWOU)N@quNKrYp3jt3nL z2s*`c6O(aZBm%r^cz*vs&fY4Zs&?)EmJkqOk<#4=(y>^yw4@*)58d61?ohgysz;a<9ZNWI*G1y7!DsZ<0v_~JN&R5 z3O8%J=yZ6j)?dBC-a2vkR-jL&^sgPRWH=8qC+oV-ZI~?eG<3JUxz(EN`TcblDbl~T z(fwr2>F%T_87RUSQUP=gP%1YCwoM)XOCiMU&FXN685?5ya`v2%M|+Nd!N`N|NndJM zY6@QfnkuLBp1`Z@H^|j>sSM_sE*b)d_3LJ7bC&ir9N1{ZdM%A?+!7anjJ6d}UYL#} zL*^*CI;oHcR5lYW%(b}j13p5hOy5WGSIw0XzoRmmHd8r}Z}LP9NQK~85cj;p`><4a zK1l~CR(E3Og3H&#S%_;u?XsYVTPRt;Y6&yVN-o6gJI)9U@Z(mcCptfzX_7Gu!w<%)Ajc|DO0n>!QK6KYli;~r5c z5d_tUFyIp7Bd0w}U5{bfyf#nxtsDP4{>h&ClX@+7E8!`Oy>lNIxRl)&cb3t6yGl461>?~)w>Q?oi1J6m@L-jFDlj(E^6M${+%F5 zNetWz2W!4p^2iKW0cs#^ebB7&M3W_1ihFdh8n*|%`S2e{$eAeInS3T1Y$;B|!Gp+I z34um7|4aVj4qEW;cDcX7)Fw;4N;5FP11V)}{Y_S^$N{v02X2JW8)OEu08~nEhgl)F ztfq>)d(vdWTR3ExqJ;+7HZ%K^%Tn~CE}lU_n3jUvJH78@Vfufbj83?!R(`zkQ_{c* zXSU+n>6AOU^wsmNddfVs-Et26#V{JD6y%vak6c8lynI8wB zEBN>5Ye=w>15+?U1uWrWzXC2|Myle#FyH-qTQK**T$VOs^{?&!8}^ybRGHLtQ?8250f!4BkjU(QaoBs}#;U)^m zaNLbVqcFhz zMB3pN?#u@s(Z;bL(a)T#I1B!1DQ16bwP&1&RbJw5M|1RN^krb~48K}`v0)GBt3L-v51Wqk03btf zshDdK11MOE`yK%TgHsyusd>z00^UaRu?5uD_518<+DAlv%{)l4$9H0%*2l=o;bCIh2lQf&n z>XQ&k-+B>aVNzjxwSV%O^u!IUv^uagoXzZ7&Ziq4Una5X{^bfx(GadCK)`=P0GD4A zgRn&E?J~$T9`N(k5r|$djlNwiqt1?k&rc)71BI0l-6_m)BXt zlp`A$RO`U~l5s%+-=Hz)XI6El3hbA6_CMD<4$LZHy6IM!fHD{A4dEWuuSZYhy&g%h z{&=(&!CpEdb+Dy1;;AvRofQ7}V5UP9ULXDCH1KK@uE=n6z-zTEJL6#@uwGi1z8-je z1fqSKkS~;XsGf-<5j~pab*L4#ae<9xg7vKWT@RY;8yb$kkYnvZ6?t+aeh;U6p$|Z1 zOInC7L&=N}o-nj)KuqNDVGRH%vIi5r4&7=*V0iBWIXYHhKgJOH;@wz{nq939 zVG07lxNq^0koxnB=9Ftgu|`JAgw?*9!Q2ZLz94S$@e&;t~L_S0tt`GEsT4YK4RYT zj4|48P(G73fCt``^xn!bX1;sa`|(iZeVV>pJTMY1av!}STLJhf#p)(7wEXo#T3PhDVvIH z35*odX{(;Z&YcbmmfcFc$&z(G8EFx#nk%4O&m*Eb0xfr%>)bnaF8#0Z+Q(| z+Pxd^L#V|{&f(+z@?*={Q@zjb%)3Yi!oY!Rp}|9oj#$} z?T^cLC)9<$rKgjA=5ir@309VUX5g0!NPas{ENM_RhT5j$s&CMTpOt`N%}pMRm9}DIPNN+qd7Kp(%}=Ulu6HLvT8B zM20Zh^n|#d@2jA+%s!C_?&o!pC9E$L%{?_cH~6e15&3|sC(EE?7=-4SVZ0%e zQ0LijP`gkYd0eF>jLPYR$r;R&QBD6fGIO4$xH=yTC`u$ETgh((nEU1@T;JA2WPCCv zDst=kbO`@Ewk<-tUcMW8)FcmrS9#BU*U_kU4g-GN4g4rRr*3I9Lmecq!YcfTnckW6 zwr*Fpr9kGqq@_`R5w-VL9soslsi=RzKg2!m_w+^SK;um^%a0F_+Ag1xB&3x+e1VES z%Oi~aQFTvCK=is#+3NNtYWXT^-mY4HbF{~Ytn06vBkwK28j#C%BF9xM;`A+_LiKP%!sQkX<9g{_{kcvH=Urr2w~duLXY65 z^O>GOKW;y+6VLo2h27o)K&#QIOhjrL#_G2@I;Bo8mE*lo}cooA-d9ZNb{#MmK z%LT4tS?i{>1m*L|ckH-`*3SqDg7xP;>b5?5JxEaAsQ6H{0RGeB%a*N=o6(1h#xcUR zBFH2ppdrseR~qy31aFp*`nb^kzUps9V}QOZ7ucNHR6+K z=-PHQ+Uw7qGJKKJ{Yca_FzMaF2W*cpT1v@Ifh|;V`p{UVc@OM3&z$QJaKjS8b#N}u z4)%{x846is9KxMx9G1G4;4hi^#;%<*I>D6Gj!WHBy{bcFiliQ-lGMPV{CU6 z62F~xk!LC57Q2;2D}5wk-UObF*ZU!wGDCbfes1(?hjz{dUg zG2&0SwK?LGxu!mdKU0b@9s#*JbAfZqd3)O`3}PDB-aE?HoZ78X=uQvDraa>|SQF7e zl_$-Qe29x?JIsSebWQb*nStlu>i3(?q?%`GotvVz%zeq)>C>}i&ce&G-A(l6`22iJ zS@7&ix$*^Wf+s+F7tfE_Zkw|3)9vXC<}zVRk-;y>h5ik{lH(T9}dwV}5Ru zG#Ra*xKJD=IqB=*daBgWh-hUU@@yy{Ios=eyqSik(sjvQ-90+m{(NU`Y=mH}c8TvB zQrp3I4hGxu+aK`f7XqO(5#*29FB~`RHJ+HE#iYitl-7U2tQDbA(WTAlOh)qnb zH0AjRcPr&`YMa+=t1DTYw7DWH#lBx>S|<^s{rp#-m{irn-;lkTKrniYsh@WucDIufiENlf9; z5JDugGurYCR?buH#2o)MSGNED(3>1j#5b}&Ye3$6j3iLpe z4T3N!*EsUm%9&2vOoM}nTOXZ2yxX3X!F7x*coXpiJLSEI(K|9jL&DdA&D5X_0+0$e z4jqEP8QTYNMi7;8=4RDXkt8?dfY&rD!3IweaLhLF9l6HsHwb+@rji?f8J|#0`SKx) ze=AZHs_zshr)J;H)kO_u5yt*&RW|A>sh~~Q(}UJ&SFLp^U95it3+X&?A0wou_Cvv6 z6uGt)Z*TGxwcmxn;wiM;6bQ4)HJ2Trm?wdpj2Fuf2g@&A*S=@}`0>r-t#=w3iRYYw znEj0fZ4#=bjICh|-#6Vt>kEKdMA!^`&Q<^>;u-aw-^k2;&cBhiU$^|AJ>Lx5FjwBU z-No~8(f=r+M_c_c7EfVjW+X<%<|SfbJoYg4!biYZR_L|$srMLP$0{@?bnDkW@oPrg ze4n!JnhU-335{P7nFn&(zbM`kX6Xm03$l;kr(fWAfJP)nc;yWjcDA44*+McJ?D)_p zd>74kT`eb;7EC3zIuEAGwi?{>FqkYzQDWCb0*fwC`5UXr^@wU0s51L1&5l1DX3!mo zwNxfckUPF+ys6!Lt<8zODgYqCe-<AaMhl2kOY#i+mB&Y8sq9*&1p>)t zAKL=sYe$87^18RShG>YYy-IZ570s)wjg@FV!3z=Vo(9uerBK-G;bcB!MrqqsIn?*m zOra=&z3m2W3G|{M1S2HU)p07Wx1u&Qp?MB;QuhVe`Q+azAea6Dudm+yC@sjaYz4-bav9F5NX;G*4-QnJn+f@rWa2{ zA4MWv9G#Qdf+f-80IbPIO+V<`Wc8jurU?(Eb|AvoqtN`E(w3@Ju}9Af%X|K&-W;6T zxww^62HiDo{!(1mdR{UWa6)$Z>(~)xlN7lkSjkIGd4AHtv`{99)GT$1vS;jmua%@E z@|$fGUs+`GzwXOuI-1Q;Y5rT8%<^Fk^B1%|lj5n;d)jLP&@b26dRC1=QXl0sLm zyQP^5!K2#3744D9se{<2^@k+sf_nmMid`aSDy;}i2XBPkl_My2Q3&`(D9#B+Qke9G z()W_SlVF79{T%lwbzLK}bpG2?#Bqu}o1~@8jUsCnNkcL=aqVH=F5j7fI6x3P7AFZY z8Q@}-*N;u4B7^kz;b(%43|;#O6TmMZhP3Ap4_7GdH$LLbMPZ4k~RxoX!cJaVsT%-NAD*uNsu)xgI5nhlxPwQwx=Y*F^je(Xm zGD;H~3R>HucgamKOKnEwn0t*y=gee8uz^4=QU4KFl47i?7>$^7&FbBfJ*p#gHn5uc zxdu#%F9dgH(;48rr{lD~_6YKGIz=9P#8`PfZOBb_Guvj-zqw)Ex6IGf=p$I0QJf7_ zx#mF7tr0$uBkvF4&esJomWy$%^3K-ZWsd@CsmN~w5l@aq0VK=*tHuhR_YS!C?P z<&Vev^IV)=1Xr7LQzmdd1t`PyXW{MAWvgbU=2fMd?|e(`A?*v1qJ7$D>o~JNeF%4U zuD=kr6f^@%kRm1Iz@mez@E5{!GRlzpqsbi4h}uvKZO~TQ7CI+)d3CBHEMxTd(%o5de13iNj%$mItz(e&aYFQ7t>jYlCRg-(bcz;Am4pcHssug9X)(+( zGR%Qvc2DcFBF3lK$ly3ct;*~?Eqn|h{7=l7XSLJHX_3Y`4}@c6aNpPWOpYDhFCD3~ zuH=KNX>FB-ziT(9&2hRCFH50^;_nLyN7P(O$Xt^D@w{LR z8RcV>W|HFuhi*4R&uquSsDt@>I>YudlBl@QUZ5fpPt4IAW=dMt-|55?gmK^e(rOj@ zP;&~ki^$XK#rqVhL-WqYMTkOIdc4MmJPFGGB?_aBUG`av00a%$J2oeWZr?b>T{f)o zQ;4ZB+81ZjLcwbqXsCRs5H`-vPEItK7>!Uhd~j5AK8(t(U!8F`ilSet*rqqO(c~6j zlYGLi&Qz1hL~Rp?_ML??Xqj5T8P*4!ven0Z1TKdyNIz)tz*GlhoRr4L>J8Yn)N2|1 zqK(&aG2UNmH5+fwO0iVhnCC%4!Pga?4*P3arn$|mc%F-UdYZ{1QUbBaV-BQ-)}6 zUv1dzxp#d4kWmB$&)JYGRkPH$ZV4Y1x-%(j&DXP|1JsP|Z0f5(-e0jkmyym#m`jjs|HWD%N};izP~D>us4f#ovRsU14=|PlZ{gkJv94g#!2wR!97&)1F$e|YR%qg zm?k*z2a(DD@K`6NekBzAQvpL4^X2>KYdE5~iS@98wRL<<*}ZL042W(e>B6C|kbD|8mb$ay5((khARvaa7AtZb^oQrdJs=(19zV!=MD7=d?{26raCsm z1i$FFe%>P|?12(2(!YY=u9l9+CVIgf!d+Z4I#F!P8WC?F+ybxj9q16HV>&R&FLpAK z>3NJr7$YDxI?Nl)6c#nVUTgKQ;lsPEg$cYYkKpS-@f`0v9rnp*eczrZe99_%klYfd zm&)Ow?>L<>M$kBG)Qyoe|KnCsFhNusQD!qus+O$mRr%=BDy3;>m@vE7+~5l_7!45*8gPK8K(eb+;H-OJLU`uE2Ftvk4eCYHOh#ih>hM^@xRIGRH9to$@PkXsndie-T;phenp zjN7e|=p^xNSZS#pC6QFh_|EUm*P!w^zf(jX*==14Ch(-WiJiP!yN39|d z!X2PG_A@b1vNWY(#*4-4c+A5ybAE*=$Z-^Kc4 z)5d1t%X?z8o3!KNTCx_MR2FVBB*me{FER0aij=+0M7I8oqYR;<6A@{%#JT)1bmT+@ z$-todX<^iiuZ;EewK?+-?9A$D9THRR1xiwC5UVE<#sQ8;W z$lh6tjx{s-S_zpF5u*Pw74D)W#ZsL3;S^TBlFmgHDsh1NY-dhf-6aVtY8=HyZ-yyN z`LnG)T>KLw@)n^u-3|H-bjxmu;i#^v39~S)oQTHX?}%P~^W(?CBHnoNUBVU5Rd$_l zcFJdVkTa0J@)D5lD%Mts3e96Sx&2^_eyR)6jo&6ZW|mdW4xCi#*7AihsHc3rbSEcN zTxO?*$x>ZsReBc5;&RqppU({2c80l5WKol{9bV`JjX-B;8FMGZcg*5%o#=3Y90cip z#6PoWA|brCF8@7P3#OE_wC=wSnvVcVi6P!k5r#v`PoMFfy z%E)3#66DFyY_8CHGCKC}PI@#YFq?4_-Wro$RrF1;v|j8{t?XXo9C2+54m#L)RHvg!I2Vzvy@dmCRw=2AqKpM7HvJ16pRjfPgaI2l|)@gbK-mBiy zR6;N={E}=x_U_}RCUOX$1lsk_)@yAAy++`C(H~Fxk(R57xKb z_#?x+cm5{wWbmvQ7CDXTX*O5PdbKSh`qz5Qxqt@V=D$w)207q&r`X@o9d9r7(}&8K zy_hG=v=S)E&s3X~&iVq*IQ-2v{QW}=(DB7+{v9#;e{_5| zxQ_3po`n9thd>21(x8g_cVPK{{@%7AJjbHxrTmBgdp7?{odC!PhS*-8|Dpu|#DE-* z80aSEb^K@FfA=H8295wvcH^HwkbmMUZa@G_c2nA~y854e|NToeWV0S|cq0#kT^zu< zSq$sPVq+5=OuMP9>H;=S(L<*2p|QW)DG6W|hLaLc;Z#~4!$fqeq(Nu5>Y*nc)kLTNeF|vSuIkBLK+$dJ|c^T4b$EXR)UoQX#_Ll>zV) zNs1Z&{#LNX0bU_yKv$8UK%okQ1d){Aj`j5S5KG;ntF~5?t1Ug#-gF6z^>i`wb3!&& z=dEFKp7@C@;8GAVBErD~Eg+V`hix!RxC!3Vqt$#%x5>e(ORK`@Cs@AMNCOoAMQUQt+SV=h1AzrPBHT1Vv2*s;AEG@URPq80K6Li zgSIVTwRszFXtb*+^Lb0EQe74qHsj-0u2LkSlvn*aHuGM~4SGKj}~H{xU%x>6CIBQlF#0}&i} z0Z+^qFpT;QXjf8KujBq%<!1HPTB>{UUftzk z$tzI+NFr!xdd1pA?rBl>J=+r)C2d6591*U!2X)Cnh(OCeJfL8y*~3^i^X)(L72rTA zA_5+OLZm_sQmyN;2pGJ{O&`+037qR-p5Z1>!};sy%{QEq)7Gx<>ZVh|mx+mW%WtP0 zEYeVLxQ%1h+x+z<-Sg1g84Ma^>E9vA*AA9g#jVJg``Dg*{j77p2@;xjE(IgPno z*n9f9PuBa)P5tU@P5r08laCxJe)r|w+^w9gsjPFjYB|Ny54@?R*Lr6*OojHT_Xz?G z65+&;R-Lx)RRR9h-%SKo#zzxPUgx`hmwGu(m#sh{A|_qf>td4Al+1RqvBm@bcFlwu zvxI)B4sY-{{Z0HIuLNcX71lD2`_)%K+H7ZmryT^_qnVFN(Lq?6j!=ga|T z2CY=q`!n)c-I1@@H7W&uLBB0m45jH&47la|*m3Onu3nVZ-rl}@1Vxh4yAv1`hqm@H z^g#C>3ye!gj;l#GWK$JpTx%1^v&$r<@B6ZKwY^v8K+Oc|V#X>+qw+JFil$Ui38?2A zOFlzmj9E5HG$vABQz5@0`ep(3<;4$9J+m)!_$vTkq1rRP)Z&#MPmi74 zU5@6249>!10gW@st{?5>XO|k=Hok~$jB>ntiZbzHG*-*2x|7-<-ELena{s-wN2N>0 z>+H5v>MW(D_(b~CKQoI1FPej147uPmJdQ)1@;PMNxH0ST^|IT<(0-sCThU5c>x~uA zo9U8AyVl0C`RG>^_$&lOZUt~o4OYtA%I9z<&80FdOE0oZZ-1$!X|Bdv)AsV4V*2lM zK8uBuDAd;dTHA%ji+hEOi8C(*Zsr4Uvp^&~0_b!jURlpY#W|_-9b&2kmfw%k4jx*( z1$nQgcNI&z{UVvX;E*H)$*-_6z0!{Lz`tC%TMD}V}Ue5f?;iT-U&dHY`dt{XpZI|!xJ zHm?$$iNk;nsE|B-FO}vHi+n0W%8v5JcV>LuLU1i^M0lf)3kK$vyz&Dg(~2p#VuyRr zNk$mxgh+wJ+8%vk@kgM0#jMczq*|20^6H%Z>AR$TcjnyU+f1kR7q;Qeu(sc7fK}v$ zX*CN2*+!f`Nyoz2w>D}HI@D%;psj{keeoJscaf&cBaCLraRra-dnYgYL+16D%mDip zqLkVbi_;G7<5(GA7mFhAg9|xL`;E66t-Yi!^2+cR^UshcEf+wmCXL$)pW6$Pwo#mn z`Ruz5M)hPJ=OJF+ma6j%J&|Y_^i_*Q_8HAWvceOsbHinL$FJW&&QL)U`n+eM=Jkg( z5FXxVMB?_WOvH$W7R?1^&A(QPHu*v}-SD@Dl8ED4dlw_iO-BpIuVK-Hag@U28J95r zTs?}$oHgXECBM&iWIKJX8?RFXUX5Amdz5P?h|kU}lN*5oY(>nNGlnc;b;XRaz5M;o zaw(_8dRS5NqpD)7IdI_LxbxnCbI}rD6I)kLQ_crxCu4@HLY ztjmgYOFGc6tXMp@Q{IU?AGKUg%LTwy7MHNwJ^e>d%wS|}5pKntC7{_9?^Rf1;{Dy0 zsJ>{_;hfj?X7XN6Nz%aMx&C8~NCf_;RmLiVZghMyxO;~$&==M8sDZIl6IgST2)VoVKD1u8l=T=EJXZ#9Vz|R9h*R)ODP2Xo5RFb z?T(}BC*VbHa6%(SI4XCBLB5yDAGex@8LpnFguJa6Uq7tjxNWuJ#vY#NIo-D1x9mtaWhCxMzTKm*^rnfUCZC5OKM@8hAJM|n66j_0qgs92nDtj5Kz>e+;c1hpBrw` zQ|=*n1y$o`9wl?63g5&cjq%60ipY_;-@jD1v!1=-3>`mdb|_|M8y1q1Yv{MeKo?_r zRb>cRi4D~4@QYuNzZrc$1rkR?Y73QfRw*{yn#=_abAAZLLK;7~?g}wFwd=6hv7$R-}rTU@drHAM0mha)#cO8@49>2Su#@&wCw%1E&$iFnR z)-LuN@)gg*53*%R*2M!lQ&>%K-`&A${zFAWH=5eWrWl_M#Kf$PI_#w{?G~NUQvB#Qwx%ww-pV}kHlL!5Ob}CY$YaI0>z;`GCNhoEO{oM& zzjQXEF4`r8`=8N7(W0m?wIQ-!x1MGmO;X8F61iz~_c8ks-MzGUfD4)tAcUJwr%IaD z=K{Le(XWJO8E&GY^X+$PUTO1bl1~gz9FQoVk1Y&Ce?T(gJ_jDI`%mb@jx&+5Y|zZJ zS#xfGou)th*0+>F=7G`*OE1R}3ZRN!ypr{RET-ypsd;$fDW8ARO?#r;v`I@TxJKbc zbb!`6ydPD<vk+o#rlKM#PEwx>u1>W^p_(E?XDtlcs1}WC^GvX0R6byI?JT;|O0z zXt4<%26Nc~Q$Mm9uVd0s6im{r;; zE?r5hp|t+s9|pC~rkhuow2E`i^YY0Tr<8N$N`=B=)&MGfDmp3-+mc@BP7QBBZ6zQxD& zU}k)?z)h>D($*W?kt8F45^#r4E2S6*0Uz}f|41N)38{K#*q~1e!+JyNAWYg$uDITj zE-q++$h`d=IvDCiiYQ{`;#n&@kwlCKN&0QnOh&R_Q>pQg+X4(R8akh(8ICickXXk1 zqGwJFmt|rE2$h!j7RdNYQ1|0#cHoznW%J3i-JM{++C`H7 z`91W>^CehnjrF=bh0n{Fi?~iO58v@~)-OK8wQl=NMLfe8wVzdQk+(VC@)MsuZ8f3E zzCCDUiM@tfG+5st3+-i&2nrAX9*uzdq;G???GkfB${M<#AI4NyDeR;TeID6<1BoBb zE&Ey_bw-(a*K*`j=1UY3WyC%E)H707g5$F&|H+Hd*flN4Xr-dUpK%0d){Lmh7U&`HmZqm>|9TQ~w9D zB~lY3hgE)$J<)qh#(cgG8SUygMTg~J0t`j>$``P|3Oi_REGGH2x1QpRZc{1cwAU34 zVxw{nKj9MtEBGUC!$S$s-8a(ruNA@|BV-Wo!W3IG+O7VX!8aULJHvu$o2H*Zgj=gC zmwpb+%3D9Bu+EkHVZf?pstRV{_9>trfwN85nPXpY6PsGw3PT0UEMIkdBk{);1p-#n zs~`%eHz>sMhzI(&HTp%y6ZO?rusXlnx*_<-jfN=)-lwAY_(G8)3ujt!+S+qj(6X=XQktozc&X!K@>`c3lAz1xr#4h52gCtVU$vNQ&l7srf?X zbK|p3_PY-DNv|7pzmIRQjakzSJF~sT9m;_ud}3BU*I5wd-RD|S#596|XS(BC3w6sXj)Bj8KrFWC+HC&# zlNNQJ2CQW(11}Q{oY=N2U!+IOGpd+l5TNMx5Mz+}fr4!@$(Ri0QH&YJgvFFy{cEKJ ze2!I|8;{Xp!-EZ#PY;f<{C=Gg<{P-Le>7Vcc1te%oM{~`^6(DRmBv0}s4a`>ZAoI9 zok^?%9as&8q2Vbfh2#zeMo@==Tc*-$e*7(&wEIdj<@Gq#io8%5femS0ZxY?nrI*r+&Rk4~uO1r?P(ANGPT8F_qNm&4=-w ztfZMnHXYBhFjR`g`XV;$jTN`hO%ixpYfO6-H_3B<+}{3%L-o8Ck*>`^gxLtw%$+Du zK_cKrB(wG0f%h=2%DpnTQ2`<(I?ds8$&qd{t*#Bif0e5IT;TNV&7R^qc8Kq~s{tKdTWa3$${o2xYGri-u^DhVV##viFPF>nlJD{d5+rIG8VwAf?C@C ziANNNgTgpcH8w-Vr%?Z#KK}>~Ko`CKY+@EHZb z*u+(vvV$Z;RK=IA)EX%9{=0T|C*#fA20Nd*--K7aTU5)u+GUo$o0`6P(Jmhs2_nk; z?)PejG~DL7t8Dc=GT~niSO}g0zB$jqzZkBz>mBTNq#+>`Yjtw@nviGNb~~BZ5I^U` z&K(U@)sRkM$QZ95XCOALp$FA^V7{+u#{MSxm7|4oY;Em%<;Cb?=>2N$rw_vD#0>Lh zR|SMp>ANv7N{am~p;ejgmcEP=%Yj@9h<=MZs-H{4%vfpFL7Gves`0mZBB?;T{$V~@7SbFG^Trpe<)qx8@E$|fx8N+| z?tH=z9pS`2rb5;US0H+0QVld`$vQ-Xj1Vz*esvp`Umz%>yCV9TBT$ z&1b?ARv(ajv&?PxSn-_Xl6z7I&qx-Z;0-*q^8MEP731VM?RQ8m%~UJ0?RPFCDxJl| zKi!b2`N&SGr{|JX@m0hY&-+=5&D#NgGgh8cJ(_ZNAhBxVtv83Kl}su)!nXFW9T8GF z(G(~jGwskHk%i2=6O`4SOrAyyH);^*C) zA~|olhvdvB@zjl4g4><7zF&hgZf!>xcH`9ba$Mk&@@~|bvdtc)bNgv|0AK^Lw zwVB7z}${{VMl8l|*l^DO`Cu<-vl9Q&^?&*%oN0-Ll z{();;*-SPpX?{qqzjEC)h)XSPuR(nnZ2@E)@Y$esbJSmhkppS`wCvmNTjsX5Ar z8V_tHB+dfmu-d!zfkm#q6`8gKzkEKsBH~T>x`|KLagJ+(L4Pn2xdqqY4DS>vp6AtH zJDThQ2k%xS=0OCIi2XpyR&xaq?)y}}R4T5%u2NT}>b`}YU4cdDz7t&I5)Tqn{@mr!}c zW;`I|p^yn*Nh};%tan&l(D86w-36m*md__HRi~SV6KDadWT0gaa^IqP8k= zIh+_XVazsWHA*0IYyWD{Z58Qj0Ip6wbY9Y0A`gy;5qXc0pqb54{>Re5=y#V%d>$vh z9QQ1%`-uc7xsZr=eO^P%c*wlon6)72ga1!I(c}toIeeg@EgJjukjsieWxIq{b&QfUz*u%W&P?0 z=7w>TEcH1IrKrSWJU15!eVvaAp3Wk#bl7EfT2On+;~uM4-Z!T~!8b1yk8Iy9DICb7 z%~`GPNra@0*Vjo@&5S{S;Y}AT;*TVegJnp_ZPNeT9oY)#1=fkq4VDxvL1W$vLW9*~ z;c>kep5#ByWRfDCWVxC|u{6{fie-S8^Vg*Pqbs8Zt=R9y87H2SJ$@d2geK<3E3_TE z&C=BdALJkj%IShUW7ic%nB|lE>_2@I-cfvPRL)w>SvAvoto(fywmwDiDJ*_usdwGY z>r+IuiS}%ZtM;~&C;n<#}RJlnDje|_I~;<3>FWfnQdV1vShXtdOs^!U`(ftsR~gO1QVDg2y|w! zXP*Zp@0et=@h@HwR^4?caQ>!vdJCrv*&5WWLMP-s z(i>LYNu6O_Dz&m6!{C8&W=`>-mG%%2(HE87!&Q3y^y+MdK&t*}^ODV|)Gw|}4qePE zKnwJ05|oi3sCGKCxHxr{@F;c2t3ud(X>E}W?G?P>c5^OqpQGeex1bHKi8oXU+2gxj zoMW)ul{&a9r43d0BVzF&#*P-{5?RTi?8OI(wOn`mIZ~pu{<1iy=P)Sn{*p=^r%b6u zT~X3eD|G%QB+>QbN%b50wxC2FpPc2hvKJK6Ok`np?%QfyX!BFH`>|3@HHwX#rL2SV z_mg(odhqqhnz;YEl~ksk ze#jw??C1x>&h3|Y?oizO4SwO@SkenFZF-K)ifz?(kz)&I1$;lVh0$7=g+nPeiW)AX z?7eeg`Rh~0m7%^#A$mzMF+CbmRO_u&AnAB|TLQ@weg&Nl$rflCU&vvPW*TJb9_#TK z>&5d+#gykZ4DuW*4~s_+g=^eGI=23e=K;0uJ&W}z&(T?ipO2|cFCq(ENP*prqF?-s zyUxzO-#7Pb)fr)O?3(vt6=dPw#>9PlV)A7`*=JWRo~wFGKGxCuQhq4Q@80Q}^)&JJ zWSLHFXQj2Z(!9k+N`j?Mce%KAr`v2V2rJ>0`Fc;}e2y>~(g8PE$iFoHHzlIqnT#LL z@5-0?1gTQ6<2ob~AH{1ldN8@tcK0NK_n_EN6YNR0Uty_vE|y z%=U24YJD*TKj~p-UeXOMGxvi5GX>F;FlC+ZNq8%|MEWAPK%w`%k#~Q5DEc`ON9>iQ zM41-*0S_}`(Z!%ny6$mcApq&VUy+f%Q!}r@$-Z+Ld{SlKUE~XE-YIgp7z}+}rF<|n z&AKpz5t)bWNVIV)Z-G7EUU9XYVJ`lxB|74qZaP61&Sf)Q^Ei%VBE2bjr7R?K*i-dd z8HIhTSEBA?FQ}#DXmx}*MuQffB!|xds+KMG7T{v&r7c~+u%^$ zT(_Nhz5Svp(RBIo``!Q{+nbGp&L?=(NXlD+p9n+{jhV0JY%(3Cv_9fySS{ku+MsZ6 zU~DR$d^E}`zU%)GB&tpkU!vvr@dp6`@D&b7S_;jv=FE#?qSVp`G6 zqa)U(Npy-wsIx7Ke*N9`|6}hh!=n1ysBwXzq@|@nK?J0`Lq;VPB_x%W?v4QkkrHVb zLQqf|hR#7`=#mEMp?m0l&!~@2{Qh76*Y$pQKOh%QoPGAb_da{yYu#&E)}Yx98F>9_ zI_p*awAyNj?0!R61JSHt`VEGL@Y+>1)Q>*m)9O@4_Smvb2HcO~lIu~fA|m?^Ro=nI zLz6rj91cw#KYDm0ygQhZUjIz&<++!}?T0v)bx*PWzCXSvza_K$q-mZ|0tnwrxEZj zBNkV7+pEJ1%@MGcZqi&)YbVyszRl!HzmYR=gISiPklMRq%B<^+#L1UxWdmDSUpv+F&Fb5b&}wCey-dbH(y_Db<#nNL2&&qF@*{X)4`w1iog8s{DYplD#@qkR!TCj!Fab!<7(MeF zqqfifbr*lGSaOTBJ<#HztBZ)hubBAv2X&!%W^ypGGhzMs-xWZA+sKU%63EoMF$InM z53!M7AEe^I+}k3txu>24d!|B(5n#0kNI*D9OauhFe0>?aiRMss;T^ZsxxSIDT_=G_ zNGj-5yUU`5R{-Q^wg<1aD;!+hb$O3|GO}4bXQUUv)X33Qr25s_CWoZDjlNzB zNjxcgfg#@*85z?H4=tp_;04U2u)KVoVtf1gU4$|zIhU|yFSNtNLfe~#>mi7W7&BGW zp@^J8QBhHiJ}5cq*pWwibMf2iV4M({ZYSRBtrQ-@C8^A?@h{`A97kgDx^H2UwSQ@; z7{?bZWMgA-(v8#ee}?TnFgCHK{~;3g>k>c)iW`%*pL?uGrTKrOMhW;PdaVD67~r60 zLI#X~v%BH-e{yVS`;j#NqpLkV!K-T7x!gDgH_05yj569h>wwm=F6Co^eFPrSMsId^$!ro9Xd$FsG-Rie1kwg@8Ns{ zqQY7oDmFkb;reB~-pd6BIAnNtyW(~A@g_n-Lnj@(#||3(&Qdrse9Hhr zjK&^dqgRe248*FSwz0r3x}r%b>kgorCtTcg>791#oyf#vxeQ~U&59ntB_su)F{yLX zyuc-)7ta;x}NKLzS%N2jcZArTH)qm(%ZT3D#*a&u(n!C+Uo=KF2H92A|QvT z8=z86{d8<0+Wh3L)*O{;o_*DRrvH7zb$MB6U2bf3X2gSXkvo z2a0XwSGMrf$ATMtjz$WHCJ_E(D4+Ghs*#7%*ce`}T{)x%vAq+tyB zR^<)6C;;I{gfS}_qV+e{H|T?#nfZ;P0iBu8lmt?Ye)|K@akI(u83>a_BtcI6E!tdL z$I%hT3m0Ri(ZjQE>dl-q7y$LCJo%6;Pk!CX@|cISyJ&FRvZOup`WB=A@!UJgjCK{JkCGb_Xd$x9Ry94u*cQ8(p!9wd-}| zbhelrW2^P${*Y)$-j1gU;_J1gZw#WwAh^i)uWXOPBY(SJVR!?R#eEB4lF;Yp)&DB) zg~yTU-oQ}1V+I4;-Qd<$Gr_Bkai+KJgeokRXbr`Q*BK3Dk5Gd47(GVq zHe*CdSQ=a&tdHt25?*ghhme}hGUQVcVpy2-7mv zQ$#rXbYJDxR^S@v3t%$oj?3_u*t$;Y70Yal6eo+gfgrBg#uP zG!~B;NlHJv0ahA>Kf?C;Q3lr;N$JQQmNq6!s8AL#PMu2qPi{vM`pTwGVPH0v7j0=`K|SVCei`m z(yysfC^ExKUz#jpXYlA(DwVE{xzzjds2Sx`9Xoaw7U5mn$wB&^5b%ydJrEcgW?b?0 zL6{i*Xx9jdREvyqlTT`>>%KHZ&8=w1nOC+$t4C=b(|SaYZKpn3Vd{ z(?Fb#RCXQ#zSX0Fy_eRT6f5`wv-<$KYNYb|tgZCAazwUo1Z&F?TDTuY#r!oK%GYA7 z|9M@uIl{lc7p+Z}QxWM=Rh#hqrsdcM*K(E`J=2A0y~c1&zXKxAWUv}~mkHH+_k})U zym|zu@AE0cUJPp{|E14r?#UgGP9aG=niktPmOp7MG(gk{A_m%1Pl->>sYK-ENqFJI zOyrvEb+#}Ouf^nd%PDGc(f*EGzwI*-S|NC-lNC`B?%eEj$a^=mX1XU1uyaMf|SizvV(VTI5zXsD?-wSDY7u}{e4G;(~At!(LU9;6n+obnmctG=4>(K)ZlmaTI5C7Jq)Xc~*T(U9zC@kgw9 z=WnxzfEZj+u938T*CiD)eB7ZiPOIYDB+_mv4>usf*3S9p3G8+e%_i;rT9RVPeM^OWA}=Vd=!(S*C+Mcix{fK#js?z1OBH@ z8RXF#^@>j%T+efhzR>lFNtCIrgQUD&p| z&fG^bRUqShd=ceQpIyW_uv%#|`51nf;+qn_EN#}~g5DU}gA$bFTIMQ2z1LI|?pS>f z)SNhejn$_Ych9aCPc{UC5qA2C<)9|F@xi*bL;L9FwCks@lJxRXFDBtmDdGipO4gs{ zRx+O#q*v?-`cL3vZI*s(y^}I*S%NK0Sba*=y{Gkb z@)h&B$xXqUEf=}&MrAorV;R%tBCm=Bt zR&~h{YjePwpJO&6bKF6`aLdy=y3*RA0Q3zMvgY=BO(gsLqv1e0WBA2w>aCLy-Ps}CnP}8`)affjw!|y@*mI<&5p6v(G!(XLRi8D>rdCIfiXn@(!eX3Yxk`p5nup7T z9WG$moa_&eyJQD!-$nQrmUjiP6nkTGZMLZB9jw4ymiwNiPb@Whe+s>Pbrf0FtRZ6_ zMD2fP0z9(9;kz4)*p2jeW{QSud0F!%Sk{YlW(dh(o?3vDhfbPF{53N~^NUX@S8a6H z^-bB^D`XhMV%f1Wqwc-+Z>Aqod!NRh|i zf+#`)$%u112+L+Ds&D&kdn933@QTHW;v#Zm8f^PIwtOEp8TOeK_1MR>2}oaB#M#*` za3AAgu$gD-a8m8RlJOPQAw(-x;t`?K{tth(b$2rS5!|`tnB`uo1U5w3W;nw(Zj0fjD zy#;mqY@lBnSlqa9jh4e=#BlqLX&E(wp3ZM&_S}>4eHrwQ&l&d8TI=N4vy9!B^$XEe zm%_b~On&r$GS7Xgiw&<$<+ZSQYV%#8M(M8Jxj37QnW#uQ5$$x;O${^FeD5Cj*kKyB z#OS952G1O6>50CqV5rv$3{WkW4yOpT3af*Ks<@j7-!Lq*5 z0>^{8n9HZ3jo~~|EZN>4a&R&H@^~XKlGa7t6`N>hwrB$oVV9`xHEPqWy_zT);*Oon zE)oWrr)@D#d5uZ+0waE3uxSls#TmN5pM zE&%^a>xw`96r+Q~@Mn%+aL~S!d&u z)9zv#Lu=PQhlNMtG;oF5N}54p2t)*jx9r633G*5$(h62Nm+gNt>Y!`v1^)@lQsW!8 z5U|#nm8tiwo*o1gVY-i-^`zHa;rEb_FWU#$)Bg#D^IV7lkhMGo_20BQ&?0*fzUXZVC90+CaoaOBi zB)^~)uCcW3A57Ob)iPd_wZ=>+ft0R=RQcb>3eN6J;C0KR3vfq>@%y8B$3PC46GY`E z*TRyiMEeYpfoV@3`dwNnOzUUkL@SNvx2?xJ+BbIQh8!C?t#O)d`N6M$B<9G3q@b1v zUzg&Ex09;B^Fg)er$1OWb9`T*?YWyq_VPh{^NEh-5ZGd|uvW>-&Pk2P zBQwOb6$7HkF~=f1?O6_3*f4s{f7S>gW;%IsXADBd8h$Ml^0Zha27fw;Y_nhcXm~-i zJKmIH_Zf9fA*Q1@nPO-E)}4IZ7n^naZGwj2F(;qX}R-Os=Sgb><^X8|w+y99gC0#;x!4kS$>2QnynEl6oZhoq+ma=E# zTtCiD0zp)Okx<)=Yq21PJF#)Ws$s~7^EMi=G`AG^jiB3ynX zo(yV%{CttFMweY2=N%($i4|Rg{{2=%MKkJ*}2b2oAOE*Ws`e5BL4?XDqDIQ%P`YmY+FJ zdd)&Lr%nc^t(nj_hz2pPb;p?j#{ACY*2VhD!E9S-a45`o%{I1B11XHCCA-|}Fg1U@ zXIl}nP_Y?eHw8jNNa3ClVWdsRUW?e7Q=4LXyzxw##b*%K@z}0bVY{V(orPa>sWOGEm zGIM%HDdL-M{2giuPi{v3%Ql}JL>|}n?=vGU2vNBcJ6EoRiu(NB@_JCEmXMa40nyCr zH#62vXi;rZP6I(r!MIazBPA)Ua>v#2Nq5R5)eZG%_YlP_huRmsJ<{s6C}Lu_)E$~) zhbfNWTI|QrEBEAGq$ZQz5K}Di#M)G9EJr6(BaeKGuD(&+Gf{&$n^?IJHua)P)lDg< zhJq$gfMQEe@}T7_Kj=wjuZR_|KZiz|t%yNADi*c25#q7q>^}3+P&;v#I!Ws2r^_=V zE+x!Ryi5?qX}#Lx==w@F{GbV%iD^!`?;dxRWH!sCpK3l*b~{PJQ|%aGbkO?B)}=}h z*+mQ~iK&IOnW5A_ZFT>0r$d}dq>Gd%J1(0w>BVW7xdEKMC`O{+~ zuZznjLZJ(_?5-yy#!>YqePr^HfGodZ|S*~YQ@EE+k7nra!g9+LOtk+v5!-n69{?}#ReK+| zK+27n%CF=B&SN)oWqe;SJDAW3c%&~5FP&n;ShWhi-=X%Lk8CeY!=$Vdv^zQ#nMY&qTBs>i-!F)I0Q;$M{l(xvU6bz1;UgzxqN z<-zo!F2;%T5rAKGC5O{1Y+`w+N|T-FhYZ24ai!^j*%cS}#|2rA_I@eDxV*?+c|zm* z1)(#ahjUL|68zpOT(l?e@l4fGREpOW+eeAgb}(jGBfwKKuJTbv6p#oHIk6uP3_EAn z{ol`60V(o|DYL5EkBmlx#Ow%?JCL`nomB`fn~VL}i_dqT$rv9fc7nDZ%M$KTY@F1w zkom3>h)H_Kc;ke29@an0PnG7~w!Rl-aM`uf_~`S!i+3hm)y`vUpNUv<`*QQaQxodM z7;k4f*XeHQ3W@9=DLwS6&fqfE+Y^NkeYMA>ox8>J2ZdrLt9}mP6*bR6Fke=_KES1n zO&%w=Ty0L(S;(*|%(P>da>uc;r6yt8UBb{sX+cG0PDs+l9a|#G{lxyj=~z)lDmdDv z8HfeQXg1x?KYd|RPosa_NqsSp!2kQ?{R^1kqXh0R z`T8q8cCw^4JV%P$d2VHK;;(Gb;oh7_+wK}(tMulJ;>A(+6zX=xK3mZo;5yr(&zG}P z`CCS)1!|gVs#_rArr=MJp$Lc&zyKnr3Jb${#Rzmgd1oJEkPQPh~$TT6OW#qaOc&fH{9j#5{3jh4i ze}GnA?*O!FuiW%W!M`r~7c`?`0ze}~+Z~txhO5xqb}2OO<~703sr?J10FKRnF{g-V z;0qT_LYl>s#L)YIRud4ZL?3s%P#-mQWVGfIuo%li9X;-!56zU_6OuXXuLO9G9--LaWtwHIB6on~$s}Z`e7>tl0RLF?xclgn%C; z+}7if5w8JgBY?yi0Dk>?>Kq(WV2cgO1k{~%Ldz*-B#qV~xNJJh{hRpLqAvlXGr{tA4gi? zrF*6^I{$d31dfK-A#S?wQqgC^|A?hqn27-Ty7d1ph3=LATRM(6%l%9>Ch=|h>{bc0Ee5OG$1vr{KfZ1lQgcDG|dgJGZ#+3)-w1(LPx$Zmv zhO}O=@_h|lIzM@gUB{Q2@`M9ZFdE*v^s?~NrEyTAR&Jk&&mrTh-VE6pXp?3XiZD&u zB}cE$-cN8SgW!|k44a-Jnno>lKC#}@p_QBZ@#9B}O#0w1oRrHfwo}}M_`sav-R=J7 z?EBI6WGitqzhR+n9nk67SsrmJ&j~wyKa}gy{#ck6?6wZTPT*Drbv{ykKWlM}{JIth zfYBoLNTc11^Xp zZO4JhhhEma-of9^eY9vrebkG+m;2U|XszJRKbE~5I$%=d&uT-3h;EEFUj=3LCj9UXQ_3 zWx@<4VJeC`ULDNk8pJaJu=rF!4n%}YyCCTZwha`je;>#OrvmaZLI8@LDig@w9_A7- z3x_;Eas@rpmIXZwdbF7wE#LE1EBEde^0m*Ce?44ENYPhe*?-arY_%~VN#=k?h?mZ=1H)}HY1v~%S3^9`)$$Vgun z0;36Jdi@%{OtVV*dk)V#vW#!&Csd6n4&JwrDTRD#6J`asf1>w~X{+#cVk%x4oc-MU zg>8aK_kOK6(&6Z2F`lTf5waqeOEb_m`P>CDh*M!OR9E7lgHMRyxcWr74(;XIEM{-5st1WL%yb zitSeN8+uH+#pl}OE3HLss?n?F-{;aPs;3BiQ@`mVHrW}oa4>3I3;~VX;)id#cD^<( zC|YQX)}a-zn`m-cKyX2yNAWJ759=5g3UqMLl)k&+R=K!RKjMEd#u!SiTJ8YI2T_tV z9c@kNFFG;>=sHYR7QS4UsgL)76D4?BktZ+8qc+E3xrYQ`V`HT{BwM(Ql+(P@CirL{ zH)0}R0U4NGn%T5_{k+Wvc80{O-(huVe`Js9#MLQ-x48`g3JaqK*WbmD5{F*HcCd4r zrNoHzF>4Jkc&rX^4u_qF^PW+198LJ$roy!2M#aNxoGaf50!GQqz9ZmYF>55Jk84~8c z#&K|m4udFSHka4Fb~Wd@%o_jJEMwCCE6bcev?gwPV9M!<`Ne-=#~cij1Kp-qS7+tW z;)91RZa7ga&Ivi+nOZh*{w98ea(ZieUyjlG_+gutS5y3=nQ~e$y-R)E?&SC@0`SiP zuE5#%&PG!@qPR4?i{j-Ia_W%lme0~1i`X)R1m?YzfTP&(t(7Z`MWf}Xcea(>fmT{hNAGOc8OUz4A?Tf+gXZ-1)8JO)Ze!^ss1ov=43 z?~wN0dHvC*`9q*49mDbcrq>Y=w|3gHa<65;YzVzt!oQ(6&u=C@IK5c;ZiB?$5cjfQ z$8~eGDv?Nr&N34-<0fKp$+q!9&6>ocg0QT6AKVO$aS0P;v~$+*kK*{Ib<^Kd$-6GX zre16T$kWO{Yo`_91gl3C*+>N!mn{;-sW?|msv8}}w+NQ7RG~~Ci;bbIif52>abXX2Qdp2ehvCq6A+ zgl!+#Iw6a`cU!Cv2qzC)XqVnkup?8nR;6O#vrpbE80>%0;x7wA9ZjXCCn_;9yOdwjadjh34a7hr^+`LY940rk?u`_V%?j zL~_GpUx$Q(EyX#XD|4dvRRHva0q!1gaTJ#&R?nlIbyUa}@roydmhU;!h?il~c}eAN zo!PyS^Y2}Cm1#O&0Qceil!_t@Lu$u0zX}3}7o>&bTqsUc&5;<+4Wg*%lavRN=K$6Xtlmn#2 z`}CITfF1(9`6wnSF**22th_^>;lq>ojchDU?bYZrhxY0D}_PyfFGmi^_eR824efB_l z0Ov@N(Tzs(RQYm`x_9(+=N+@+sjk3l?uOpAw-N`kKP;p=s6F@Z%2KZuC-62g1Y9V& z*qxkC&ZbP0dyN`4720p>>jxoREc@b%$2JR@T0PH8!6~8BCtDWP`+qi!Dnt-*5-S>7 z`JPi$YgRL4-ZhR|!A_Wx@E;Xz~BdLf_iBkoRRmKMfE0nZEWLXabptMHa&dhdmPNz zjZffT+1<}`jZVZ?DwD8{J#nKL?iU?DRNi)b&+loSEf-j@6KcBCkma}@dWLjgp{CI9 z_Qg<_Y+u+LIPG-i_j5QhXYgZKej>J`Bk6mnEy^=~wU{9@Loel8eR5)a z+-h;K>9LQjDH=W|JTp^rfhZGp zwHf~*dUMt-f7Y{kqdlg@jk2AF_U;ADt4p{iDorxg{96ZV3vr`STg0;C za!(ZnbX2&jZQN+Quvhgr>s^8rNZI5_D720d#+e{00uJjYZ#sXZ8Hwdkr&<6~vZgPN zY1rj^4zr*QHZHX^oq$M}_ChPO%DQZQ!MOM4%8d3b&7Gzk8i;0P#JWu}L!nQe1D6{i zapcqNx~o80G0*C|)@4cJKdYTwV5^Z$EG*X~G*Nc~K7yX)hI11hcE-!7Jg+s~Fk~4V zFzx^nU!<6bh9j|aX%bUfC!|TDKun^cVd|klP*qoJEOvdq>Y|zbvhizSTJdVsv+}I|UmjrsBR=K>gc@?*MVN%GT zLO2d5mdn9x46H!J?mRF8pc^Zs(DpeZZg2D{|Vi@H3i zql>O0gU=DlKWN*c8b&sFJ@IY(lLr?E=RXt6NAk=rtE9J>*NY)7W7TlHNfP{s=;);W z5SDFO(D^Z4B59+zbx0Ys@vPObC(UC@S_1YoE}z=3FO6wx!nu6oSykSABV{t=rO=eD z&z3FGgKhz*CwB}-SA6l6)zc&lEtBpgB+KKN^rcTl4pYDLu{mMJU@KWaS*Ghc-u9gR z_^QC8>G-9~4!rpWx1l~X*RJ*JO~3K|{nav^M$Sp0&Na;^tbC(*N%2d_r=i)m3Bhq# zTUL_oP>!Z}7pe!Z7dUsC^EXXu5NyyNj#AG)6BAbpshig^j{d+_-*jD^zwP2nhReOS zBS~-P78|w)cs`aZ8`UeSTl>32RDivQcUtgI6kZ)n z!Gt8-|Iz~R%;zexPka-4z6DO7&GrY`lyy*JU^1e>8F)%2Y=vt6DkOR)Y(z}poyQ1a z`d!;)t)>}Mvhj&A99g@BEg9z#3xV1Ed!uVq8?U9bmk#jHkugP3fn#jO=9%MxbP@cL z_Cor1^+DC{S6s`C;!AW>Ph_~A3P3pNEvzOQyR&oB0`BX+H8OfZKE|@JvujJ*H;ui_ zHDJq&(miUT(@**I9&4Yf3u#E7D8UporJe2YAB;AHT@45%TUG^oxZ3-4F;qmaeQ$>K z332HZyt3!fZyq1W&G0W%U)dZhg-swY%;%A2_?aVd4}*R)@RzPbycqhEXr1|F8aK)s z>vvXs_4T5vvi7|7PAi{bBukfl?q23_;1o2BplS^$I|ueU4BW742j9=j(`Q>;^&=z6 zFK|%1V5YAS0xWK;7kt{@+m?GdOF3zhYgwuRdTN~}7E*D0m$oc$mOS-=TX**(Xcyd| ziI%;v1==-blr!{#rBnS$h|5IePnXww)4eUbwy_doxpSG7+iFVceVnum6G38~Z?k_s zMClcV1uA=$dk-(h7xW7F$HvCmE`~PFzL%_hk!u9@apU$xNKf{(llJ=mjIQ0;4Dms_ zFeR8dS%J%Mqr?_?nIi(_B{4JH8|_Ea#*|5ez#R9PXrfO)>PxTPhMk%2K5;1C#i|mS zTjlf5(iomnL%7$})Hjxbm^jqai;TTsS|6#$6$@Uui2GZo48@CAM^8UjmunNOKz&QpC{9+;wSa-O1{swk4=vyZjjvau#S;^CH2XB z8I=F}=>Z+Vwp&jWgJ>c@&Lp&dec19B$|e{s=Minbw4SC(WYbxY%EOWWs06K&s@(>` zXgr))?@FIa4d<_ne5vKPj3|h)d&Q+4HQiL|o8n^i<;ZBR^4eiuD#NG!rn8xuuZa2i z_7&qE3&MQD*3$9XgIWQfgC}VhWujh-ozHp>pY-LF@u=~|1BFyLAThrwdeq5CWmsp& zN$MR#wYoZNV)DYOwCz`Bcrs?mZ>7jv`HtPwIo@q5ttH9pBS7jNgq z$=P|HIF2{$yi9(rI|aB^P}g(R7T9u_7S}IWS2e>kkKS~S;^20U9zMF}Q?vo-U1idx z0o3KRdy>=}Qpcw{O;2FD_!36!#4+#=vu{MAwhrlDr>je$vgiI49YGywqCTM(c6!6z zvIftaJFkEoyvYbz(x}#53mHyL!Q7&Ts`>j$+ucJNSya^<<5RT<6DqJGj!vDI8w{0% zyboSH;EHc(Y-q2#;+?ujZIOA}88P_o8P_^4UcHj_Oxd+AcU&fZ=C0DRJQujXDc5~- z5uv|OU(!QR!A>DBQ}6f_qn)ZWRd{6qs6@LZufeA!WH|7UXs?a%xjbi1A>-7dDK^96 zmB7a~;zN=M|F@=!$zo<$xbGN>V&5(Xi|bAXxmWu>I^FpgZ0?rpllhc(Dd1P4znc%! zrAc8gB&hKEek3A9pkl-R+%B9| z+xefyRbOk{#_h7?Z*a5@pV*q>P2la2G7c{6G50by{98o{sFCr>AD)J3^@O0XVa*Ux zhj2oFy3RvHPioZ=$qc=O*iF^r9SHT|x}?JG9h1R=p|KB3rWo2f0FP8(=kYy<8g3D_ zYg!95Ow>DJdz8b64ck~(+2_)!0yBC+DKRgPY&pY8fPcu}(uFrjKEL#bdf29OZl}u_ z%ltICZDkts2WqX6GwH>;2?>!yt_&z9ViNP7o}nT)jf_^R3j6_QV55l{Ub)>1zYHu& z1F4H4tsebOzjxkRURABrFFOrq%ksEkXWX#F6W+Kc8N1XmE_2zP&&Ag$heU11o&sxL z(_KF%nw<{I5Xd*}tHQ-J`V53`jjtFyvA4c!VK7-ncoX{(;v4vSr-$WI7736h{f!G^ zN5PGZ$GId4wc{VwQ+9!M9wBUg0K2Zdsr{&M{L0jKn<$ypgt95y89+rBQi!W88>qz& zYH;yxIiyP=q65!335Id3i2LRErZX7fpPv}40*rqT-EO?isk2uXPc$w- zW+$5t9a3lAgOqIYQAf{4;;9*?jy_XwH{vN3WJSbfwu%U2gnm95XwrvO*phH%Sl`P? z@g0fK>R{tVHO12ks&J^&^9F>SI1+u@Sk_MTJ{Pu7IZQZcxMi*VDq#F@NwxHhPAJi` z;qK)5?=oSaXOj3ZuV!X0pSc{j4=h#rFMDvDKaL(=WD}qM$d6G~Jf;>vttJPYU|`sn zi1)>5$q|yq(`mr2*sU$pP4&9{9j2Eimbi#di1chYvP0d~}SAclCP?hvRRYz2?;EI?V4uv zX*MN_`~=!VHsL86VrM}S9*(vidl*6M;gB6ps}qo>w&@*5NSt)1XrhMQ^$_+`jGzhl zzdOQ;Wrypk?P?t8K@U5XQe(_eX7{BKx+>9(^L^e#Sq(>xy}qmcH#eVFH|1@J@vSZ? zVi+wI*WDO79y&FFUCEvJfXyv~NHFkToo|Zd->rNK3%|TpA-C+9{9Q}Cf1a=7_{lh> zQ#nY-b~{A?vSQ=ZxD*zBt<$F<6eMIG)c-nD?v-Ei*x$~ERVe+`v?cwM6hs;lm4|%N* zY$SMs2RgOa#nw$RZx7^h*2OeE4xW+odQsMNet=A=(MPE2d*j9N-!u!TZP>~DGGJs2Q;@MR`eWQf)Y2<>fcw*DWKBZ4wIRo0>1b(?m8`GVdzt)~6`?pSZ96VcQ z2z_06SFaF3SYc<8yRu=Hyd&rr+pNkVc7iqtSi*#qX1}g^|3xRw6q}{fVDrMgfqXXJ zNtLdo{#U&vFi|}4A}qVS@ePQ6ifI?^Fmix-w|*0B;N@)n&nuJMr#txm0h8T;(4upu zv~NU{|4||f2OJMDdQ`Jg>;Ja&&r+piqKvNHRi0B@`fpGf_=_(VC|nhcU18t;*PH*+ z9+DoTk)g+)v0neeo&KV7K>adpfA_804)opro7jNzp zVfLs$eefS2{r};%2)l3XA%PkOHxNz&kBvxy;S^Llps2?2(%0qk{LRuvvY=W(K<{nt zgVLBy4bTK$fl*C8E&Yl^NJwZZ1OlO~y0>HLC<66a4;mCg_uj%kq z#WHERqsC8#xyY-5&ZEJCgctfygYSu~cM8H@7~)&?rrX^!sP2bKdK8HZmKTWK@hgOS zB?GB%6$Z$&+nIVYQe%XPffkOACA2s1VyGn_>uTFN07b{ry-5=+W-X6+q{YO;&^wV=M4dMN=!_Q#pXmsq_dx&pANEv=~o-OsnJs8exwIdVdG=t;~4zY&Uf(EmoD@{QFu~O^x{8$6^8@T@-BmFqQa6MTejLo26}r0 z+N>sI1%!lz26s7HV0|)^^_QpXk?pOjTXr6=}xcl zyvdYC$grTMN|`E<6^1yzK0R~6UE61t=)CP{Cz&+ZA?tM;6B76=4uCL+O#zk;x=4Gi zFqT7Ogfay{w?)u6o1mDO?jW{6wCttl-u|G5XmLI2kxLg(l@QbUEN&{`MFHwsn)cZ) zZ0<)p_aGic@BRii;J){nrITn^lEasyg{U=TjiW7)Lxe-`xyd1`ih(XIyAMOnPx)F` z_g4qq@--xa2g7ZgeFQPn4f}THT0+;8*1KPnu~w#x`ybAS^NO4uZ5Lzo0${0eaC+~u z@#URCuj1H%%iksHMd;{T-Gamj#JXKN3Ob**cAm_ijHXzas11%b`PSMz@(+Vk;yFs# z@|RjptJ-$|s1&R@0-(8P%gcbJNq!Z&E*}`)+?s2Cs4N@k z)r0OEp%E}lv<`>$)~CHWexohVWPpj+bhdG)y#hptKZc zKZY{q#gek$MhjdE$zBY~8e+|(i>4{#(H;$w?i*JAS4RO&IJ;<1$5hGfdYHW+`Fmf$ zoHUP8cCTA7vcBm!yy=)-K0*;Gee=KztV|mByJSTHJsYjJnq$ai?Tw~Aa=aG%b2?9W zMCq+Ziq^U0doObWJXId1PT*pSeI$`RcQh55qJjXrwKmhesv3fyI_z)Y;i*T&A6{3k ztKMYSCK4MhygJ8bZ+dOA+7DTqd{Fm|ygrE|8MV7U zb%t^`v!PBHP)c>I(Jpl}=k|MhblALZUq&6kL+kVuM_G|S6f4ER(^47?5VYWIPf^+R zy*IqRA5SJm8@1i);Vpt^=*n7;=YXj;L>WGR{{k)i*%K)`J?3e-w3O;#KfRZJG(eRXNbSzC;E zv-G9%$o5zzD^qBP|0&ug#Qp_P`pIR&r*A9VHnt!}8_-M7#>)bByv6(>2O8KJj=pRW6vXjq5dP<}^hRU99dvY4VE> zQvF@+kKA(2(zQ;0%c$t8;&IccC_TpQku>)$?Y?6yHXH%&?qK#1F{~_xwfZ__4Hc;H%T>~tE;O_2D0tAA)J1p*Q!6mp8G&p2& zx8UyX?*2Bp_x|->y(+4<*aJO1Gu>a$%$fdL;_q#U&(f?lgU(bFQvN-|n|C0GT5wI5 zPUn;u8cWOx0I@OS!{C7G7SG7Q&(4?xfHfn*@sZ zaS$PFFbv)I;h3Gkf|zhtvK>Jw$#sLS+N)+q08AV|Ted!n?_mhpR9G&(q5QU^oKceP z`7@Rd*rTOS;REltaBTi+jMe3AHOhMvB=9FN^FK#}DOga*-B_w8!cUWNKLgE6Km8u3 ztIbkiao&7zU&knio{MK68(b80g)Q*|bB(SFI~w;yT;4SGL#plw)~^9R50*5%lMK-hT_1A%B+(+g1&hYr%CD9=LvnGkaxbJZ$5yVreQ z%@okl7bPMx65c~JC0@e8!8|+u*+Aq+a4Jd#$DqCI_DM^v5xa|ro3;?BM|FoM0T+TIDMbm@=#wP38$OwSRKy%v#8T<_(AMjgX<>T(Cfmx!qcglW+b z)-&mnrjSDusHc(93*-8@oe@N08|i(ds?j!V?OvZwB0C)hAzLN709 zycHjBnHm19{Y*~Ph}ntHSs92UwNI%e&+6+>#AZ$lPlmT#I;#;Abu*2>o6jwU!OWJw zZy0HSplb9TDpxwhT#-GNT&nP{m(2v zQtu-aZbaA1<^l$hrkJ0;v|V+reqAg)6yM z?yt6<=+Yi?SmPQ(4INSM*}g^`9i_bl5I4KiUQsR7_0@vWH^yb2KcoQZ$7p9iN0}7e z!$Mbv(fEyUhbbP8OawH7fgSLfpy736Q(I+Y&Lw!43k4bbeLuLz3K^?po`BVkXE^ip z*I@H@sk2o~hl78NAS9=g20C4)v2DK|>5*$2_yrc9-K8oM6p^VXW(&{u+N=t5`{qg* zO53nhYiq-=IVdut*loWH;LH53YLY=^R(bqpvX?NE}pL~&-zVVMNpJsvAOLR@o zfe5kIzuR`=YL8UI>I7`9Mrd^jA2%>;F>)=UZj`3ZN(Tgea;xhZWHML_^$lb~d74I~ z-oOC{(#P~UUl#P2yhGhQiRRy?P0I*jblE>t)Kugz*$(OnnD|AP)DtbE8iZg$;EXn| zRX4`InnPWpZ^@LswE9iJnK$?Fykh}{@j6`tO^OH8)NA0e;MO7~`4crZiUm(BiTob` z9cI@?yfm4m+sT6J^7`S-sLPMU_ZKPu#KZKBV5jfV=mGH3v+}3LupF6dJoRc0({9?l zb+H7_P*Ct|R~~k}+gA?xq(FimlLHivC7FJtka~wf*ehC&3WbeDG=U{k-NfH~XNn$s zd~Ra#ii=031JsK{8!_uUu7m4~zG-rF*2JlH6)WV-=p+qektzbmfq+|tgo;23Kc1$? zhU(e#cHdlXRn)m*q!_N|u&r-?E|1J6cKZd!m$ltAGE;Pv#-QA_kT0}~SOI?*BBkVh ztY|{u%)HO5O6ST+Mj)bX;6a^Tq5Uo^(~dLH4xHT?$~sYQ!|j{??@DH;w}^or97j^Q zyBW+Ul-BXDp@F6ce<>C@{?;!pziRTl1k=g;{HXz{2u-gfi4-Z$+Y8Ko`|axzHCAhy zY96%P;&7E-+~F;f>-Ui17GE`=sS59T(FI=~)MIhVsQ>#CexW|gc=!18zo@(|0nrKR z`Vb=^jTv2kJ>bey|0nZ@gTq$)6>yU>u8wt(-f8SB5lJiPsLOIoAYQZ`7#pPjTp_Ub zF6?!FOERCl?~xr$O(F|%vlfZd_961B>gVUG5(R~Mg`1w6o_?v5?KfoN=XQJ2=UPnS z-^9zT)BJ*hUsly;Iahxs$k8xIO1V%;My?Tmr-1zKklwOBe!d6Egq1D=rQlET$ghT# z&V4Sp=jFS!7f*Og}ooAOMjlMCq( z^}xz}gGrs-ff+S4cYGfw1>sFU$TKC_g}Vu3uyr7!psVz7gdu^H-f$E%m?PwnAYXuqV-^1lx0j(|gmLD*H~Ly< zK2D@AWnsTmZ#m;LEriJH(ZDmy$k0QR+%5K-`-~&F+&!T_+gxJ>y)uUSkT}JyxZsB~ zbXHz*yKeT*6%t+~jByk_xoXRfw!k5x=uRIdKnkJ=-;`inco=P%$pz;0!UNPzv@MiR z571N%C`QAvdJ~JnIWrdAlHKDM;^wBIvy_w+%xcw;bqV(ZPNFA)uJ^}vb^?4$JVY-E zsO-c0AzychLfZ41C5_7-7H`b^M|ci|k@Rd5pAOJnr4$aZ&s9;T`=vms*4Vg5CRO>D z-R4T1y`6@PH?SZNWqwSrqaxC!T=JK`Ay&UNZ(=%Ud}Pydx7`LY} zSY+_-7?9o>_P6Yk9i(X%x}WXCuKs7d4H~Igj!}rx=;%=;%vj6}rizfF*SH?#;>EPa zUE-|@)>B#v%?8+>+q*I*W(yoTT*~rnRL|sr+H zl^lQiLcVSIGSfrQnb5ka2<+$zH2zTrAA%(wd|W@^RW zZ3@ozYD+N9fA@5`sZu$f&Y*@(2!(m6(f6a6_$toPme-#7#}M8kR1^&hNP$CTNAeQ2 zCSi6W$T{n8;sqUq&k-K|7qa*kP<(Ru7O9VcczJ$jn_q@3(?@xaL&d!Gz}DM|nFi)7 zLzxYS`4NpUIY>gKD++{Cp&2hq+u zQ_XNNP3sXo>1u1`3Q+8@oGkz%RYW&MyA13xhc%*SqAh!w1#S@}3gArPittQJu=-$# z#J_H-py9Y8x#soaO_Lla^A!Zfh-qm4*x7Vu&dK|N0s|h#nlsg2)g{(Iqr8}Y-k5?| z9W&dDttL~IyRw{)3jDQ#7wpA6`x)7HLgCj!p?>*y3 zshq<;0s}mR$RT&bxMxLVMQz5-0GiA*ErQ62`GBd$hz~ zAayKwt0Eq<-d+D9fk7iBOMB=gf@jpl?oCzw21zyX%0M*(HPHO$!jKvIpJZFR-Td|% zZ&57Hk89$_=!@r5-w+nPq+K@_wb^Zkzl0h+g7;{l;JTUX{o!gM{@oir%h6lgfBl}~ zqck9M0%bD9X_(U*K7=NvwAU#H0ZIyyxvFk0zxK~-eWEX!X~a0rSxioubw20V{S9VF zwj2FSTzvQK&Gn4DFv|=9@oPcv@wcco)1wW~&+U&2#5e4B<77-PJ+4ayzH>ybms>5s ztotM&v+Feelj!QoK-9TM-!rlz%KIk&lIW&MHeh9>b?@GBcv>DWp@kZ}GZ@*1Q$ZkRI_NwQ{Nb8l%L^pnsEf zx1l0ktYm2tIg`Wyz$$EVV1crvR>c&T$vX%DZ%}h_pemvsqV9^?_lY9um4d-sR?)3A zQ>1c?9Qer@s@%9jxhK6i^*8r3iY5VV4#_x6J0Wc3xb{Z?$?cUM z3>ghn-Je{KB!kZ@ZZT7`M|&d#W!?50CQ<_1MN85Yo3E0rF&-BP8Guqb!R>jH04vIi z(gT~1NLrqwfalBPcA@0^Nr#PdAei8P>oH;}_f@XOW1&5X*qp{T)oZSrA1cX3{LL zw3=lv4)W~+Yxy6b2tfcs-7se2oG1Jf`CrNZK0b$n#V2p>xbyz6!T&w&WR&Pc&G^bg zzee+~!~aD6S7Ip&B)7%Ko}qK6|FrPmufZPyU&Fxy>m1ZT^8XX`pMHRUQz3-1oA?}> zxV{VS*Z=ov9R^sS*=8Xy_5a<>Ke4%NFe|xbD0Ceo|Lf2HwPr>M7C721d&%_w(_X|B zp;=U&P{}uy`a%Wafw@T-$NQ~@`r-Y&h8=kYcql$Yf?NFwk*~Rl@Hx_-;bSt@ z?maJ*G9A<(>g+!r_p0DY=M0D^`6-XRz?K3<+r$AreMfx8@u84jX+Q}i3>Wd3i|75uKeEr@cb_7s zvm~KXrj7-FW5R}mv+6lrdHp^eNJK<5b89oWS9`~sI!mPv`yxFwFnp5uz6}-^M-63` z1~b*45cAI2z?s)rtf7Ra$C+2vE;M82;5ic-8j4|M#h#~Bok4UqZw^=4p_{cuZG@Ta zf5)R1aKDHN9LB&X$QZI&j6}^iF+gZ@&#oQ1*yMvk5AwH3fOk#*PC6V6icSarcq{#s zt0pylOR{!~_e zYXPe>qJ@FVJj2KF_#9s5l?m}Av zublRcg})k9NaYT45~?fqAu{q6Kqw5(%q^AwQB%9k4oCe4wP(P5cDMC+Cj6;cFu^9S z5d7Wm96{VBlL{Y5Zn)xyE}J^=NZf+UD<_h?x!z)uXzOf3da`GaTFwcKk(0 ztjH_|0Km*9ZS+efh6%f9Xx`#II${5s&5rG{^?O<3VmH~3?pJE%LrZo$Dcy)KPx^ls zJ+}xrK+%t{jI5S5<|ds61qPiM)m`CT8>&gP#U(U7Q7^$3G5G%htN^vY7=VP^v4`*( zGe9DMK8-<5qp%}5lb*G;7>C`qEZ)&r*4)aq;t~rr>!aIHIT+0X2t_D}n2mo#hRTC4 zgH*E{!y(goSUr4gGV1T%*Zc=g05P!JQ;ED3P^-AYsHm8fY`FIE3@u9;L=!d?vTHee z8uLZHEj9df?__WR3tS9>=#TacI_)NZfSx4c8}xdPWIjdG46CLifBD;^zdmd97bB#4 zh54brh#S<4iQUi?6lk?X8j26e#!ntrYMeysaKLiB#8F?sP^++f+d^1m##SW!tzk0S z`}|VWu>o1S$3tN!F)%OOI4-}wu1$K2JS@2B=}^I};A#vGEA#J>knGk$iTCxZnyEY1Ht4a7Yq>2!=m1vG5l-X#+kCKuJB0q+@Y`W%cx51zDkX=iaH$Qn=6m0hw_m z82921dp(+RKEr&Q^iVUO8~A?(pXnfo5=qa0o56qc@OM@HFSu;{`U~v?PD`Na|DpZ= zMKK7lL-LURbIyNg`QHbf#!>#~dFi2LBRjvvY3FS@_pR^`&ND47`pUsp@PCs3(*UzE41k5a+(8xAT z3>ZC@{=~lhCX*#armV{3rN2oQL}R3$0jyo5e9kW}b_;Zq7uG-g(w{uCe*ZmTr9UbuG)fXO1qE%cw5Z={YS(_0iB6YK9S^(49}hmBXQo5CF)3$q^wW@A zb~jfFenvk_eQ4B9{eVLQ4hC=^NJhxRGRMqLv-5271yZfD-qg^$X}gMNbcY&-AIP#we4<^S5VfUYoHN$@p;Psh61k?nZANJhB%5T4DXXd%n1{lj_Ch+xr zaQ4RS(LaqgAL?2@9~K+iS1apuq^`;1;^Nor zaA=dpUNR{V5N$t>TpdCam8zqUS&`#=Y1ll!iVKIMnxD<-%fa1n5HVT$ zt=U299_^@|H&66-&a8NV+Uxzzhmakg=7GPbmWE;Goo+-pK>7LLGDwQqdftXal3=0a z73*Q*i@m+OR-?^q={fm6`n)O5`uF+m3NkW2BNt&5^qJKDtqL{oG!<=FMfxA7 zcTweL*JICx`&<0Yec{J@+Uw#v!RlqqG$k3{;Cj{sOjkdY-U`{}`+B!gONMj3;e2d81s=-5+dG&g_euR-Ee-0Jk5g6m__Gz z3Yy%KlI0~pzllmeQGc#v$S`~;ndbuVS_YFO=@KS88Rz0G1)}X!Gz%^N628XO0`+fm zgWPqLj4ibAUDf+B$o~>60v{5>b#LpriOM zK|Q>ldiP#p2biD!VBr1&!CEFZEbU7XykbhozUXkKjqK@_w!VZ*w7)WU`v=47hwJf< zq({t0?cCCC508fYe3ImY%%rj(a*krGw#jOeuZ0{No3#Q)9v%zWK_yLd0uO}rokt}| zat?ZO*jCtH#?AI+(P(dIWotqnIG1FU3rEMtJ6|i=d;9^g(cDN;ANGauRZb!WhY`}2 z-R(lHkqXvz{gl&Y(gF-gCxihzz$JKiII)w`%kzi=#<+>3Gm-P*RKB7L%Z#Um&8&&;w_q=#8WMl z*JKW!+iQtDt3YH(ss1Ij+UzLlbJmmuv1)d0qhI*G>2dp8lZ+*re3+ym{?B2t;1O%z z7oVT%9}p?=&i4uLzN;u_vhVp{V!M9)(iz2P{5f)nM$t|LxRCZ4pWab3Sx9DJc^QvD zqv0p^W+)Ab$O66^CB5nZ) zcxZuK9VP!3wYl8QLE$M|F>4T(bl6^V0B>oN>$uNN1glvx8B+R2MXsNt;DzAzNL0Hz z`b*+@SD>SF4F3F9a|`)XE{nbarvR;wv>&yghz@i{9dL|nO8CNTi7sOdR4A{m?riZ{ z5Ql_j#vXV`w4JA~P%swKzR!L--7)x^TJK`F;vlpEL9s@QEfT73Z6og2L~1XKMuobf zxK1?hRcbiyxVXOTInLwfED4Kdw$c{4=wG~{gg$1d$3YJwZ83>L>ba&4A?-7HP=Y4d z?HU%`KgJ{B&O(pnuuW|)bZP?D2U>EO`bp-=fQ#O2O;2$`6KM0z52fV%|I{&IG%xSJ@xc-0Ah=WK(lc<747sp`X#?-%}bT;Y4Rf>z&f z)Y9PLJ$xtjXf{{1ofD+{pZn__!ndqR%PeXW)@sRqb_2>r-yxFDL9Ycp`y`yvjqhfR3s9 ze&A+SVb-+$90MD^VCPQsp5PJWoWo{LvzyIpI9X?EgQ(90aHqro!nW3K`yp(;;Q)R$ z;yjmpJDzCXVYM5(T`XsVoQJw}+$20(TyLUSu-pSMJMNP6`Z`Ln0jJpDkix3Y50p5@ zH8zwe)w+%RbFr#&>f}T6>ENSfc3&-UQcWG@OdjGp9Bf@kdQIB+N5S1kQsz)D4-c*H z5@bS;FFqrpp@ap|=e}oOSchR7YsNGAEft91W~Y~pQ7mqUT@3@$j)Y&Y{m?pIxc!Rw z?C9YibwtbK~9C7BPH6H3-Njz;Viw9Wq)UL}o)%K``=oFL-ByhL+sZ zdwBKgK;v%`VlJ@s&?>xCVG*($)R8`#zbY#4Ug9K9!fO=OyZ?Y1BZ!q+t%ssd`m)k5 zmt;O0*&tWxr8nxp_;~j**zfA*^5Q7F$wq*H9VcI5{CuV0O}=ZAbAe?%@hr5n@WLaT zWu?Wo$wx{=B^+X=1f{f3PWnfw|0lVwOXavh8@jU4uF3sWs>aogj%-~BF>)h%><4a!=!_M!yEPR>})ldv!0C3rRUCcsynRH$kf-pie|PP1-(sjHc?;OLC>fK z)(-IK7f%Ou!rD6w)P`?M^5=%o4H95b^Gn?0gZ?0 zl^N6cNsW(1OU+d?InNnU^QISefC}m&$&Zq|H;d|Ww@-hbL^L_k(4R~uWUa>YrLZRToGKN4&Yviz0tj)fCJ-+J3{QaRCzvme8jBR8|JVx0fLEr;}&NP9HLBs3fKBFxm&FxCad1wsR zT~;TtX`+g^pR$)IKwk`b zK$&b3G(R+1%pooaEmhHhHygrw9hVQ;A9gh^@P6Ych|fhk1HbDO=kC9u(tTxOvVwc2*COf&ECZL!JcH?(mZP85rG?}!V zyvc`^kB*%WAFn-Q(r+<1-i`7hUnX#juFz`d0~K+$xxbh6`^A6d$%Hep$Wrxde?9x* zpm#V5E|1gbiYn-g{z}t#))V(W>mcNPl6(2xRNHuv1c>b-RFv=NBHu{P@2lm#O}s5Q zII5}dD{l>q8FNlD4eO)kGtI>vVFLyqk`OR%>Bi4Z@xfnZdI&OCOhRWbw=ARlF7BV4 zyfLZsvW` zqZ$j-N&DNhV3Sx?3Qo>1Ixa;H3jqlNNCZ?I!(dq@Jt$BYqk`Dnjz9s0&)sfLH@mh) zKT59xQ<{-ee^OdQIrmaG=tHRg6V$bZwKcb41O~{tX*!q^37L#aEs;ee{Ebn+QSGsj zTT!Iekd=r-BK$(5$2&?e@wa;$RxBqOSKh_XV9w2(UV=nT1t0MTstUiGww#bUeB~dx zV)09iupu$=5;7`VYd+5t$jQ&S!B}Cqcmo_>$8-Wk9{SfGXan4km7ufFM6W1V}DI|fk)GEEKaeH zT6L9fH9{o!IPo4+Itw2h9e@!9qcgr)k+eNYz;2X@@_dxXPU>`U+NA#;|b{jUVs#HQvyBB z56)pYD8No`XEcUxZ!S=tr^6oy{Z4 zizH!Ei}xJPPBogZ863p$)cxAauS!=O=Q}=$pwI)S75%HWCSMXylV}6~U%tLqLHb%B zBHIYVcBB234Vt?~WSc_V?{1l~#uznn;1yU4)(Ol{Pe~EUj)-Gp(w>4<(X;&7pZ)dL zu0uWQ#|I4!!kohCy5`f!K{u&|6&=N{^-{;E9*4!X;ccmVbVvu+VB+LdcF?Nq$$&j}e&C zDD+z$^h@u$oHMsU8HwaNz_2&%{w#5lG7PddopC4%FXJO745F0Hgv-ceTM9`dmJzjOJ2(vnc2H2MFdQpLsEjtl#&QN z5T4(V2U~5*rtjBh2G;&g*!{WB!(S?qEs($7#rC7;3{X6(f%e1BWza^U`3c7p$WNSC zK$br)Yw8()aD$7g4SXUjv(ygC-VA8!la4R>!EINE@7dXKtodmQs)I}ys~!DZ?%HGO z>ms{6{lNa$pm@#A!7hY=^SY`@^NlaX(3T*A%!{|#C3oa?Mc}PakLPq~rPC3J$-`k} z4=p{MT{N(F>D~`~LdzLfbx2oY%5HShWPWC)QgfP5MT>EDbvJT>_*jcX@=s8D z!bylp)=8s}YDR`{jq$1qJb0j5Ao>1S7Pr**0+c^r-gqc?B-N4((Wo&=B#|woUA2W( z6K0tSghOtU+S`Q?(}}Q2Mp7#{;E=AxODR~S@aZRsmi?>d6N;(!gc?66gaKe9$Gllh zf^pW=V951E(}*APlR8~6%@ER*JT5WjSVWRK0S^6*0jH|Q!;oU(9-T7&dEFDLzA81U z#WI{Cjv_2nX&BiOP%@RxbX@_t-3MC5zpjn+(i2?_M+JgJ#LN1%j=q zw6s|OhtRI-EKu|W8346Uik1DP=W+n`ai__N+M*Hh-!&BZJ)jN9l8XvLCi>q&*1wd_ z0_IfQWXQ#8n5LpQq(BCjdVA?_1s2#L1=R>iMt$F(jPi63LXspR=_BPl49+?u0G(9y zXe%AGO#kBo7$lq`TG$W7j20VvxwS-z56x8$zE0?q=bTHHN(Gn`49tuG52=m6{zS;y zqzoGDr`?TmNmjE)U*fViFg)#RzfN@pDsl`g8T)Dsi;rYeSg_+QNo}^2$w02@&mnGW z=klH<#E&*t*oSyf!a_x>o-I=M5wHZ(SEyTrxQ^XVnAL8!))RCZ^g;Bqz)1^?IIiWA z_oJbAi%25Eq~eZf5~8xE0>p8E5SV%_dW=uh!$GxaOn`@IY`#Mad{hzVd`KYDaqzLX z^6xRW&<$7~Eft%taB+ACtnYluv*t(ypVV`ff{7zJ>xt({n?=25Mg(%}f4#}j7%5Ef z*fP(irGAnJmKxF*CCd;Wa_!Zt2;!hPS+Ev&_Hl?jtG#P=po~ih5mX+ro5tfTnnr07 zpyod8NhsgI3UsxVlt|0vOr;=)xXQ18t(J9 zA`%~E7Eoa5KY-BQkgUgDLpTp2@4WAd`L$WuIGBB8J>`XCaRe=0?>I;H8bp@M3?$}| z&FMtw2{|5Q-HSiSDe8)tFP85OYstGvf9uB2vo=9=6-OV%cMf2UWDn!yc0c>Z?(&@! zj702YpM_rtwW$;8WxRPKTxhKQg`_Gr7Y7k{kb$Bl5zu?>lZqtLiNKOgWxIUV}1Qp=;ptd(8&6htOCPN5e1GtdeH z-zU|6vS>W0WsGl|6fo_W(+kC^vyPQ_!ZW6m?+IRgEY~?EScCJaty(Iio?N>no>#y( zVA{+X#9ZoKOdtH6guyuL*uiy*01V#Cqm)V~O8Aom__F(RWDr`j0DI!9LEeQ20%^no zPVcPc#+9qsIQY9;fO*aV;wTX_$uqOTHv*>9r5iM8F<_^_Wl~nWJ6aJp4qLLy$)4O$ zCp!r;vJf5&t}7KN!X-D_VVDT&;J84JIH5C6tfEdmGy{)o7)gvm7Xt$zu``_*CP&6E zCRLosDwf896bDR-fsSL8BMZR>saRYl7*MEiLP6{WNW&F(^B4yZZXQZBZ^j2trZ7a? z=MhZDt-pHkT%NMZSNA-J8+cwmYWAj?8kC;1)Vu4w#|!Y{k1o5aWUqZO3MLt?(I{h4 z#FFb9Mz&4p4(f(AGwA-d(bY=RhX;*V^!S*?Tvm;6A`wo>q6+gkdS8!tEs>X2U=9FY zg$r0X>~TW#q;WQHw)7ZyYh*LE53o?r*JZS~m%t>_2HZy4kelo2+YqCb|6U1KhUq4wI-|4t>pS?2=-y9;3$awT18l01ih zPc*KlE$EfEufoN$ZQ8)$Lhhop<0+P4%F6XeDs#9rKr3%YJ z$EqMW2dD`9+^0%OkHT68pvE|lUXK7(^a|L*62@Eg8@wwG6_#K^R=EJUuiYe+e_Dfb zlDJ+H*J|Hb$->15+*)%y#N)eVC^!-NQVv*;5tnHAUdD!c=D2|{&giJ!(48pe;+IPj zm>oYqi%x0hl{W`um*T?Fdt3s4jMWUts^_-d%Hehq@D{jqRsO)^P_%S%C|i%jEw)Xp(xiMMHTsAHzOafunf!6kW8k4 za2!EdMe%Ld7l)x=u0yMibZeDF2FjkXP>syOdvcS~lsjLa0;Un9aRrw5VAFG3BCc&v6)wT87J-2&18w+3}33cdF1ZVt$aWD{5AvN6w4~H4~r&r zfCu_+YUU8h6y6w{Vp?8tt5y$J8HoRc5L!ycE$Cm*kCNpCyUjVa|CN125?)H3=0Si1 zB1=L~(hFyYUTVF_d7bttx{BsG4NvO>o;aSibQ9I9OUabL=8r*J6ZTdD5b0{9%=Se) zUHR&J`rp^r9x}bW#k?rlSo9DOS*KicWzeFz7K)ME0b^2zg(UJVA{T z#t1&tFBlU9Jca0(S5lTGH57&q08$_)fQ1(C-2@pbvW*WQLGXESq4zn%W-Uv>#|$An zokon0Su~zy@8FegH3Ibnp@(|i+xE*guVFR9XpmzOGE^KZb#5tiw1LbnQYh~5`kzzg zL6H?xOD&Sr5noa@uhH`2Fjl8QP1+a5BUE~eEO$GZhnuid9l7&eLxqUVlzOF(3%IWz z18a;)xb1ZtlGyTf3YoibR6*eiEL=j=pa`32oK0AhkSVW@0TdA!;y}3bCQE^*wWOxN zjgC?m^7fMN;|f33tcM9CN{exImZUJYIirW^$h2YL$=-RSH4G)+3oj-z&4Z;2t_r#W zP}hPonAMo1=!2w)alZ(8V{_1aBzRNsnZRAU-pu#B?A_+v0oo!RnjkQ$XN`KPL#qjP z%raE9t)oJPWQJeN7u$C@}tJ9yCq%Z2^Z0fzHpT%GM$6f}B z%r!!$5YN3zv9XU7E^LCqD1l1^i30H3p+%;>LZEjdbM<`bGi!EWlC-@)73;0!C)8q%-n+~*|9`y*H`-jME$<1Al)4K|u zRteP#rGk4C?u3fMXcP(?SlO@tet zL}hK*?9Y{Kf6A9seK^F(JW|gvRE9H2qKHOG;!l83@l<^xZ6N4G_!T1Y_LHnY%72JJKQLNY9i@P>MA#AR1zE`55`@d*8|~~VeB&l8KDRO@$#ucn4R_Yxiyvmfhf#H6 z7jv3{O;rEJruxxS%z;dxUb%j%7z)pW z532<$OVn9N+iY!j2iSTJ@~a7*h3JRp+ajz~k7%9>>(I6|!$d9#fK`SflSF1^a%0NA z=*CiF*x<1y;yL@;85Fc1o#8=emkOFc!=-st*DgW}7<*?ZmWmWnK2!Neh#PXe{jxvo zmnH4P)ZJ|SrbZIy8j2hRxaz7#X=<%~tzn&{yUf|Vj3A;ba zf)4M298T?5B3+0Y$aPfT;`|48*e5mcx%;QhucUL|Nvys{lNPmqivUJD%eP3=HQPmL z9S1JU&7&zQ*86IOq3ck2OyVD;3jUOU4Ht422@My+%q+-HN5E4!$*_kKc zXn$lX}B1de%bf72VO-ViG+_I%kq(YV(~=7Z}Yb&&knP zQpSvIUl}ts&HJ?X*>nh~j_*>UJ1ty6ADxo`l1mHRMW~ijlR4e|?3aJmmnU7g(wA@n z17wg676#ej9^ZC=v!ORNuV$8fpt2M4zo&L5{- P59Z@X+Q+P3J`a2?yd&F0G4T!a6R=(IiNr>H&7vwu*B(;3mJ6o zA@wL?RlsZl2EAzyIsI}s!*75azzg62hk*Z?Y)a0xRW}&hW2_K)QaPG9SU>^!9Fur? zJ_0k*$@ItKtl!;(KPnVVA5k1ibAI9KVXLK{2m#T9Qw}Q=WK`2Ugpzyi1sSEBKDg+~ z8#mpT)w&z>B@xKIL8Yq(SyzgffCJP>2H2nBaPU$Lx1DL}&U;w)IL`9A8xpPhSYv9v zQlV$vu{1}_VHBlIhyq7jdN3HO6jV4H`6gs-{dh+w$Me5_ven3(=LrM+fJ2uS1pt3o zIqxl4g(QW3UNRjDCiPx7oDHBRhyvr#w1OL<^C$g|sv@%TWK zghMXSvmt>5yM9e_d(r(%1WgbGmC?kSi%=%QJ<9)5KpyuCh%nhj=3zK{Qiu$v613ER zQBY~J#x|$C7u{fyZ4+)DD5g7s^=fFt$k^JO2NR79i)4;wOC!azE|xQd7|>W<5$JXR zH_16=+m%>KG%Tz{HOGA|F^p)NFeP?FA7jdak?UuX!qK`M`He*b$nL7(H93*a%wm2j z!hRv4Ms|n~uX}UPy$tGpMwMTM*0>?e1m`%(=D%D>+)XuvSBr_4M$Yi-AWKgu*ZX$% z0)3O=y1Z-fBRONlpC2+gv*U&IEFPp-R+J&AfuTv|M>l@|P*^muYL$6qJ8 zs3%FL{;+*jVwEfEimu8(p~G3+mDdP4Pr8m6$l@rL2&a`}@c6kicPE1>$-8&r?W8Nq zyX8*tQ}x24_Ao)+evnd{-ahfZ>08%=7@~NWG)p(aNBW(XZXiph!G^$k*=P9JIa6px zsJ7dAJ?)A1E+jOO5ZP;Fh-TT=bH%_k{9y{Z zq3_)ThxRK$nkeI3ND};!zFo%Pysd0gVeAKE0Y@xMvQ;iZolGt>AABYPf>H8e+F=q) zLIe~fGW}?htLx_v92Pl=1xkki6<-3JbBxDn2}6v`@uT1z+@&UGEqZBm4m|dJoL`$- zlbSBI6UWSc%F=u7L@6K1GuhSzzT=~Q(gk^oD!d2ucN${5e{zBpFHyvS<%(p(Cx{xw z%=3r}HXW!!wyy6LCeR_sF7yl_8KToK@@)UXIF= ztX?utSpui*`KRPXaP}#}dP;Ca^ov+lb zt;^{rPEMQAQnc#`>;|Fop$Y0(lN-P3|3dDm>ktNeiFg1D+~Q zaWrpNx{s}F5(Vpyv}gByVY;Er#zNipL4)rGD#6ypkVSZ$0B3{yO;~%E`)Serpp{ZJ z^$}3@d0s2=0(UR-fc9AMEWku9LM%1GbbBbh?AGl{nUY-k@}p@QOA156?uKx8dH)=0 z2gOl@D*RpH`Xys*KZE9?j~nx`8lB##J|c3EW{ z&YB*=$f(fb!q{*Z>5y>e`E7*!eaM$TK&V8WcUW*>NB{vc?Y{bb*{{CQAPqoveB;Fl z_}mA(3k;eHWl`d3bXyM?ul$s4oVY`*c4VlulUe|ACVV6L5a#!yqYg4S0_mv}VXl3R zCPG7a_|{SGq|(vmZx9x+4Qn36_-v(eB%gdR`Errym(1$2j8n^5&XvJx7>|$0^QZIu zVp}-PpRO{hhjegcz_{J$5tU!<2X-xn$@^i)i+;aKMC|vcU^dD3=@1_xaic#eN(I}t zi}(`l+;B_l?@#aXX*8>F%D}o;uAz^+&+5u$-R($A{khK#Xh|CgUy|--p9ImA@@4Z8 zdHKa|x0TnM)*S-oFi>nZl$5gQzg#a^Bd#_g-k*ou3q4dyQXb4l;+88mZ#`yL1?Hm` z+w7UyPn^H)c4+rTwHWxJ5*XV!7(l6tf-3y((chcs4-7_pYi;?+QeyIp=GR1kugT}> zT^a&#{jZU+sc$bMaow1Nd2X!<7vid&*aXNvUBpk5=I1}?Fkm5JBi0#3Hz};dKVpJ8 z)FC0>AC})4``oIE>??JDPfi`EP+nFgq{w`TBX5%U?mSFM?8~6Y9p$sd3@0~|*#hQm z=6eG*-9xjRblQUNbjEIROFV8szM!E#H~l}{-Sc-PP53DKiEVq5Ol&7Ju{E)6PHfvd zwr$(CZQIzv#L3OvbMJTEbKd{p{io4!fG+O76Wc z+7PyycO_f2KtMdW(4S4lBndjo`1kj5$ALSFU54g2C?H_Yl4{e0Z7W}o$pwE{c8$S9 zvnOJE%*@KX-Y#b#03*GR$&5tBBOwc3XCK2s$t?12UGGLs;hK}t&r9fn?RC@V6Ds0~ zUbkzkrnk2b*RT4w7WyJa)*lVi&i8%3Pp_v4qK`RO1%o#kt$w5Hl&@R0s$4yEtrG2X z0GqEs$jCN>EETlTIcFT}m3L07(-Mlj=lCzdn;`RERG}(g_jw_cwwr_)c)c~>oXt3~ zB~t?zt^c;aIjT+dLJX0j-7aV_y608*+mTIVwO#56Q8(5gOft62TNl!B73s3A9K8tS z_t!>ib(WF30NragQ;}L)p(s*SB4Z{UvVBw?`0BnHQyKB&BkY^a0*ENZokjeRNszA~ zoNw|n8Pq2RBZv(3V16am{i9(^IhnO>v)^3>Dm&8d0}MXLtG$8C-7~MnT|c^iIWR5U zf0q8hM1ou)C8i9rwv1;lTE?U^fhq75J=J^gxNm2rapM2h{aaDJ_cdS{@Mer|nIQh! zncBC{h{#Rl`d6R#9wd0Ol!Y=lPzQKoM>Iw^L4k?xEQ1{Y0)!WgC*@M_fNphE!yq1u zZnBdDNso{R9m9AD__`1Tv-JZRr8}1X6a+~q(&puKp`e6POx}ESWqIX9E>dRSgYAQV z4a-Xif~qwMvF~mrQ!Hyt;A{O@C6f0JP}$=U$M8I-Nnj-`AjRU@#aqprU(KV>g%O}> z0*bAulMJH$!}1g*QNUTQf?)DC_MZjKc8rfjx_grh9f3)T*l1hM9a#mWxh49pKuvDS z>OXzLa`r@HF#FB<{)0*qlYQmVKB+?BgxB)+H_mtI-!p6j`(kLHI&jS1kXIoyQ$%rP z0k=8#3OynF)nTAJRK)`eU>)lK5Djo5_@;xF>kb@kO1T-NaJ2VtND7Sc`|fD_;GR#L zkcc?nGi3Dv7hZFu{Z_=%sSeyzgJeA3GFUVp6YmXRmrR655lsBAGYpQC_yWrl5Tbb9 z7n3jw8xdHD@TqWlffus=MM+e!Ci}}Np`rwfei#SQck2>`ON2vAm!f~>_j~w{%#_eg zUX0E2UdBBD-(E~T6c&(3=x1UpwI|Ui@^a;Vob&7GKSYW{diBr%VuieBcrMq6R3c;T z6re1TvwR(Lm9{Uu7mXW;+v*?WQaFatpJ6V^L$oOkB-@$c zPbzQpdji=dPyta7Af0G_M)30LqA2>LtSyQuLPya7ICA$ufCGTTD`-ni>PBjgN1dbM z`UH9xR}#iDtz!8Pr z$PY|!Y`%H+w`eYF`Cr(oc4(aPRFYa?pEt5TmfWY+AGbcpDw|D^`u7*HpcF$g*}bqj zNU}R=A}EO}=KIU0OFW!HeC8jM^%Xd-r1FqaYSyuS(%OJju0W(-sZy+rJu01yw;|IP z(BJY{4$~TWnFsg12V#1;Zciwlpc^GLn3fblvK!y0A4h-6oCWKgz@3A033kVqR4IgE zsOR|7oVRSeT8NmPZs;7d^n{)ubIq zJq}-r{h%poG{_9#C6Aq74!3a@Cvok=1?-5Ow&hDl zUb3jVkjch6-N0WBx58p_K6L;@as+r0Gn*L??Zsewx8EkW-{PsCwjTsh{D5~P5P|3f z_7-8(D>U}V9A<&yg@vLNX^Zfgu&KR5iM-55ykTBexvQA=PSYbL>O4oUAze8^2&7|Y zHfzXkC+^B1@JTi2vHMVy^RjKCd!?nKmxbq{;rQ^i8FP$(C2Hkh)WD$ysp%N!ANyAH zj2JBeU(PvxafFCs6HFw)gNDkjaQXYeA_`RusXsICcnc-@#g9-)3~;|pBho`(#iEwx zIQ#m$G;W*Bqd~9BLKo>-^kI&}J>9L(%FK}ghFUS>TCGgV&EWPIvDZRaR=@AzVxdWG z#c`JS1HPyQpT8MZZlxQq^rM)-B_|=o81l_XpV&w8Lt=yWgxeNFvO9{Qdu3h|t%pbO1KOU1%jE|!fVfqp?hQyWO&}+Wq)|&M@lp^1wk>I z$uWKocYkCXPl#7VAfl!bw6mkp#wXOYwas-{F>CATaFQVuvgcNgJ?$8+rA&EH=o#)&k?A8i4G6&{NkHYekAeQ&#ys}cGJWdE3T&$@jI-0{R<_r*BYkLO&MCl( zQ|NblKAKF<5rEkr;9+ms*G?-*V7Z-}&c&w)(JH8x`RL4~=6D`1y9Ia9vM#$xGEnj- zMF9iH-tzLkk218B;KQYl*Y-$5lbN+Nqg;Nmois+civ5L}7A-#=dtT~dQ60zin}-Rg z8HqD(E7ac~kr0NDS+T5fc{mfE(V~mw5E3atID~p9h)e4k;}!T7K9<-A`#$YSb@)T# zk)+q&piPpGWy=GdeQuC&S;46-`y2F4S&~p}TNwsSPf9Dv%lq-8w^i&qOz^I5bilV* zac_<*Q@&>xmZJsi;$N~4s`IocS<-(T5Eue8@@N(*pBcOAv?JNew8i2;8&>`n^yqEU z$Xf-LD-snu+g*^KVi!cmpne6Qd?YpN_$<%i5>Ab)W_t4?HdZXzZTr*N@B*JPvea^| zSJP3TvCp^XrGgth&$w5_yTKWt0uCrb0S@~)R^`Kf!$Elbp3qP9SGbk_BT+A7PF^aP z-I3Jlhs88w*&J^$v2%+eSXOcBR4g&QGw2gFC$8o_-u%+#ec7L&^-v(oW+u~G-0VF1 zhV9A2U?3!48xi>r=MUF6BrB)^`xwlKJ_AeC*F3IO5>dW;IkY_@B%Ry0#>0$nUM~~; z^Kh=X$R%@8GsPg(MEU=VF#eCR+ku{7|5^@8wPM+O{}0de3;*Yz4NBfb|6i{6KX@<2 z>YqehHyL>SCy)Pkx`*+l41W*GJxBiUUw?gKTu1&Ag-w&8kHi0q|NYPTY{98Tzgjsw z_ZIK}F7p4#^Dof%l{DguE&fSIxsLu%>6HLqd<8@3kmJkx{(maOZDmZzbBn_kW!4OVu;|Q}ytP+b932ay^1yo8&K6#u==t z%{IByOYiLel$1LN+L1Pe=x5r|^vVbghgtAT|7F!V%Mz2#$bZ^`kPkdfgNex`S73gP zoA1wN%P~-B!Q$=82@(R*L^f5J#HJ(GXB z(**c;=|6{Z!vAqz5ynpH|Fm3+`oF71y`z)uKZi<4{xuJZboJPO>SKcWkKAM0*i8QC zP}x5)uM9r_j|BhkcGEBQ-+lN0$7~N1)!vAs2^}zoF zyR6@`MmJ$nFCfaf6z5TIQ-}L=MngQYadBatoScaBKjY%Gq#)yAoEoEpjp|w}oN~$Y zvy98|)FzJah?A$)-y7K)M{C}<>!6K9NYeu4H1pkNw#Ag|Rtt#O@cTo%A8B^p>iIcg(nc9j+4W=@=Xc8l;W6!A`dWn4?gUY`6X>t@4{7 z^+{^ijTMCw%5+;<W%YFm=ueZ5*rg50l^kp?7uihz&R%Z!^BJX?E zbn>!!FFQ(?yQvg< z5qjxvEv;r&t+%}$%*~!Ky;6wjS^VoB**3;_m47*sEF4rJ`RLO02QT-dr`)PS@xp{e zUBQ`7XX7ekZ1rq?!B~#&ciG*M+V>Z03+d>SiJck#7S}`ncM)hLc*HxEpa)t&f$GKSa>)&BCO(Do}L-z^|M6g+(L3k8Rg7f5erXF`6Z($;-Ch(Hq7^_mwH z62`FEXtQR3??|N;>*B(8b;F7LhH@p_^`_XezKLOBY5AZa>|swFG>b8HD=VB=6`{M? zy=^)BetJUBeC6kQZ(R9MkpVtZCOJNO9hJ^fb$&%KT0In#IylP=5OiJZ(fho?R^L~x z)`fAo-b_U?-J3Op>QjB?O9Vb?qb`=An{`j4q(J=ZgbpP};4?AqP7#l*n^(%KuVtWH z@rdKE<)so?_T)Dee*RW8bU2AiKKgs9ncp=g8GG6>Z*Fct&MoGp`3$81adwW|m!^Dv z!9c~`s>Qp}zKnrO2Cb2%d2ivxy6fH>oYzyn7LJ!H>2Smv{FNL!1cD%f8tPBll`u+Q zO`A<@3Dw*<>jRz2FG?X7IR_@iEK?GK%;sN0)9+a^@t`71U|J|5`7ki=t7<*P)z`fZ zy8~(3ZLY1ICO;1mN$-Gn&a!-o2du{~=qP4s^IwwK63wO;=Ker~)rom6iB26wBTYm4 zt9#Z5e5~(zP~KNOI)d=sXf+x{;)KTc){9N?8bQ{TH#$|}q@K2!&U-Mn{1A&3X}f7C zWn97-R|#r*CJ+c~oZr&UyYgZt+`U#@QZ4FC-uik{;rfZy6X!YVX8D#YG}$K~W{w9t zENh6bBHU>jBTw{}oGJ)9)emvH6%BO7Ml}UV8glC1$n{^uxy#+$oHaMnLDSJyIunRk zP}0b%_)*mje>0?@=IPh>@RI%A(Ng?H)xVOhPkk6n#I&!|klF9{kujH~Ndt#T#dt<( zYD0iIv*o-j1EAjK#TBv=?SO<-3AEzB9nvKUe6ZIi!#V_j8;fpcE9WWBY~m zO?m-r?!B{r1Wn(_Z6n;Z=t?{)PHW@DASLL?m!A_{!i7YRJ9_MhxPQOH2x`|?ll!~> z6vqUeFQ_?aD1HPEzi6s&y=^Lb{HAE5VwGEBr)Xsr8OgSpz4y2_0XE6o3j;< zbWFsw*4J~5f3T6wsSK}8_Kc40_T-gdppsfU%7J0GkEq_9UH zZ7$c9_)^MumbaYhFB`D-u)<)*oBn&U^d(MDq1;rhSb~TovgSqYTr2v0jzY2QLZ_2x zmxwj-z8{z1n8;O3!SvFW8uk4f(Okl#S+j13z;s3oZk*hnnKuq}N6fjfGUa8k_;yfE(K(XrvMp1jeP7pm+sT;A#EuwyLx3yzuncWz z-LgZ;GfbA*P6fGvgd$sXY|^EZUpTkP%e0nL?j8 z`a*2K@WZgYv{b^rW%g=U=RAE)1?!L3?6x@H0+I~+(fY?35r6|fv_Y)B_Il)4187ji zLjD3dImFd?oNAL5bmfF}8_gB^YM{m-Y*s~sd&e(>?D{K3emdNk2Exy%(6%P;c()R! z%Oau;_8z6X7$H8Qjc{3mL@~Bi^t*(1{6{j7j2S5{pZ*EW;|Y~FQ7L64%ZLc)4pgUN z-Zfg^G`shwX&v$3@E5c-FpnD4Yr4JEQ)>z*GS!{bGL_5FU^t6?9#;(Sh^*?RM*&GYM6YMcZu#xgttCl+cPwnFy?u0~zok6iS z;nm!}PTf4%+s`|Abq zyJiGr=8|{X^^`Xry>=`1QPTv1<+62yNTjOk*2Z&@Eeqt@`BkfBDO7vYb*vxb3v%GP zf+z!x&vS`_l3deGg4I?F+n=q5O>8ioi-_c@ATV7Y{a0o^cun?e=wD6TM7RgLw5nC+ zveS)ts{OV5y5pMM$m|u{=t*OmEpGiPEm1Hd>1$YELKMb`e~!dwUA>oS`jz_%+OC{~ zS-x-~aht=dwIcXmuXned)pAt^9P9ICUbL@#1?X$WYM9A}!$_%&eWV^rUVeW2^6Ryi zZX#Zo>3VsY0)?oawb${s4{L|EvaWQHR4e7QlQoG zP>|E^tc1}5#!|JKBl@Puly#U|xUMR+iTCM5SJ2BV0O!DRxdJHy^G7)EmJa*}L)VJ+t1y3=~aExa2C%T5)%J(IFQ;`1-QKPP>aPW4Or%095_ z!jWh&^j0ssuU;7|+x--;{SOtc>el!YWpKJFN$NSMksaDr9ywl~MJB1ZNvZih!?o+M zLqvINcR3St%dHW<`y+ZNe|`;~keY=*y>4-r)PC5F;83&Wa0Gj|9TFVuXCt14*cfwZnP<0_6RlRw%2})D zvp=x;E73|CXrsxYJ23ii$RkfMo)9hkh(M&D56gxut;b!r%TdJjd61*PmpxFiST@k6 zi|3F0C7;i2mxz~(m5)G&Q)NOOO4l?tgQYIXX@9Ydk7WnC*c|RG`x{)Br{*O-=Y8Q{ z*^K6EtWn#|O0EE`9J$<*{_%A^yd^R<-8TEJ449jxk@8)`3)APjVjp;qhG5&gOXcvnqDalY zx7JGwcEfBe7{evRJAi$c*SUiRmQ=7Yq{p_n@-Ir<>G9d1xiu2rr=jxg`iG>U%*STO zPgBXm*RPJDa27S2@A>V$=3!NP7q3u6s2EO}Z$G;nI4`?2EfI+oK)?$#y;5f$l2uKV z#DOIIX+(6h8AUgZBXa{_iSxjwSXi(2NMTu;FxTcI&T6pRGy!Th(xmYdc9FG_cV4y~ zpzQlsEr(m@av054PMz;=JkLw|{KC7EimKLaAFWv-!GW&y`dG}is$w$xc<$5w-bajXS-vioLZe7DGG zJ1kxdaAY39^=HXbOepTX*Ocsa^^Tp=+i$D)r&gCy;Uu1Aj;a?wrn8Gn1Y%tiVfJPN zi&mSbjOCMKOU_U6ppCM|k)I|A9&W7vM#&HxEUlWkqEH}4kVuq`@Bxs9h6P6c_68WO zrK4N0ts3Zi4HV7?UBE57Hn><+Y)V1*#y|!XB;Ndk2B}kXYio9qW5vTu8)P97kOkNU z|6deG_CFiKMv0$L#FGo2a@hN9<(+|^^=4nQ0t=t@b*w;y)DHG>T{hzAxmK;LJk4h7 zGy`D*VPwjSXJ6oir4`HI1U=@*>D4K-Xk^~Q?G*=L7v;gvuR^U!1HO3)KH89?3vs=< zQ?Cy)dJ>1p5}hjnDWSr#SJr>dNlOxM>veOw+ai1df@%&Mj!`8A79RF1KdRoBwJ($1 z&q${XCVd!GJ$5+)4%oJ5f{Pfp1EicwiN zyjdH+4kQ;j8j0X_b*-i%owi;xfu$Ba>RHweem+|+_t=VySvTv0B_jwj%nV#zsU81S z#LIkq6lw5Xp{PF16abFibC1o4uH$)y0V6*YgF^`BQCI?2vHiX^{f7v1B{$mpP0foLU`B^E_arS?9eArU8v2I@P{i8Wt;j8wY3XYwp8V zsONWtg-bZo3%?Uu7aOa}j5$ZgNXaOkJW`@t=@zJBNX#6tj2;9E0juw=6}*|ZoRoH> zPcK)(@dfp20(Iyu8Iq{TP;a0Y90gK^N4_R~+M+9SHx=lJ3Kz(2nVHSfDY^I<)6ZTH z?^l~uw&Ictn$@2(N8H*Bcm8wU2kF)Qs8o~KtdtTQ1t&Y&WNcL0jNx`9TAj{=3DIUV zIp6(x?jwtVQ2;wwSbWP!Zx^Rc7`~5>X)9~_J|;;jN?6KQ&m(WxyXd|p8VDRyFxU-@ zSrEs1jnm?LJktRPDg(;juKP4ply9yZ%~q=zj7^MXHWn2=FHbxy_Hv+M!puk!4}=h4 zvM+<D^$a95ERHA-?dZ99hlK&v$@Qp;*VLA zXK=Z9XJX%(U0v{a5!|neUYe}NW%knxYWKoqv1(YwB3^FuiQc5SE4CA40K~RpFx@nU z$XT!N%|5tS5y|&w539*Uu<_kBU3Gt}w>u1ASKPTYY*jKAyPz^)D6PL{9CRdpw-I$v zbe3~$$yo42w)(OpW7bSap=#6f*fvOrqbI*`vsP;cGh}a=US!hfA8u(q;dLUI(?-LF zPgu^ee-_&`517(NY};mf`yCQrJ{o=K#xjZD6A?~k7?kurM!=opzl1qT@wNC^t{A@& z5&GYbJ|&yKVJqRmS+P(wMCeD~MLmbzLLTG2`wp!a*xu1XlAePThS>$~E^lq=4}o}Q zIx_)u+B0oZRCJ0eG39pvxS!LK`h38-_nX9y$^9hwCN>=vbrCWcawMRAg7px z9d*6oqA#8apIQutV78||EHi`5V8X_x;p`pfd*2gcxv+EWgJKCUxp4bn)65=;%|Ba* z#IeKU;I^D3Nwy0#Sl~~uK!YcntDHYidKj#SI}mSxPG7RJ%cX~Btr2z3js6bDxBhxu zBQf=xF~qcQIW^=fEmR0sA7<(_Z%?Z|W+&x7zUlI*1I46(DBg`4BD`R*78ZkgWx{Y1 zd!2Hc72mPlB$LcRv(9UmeiSLB7$$?J%^<0BXo-`N4d29O|VL*mP@ z0}pihmoQL2=D;3)^^jZ=PIqN2Y5aUpB+fq9(iFE&Zazw3=oTgs0wVxr@j^sM`0))U z$<0q2DRE2B4l#-TZ#|Y_0$}qr^w{DBy}mGp#j;vL$Z;PvO7DkU*gBHj@ajhbMViqx+$8 zR+)63=2jzkqE9?LkSPp?Ig|I;CwP*eR=dW*Zutdz(o7#2XZq3LgkmHfGbs10Hd~$% zTY#(ilP~4E5z>s;3-~##B~ZQ-zC+Ty2{2k);sJ2vX3mZgagzMdd`R}7)rdtMDu9}? zK{q1#W?v5TsM*IK?*8cuW1k?90BMGVTRp zU|7lsKpP`;s2atAfOQ;8%R@}yGmGOAvLoYxA*Iq*OQ#g1EZ~Hr)Em~=chKT%z*z5( z-{QF8&xW$9n4mKJ{xF)Q>Ve%p<4(H}rZDET#Uf)?C8Q=a4j_1IKY)pP51o#BOy=Fm z96X;|(<BmOw;_aR_uM$aor21NS(?8Pc+B1!2 zr){6d19+AYzDOK`EU5t~C_V=VTVgo3Ykm60*^|$-ar#TrT2zF zK~&>H>w)5yyo$-?Wq56uCCmLJxGR9clY5Mg#h+DG7zz!iQ30|aRB=w7NKa0yB-^P! zL!l*PdgiYI)vF%%@TV`3bUl#Dq0i~;m}SUNV~ZaP8*ax=3X+aH)__^T5)=p7_(wxp zA{xr@w>yyO+|No2Fp-Q_y{XpVd_?u|iUK(#Zj@qpPw1>c@t(Nap5+~zdocGP4)TV4 zH^l+c*xwQZp^av@N`^XAKeblqg>)Zu7kjCaZi~`#QL^+Av5D?_GWg*rPZg=pOq*Rf z9Q!%L417WC*>IH`U@lQ2)$4>&tn@*={G&&e^R?&xprwv#9D5vvIVpBnpK^HO5`c0` zVeFe)pmo^#_U@Nn7Xf05OlCt)q8r2gVEBTNVjBGrg*I<=hCr*ubmlPILJBjamIUE; zV3Kao;D0|c8V2bKzk^XgPYWLF5F&gnfN-;3Q9=nR>p8=7DfRGgmU#gi5Kp?u(^2{>ig|ql24j-b-+Vc zJMMCw1;XUn_A&yaNG7gFQ@$TelZ1fmwhl?vt)v{8A;A(7q_7eS07$X9_FeB5iB{Ca zdGtu%a0_92SLF7NsORb>sLWmS<$s35S?yT~e2YO0VEmr<4UrQ4m>yYQpwviKsB+GF zspJE};Ew`4Y$@-cQxTsb_Z%cV9ONSH;I|^PQ?OG!#p_n!qeq1Re!u#(0GjV+_ zl8(`0*kI)?Hyb#Gpp`nUOM!L{iseJ?{Neo;=R{d1W&v?o4uL;|abU?DqWog$0dRil z*lY?rg*);{S^DU7N95XaYsr$tp;QJ3mh&8nY7evygRbFlBS%iDwO{F*J?s8b)6IaK zGFBW8Adg{h#xut|8%Qe=c^OX0U5SI}^Y{{{cJCL$&XPLiER zfAI4WD6H*3Y4yvkSD~*5LOP{{of%o7*$Iyp*I0}H5?0^kMW7h46;S>%j|D_Nmy}nt3?hqUfezi+k&NCfK1hxelOgI%tn?(6Koi=) z`^!ZBvXhH-*CIvw;F2o;nmM9aE)lSfxAmt-&ISuW$eMP}nY8w$fzy!a3h&92*a-^s z-)B?OKAH0jAS_MUT8MaERORf;<0&<2{gpr5edr zBa}iUAoj0BD>)g)OAg_SR);kX*g1O`cp?Y7cu1tZUaGC%_3p+lPeTw$IN>+GLZlJy zuk?Qjqa}lKe#_OWZDd~Lb69Si4ow=4G@ zPZCc(B}#(89-vCy4W+9u@}C3!bc)~0aw&Q(@pRZ+fk(g#eYxJn6}0*9kbscFmYr0V zTuxI**bvU-&2SDBkPy8nSX}8&A$j5id2q9@AQRWso3`S|WaQm%0oIWO5R6pNO|g@A zgH9MeCiA~e-7{Ysmk(bSZ$3XZKlNdWgQ0a+F=2A&MEqqyr^AO-NdMp+v!;U%Vc&pH zDn@aEQqq;^eE^^!lDiivPnk00p)#tT8}iHLKBesi4l}Z`qf07~%Q1(s4uWRxmPQaR z9=Kafoi;9M=Ff5W#*FCM>GP1FtEam?=m*{CA=t#%&C|QfVlnpQkR_tmohX%2h%!+r zV2hkS?{M)N{-M_?2+dx4@p*gwR2&+R#Cfv}dbI#X8K0hwcX1Soa0fN;!wbHI_idX> zejc2#A%5i938Sj zPf-iqV;kcaMKOr1Cn}5cPxhp27w-6eDI7;!=DZVfgTVcE5fTa!g1Rrp^y7uQ0~W3U zsS1Gf%+DGG)Q7%Y_9i3qTh$Pi2*|PxpH(>kxj2-#`?dy9>u+aT3#H#rHOa`_dxcxW zN{@#llrNhh`l!!)qztOa77!_8N-!+Ls)H@WAVW6o{Yvn|x~fz*wP&f~lM8di7PX!5 zvX>5*Ej5aVZ*A2FPRh(fxXxeY9wBAdKErl7ybJ4@|4>1qIomTt?5jV@bZ&%<%r?{- zH}l61u8^<4I@Ee!u8%P?=)Q}5GExMqA&Jq`S40!IPj{wZuR!gI^}(9xFWvL}&E|9R z`lEZ7I&V)F9qr}YbbN8Vmo2Bd`u1Z2;(Nm64;m;FZEje`hlm zyJ25tdvo-6cdYooZ77~3bh0wS{f+qn2@9JT)tq48;&5z@MuMUi_*UfbS7+WYu5lhx!RQD zuRTcb;t-{hpR5XfFxryh9y0z;$#IlALVs5XlZ(<-*>WU!XtxYMW?AQ0igl!AyIz7XSkYSr({!b|vpuEbpkJy428 zoWO6Hf?7I&z1estGT9GJSGyeY{>$7jm>orjk`kIi0q46eY&c9fWB8#h*r;m$N2FDB zo7$7F99huGNmxH-EaP<%J9B!TuAto>Q=W{Ti^%DZiU;;W;=N~j<&tbJvWLhw=kZ6? zz{~Og)jrwn_riyCuBjvOO)72IBfJNjsyQ(ZvwfB^)9y7gqE6Pz#H!+_GAci^6TFW2 zJi=4D(t3PU{)BH|#xHd}MGF00>Ue6MnDAG_Y(~F`T)~R;=IeKfYl$|@uVVG<@F#q@@(~zrh0)h#8RY6xI#AkG*!+5yEUibwc*1qzCErS#Bmi8dCE^M>v%GU(w3>J*ChsZYaLP7A9!K=WcRWnjc-v4^Y{t}TVN}?fg z=1;E#+M_KFqRDKkjIKl_bo8y1VBzjvn-GxjCw$(_f+gt$)urMS#tCamsW49s*5)&K zIZ(L;pn>URbEb;|zFCx%Y#Hh0;{qB;QJFs6Zf1C;wD)ViA=>NF+oHoGN_Zz~0`e`C zbQcisXOS2rapIba2Ful;I6;F+wFWbnk73iPEx4Ycb&n|U*Ai!efARRFH{%PO`kV5lktOGOFjj(ZqR^*#aY#uz^VdY?i z5QE&7T1)I`l1*-%4RrUu-%$CG8qj`1F`-DQcRf_$4@FSTjuRRzt_RzV$xdMfmf0w=BpfT4(i~;tS_FpE{+a52CMy{z z6i&!z5e^JckSH6eVQgwAx*}rC%m?Op+RY()cAigaK` zS!rkpZ6dEVnJ1lLJ$-Jq$nNABYfMrEJsxlcMFtDrPTk`u>2bU4xecoR(E;P-rMx!&h2Z84zUTa!GT&+d zRCNz@sUv+)JTSH@fCchpFh!6mh;R((8_L%3W61ba>%xkd4p|*ccAzHJf=Ofk4%=7H zFE%(9(JDGh<9B1w?Q}0%57*a-lTX+o3_L}(`)yzG3DTI4=He$EY^a|^LiR#s7C@oF zT@>FQP1!oU;R(efEkz1nd;;Y*oGZc+o4GJE1Z|OT_L1}VZxsppc){>q8fG^2o)-|! zmtZEa$iDTQYmlco_?zgkm+TKhZP*uzfPs5T$h-$o0!GR?nDJUS+a2``Z%$rukAm;7 zDfwsfG0NAUO1?e!Ql+pzfofZE%OnKcMOD$pgsL`^Ft4&xa8UPWt$b@HKhlKO)X6=B zre$c~!fXA^X?5$)K5f3%UFm*R{fyeSY}UMLi41Y=0|vmb*P@~g4cf-6CH!gqV0)Y&&^u&mSWm zBVMgPsm^hERB69z?w4saT3r4z?P6nIpi~o${>xfW@og4ORz&dnGl;t56lkH8#c(bX zvdgMu(*YdHJ)itjCptLEq6~QcW!--HSN`TBN1E2MfttHy(5s!+f5v#}hJZCin0v2w^LA%0k+(N1qWY*st`NgR2ZuLd*5+R}d+93AXJs@8 zicIYz(I7jEgNvj7!)1iZ^Y?s`;k{^y%)SV)hwq8;L#cw!tR!VW$N~{HKk{=jpVc3+ z6}sP-+JmW+^&O;rl)N7(N8a!zT=pmuyPi2x)^n7Nd6PsdvN`8|$&Mgn-g%aAwho&` zKAu!!SpyqRph>C0J2iz$X!)RR+`HL^Jfo+%Jg)ebrZS$duruYkLJg_u$tG#txd>Fr zh`A??QW+aB1kTvN<5bK1svZd)5LoP9-|N&0QCd$}VXvNhI)$EC>yT-&2SpJP>qEcot*a57@kc^YN|gTHqE!87)lB=Fl{Ya%zs?Xy&^i)fq(jT)6V? zh&I$sqC50Uz{x_{=ugY)-)L`Qo+?_e^wSQv$x~1mZCp@$)55N*n{yYxGOv^;EnK_C zv$?H>&%_e>4h|yO@Y7_Y7GN&bD%glt@W%OXf0b+LyNLHqSjHIG?@Mt5_&@ zD(`mn=pQ(fvE7oqRlg>yInam}4F)6?u5bVqy8K&MRy0ds*=SCD4o+nOU zL{o{DP*{F*dvD9FUJP+05&&~zOIVDmr{2KOCQ6YtGUE6P-g?{hDs@HAUT9fo9HZB% za8%cbkD9bpY)ZK<6cQu!c&7;5N7ZiMP@KY0eH`yjKjzq?q+jSHFG%0mGG<15K2tzA zCsfv?ih<*ZaG}l_3z^gn8ub)44)ZL|KM-^pqa02knoeeu-i?J?-2X`~x~eLQzCiH? z+^h&8geu-*O4a>nM6N<4*XQ<#(hq91v!dRoN2-(ou>uW7o>0fzR`EUOdn1v! zrm@k>xX)I(s}UX2#3YU3GjQ^wd@^&Dhpo=xGJRXi<2-F{SVxx*mKC$qlSkDu0K08T z&Z@Xa$xYqE7e@jo&LRo^@y-}^btAOj_GnDYC6Bx_$#xJo6~0Tm8eFjx7A|N@m-{Z& z{b<2el%Xa3P?+tfY!V-NAMbk*9|1%g?7E;CQqtEbN*-2}=i>8i(FeP8A*Sw!^YOS# zBG=%ZW%lz15h7pYNl8sbn4ZkEx7H$6KB#F`3M2n}_!T`%BGH=Ks}bJ^Zlu9ns`|mP z=d|TK9p{0qs0B*rtWr~*+>s1L4D2ArT*b~pqd~^BPCDColTCQ zk*ij};|Ib-jfO`^8WxYU$`LfN`w-g{tJ>2j>lNR}d~yhtQKXijzYR)sL=^Iry7M7veQe@Nb$nVic#zOR z$l0N*-$5xQ>wTR89_06Q-6PLmxNQ9G){_uI@#irO(uo)EL*1-$89%swgK4A6^C=z< ztw@DU#r)(sI={<(}XRA3QN2d4|(JTAT}cUAi9MXGGplfikHN!`-Nvl+cv7zaoswcYxqkhecdBjQ8*4}?We&6Z|# z9^GNf;PwO>(MdSkq`de`ia0lW#>V{hN!~-9%9xB@2ALS9Ppyg5Emqe)hhc8XN=2Us z(;s>TR%g;(vp?RTsJkVT#dg0kV_s@+r<|JwhWdqvj2+Z6%MFj}bLAWTWV(7jO^ea# zyVK=+y+?*kAX`>WeVX&h#z8Rb%U~6!e4g9pV_CZFRp(ij@kAykq{DD9zA)wc9A+B^ z4wYro1L|I8#R!Q`i?6q@mrjZw!Yi=IU`pTyhO0eaI7Hn&lotgiRQN&8g&aHI_{b9F!C>En%A6tzk=FUQ@MGEW`Tyj99^|1x!- z0Xhz9WU0X-*no3coh?!U?6xPFN(r`9gzC&#m00aLKLku(k5Oi?zpUQA`R0x{qcj=LFhE70bC|k$hK& zf#Yf4rhr0)IsS9lKlIKZSgKF6(rPMaSEo;5RNRnpPae<7bRDt7g)AWVb@wN%ZE`qb^nw7Lpuq$7`yX1v!Vb?4j#@UEM9BOLGQjmac&2U;?9 zOy2^9aIs0#@Sgp)r%ERR%~O%9YAFfSS@dxiOHuqRTGCt?vr2F5$M-foh^nT*cTXFP z2r!>xeoFnyfT6grb~%^FIMUA?Z$^hgsA?sx_#Nf#^?;A*!p+9&NyK{#2*#j5(z#

ry&%9w$%HvSOha=SwR4yg@yuLI|5zszFWkhjq_8f=1i0G!}B6Pda<(^ zJ^2uUS;>qS!7i_dj}qZyRk}$khk45nDL2l=HMwS4y2`bcv&K| zX=m4I02``O{s0>;#UyG^B=`wZE6#5LcCvYD5p#8s(AvC@t=syC z&2!V9aTY|bqcyq5IFFdC9=H_tFo%-ip8emhT9uUQVDMbi?&mF!q3V0-1PPC^;|IVL zc%+2!l(+UV56{EA@aLdwnHy{2oDe0B+ue8LK}5d`TUr{hHh3eLNy>Ink7~8)`QPmDcNWd{mS>f_UO6Dm!dw>DJ0Zr4+K)bsmF-%_o8K~ z>$F>PHhR!?>U`(qx0LJDPtHnxvZ=>CXwxxK!Exr|eE)Mqfbk=Kh=b6jO+Mk`Zc{O{ z9_h|ItqHi-^b1O;sOci{0?x4Ctara{-3xH+yWUV)mg^6U0e64I(X`SW6GPs!@1c3wy4u<-I~{`lehHvqMNwk zG@Y{wa#O~xB5z$HhhV!Uvc}<*2VSOPsU^i-+6Ap3lJd%V+Jq9ZNfG}q^~in1gcI-= ztyl|pHxrR?^fu|@-A|axG?utMt3%*|Ik-X6`Y&ZLJ%5c!T?7ufWt8xXrmT zI&|xcox(1kqA`51PnUJA+gpH6i_Ok=el4{@L@lDKu8x~=cGo<-9ZRQ>C6xInhIc+Ne~bMNoo`+J@b z*RF82SF7g`-G%I~3J+VH6eUGAc8`q6NuxQuv4O#s)`_KF)d}Lx1~oB3A+V=F_pRT@#l+o$8 z1M<~h;g!?O>B-ar^`1Nt=@7DQ!OtFybD(0gE~=`+U?YM`G$YHBf+hi0F-6RDBiX7awA60wmpDv4Ip95P-hK7-QC8X3XQBVKyU#EDSWlgesze6qhN@Ws5;9H!!nMGa5dzS z8=kmvi-{vQtMjSlFMOc(ed{CZu3&8?5$`wii@iS-s=RlPx~1xLLffB)Zg{(F5WyvHXlf;K^RV)YMe=_T3Im z-VH~@fW;D*bSoC$wKz01YHw>?bQlomPu^?!V`N!V(M++qJ5g=H)xR1MPbK*6O9>+x zcNzypY%*);q~nE`HRv_&Xs%QJq~(J3hhO12sI1elOXPaos^dQ6!C=K$z6W52|7dnFU&p4XI{ehYza1e>zzyUm$T! zR5cR{phD(Tbv40*{9sD-`TC>Cj#fQE5tEV)

`8S=%c9Jg* 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 literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/6_3_AccessibilityAssessment7.png b/accessibility-checker-extension/src/assets/img/6_3_AccessibilityAssessment7.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6e77f1677c01a2eb2face92f1fe111b9706d9e GIT binary patch literal 415621 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%0A7200UN_9Lso7QRcBu#H&h-{u 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 G{Qm)pdBmLn literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/Quick_Intro.png b/accessibility-checker-extension/src/assets/img/Quick_Intro.png new file mode 100644 index 0000000000000000000000000000000000000000..4795d08f5c30d7c8bfe91fe403c5d60374ec888d GIT binary patch literal 78819 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

Date: Fri, 19 Aug 2022 10:56:35 -0500 Subject: [PATCH 099/103] Fixed typo --- accessibility-checker-extension/src/ts/options/OptionsApp.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx index e6f32ad57..d099a934a 100644 --- a/accessibility-checker-extension/src/ts/options/OptionsApp.tsx +++ b/accessibility-checker-extension/src/ts/options/OptionsApp.tsx @@ -278,7 +278,7 @@ class OptionsApp extends React.Component<{}, OptionsAppState> { and each update has a date of deployment. If you need to replicate an earlier test, choose the deployment date of the original test.

- For more in-dept guidance, see
Date: Fri, 19 Aug 2022 15:27:05 -0500 Subject: [PATCH 100/103] fix scrolling --- .../src/ts/devtools/ReportRow.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/ReportRow.tsx b/accessibility-checker-extension/src/ts/devtools/ReportRow.tsx index 7fcf90766..143bbddd2 100644 --- a/accessibility-checker-extension/src/ts/devtools/ReportRow.tsx +++ b/accessibility-checker-extension/src/ts/devtools/ReportRow.tsx @@ -240,7 +240,7 @@ export default class ReportRow extends React.Component {!this.props.focusedViewFilter || (focusedView && (item.selected || item.selectedChild)) ? (this.props.dataFromParent[0] || this.props.dataFromParent[1] && val === "Violation" || this.props.dataFromParent[2] && val === "Needs review" || this.props.dataFromParent[3] && val === "Recommendation") ? - ( + (
this.itemSelectedClickHandler(event, item)} onKeyDown={this.onKeyDown.bind(this)}>
@@ -268,7 +268,8 @@ export default class ReportRow extends React.Component - ) +
) + : "" : "" } From afbbe3ab1761bd37478e2b9c9ca1a119ce66fea6 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Sun, 21 Aug 2022 17:57:18 -0500 Subject: [PATCH 101/103] Remove logging --- .../src/ts/contentScripts/draw.ts | 75 +++++++++---------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index e1d3426a4..84aed5ee3 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -166,8 +166,8 @@ TabMessaging.addListener("DRAW_TABS_TO_CONTEXT_SCRIPTS", async (message: any) => // left mouse click listener for the circles and triangles window.addEventListener('click', function(event:any) { // console.log("---------------------------------------"); - console.log("main doc left mouse click catcher"); - console.log("event.target = ",event.target); + // console.log("main doc left mouse click catcher"); + // console.log("event.target = ",event.target); handleTabHighlight(event,document,"click",""); }); @@ -248,17 +248,12 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { if (docType === "shadowdom") { console.log("we have an element in a shadow dom"); let sdXpath = getXPathForElement(doc); - console.log("sdXpath = ",sdXpath); let element = doc.shadowRoot.activeElement; - console.log("element = ", element); - console.log("focusElementPath = ", iframeStr); elementXpath = getXPathForElement(element); // need #document-fragment[n] elementXpath = sdXpath+iframeStr; - console.log("elementXpath = ",elementXpath); } - console.log("elementXpath right before matching = ",elementXpath); // get circle or polygon with matching xpath let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); @@ -275,7 +270,7 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG if (prevHighlightedElement) { - console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); if (prevHighlightedElement.tagName === "circle") { prevHighlightedElement.classList.remove("highlightSVG"); prevHighlightedElement.classList.add("noHighlightSVG"); @@ -304,8 +299,8 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { // console.log("No polygon to highlight = ",circle); } } else if (event.shiftKey && event.key === "Tab") { // catch SHIFT TAB - console.log("Got SHIFT TAB Key"); - console.log("TAB doc = ", doc); + // console.log("Got SHIFT TAB Key"); + // console.log("TAB doc = ", doc); if (docType === "main") { console.log("Got main doc element"); let element = doc.activeElement; // get element just tabbed to which has focus @@ -314,7 +309,7 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { // if we have iframe if (docType === "iframe") { - console.log("Got iframe element"); + // console.log("Got iframe element"); let element = doc.activeElement; // get element just tabbed to which has focus elementXpath = getXPathForElement(element); // in main doc so just get xpath elementXpath = iframeStr + elementXpath; @@ -322,7 +317,7 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { // if we have shadow dom no need to do anything special if (docType === "shadowdom") { - console.log("Got shadow dom element"); + // console.log("Got shadow dom element"); let sdXpath = getXPathForElement(doc); let element = doc.shadowRoot.activeElement; elementXpath = getXPathForElement(element); @@ -401,21 +396,21 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { console.log("iframeStr = ",iframeStr) } - console.log("elementXpath = ",elementXpath); + // console.log("elementXpath = ",elementXpath); // get circle or polygon with matching xpath // let circle = document.querySelector('circle[xpath="'+elementXpath+'"]'); // let polygon = document.querySelector('polygon[xpath="'+elementXpath+'"]'); let prevHighlightedElement; if (prevHighlightedElement = doc.getElementsByClassName("highlightSVG")[0] || document.getElementsByClassName("highlightSVG")[0]) { - console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); + // console.log("Found prevHighlightedElement is circle = ", prevHighlightedElement); } else if (prevHighlightedElement = doc.getElementsByClassName("highlightSVGtriangle")[0] || document.getElementsByClassName("highlightSVGtriangle")[0]) { - console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); + // console.log("Found prevHighlightedElement is polygon = ", prevHighlightedElement ); } // for prevHighlightedElement remove highlightSVG and add noHighlightSVG if (prevHighlightedElement) { - console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); + // console.log("prevHighlightedElement.tagName = ", prevHighlightedElement.tagName); if (prevHighlightedElement.tagName === "circle") { prevHighlightedElement.classList.remove("highlightSVG"); prevHighlightedElement.classList.add("noHighlightSVG"); @@ -424,24 +419,24 @@ function handleTabHighlight(event:any,doc:any,docType:string,iframeStr:string) { prevHighlightedElement.classList.remove("highlightSVGtriangle"); prevHighlightedElement.classList.add("noHighlightSVGtriangle"); } - console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); + // console.log("prevHighlightedElement unhighlighted = ",prevHighlightedElement); } else { - console.log("No prevHighlightedElement to highlight") + // console.log("No prevHighlightedElement to highlight") } // Highlight circle if (circle) { circle?.classList.remove("noHighlightSVG"); circle?.classList.add("highlightSVG"); - console.log("circle highlighted = ",circle); + // console.log("circle highlighted = ",circle); } else { - console.log("No circle to highlight = ",circle); + // console.log("No circle to highlight = ",circle); } if (polygon) { polygon?.classList.remove("noHighlightSVGtriangle"); polygon?.classList.add("highlightSVGtriangle"); - console.log("polygon highlighted = ",polygon); + // console.log("polygon highlighted = ",polygon); } else { - console.log("No circle to highlight = ",circle); + // console.log("No circle to highlight = ",circle); } } } @@ -547,7 +542,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean, ifr } if (nodeXpaths[i].includes("body")) { // JCH - non tabbable nodes must be within body - console.log("Non tabbable nodes[",i,"] = ",nodes[i]); + // console.log("Non tabbable nodes[",i,"] = ",nodes[i]); if (nodes[i] != null ) { // JCH - tabbable nodes if (nodes[i] != null ) { // JCH - tabbable nodes @@ -685,38 +680,38 @@ function redraw(tabstops: any, tabStopsErrors: any, lines: boolean, outlines: bo let nodeXpaths = nodes; nodes = convertXpathsToHtmlElements(nodeXpaths); - console.log("Tabbable elements: nodes.length = ",nodes.length); + // console.log("Tabbable elements: nodes.length = ",nodes.length); for (let i = 0; i < nodes.length; i++) { if (nodes[i] != null) { - console.log("Tabbable nodes[",i,"] element exists"); + // console.log("Tabbable nodes[",i,"] element exists"); if (typeof nodes[i].tagName !== 'undefined' || nodes[i].tagName !== null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); + // console.log("Tabbable nodes[",i,"] tagName is ",nodes[i].tagName); if (typeof nodes[i].getBoundingClientRect !== 'undefined' || nodes[i].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); + // console.log("Tabbable nodes[",i,"] has bounding rect", nodes[i].getBoundingClientRect().x,",",nodes[i].getBoundingClientRect().y); } else { - console.log("Tabbable nodes[",i,"] has NO bounding rect"); + // console.log("Tabbable nodes[",i,"] has NO bounding rect"); } } else { - console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); + // console.log("Tabbable nodes[",i,"].tagName is null $$$$$"); } } - console.log("--------------------------------"); + // console.log("--------------------------------"); if (nodes[i+1] != null && i+1 < nodes.length) { - console.log("Tabbable nodes[",i+1,"] element exists"); + // console.log("Tabbable nodes[",i+1,"] element exists"); if (typeof nodes[i+1].tagName !== 'undefined' || nodes[i+1].tagName !== null ) { // JCH - tabbable nodes - console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); + // console.log("Tabbable nodes[",i+1,"] tagName is ",nodes[i+1].tagName); if (typeof nodes[i+1].getBoundingClientRect !== 'undefined' || nodes[i+1].getBoundingClientRect != null) { - console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); + // console.log("Tabbable nodes[",i+1,"] has bounding rect", nodes[i+1].getBoundingClientRect().x,",",nodes[i+1].getBoundingClientRect().y); } else { - console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); + // console.log("Tabbable nodes[",i+1,"] has NO bounding rect"); } } else { - console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); + // console.log("Tabbable nodes[",i+1,"].tagName is null $$$$$"); } } - console.log("--------------------------------"); + // console.log("--------------------------------"); } for (let i = 0; i < nodes.length; i++) { //Make lines between numbers @@ -1213,12 +1208,12 @@ function createSVGLineTemplate() { } function convertXpathsToHtmlElements(xpaths: any) { - console.log("Function: convertXpathsToHtmlElements: ") + // console.log("Function: convertXpathsToHtmlElements: ") let results: any = []; - xpaths.map((xpath: any, index:any) => { - console.log("xpath ",index); + xpaths.map((xpath: any) => { + // console.log("xpath ",index); let element; - console.log("xpath = ",xpath); + // console.log("xpath = ",xpath); element = selectPath(xpath); results.push(element); }); From 4702cdad95d8edfdf41f52efad6bdaf5c1e47dfa Mon Sep 17 00:00:00 2001 From: Sharon Snider Date: Mon, 22 Aug 2022 13:25:47 -0500 Subject: [PATCH 102/103] Checker user guide and quick guide updates --- .../src/assets/element.svg | 14 +-- .../src/assets/img/3.5Keyboard2.png | Bin 188873 -> 100685 bytes .../src/assets/img/5_Options.png | Bin 52232 -> 98835 bytes .../src/assets/img/keyboard-element.svg | 14 +++ .../src/assets/img/keyboard-issue.svg | 14 +++ .../src/assets/keyboard_issue.svg | 14 +-- .../src/assets/tab_stop.svg | 14 +-- .../src/ts/quickGuideAC/QuickGuideACApp.tsx | 78 +++++++++++++ .../src/ts/usingAC/UsingACApp.tsx | 109 ++++++++++++------ 9 files changed, 198 insertions(+), 59 deletions(-) create mode 100644 accessibility-checker-extension/src/assets/img/keyboard-element.svg create mode 100644 accessibility-checker-extension/src/assets/img/keyboard-issue.svg diff --git a/accessibility-checker-extension/src/assets/element.svg b/accessibility-checker-extension/src/assets/element.svg index 29f09d58e..c99cba2cb 100644 --- a/accessibility-checker-extension/src/assets/element.svg +++ b/accessibility-checker-extension/src/assets/element.svg @@ -1,12 +1,12 @@ - - 3B693861-91AA-4E58-A377-95857D083C97 + + ABA868F0-239E-4409-AF9F-DF4F34529E69 - - - - - ? + + + + + ? diff --git a/accessibility-checker-extension/src/assets/img/3.5Keyboard2.png b/accessibility-checker-extension/src/assets/img/3.5Keyboard2.png index 1e90635db1f3bcb27bdb162fd2d4df53c7f86885..bee0ba80966d4373ee80c7e959cb5a0c9a4927d9 100644 GIT binary patch literal 100685 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
K8*`&=OF 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 diff --git a/accessibility-checker-extension/src/assets/img/5_Options.png b/accessibility-checker-extension/src/assets/img/5_Options.png index c330ca83066fb639843b3cb4e498144fccd739f3..0b42d4129dfee84bc7225ef4d33a2ed916e9985d 100644 GIT binary patch literal 98835 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 ZBSk0Ny+xy^z(Iij$Vw_nRKP2L{U3pw7}x*+ literal 52232 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 diff --git a/accessibility-checker-extension/src/assets/img/keyboard-element.svg b/accessibility-checker-extension/src/assets/img/keyboard-element.svg new file mode 100644 index 000000000..c99cba2cb --- /dev/null +++ b/accessibility-checker-extension/src/assets/img/keyboard-element.svg @@ -0,0 +1,14 @@ + + + ABA868F0-239E-4409-AF9F-DF4F34529E69 + + + + + + ? + + + + + \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/img/keyboard-issue.svg b/accessibility-checker-extension/src/assets/img/keyboard-issue.svg new file mode 100644 index 000000000..fe8e14acc --- /dev/null +++ b/accessibility-checker-extension/src/assets/img/keyboard-issue.svg @@ -0,0 +1,14 @@ + + + DABF6102-76FE-422A-884C-E437E09FD2C1 + + + + + + 2 + + + + + \ No newline at end of file diff --git a/accessibility-checker-extension/src/assets/keyboard_issue.svg b/accessibility-checker-extension/src/assets/keyboard_issue.svg index 60dbb5802..fe8e14acc 100644 --- a/accessibility-checker-extension/src/assets/keyboard_issue.svg +++ b/accessibility-checker-extension/src/assets/keyboard_issue.svg @@ -1,12 +1,12 @@ - - 29CD56B6-FF4F-47B7-97F5-405DB712B452 + + DABF6102-76FE-422A-884C-E437E09FD2C1 - - - - - 1 + + + + + 2 diff --git a/accessibility-checker-extension/src/assets/tab_stop.svg b/accessibility-checker-extension/src/assets/tab_stop.svg index 082bc790d..ffc8fbfa6 100644 --- a/accessibility-checker-extension/src/assets/tab_stop.svg +++ b/accessibility-checker-extension/src/assets/tab_stop.svg @@ -1,12 +1,12 @@ - - 94FB4058-A38E-47F0-B3E9-FDBD88C35953 + + B69E59E4-7146-4C70-822C-F22C4159D066 - - - - - 1 + + + + + 1 diff --git a/accessibility-checker-extension/src/ts/quickGuideAC/QuickGuideACApp.tsx b/accessibility-checker-extension/src/ts/quickGuideAC/QuickGuideACApp.tsx index 2c49bca79..bff1f2816 100644 --- a/accessibility-checker-extension/src/ts/quickGuideAC/QuickGuideACApp.tsx +++ b/accessibility-checker-extension/src/ts/quickGuideAC/QuickGuideACApp.tsx @@ -22,6 +22,9 @@ import beeLogoUrl from "../../assets/BE_for_Accessibility_darker.svg"; import violation from "../../assets/Violation16.svg"; import needsReview from "../../assets/NeedsReview16.svg"; import recommendation from "../../assets/Recommendation16.svg"; +import tabStop from "../../assets/tab_stop.svg"; +import kbIssues from "../../assets/keyboard_issue.svg"; +import element from "../../assets/element.svg"; interface quickGuideACAppState { } @@ -84,6 +87,11 @@ class quickGuideACApp extends React.Component<{}, quickGuideACAppState> { 5. Keyboard checker mode
+
  • + + 6. Troubleshooting + +
  • @@ -219,7 +227,77 @@ class quickGuideACApp extends React.Component<{}, quickGuideACAppState> { src="assets/img/5_Keyboard.png" alt="IBM checker tool highlighting 'keyboard checker mode' icon button" /> +
    +

    Select 'Keyboard checker mode' icon to turn on/off keyboard visualization.

    +
    +

    + +

    + IBM Checker tool highlighting 'keyboard checker mode' icon button +
    +

    + Select 'Keyboard checker mode' icon to turn on/off keyboard visualization. +

    +
    +

    Important note: the keyboard checker mode does not track page changes. Turn the mode off and on again to update the visualization. +

    +
    + webpage with keyboard visualization overlay +

    Select these icons or tab through the page to see code and keyboard access issues:

    +
    +
      +
    • +

      + tab stop icon{" "} + tab stops numbered by tab order of the page +

      +
    • +
    • +

      + keyboard issues icon{" "} + keyboard access issue with tab stop number +

      +
    • +
    • +

      + element issues icon{" "} + element with keyboard access issue (not a tab stop) +

      +
    • +
    +
    +
    + +

    9. Troubleshooting

    +

    + If the Accessibility Checker appears unresponsive: +
    +

      +
    • Close the browser DevTools
    • +
    • Clear browser cookies
    • +
    • Refresh the page
    • +
    • Reopen the browser DevTools
    • +
    • Click the 'Scan' button
    • +
    +

    diff --git a/accessibility-checker-extension/src/ts/usingAC/UsingACApp.tsx b/accessibility-checker-extension/src/ts/usingAC/UsingACApp.tsx index 9a702c78d..fc461dd25 100644 --- a/accessibility-checker-extension/src/ts/usingAC/UsingACApp.tsx +++ b/accessibility-checker-extension/src/ts/usingAC/UsingACApp.tsx @@ -138,6 +138,11 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { 8. Feedback +
  • + + 9. Troubleshooting + +
  • For bite-sized guidance, see quick guide @@ -194,7 +199,7 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    For Firefox:

      -
    1. Open the Firefox browser.
    2. +
    3. Open the Firefox browser
    4. Go to the{" "} { > IBM Equal Access Accessibility Checker {" "} - in Firefox Browser Add-on. + in Firefox Browser Add-on
    5. - Click 'Add To Firefox' button. + Click 'Add To Firefox' button

    @@ -351,10 +356,10 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    Select an element in the Checker, in the DOM, or use the ‘Inspect element’ command on the web page for the Checker to:

      -
    • show number of issues of each type within selected element and its children

    • -
    • open and highlight all issues in element, if any (dark purple highlight)

    • -
    • open and highlight all issues in element’s children, if any (light purple highlight)

    • -
    • show the same set of highlighted issues in the different tabs

    • +
    • Show number of issues of each type within selected element and its children

    • +
    • Open and highlight all issues in element, if any (dark purple highlight)

    • +
    • Open and highlight all issues in element’s children, if any (light purple highlight)

    • +
    • Show the same set of highlighted issues in the different tabs

    Hidden content scanning

    @@ -425,11 +430,11 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    You can open the ‘Reports’ dropdown menu and select ‘View stored scans’ to:

      -
    • select or unselect scans you want in the report with the checkboxes
    • -
    • select all scans with the checkbox in the first column of the header row
    • -
    • edit scan labels to differentiate the scans
    • -
    • select ‘Download’ in the header row to download the multi-scan report
    • -
    • select ‘Back to list view’ to return to main Checker view
    • +
    • Select or unselect scans you want in the report with the checkboxes
    • +
    • Select all scans with the checkbox in the first column of the header row
    • +
    • Edit scan labels to differentiate the scans
    • +
    • Select ‘Download’ in the header row to download the multi-scan report
    • +
    • Select ‘Back to list view’ to return to main Checker view

    3.4. Focus view

    @@ -511,29 +516,29 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {
    1. Make sure every interactive element is a tab stop*

        -
      1. no tab stops on non-interactive or non-visible elements**

      2. -
      3. tab order matches the visual flow of the page

      4. -
      5. inspect elements with found issues (select the triangle icons)

      6. +
      7. No tab stops on non-interactive or non-visible elements**

      8. +
      9. Tab order matches the visual flow of the page

      10. +
      11. Inspect elements with found issues (select the triangle icons)


    2. Test interactive elements
        -
      1. start from browser URL bar, or click just above the part of page of interest

      2. -
      3. press tab key to move keyboard focus through interactive elements

      4. -
      5. you shouldn’t get stuck in a keyboard trap (try the Esc key)

      6. -
      7. operate the controls using standard keys

      8. -
      9. focus should not jump to an unexpected place when operating controls

      10. -
      11. when dismissing or deleting items, focus should move to sensible location

      12. +
      13. Start from browser URL bar, or click just above the part of page of interest

      14. +
      15. Press tab key to move keyboard focus through interactive elements

      16. +
      17. You shouldn’t get stuck in a keyboard trap (try the Esc key)

      18. +
      19. Operate the controls using standard keys

      20. +
      21. Focus should not jump to an unexpected place when operating controls

      22. +
      23. When dismissing or deleting items, focus should move to sensible location

    |k$zUfbBDwk~9I;YgCyAnt_nBYZi^@c< zj@35bPB~b)IpipbNylu}<0{38MZ{ElzypFVRE&@_EfMz!!RPEgq; zDa?{5uv%4pWzD*eQre`;Il>F0@`95Ha2ibGr!2&7{w92?A&Fs{vDRrHlz@V!G8;+1 zLNqNn!8(C8DJdJ|@2u9nfm#L&mIG_da$os=Bc5~LfzmN9R;EYSc=1o#Xj$)GTtCBP z5n-Y2qXrc%elt)#J`j*rlF=)4Kzv+bgvS(i2WJJ%eQD5Ih5jYGWxMTR; zAf|THND$hVfNkD7`4tw^7eQ`_GF3Z7>?~F4`V)Fb@U^i99dQI;Nh8=hCF2dEGF#dn&!VwAqFosMS{A z^UG1H#+99~)OWv%*q@U78*>9zBtj;Pz_ufS$>jmKt`rlmORsj{=)bxbjOs^oaw_v5 z^Q$%PSTqulsI3;_63s|9eLJD}8CDSU=}V0}hqNGqw#_g{NY=3+$)+aq=A3K+7ca9~ zzX_BTHljXJB9>;gk!p3MMEqJE_N`?J4Bh0Rn29Gp-kNyln` z${{7@U-WBTDp$!P(Z7#z5ay1GgcV9P#uc)g@HAwbct8?3DQ7Ag+68E8sL}Aj!Qb4j zfAgCPlnoNEq`Ed@rL&V%4$ngNyYTA_z5uOvCD0)mwCcMWtCyH&9OxQ=hUo;SCFGIj zb5*H5_x0-hef|WUv3yGj@O3zRlwMuz`kG(9iz zNy5p6cQ+VBm=Fbf1-d(r#ppw-`l^hK`rGUa6x8`YW5Tq8q1OiKrZXtU30=lEU>7@z zoG86xqOb~_A9e!)WiItD7j*#@y-sVcir-%EwhH_UWolAaRfQ~W<)E4*oJYqm{ zPv|Hi2}kYsUO=>q`si1mgNG(zfg2ET#FkLgUz_jQC1Z_Vr(DD3taF!VF#+tO!bYV+ zsWCUK*Ea!TZTB2hgCJ^-frc5{^w)Vt@kn%|oAu9;m>RIK)6qVP=qUJSkqlhoQ z3yesXj|ZP{BPKA8d^17TmsU8dBVq#hog+9IA{(&%Fb4M27mPh(t5yE1!%o*5(e_1B zd{1=jcf1$OIBDaCh3}_$%2C^A8r?#D3s6!;m}P?G=vJ2Sk?bkCtH73VRx^KHvdR_d z1NrECQr~kZ0{ygPOBr4dqn6f8G@<^##~cn4Dz)*2B9Aa4R5XOfu@*uu)!Fe*(mn`Z2#%uM@>L=MyCEJEgafzh z(J*Hw2C**%G0L`QC|Y_8Dvpco<|{bJeQr?oyp?nVlDmxM)OsvL3N5ERZoj;ZmqDM! z8z$(g^<24bCP5Vm^Eh_R)AsV3f}lSEJmaXLCug zfWrnOe@tefgQcUDEXeB&)5_u0VD1)7bni!Y_~7Dm<_AeQybK3P3Ns(Txb9=IO9eUK zkA<&NZ(}FD$iu>T0Qpfo)lVBS!~$__VAR3~B=K5@l9C*@Mej$*UstGf3hFm({zzch z#ArpypqfGvi6X^58o?+Hemizpeop7AoFu`!!PBL{i@C<<&dnbdqptPiNf7_tPaxnz zr@tP5US&VMU|1u+%BGH?AzAS2H1F)2p?r#huf2#@Cq<{IfPI;k)kftcsx!vgXpx%* zwqF7%0fDysh&VlbUjAoQ174)f^NB%34NWWJ9(h>hh9yQvQ51whsHQt!+H-lFpBX#? z3}puh7D$E3U!4cT;`_nE_?99`g@ro+yGOBtnEfvhaGFT_b!(p7VngkZHbUhB4b{!x z4GlqWq5-aBa{VA56ciK$33Vb=TZa2dY2jx~;<}%jMwQ7d(sG>wLxO~3lV5ehr)i{W zZ9FF&A|*^L-|QpuCNb3^q0%{(v4cUAgNu^yt(TmuIm6=y+sY*P#cE*!9%pzA&{ops z>cZ!Ju`QVrud&?d!>L;7@zl*Pmh+AB%cAP`hEH*o@+ia+7j9I1cnje35rV?qHy|Z3 zc|n^PDg<3ckQ<_|ZC#7hrcEs{Ndjk{hZbIHxQ9%Xg%|yfmg^LTrN)_!hZWHLyr1{O zxBf?!+VCsbEGUr=K^RiD&UarG9EKe~Txlkxf7F3UE~I#z`92Qy!X_^^PnI4jIa?sbaEWV2Y1PE}mYW9{LSbsDyR-ULQE=TYX5&^zLr z+7xhDboCkjX5v$q4KiB+901FX7B;U2x~qHSE6ffgr;|~xB?@purhgRLX>2z7AHW{) z``BQ>^avJ49S)JyMx{Sb%EQg8OxfSSN`VGF$Qm~*W>}Tlutlt`M(E0sqJ`bU`9HKC zaayOC1j2hrX?xOci|rq*uxwO{S>kU`$T!9J3+KbxZ3Ppk6IMSRk0TR;-+K$3?SPr zKx)B0`Sr;H3PN!M^h-=}yVZpgMu2+6}iz_S6fnCm1G~H$5L6B|99D-&dNRBue+dBw4Nr1{3?!1d-`LS74wH}Itb8# z+_ScK_d#IoIo3@HaYw(`<7@dfLr8`!Yx?hn3=Cygkk8ws&*v7??)H8@vEPGRi#4L0 zh^=(HVa#qdYN7^iFG1&E?)0%0-ZeC+gl%J5jJX+1?oTyUsR?q*&#<)MGd^}ISsf-w z(0+!f+KBYMwhQouPH?KARYt<3;HofBBai+bFPyGVb=EheNE?!2VK!#{?wl$^o`pzZ zq0G8T5kEpH^(Z8<=n;;7w+=Dcum1b!ZKEg?+fyaQKhBf=-fep>-?%ieCXe2At^`)s zw1X;&%~b#+b{l=HLFZ^MkuhPA_W!kYR}WEj(E`8~kZu?lx=U*4?rsT1i6NyC5Re7| z=?>|bfgwggLPSJ5h7hDvB&17fXc+E%_u)RsJ%7O2d#%0Cd06NC){b1p+)rS)jWBj8 zHKNyA=P^t8GA%RhTL6BGnYpGJ{stu5s>_cx=&(JxGvhl!mzX;( z-_q%?mu|-Rz5QbaZ*ap$nc(K2@=O)2Mx(eOcVZqFm9-7~tLEexDjq4`_3###d{(@J zu9g?pxG%A&i*#Fj`;}XC{N?9*mVSK?GcnMtF08e96_9!qoX#XD?|8YWHYl|yb^Oy1 zjKfFB1c)k>zTG9PAdIu=Pz;)sI0^kA+@gd7d+?L(?in0#iJ_vwoG$Z2Qg4776*Ea) zB9)NI^~*^q&H4^go!r@0RdSZ=LAO4S(&^-I0jcc))kI%HRJ~$YF2zRNa0e`YvWxl1 zs7^4ZpNzwux$i<5su!hKD!Z0(iv=5n4v~SmTHkfyy&3|HJ(!PDf70~kFKdMYBQ#D) zTN*P4-;=3}kWILpJ`sr#@xAO9y7EitI8@+#TK{nAjPJ#d_^mBUan|Jh`IwHTH~|Q9 z?5`?-Qu6f|DQ3*5v|Guuitb`X8PcHCXDlh zM0`=c!i_>EW`esMGbuNy){8QY{Be*XG*Ka3hm_MIJkmpe1*DGJnb9YCWKv9yiLeum zTHzAphZ(+Ur)iE(X2_YHXDT*Nz0f#WsRmr2HlIs{oC{;oi8Z9*k;5JnbOiZ1cC$=+ zoHv^G+cgli7biNUxx21&r1<*6FgT7o6+_eK-4gWaG#<94Y}+?J6{A+Qnkq+D(LE2A z`YCvWVx|ZJ^9_NRgQr8Q*v-i37$v78>Ml|A+W1eIe{;lVydsB$J z1LuibkrhTcL83P4v1qln6oSnq+ZLHY_!eQr&)k?Y9n&1I)OJVNVyI9-DA0hrJ89I# zWogUcb%kyieNyn0QOWa(i3&i)Vfl663BJ2E>7h0|9ql^F>Ww!8MmS&hb`&9NYaY^l zjRT3fPdped^A!KO`B)k|s2>v7n~{9tjJb10!LlAg15xD3{&*O?}Mcj zl5n%jphkd%*k>ov<510!9pK)3`axBD?bCwqlT`YJt5V{y3+Bx92Mz|wl)dAh-J{KT zjSXG4v5UY(LXqi-wYGH}55vzXQkdiau<)p=%8?>K3;udL8vOhKtH?i^GN2duEF0Ul z5xCvKN>ZGvVNZ3jqR1Y`9eEll(|M3e)dQVzrW9mCH0+eP3*M(%RVKA_Gwd`8F};(= z2S!9v^t`LW^B|__n3bwF$z6c@>R!O=o=5{{-sqB9Qfp6+#}rVpEJ+GkCnd9DJP%a1Q6&wH>MuR5$aY4mcM>_QE19uS;p>T z-Gdfh{YFo&1TC7Z@o9NL+$dN}ZQnb2VTX6~!IphcieS$7SOzv?>fJ+Z7Z4#Phd!ZbSk(ni;ZY(4k7+%&E}9LL#cNY2@OPE?3aw^LzxcB(V_c$-`~Th+96 zno1eCPE^)Z38^}6As2Ve&{l5O>b34or83!X3$_G8{F{W3PaK4-fow&7vQS_qJzPGo zKDI;=pQ++^T@|ENdDXPA`#P36l+*>Z$9{0(Ob=|hK~AmFm2e1nn#3?BwBH!pK zkmA;!&klf4iwB%&yHNQW%|6h-vdRimTR`$reZgyAHDO=Oz|hF!h~|oRIb+;;{J08J zU&TJ`hgUU0qQ$DEuqf2SDKgSn^98UMBF<}sk z3a@%pTuy`tQmcVV<-Fm7NMoWxIShS(*d;-_&Fj?E>E~(6*#cFofK6;sYQP_*pqGCk zA_ao*6kn4U6J@ZpqRbOqR408`%JZ;88F6UJMs*E5JR$+~^Tn@*IWHc@(5{#2A2~1! z`)R!u2dSeIr1Tq5^-%#M<4iM=)G@D^Wmd+_GUv>9LPx-StXY=mh9r7V=;|Y`pwws3 z<>x}1S(RBRawUXRUx8A4V#4rcmC7`K2)5Pup~H^=-)aJBY+>1tb`TBgTBu!Z8->Ea zIUt6Br@6{f=lAr&anb2OD6^n3Nx1E{{OOgHS`d56JI0>5@vp75Vf*uT6VO|+z0Zc@ zbFr>wlB$rqAE4Pb_4Y4G7aAKp__7#_2Tc@GY#mV|S*l4PHFwjo zTJFYr1H!rx;phHcWeOCC;0I(%efojV_)C%}nktE#v8NnKRt5q9jEE~ETOSGTUOWTJ zpOd}FV+qH$Q-yXVTye=&bnIk}hkGe6$|xIL-!Pht0_YydmwocAa%+QldJ59n zeNzBXYI*8fxsQ8Q6@R>AI=Eo=367iDj0k`;g>K=UFqYno3V_#06y|I-PKDckA!Xy- zpkcChPAM%Yb7b&CN~JR^>;C$)f^nJ-=^7)Mrg}u9dB)lo}XD zcTVcxkR>A@sfA`3rGrP0@(UPM<+vf-+YXwWxHz;n#e^f)EM)`wKx0eZ_tVPqw~YJ0 zXCZ8kos@!yX{#}NCUluK=BB&o!qq3Vc~x{?-!ebbs+#$%&>>~}X<=tvZwRxYr{JVd z+S-aza!#6*0ZQqKmSrqUi_&soSh{aQPrvN6`ox& zR}lRU_=T7(oTc7SycIaXAC8yS^bv5SRPL@y>H*A!iK+~81}V&Hs3gk)U#C;<=6!pI z(=&nnb=HF$;HoAuN*m2hOu6c~gLhuu<>zMK$I^iUwhYLwy2cdMsZ3&*l0;J3DU1-t zHM~xzdESoPIY^|&d%S8hvL)&Kw+y6?AR;;rYFoZ|C@8aGW=N3i7+q7_9)m9E$cn5p zFqrFL#fZHIYtLZjGd8w57wDoZL>Bq@-X89bZFZ~D$Kl-%shm+-Iy#R6nfZ~YU%|p0 zL}oT%il1Xm38pF}^vSgvaP@)@S%lW=xW7R$ag5u7C+0=xTWgx4@nkXSKN<7U1e7-) zXIfD9W!Z&fAC=1PiyJtvjdsd$adq~xfNuRsVYVr~uP%~74M~FbrBitOiZin3ghc}u z?DGQ#*0hmdD#AMQUANoiGn=6Y?{Ivut0UMn&e~5L#mkI>%GYK)^3yAUM~}_| zY;;qJiz}$F49D76Ua6SVgD6SH2F|llYHe0LuAK?jMs-p~4B~ztg8nW-)v<55LY4DZ-^!fo=0$3&{dyLwbjNJ)JE^K! z4_hBY#xn66g;~Q~z&x7`#1dcGGH0;#F;s+GeS)(rd_t+772tudOmF}kBchT_5Pv-H zoT9#`Wi|x2f(3OnG-Y9k*imxpXr&&>IWw=330gJ>UtHn@TbYm+P1=E<+9+FsWKi7O zel3CA&5GRv+PHAl*+e`8-VjB@<@eIVn3blXn~Yd8w-w8Uj>O!TUI>rX_J-VAm|Sh? zD;?;#<2z}CuT=Qmw_4|12jc!^Nf$TKoA}`rzoy=HDBdas=oWeAQy7!8dcy={o%Uj^ zgF$*&T5Zqossxg(a;*8(uUOBeUM2P=q$pu-;D*h|V?;LkOMgdH2Gvv+?;BlQ3||@N z`OS;cjvu^1H}z8-v;I^iaB5IE&Fxyx~JDiu@-Ga z`R0~r;^AD`{utj0ABmMl7BxdnT@Aclu?IkM>P0hxC>UNN3WWWUZhnd>qzv@MdEth5 zzgNi9$Tab6_I$_O1U7i{^Kt);U5m+#S1Lx1iuWk`Y?WMzv~rqDw<`f-wQYBLru{Cu zj!MgmGO<^yrb~$jPRS(^^fMfynouG{I^|NV`I=Z&wcD>lufLet?;iQ87OZMTwK(34 z;-BQUwxfHqsL_Lln5IsicSyev_0O+P;--N3{^dWRE{P>`^ye!2%N8h4IaWU$7z+4E z&!`B?-LweN8QJd4`S}TFS~e}%6SAgoVo9&FeQ`mqzRZRH#A@(3K8VQga3Todf;g+a z31?E9U-{|=w{UErNmBB66_(7UK$J4MyKmbSXnb)Dwm5z~=2CD_e^cUNfj)g3S?pW9 zkt5XAmx$_kaYrT>HBxa|l3aCDa#tn9+GJhmZ~Dffd!}-!A$y(w!>m2yE^as6Amk6F zcsJ1tZZl9QM7tiTYR-*nIhMO!otJHeHTuTA7v88MBd(40&PGtzU~q;WB##+6(a>9F;pNYdcVbG>G!!^ ze`4C^#eE7UF4$sr_+33rI z)ezgt?Q7O@&Dg?L>b>=4s8a!#f?0T62UflB%iL${2Wh`JY>IZ)y%&Sj(Vw=VEG;3R z@%r>1A*D$oQ?4`HZO>LRwJGIsQ<_wdPs?}x)tD(6JVAfHlV?}Bw=4REgCnWvFl@Vc<%3fnB_EHC zx)R$CO`Fd}(y&NVt~KwlhWbNssCBVj+iRn@F}(e)LLMIibIKT`Gfo96%n#ih2n-vZ z@oYwCgz9uj2I-+%S4vQ7;W2O5@vr*?k{Zm)-}{8M?N^Pe(6G8UXuv@&z`O`l1bt{<^7JjC>+`H@se{Ua_JxCvd`qVmNL_dcWOpB)wR~A zr|ps#93dQL=yS5YHsxeVbh(|u^}g#qM&AY6vsgz+Z+)B+2}PdS&rsc}-2J-Pr4$q^ z<3AG%;`g-{O#%O*uRA-s*w|h~2)bR$sk1x=xb1u@@NSDk=5Eg27$FOPr*+ckCv&fI$-1cbxu^B&PPsZXbixJam7Pb3HH9s_N zgc6xi&x7~0Mi^v1UR!)NW-a=&q^pqO^YD>o)Ba!C4GVNX+UA5^cH{6+3HeGdOm|g@ z;{~Jay!?MItHjqa#XvjrgsspV)P=y;BDY|vn+E;IH6PrZ(0?UrhcY#q%ne$_ zE7&xRQKRDVeN+a{tGDJ|FB!1)C&P9RTwAi0j>CGwV~9@(OUKT1z(0<_2ksgC`!7w=-P{wAp_Ksu+tjYWHZj`;Yv#3^Im*dxq^;o!Nb%rq^m(CicZi^3^bg6y`YY*@4O zi^YpJ2U{m){J-3;k)dR{Zf_oLvg+qM0oF;%isYnM%W#UqUiSUwB}%R&iY6MfmED5* zn+2v37C2-h)^t`|X$4tYTSHy`CZzOlYde@sF`RwMemi}=aWnRo7fc@xk5w$0 z@|}|){G^FucwWfgI4;lI9}B5k@`)cA0_wj_fw zBZkIR7Bdrm`_dx=(%u_`8K$+HYxAdr=5MgdIWd4J`t#jhvYZ`U(S&DGSkWq=@yNj8 z>+1fe@_<(#R#$J)8ZLZ51(L>{ODCQop&((RLz*uf=20nhX-yyQz`ATW>`=1nYru{% z44JBg)TVsA>$f& z#%&;KfO`|=0-oYb^?Qw+BCRXSILt(Xg5*iE1uZ|!lihXR%jzp)tY_6`fM>onF4NYo z$>o!_vx${%!^fvk--zmZ2bPsn>3YIQNd_#+^hm||FfSbi#BX;ijpLi~Z%(51nnA6^bYfSwkU#o&_tz#_F@u!*(bM`fO{h}o z#%1WFocNr!tnCC0@5JREIE6gMaERHODe(~%aT+h2i`A=tTVDgmC=t6YiqEn>F}*h( zCn}7x)uIf`2!12`WfRe2F}HCNc!ZA#K&_kef-xT}z5QN-6eq|u8#RSrrB^F=&z-Xw zjg6RjQeFXIMw=Ef3(vj(KKTQv4fch~4s8zF2pxuZGAG4oj z?~ZjnLFhFvS=~$QGWtd|k}bC0hw<*{cdva1C5_1Tm3=m>Iofz^oCL_;vKd{H9;$=T z4b)TDn})2k-jBx<>ll~)nyu9~jJ=z))pizkzJ2Z^cY0K0TXPvpWW~7}eQuH}_QWXa zxe1RYKaEImxqXe`l^gY?!o6+hY0R1`rs-ddO0P}>8&k%N%$;vv;U6AH6DgEOS3aT`vQ}l=J8Exn?Vhb ze{Ly*EaUdmmVDdEeQuqssBAq8)Uw(VbFGCfeMS&vJJe_u$5>^obWv}I1nMmTLiCr) zW_%rgs R>IdjcOHE((ld^Th{{Rx|JwX5f literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/Quick_Look.png b/accessibility-checker-extension/src/assets/img/Quick_Look.png new file mode 100644 index 0000000000000000000000000000000000000000..52d2a11b8d13f00d3cd2620cfbbef1b7b3d2f26d GIT binary patch literal 93949 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⪙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 literal 0 HcmV?d00001 From 5ce30ede98dcb4c8eab71e56a4a9f47502e094dd Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 18 Aug 2022 17:45:59 -0500 Subject: [PATCH 097/103] adjust outlines to default false --- .../src/ts/devtools/DevToolsPanelApp.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 60a854578..9f93fd7c0 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -310,13 +310,13 @@ } let tabStopLines:boolean = true; - let tabStopOutlines:boolean = true; + let tabStopOutlines:boolean = false; let tabStopAlerts:boolean = true; let tabStopFirstTime:boolean = true; // Get the Keyboard Mode OPTIONS if (result.OPTIONS) { - // console.log("Get Keyboard Mode OPTIONS"); + console.log("Get Keyboard Mode OPTIONS",result.OPTIONS); tabStopLines = result.OPTIONS.tabStopLines; tabStopOutlines = result.OPTIONS.tabStopOutlines; tabStopAlerts = result.OPTIONS.tabStopAlerts; @@ -1150,13 +1150,13 @@ render() { - // console.log("render"); - // console.log("this.state.this.state.selectedArchive = ",this.state.selectedArchive); - // console.log("this.state.this.state.selectedPolicy = ",this.state.selectedPolicy); - // console.log("this.state.tabStopLines = ",this.state.tabStopLines); - // console.log("this.state.tabStopOutlines = ",this.state.tabStopOutlines); - // console.log("this.state.tabStopAlerts = ",this.state.tabStopAlerts); - // console.log("this.state.tabStopFirstTime = ",this.state.tabStopFirstTime); + console.log("render"); + console.log("this.state.this.state.selectedArchive = ",this.state.selectedArchive); + console.log("this.state.this.state.selectedPolicy = ",this.state.selectedPolicy); + console.log("this.state.tabStopLines = ",this.state.tabStopLines); + console.log("this.state.tabStopOutlines = ",this.state.tabStopOutlines); + console.log("this.state.tabStopAlerts = ",this.state.tabStopAlerts); + console.log("this.state.tabStopFirstTime = ",this.state.tabStopFirstTime); let error = this.state.error; From 15565302f2361fc9b3d90a5faa69c01caa7646c0 Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Thu, 18 Aug 2022 23:13:42 -0500 Subject: [PATCH 098/103] Fixed first time and outlines in settings --- .../src/ts/devtools/DevToolsPanelApp.tsx | 32 +++++++++---------- .../src/ts/devtools/Header.tsx | 1 - 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx index 9f93fd7c0..e8ff4c21d 100644 --- a/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx +++ b/accessibility-checker-extension/src/ts/devtools/DevToolsPanelApp.tsx @@ -316,7 +316,7 @@ // Get the Keyboard Mode OPTIONS if (result.OPTIONS) { - console.log("Get Keyboard Mode OPTIONS",result.OPTIONS); + // console.log("Get Keyboard Mode OPTIONS",result.OPTIONS); tabStopLines = result.OPTIONS.tabStopLines; tabStopOutlines = result.OPTIONS.tabStopOutlines; tabStopAlerts = result.OPTIONS.tabStopAlerts; @@ -388,7 +388,7 @@ tabStopOutlines: tabStopOutlines, tabStopAlerts: tabStopAlerts, tabStopFirstTime: tabStopFirstTime, }); - // console.log("Function: readOptionsData DONE"); + console.log("Function: readOptionsData DONE"); } resolve(); }); @@ -551,7 +551,7 @@ this.setState({ tabStopsResults: tabbable }); this.setState({ tabStopsErrors: tabbableErrors }); - console.log("tabbable = ", tabbable); + // console.log("tabbable = ", tabbable); // console.log("tabbableErrors = ", tabbableErrors); // JCH - clear visualization // console.log("Function: onReport - &&&& DELETE TABS after collecting TAB data &&&&") @@ -1085,10 +1085,10 @@ } tabStopsSetFirstTime() { - console.log("tabStopsSetFirstTime"); + console.log("Function: tabStopsSetFirstTime"); if (this.state.tabStopFirstTime) { - console.log("setState tabStopFirstTime to false"); + // console.log("setState tabStopFirstTime to false"); this.setState({ tabStopFirstTime: false }); } @@ -1099,14 +1099,14 @@ tabStopOutlines: this.state.tabStopOutlines, tabStopAlerts: this.state.tabStopAlerts, tabStopFirstTime: false, - }); - this.save_options_to_storage(this.state); + }, () => { + this.save_options_to_storage(this.state); + }); } save_options_to_storage = async (state: any) => { - // console.log("save_options_to_storage"); + // console.log("Function: save_options_to_storage"); var options = { OPTIONS: state }; - // console.log(options); await chrome.storage.local.set(options, function () { // console.log("options is set to ", options); }); @@ -1150,13 +1150,13 @@ render() { - console.log("render"); - console.log("this.state.this.state.selectedArchive = ",this.state.selectedArchive); - console.log("this.state.this.state.selectedPolicy = ",this.state.selectedPolicy); - console.log("this.state.tabStopLines = ",this.state.tabStopLines); - console.log("this.state.tabStopOutlines = ",this.state.tabStopOutlines); - console.log("this.state.tabStopAlerts = ",this.state.tabStopAlerts); - console.log("this.state.tabStopFirstTime = ",this.state.tabStopFirstTime); + // console.log("render --------------"); + // console.log("this.state.this.state.selectedArchive = ",this.state.selectedArchive); + // console.log("this.state.this.state.selectedPolicy = ",this.state.selectedPolicy); + // console.log("this.state.tabStopLines = ",this.state.tabStopLines); + // console.log("this.state.tabStopOutlines = ",this.state.tabStopOutlines); + // console.log("this.state.tabStopAlerts = ",this.state.tabStopAlerts); + // console.log("this.state.tabStopFirstTime = ",this.state.tabStopFirstTime); let error = this.state.error; diff --git a/accessibility-checker-extension/src/ts/devtools/Header.tsx b/accessibility-checker-extension/src/ts/devtools/Header.tsx index b2001b978..cef1fb332 100644 --- a/accessibility-checker-extension/src/ts/devtools/Header.tsx +++ b/accessibility-checker-extension/src/ts/devtools/Header.tsx @@ -411,7 +411,6 @@ export default class Header extends React.Component } }}> - {console.log("openKeyboardMode = ",this.state.openKeyboardMode,"tabStopFirstTime = ",this.props.tabStopFirstTime)} {this.state.openKeyboardMode && this.props.tabStopFirstTime ?

    4o-ox<==o~LK$$T41)ZDhJ=y}dZ z3O2Y%7*Jcj}mt?uV~YyQu(=0?K2cTizKy)_+N-2QR^pAcBqHL zhu5XZ1Pls=nA|5|NXMx+q=OA<>Cs<03f es`!_a&TlgavFyP~)Dh|m!wT{z?&9FdXa5D)ekaHP literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/3_MultiScan.png b/accessibility-checker-extension/src/assets/img/3_MultiScan.png new file mode 100644 index 0000000000000000000000000000000000000000..1a508bf92ab28690e2be5256ca86add7f894d986 GIT binary patch literal 90595 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 K11yK2w0{9164ze< literal 0 HcmV?d00001 diff --git a/accessibility-checker-extension/src/assets/img/4_Focus.png b/accessibility-checker-extension/src/assets/img/4_Focus.png new file mode 100644 index 0000000000000000000000000000000000000000..5a73fa4375e35969451277be9151d1a6a4f94765 GIT binary patch literal 85183 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

    -

    * it may be acceptable to skip interactive elements if the UI provides another keyboard accessible way to perform the same function

    +

    * It may be acceptable to skip interactive elements if the UI provides another keyboard accessible way to perform the same function

    -

    ** it may be acceptable if the first tab stop of the page is “skip to main content” link that is not visible until it has keyboard focus

    +

    ** It may be acceptable if the first tab stop of the page is “skip to main content” link that is not visible until it has keyboard focus

    Keys to use for testing

    @@ -691,7 +696,7 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {
  • In the browser tool bar, select the IBM Equal Access - Accessibility Checker icon, shown as a purple bee{" "} + Accessibility Checker icon as shown {" "} { alt="Accessibility checker application icon" /> . This will usually be located in the upper right of the - browser window. An overlay will appear. + browser window.


  • In the overlay that appears, select 'Options’ and the options will open in a new browser tab. - Note: In the Firefox browser when the Enhanced Tracking Protection option is set to Strict, this causes some sites or content to break and may prevent the Options page from opening. Change the browser privacy settings to Standard. + Note: In Firefox, the Options page may fail to open if the Enhanced Tracking Protection option is set to Strict. To avoid this, change the browser privacy settings to Standard.

  • @@ -787,6 +792,15 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    +

    Keyboard checker mode

    +

    + By default, the keyboard visualization options has the 'Lines connecting tab stops' checkbox selected. Select the 'Element outlines' checkbox to see bounding boxes for each interactive element in the tab order. +

    +
    +

    + The 'Alert notifications' toggles on and off the pop-up notification that appears every time you turn on the keyboard checker mode. +

    +

    6. Accessibility Checker reports

    @@ -809,11 +823,11 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { />

      -
    1. the scan date and time
    2. -
    3. the scanned URL
    4. -
    5. percentage of elements with no detected violations or items to review
    6. -
    7. a summary of test results
    8. -
    9. issue details organized by requirements, element roles, and rules
    10. +
    11. The scan date and time
    12. +
    13. The scanned URL
    14. +
    15. Percentage of elements with no detected violations or items to review
    16. +
    17. A summary of test results
    18. +
    19. Issue details organized by requirements, element roles, and rules
    20. ‘Learn more’ link with detailed description for each issue
    @@ -841,11 +855,13 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { ruleset, guidelines and platform used for the scan, and a summary of the overall results across all included scans.

    +
  • Scan summary provides an overview of the set of scans within the report.

  • +
  • Issue Summary provides an overview of the issues found across all the scans. @@ -856,6 +872,7 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { and Recommendations. Counts are provided for each type of issue.

  • +
  • Issues has the details of the individual issues. This includes the scan label @@ -863,6 +880,7 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { and toolkit levels.

  • +
  • Definition of fields defines the columns in the other sheets. @@ -901,20 +919,20 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

  • -

    issue filter checkboxes, +

    Issue filter checkboxes, enter key{" "} selects checkbox

  • -

    issue view tab list, Issue view tab list, left right arrow keys{" "} navigates between tabs

  • -
  • issue groupings associated with each requirement (element role or rule)
  • +
  • Issue groupings associated with each requirement (element role or rule)
    • @@ -950,21 +968,23 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    • Use the heading hierarchy or implemented landmarks to navigate:
    • +
      • The Assessment or Checker view’s main landmark includes: +
          -
        • - Issue count region (by issue type and the total number of issues found)

        • -
        • - Issue list region (issues grouped by element roles/requirements/rules)

        • +
        • - Issue count region (by issue type and the total number of issues found)

        • +
        • - Issue list region (issues grouped by element roles/requirements/rules)

        • - In the Checker view, the main landmark also contains issue help and the overview of stored scans, when those are requested by the user


      • -
      • The Assessment view Scan Summary aside or the complementary landmark contains the scan summary, after the scan completes or shows the issue help when any issue is selected.

      • +
      • The Assessment view Scan Summary aside or the complementary landmark contains the scan summary, after the scan completes or shows the issue help when any issue is selected.


      • -
      • The Assessment view Issue Help aside or the complementary landmark contains the issue help when any issue is selected.

      • +
      • The Assessment view Issue Help aside or the complementary landmark contains the issue help when any issue is selected.

      @@ -975,6 +995,7 @@ class UsingACApp extends React.Component<{}, UsingACAppState> { Visit the{" "} Equal Access git repository to: +

      • @@ -993,6 +1014,18 @@ class UsingACApp extends React.Component<{}, UsingACAppState> {

    +

    9. Troubleshooting

    +

    + If the Accessibility Checker appears unresponsive: +

    +

      +
    • Close the browser DevTools
    • +
    • Clear browser cookies
    • +
    • Refresh the page
    • +
    • Reopen the browser DevTools
    • +
    • Click the 'Scan' button
    • +
    +

    From 3a0fd95e7196ab774d5f886b4384683359c447fe Mon Sep 17 00:00:00 2001 From: drjoho <64442976+drjoho@users.noreply.github.com> Date: Tue, 23 Aug 2022 14:25:55 -0500 Subject: [PATCH 103/103] remove logging --- accessibility-checker-extension/src/ts/contentScripts/draw.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessibility-checker-extension/src/ts/contentScripts/draw.ts b/accessibility-checker-extension/src/ts/contentScripts/draw.ts index 84aed5ee3..8d35dd76a 100644 --- a/accessibility-checker-extension/src/ts/contentScripts/draw.ts +++ b/accessibility-checker-extension/src/ts/contentScripts/draw.ts @@ -617,7 +617,7 @@ function redrawErrors(tabStopsErrors: any, tabStops: any, outlines: boolean, ifr } // see below lines as we draw triangle after lines - console.log("Triangle x,y = ",x,",",y); + // console.log("Triangle x,y = ",x,",",y); if (outlines) {