sw/inc/OnlineAccessibilityCheck.hxx | 2 ++ sw/source/core/access/AccessibilityCheck.cxx | 12 +++++++++++- sw/source/core/inc/AccessibilityCheck.hxx | 1 + sw/source/core/txtnode/OnlineAccessibilityCheck.cxx | 11 +++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-)
New commits: commit 45d1fca81991f0d6837c98d6be6fe0d21d566fa5 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Mon Oct 31 11:09:46 2022 +0100 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Fri Nov 18 02:06:13 2022 +0100 sw: run document properties a11y checks on a loaded document Change-Id: Iba98a91a61955af52651348409f88244d1eed2c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142216 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/sw/inc/OnlineAccessibilityCheck.hxx b/sw/inc/OnlineAccessibilityCheck.hxx index fe4652949d64..3d68a71f11db 100644 --- a/sw/inc/OnlineAccessibilityCheck.hxx +++ b/sw/inc/OnlineAccessibilityCheck.hxx @@ -53,6 +53,7 @@ private: sal_Int32 m_nAccessibilityIssues; bool m_bInitialCheck; bool m_bOnlineCheckStatus; + std::unique_ptr<sfx::AccessibilityIssueCollection> m_pDocumentAccessibilityIssues; void runAccessibilityCheck(SwNode* pNode); void updateStatusbar(); @@ -60,6 +61,7 @@ private: void initialCheck(); void lookForPreviousNodeAndUpdate(SwPosition const& rNewPos); void clearAccessibilityIssuesFromAllNodes(); + void runDocumentLevelAccessibilityCheck(); public: OnlineAccessibilityCheck(SwDoc& rDocument); diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index 802dda2b95cd..ac558a44c69e 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -1411,7 +1411,7 @@ void AccessibilityCheck::checkNode(SwNode* pNode) } } -void AccessibilityCheck::check() +void AccessibilityCheck::checkDocumentProperties() { if (m_pDoc == nullptr) return; @@ -1424,6 +1424,16 @@ void AccessibilityCheck::check() if (pDocumentCheck) pDocumentCheck->check(m_pDoc); } +} + +void AccessibilityCheck::check() +{ + if (m_pDoc == nullptr) + return; + + init(); + + checkDocumentProperties(); auto const& pNodes = m_pDoc->GetNodes(); SwNode* pNode = nullptr; diff --git a/sw/source/core/inc/AccessibilityCheck.hxx b/sw/source/core/inc/AccessibilityCheck.hxx index 1ff4cf5b16f7..c7613e8829a4 100644 --- a/sw/source/core/inc/AccessibilityCheck.hxx +++ b/sw/source/core/inc/AccessibilityCheck.hxx @@ -51,6 +51,7 @@ public: void check() override; void checkObject(SdrObject* pObject); void checkNode(SwNode* pNode); + void checkDocumentProperties(); }; } // end sw namespace diff --git a/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx b/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx index db1212600644..1188bc7d06c5 100644 --- a/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx +++ b/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx @@ -135,11 +135,22 @@ void OnlineAccessibilityCheck::runAccessibilityCheck(SwNode* pNode) = std::make_unique<sfx::AccessibilityIssueCollection>(aCollection); } +void OnlineAccessibilityCheck::runDocumentLevelAccessibilityCheck() +{ + m_aAccessibilityCheck.getIssueCollection().clear(); + m_aAccessibilityCheck.checkDocumentProperties(); + auto aCollection = m_aAccessibilityCheck.getIssueCollection(); + m_pDocumentAccessibilityIssues + = std::make_unique<sfx::AccessibilityIssueCollection>(aCollection); +} + void OnlineAccessibilityCheck::initialCheck() { if (m_bInitialCheck) return; + runDocumentLevelAccessibilityCheck(); + auto const& pNodes = m_rDocument.GetNodes(); for (SwNodeOffset n(0); n < pNodes.Count(); ++n) {