diff --git a/src/display/text_layer.js b/src/display/text_layer.js index a9da8bf77131c..a1e9e82abe298 100644 --- a/src/display/text_layer.js +++ b/src/display/text_layer.js @@ -294,6 +294,9 @@ class TextLayer { if (item.id) { this.#container.setAttribute("id", `${item.id}`); } + if (item.tag === "Artifact") { + this.#container.ariaHidden = true; + } parent.append(this.#container); } else if (item.type === "endMarkedContent") { this.#container = this.#container.parentNode; diff --git a/test/integration/accessibility_spec.mjs b/test/integration/accessibility_spec.mjs index 71d7a7bcefd77..fed6eac5ddbb7 100644 --- a/test/integration/accessibility_spec.mjs +++ b/test/integration/accessibility_spec.mjs @@ -430,4 +430,34 @@ describe("accessibility", () => { ); }); }); + + describe("Artifacts must be aria-hidden", () => { + let pages; + + beforeEach(async () => { + pages = await loadAndWait("bug1937438_mml_from_latex.pdf", ".textLayer"); + }); + + afterEach(async () => { + await closePages(pages); + }); + + it("must check that some artifacts are aria-hidden", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + const parentSquareRootHidden = await page.evaluate(() => { + for (const span of document.querySelectorAll(".textLayer span")) { + if (span.textContent === "√") { + return span.parentElement.getAttribute("aria-hidden"); + } + } + return false; + }); + expect(parentSquareRootHidden) + .withContext(`In ${browserName}`) + .toEqual("true"); + }) + ); + }); + }); });