sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx |    4 +++-
 sw/qa/core/accessibilitycheck/data/TabsTest.odt          |binary
 sw/source/core/access/AccessibilityCheck.cxx             |   11 +++++++++--
 3 files changed, 12 insertions(+), 3 deletions(-)

New commits:
commit 629a20b97f186531d73d78ef8a02e5def35f22e1
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Thu Jul 11 18:33:25 2024 +0200
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Fri Jul 12 16:54:01 2024 +0200

    tdf#159776 - A11Y sidebar: Fix no warning about multiple tabs
    
    used for creating spacing.
    
    Change-Id: I9a2725954406140efa27ccc3ae30f19d0bd1fa8a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170387
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>
    Tested-by: Jenkins

diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx 
b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
index 77330b9a8157..43a872832ee0 100644
--- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
+++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
@@ -219,7 +219,7 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, 
testCheckTabsFormatting)
     sw::AccessibilityCheck aCheck(pDoc);
     aCheck.check();
     auto& aIssues = aCheck.getIssueCollection().getIssues();
-    CPPUNIT_ASSERT_EQUAL(size_t(8), aIssues.size());
+    CPPUNIT_ASSERT_EQUAL(size_t(10), aIssues.size());
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, 
aIssues[0]->m_eIssueID);
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DIRECT_FORMATTING, 
aIssues[1]->m_eIssueID);
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, 
aIssues[2]->m_eIssueID);
@@ -228,6 +228,8 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, 
testCheckTabsFormatting)
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DIRECT_FORMATTING, 
aIssues[5]->m_eIssueID);
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, 
aIssues[6]->m_eIssueID);
     CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DIRECT_FORMATTING, 
aIssues[7]->m_eIssueID);
+    CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, 
aIssues[8]->m_eIssueID);
+    CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DIRECT_FORMATTING, 
aIssues[9]->m_eIssueID);
 }
 
 //tdf#156550 - Accessibility sidebar complains about TOC hyperlinks
diff --git a/sw/qa/core/accessibilitycheck/data/TabsTest.odt 
b/sw/qa/core/accessibilitycheck/data/TabsTest.odt
index 29b415df87a7..d48a5a0155cf 100644
Binary files a/sw/qa/core/accessibilitycheck/data/TabsTest.odt and 
b/sw/qa/core/accessibilitycheck/data/TabsTest.odt differ
diff --git a/sw/source/core/access/AccessibilityCheck.cxx 
b/sw/source/core/access/AccessibilityCheck.cxx
index 723d20566f24..429b94a02efb 100644
--- a/sw/source/core/access/AccessibilityCheck.cxx
+++ b/sw/source/core/access/AccessibilityCheck.cxx
@@ -937,6 +937,7 @@ public:
         sal_Int32 nTabCount = 0;
         bool bNonSpaceFound = false;
         bool bPreviousWasChar = false;
+        bool bPreviousWasTab = false;
         for (sal_Int32 i = 0; i < nParagraphLength; i++)
         {
             switch (sParagraphText[i])
@@ -958,10 +959,15 @@ public:
                     if (pSection && pSection->GetTOXBase())
                         continue;
 
-                    if (bPreviousWasChar)
+                    // text between tabs or text align at least with two tabs
+                    if (bPreviousWasChar || bPreviousWasTab)
                     {
                         ++nTabCount;
-                        bPreviousWasChar = false;
+                        if (bPreviousWasChar)
+                        {
+                            bPreviousWasChar = false;
+                            bPreviousWasTab = true;
+                        }
                         if (nTabCount == 2)
                         {
                             auto pIssue = lclAddIssue(m_rIssueCollection,
@@ -993,6 +999,7 @@ public:
                     }
                     bNonSpaceFound = true;
                     bPreviousWasChar = true;
+                    bPreviousWasTab = false;
                     nSpaceCount = 0;
                     break;
                 }

Reply via email to