diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/access/AccessibilityCheck.cxx | 55 | ||||
-rw-r--r-- | sw/source/core/inc/AccessibilityCheck.hxx | 1 |
2 files changed, 56 insertions, 0 deletions
diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index 870f67169e11..31cd12c8b07e 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -19,6 +19,55 @@ namespace { OUString sNoAlt("No alt text for graphic '%OBJECT_NAME%'"); +OUString sTableMergeSplit("Table '%OBJECT_NAME%' contains merges or splits"); +} + +void AccessibilityCheck::checkTableNode(SwTableNode* pTableNode) +{ + if (!pTableNode) + return; + + SwTable const& rTable = pTableNode->GetTable(); + if (rTable.IsTableComplex()) + { + OUString sName = rTable.GetTableStyleName(); + svx::AccessibilityIssue aIssue; + aIssue.m_aIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); + m_aAccessibilityIssueCollection.push_back(aIssue); + } + else + { + if (rTable.GetTabLines().size() > 1) + { + int i = 0; + size_t nFirstLineSize = 0; + bool bAllColumnsSameSize = true; + + for (SwTableLine const* pTableLine : rTable.GetTabLines()) + { + if (i == 0) + { + nFirstLineSize = pTableLine->GetTabBoxes().size(); + } + else + { + size_t nLineSize = pTableLine->GetTabBoxes().size(); + if (nFirstLineSize != nLineSize) + { + bAllColumnsSameSize = false; + } + } + i++; + } + if (!bAllColumnsSameSize) + { + OUString sName = rTable.GetTableStyleName(); + svx::AccessibilityIssue aIssue; + aIssue.m_aIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); + m_aAccessibilityIssueCollection.push_back(aIssue); + } + } + } } // Check NoTextNodes: Graphic, OLE @@ -73,6 +122,12 @@ void AccessibilityCheck::check() if (pNoTextNode) checkNoTextNode(pNoTextNode); } + if (pNode->GetNodeType() & SwNodeType::Table) + { + SwTableNode* pTableNode = pNode->GetTableNode(); + if (pTableNode) + checkTableNode(pTableNode); + } } } diff --git a/sw/source/core/inc/AccessibilityCheck.hxx b/sw/source/core/inc/AccessibilityCheck.hxx index 4648b06dce70..5d268856d67e 100644 --- a/sw/source/core/inc/AccessibilityCheck.hxx +++ b/sw/source/core/inc/AccessibilityCheck.hxx @@ -32,6 +32,7 @@ public: } void check(); + void checkTableNode(SwTableNode* pTableNode); void checkNoTextNode(SwNoTextNode* pNoTextNode); void checkObject(SdrObject* pObject); }; |