From 60f470c4bb618a7987d5701b1228ec5ff49f2773 Mon Sep 17 00:00:00 2001 From: Joe Winett Date: Thu, 29 Aug 2019 02:33:28 -0500 Subject: [PATCH] Remove aria-hidden="true" nodes (fixes #541) (#555) Remove aria-hidden="true" nodes (fixes #541) --- Readability-readerable.js | 3 ++- Readability.js | 4 +++- .../remove-aria-hidden/expected-metadata.json | 7 +++++++ .../remove-aria-hidden/expected.html | 6 ++++++ .../test-pages/remove-aria-hidden/source.html | 19 +++++++++++++++++++ 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/test-pages/remove-aria-hidden/expected-metadata.json create mode 100644 test/test-pages/remove-aria-hidden/expected.html create mode 100644 test/test-pages/remove-aria-hidden/source.html diff --git a/Readability-readerable.js b/Readability-readerable.js index 78012fb..0a2bea0 100644 --- a/Readability-readerable.js +++ b/Readability-readerable.js @@ -30,7 +30,8 @@ var REGEXPS = { function isNodeVisible(node) { // Have to null-check node.style to deal with SVG and MathML nodes. - return (!node.style || node.style.display != "none") && !node.hasAttribute("hidden"); + return (!node.style || node.style.display != "none") && !node.hasAttribute("hidden") + && (!node.hasAttribute("aria-hidden") || node.getAttribute("aria-hidden") != "true"); } /** diff --git a/Readability.js b/Readability.js index 27c494b..46d24b3 100644 --- a/Readability.js +++ b/Readability.js @@ -1786,7 +1786,9 @@ Readability.prototype = { }, _isProbablyVisible: function(node) { - return (!node.style || node.style.display != "none") && !node.hasAttribute("hidden"); + return (!node.style || node.style.display != "none") + && !node.hasAttribute("hidden") + && (!node.hasAttribute("aria-hidden") || node.getAttribute("aria-hidden") != "true"); }, /** diff --git a/test/test-pages/remove-aria-hidden/expected-metadata.json b/test/test-pages/remove-aria-hidden/expected-metadata.json new file mode 100644 index 0000000..7708c68 --- /dev/null +++ b/test/test-pages/remove-aria-hidden/expected-metadata.json @@ -0,0 +1,7 @@ +{ + "title": "Remove aria-hidden elements test", + "byline": null, + "excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.", + "readerable": false, + "siteName": null +} diff --git a/test/test-pages/remove-aria-hidden/expected.html b/test/test-pages/remove-aria-hidden/expected.html new file mode 100644 index 0000000..3e0c0e1 --- /dev/null +++ b/test/test-pages/remove-aria-hidden/expected.html @@ -0,0 +1,6 @@ +
+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

+

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+
\ No newline at end of file diff --git a/test/test-pages/remove-aria-hidden/source.html b/test/test-pages/remove-aria-hidden/source.html new file mode 100644 index 0000000..1c558e6 --- /dev/null +++ b/test/test-pages/remove-aria-hidden/source.html @@ -0,0 +1,19 @@ + + + + + Remove aria-hidden elements test + + +
+

Lorem

+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua.

+

Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+
+
+ +