From 454166d2f6b4a6969e50e96bdf78c260df2147d1 Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Tue, 17 May 2022 14:48:56 +0300 Subject: [PATCH 1/3] don't mark bold as heading for Talkback users --- .../nl/rijksoverheid/ctr/design/ext/SpannedExt.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt index b1fdde9cd..85b1ce547 100644 --- a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt +++ b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt @@ -1,6 +1,5 @@ package nl.rijksoverheid.ctr.design.ext -import android.graphics.Typeface import android.text.Spanned import android.text.style.BulletSpan import android.text.style.RelativeSizeSpan @@ -50,17 +49,11 @@ fun Spanned.substring(start: Int, end: Int): Spanned { /** * Determines whether a Spanned object is a heading - * This is the case in two situations: - * (1) If the Spanned object contains a StyleSpan with Typeface.Bold for the whole length - * (2) If the Spanned object contains one or more RelativeSizeSpans with a size change (= h1-h6) + * If the Spanned object contains one or more RelativeSizeSpans with a size change (= h1-h6) */ val Spanned.isHeading: Boolean get() { - return getSpans().any { span -> - return span.style == Typeface.BOLD && - getSpanStart(span) == 0 && - getSpanEnd(span) == length - } || getSpans().any { span -> + return getSpans().any { span -> return span.sizeChange > 0 } } From 32ed73da6c83a47d1ad519f1992c970c07097b41 Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Tue, 17 May 2022 18:10:39 +0300 Subject: [PATCH 2/3] fix misleading test --- .../ctr/design/ext/SpannedExt.kt | 1 - .../ctr/HtmlTextViewWidgetTest.kt | 27 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt index 85b1ce547..8bab8a38f 100644 --- a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt +++ b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt @@ -3,7 +3,6 @@ package nl.rijksoverheid.ctr.design.ext import android.text.Spanned import android.text.style.BulletSpan import android.text.style.RelativeSizeSpan -import android.text.style.StyleSpan import androidx.core.text.getSpans import nl.rijksoverheid.ctr.design.spans.BulletPointSpan diff --git a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt index 895da94ab..cd849b7ec 100644 --- a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt +++ b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt @@ -13,6 +13,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.children import androidx.test.core.app.ApplicationProvider import nl.rijksoverheid.ctr.design.widgets.HtmlTextViewWidget +import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith import org.koin.test.AutoCloseKoinTest @@ -50,12 +51,30 @@ class HtmlTextViewWidgetTest : AutoCloseKoinTest() { // Heading test widget.setHtmlText("Heading 1

Paragraph 1

Heading 2

Paragraph 2

") - assertEquals(widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), 0) // 2: Heading 1 + Heading 2 + assertEquals( + widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), + 0 + ) // 2: Heading 1 + Heading 2 assertEquals(widget.childCount, 1) // 5: Heading + Text + Linebreak + Heading + Text - widget.setHtmlText("

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6
") - assertEquals(widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), 0) // 6: h1, h2, h3, h4, h5, h6 - assertEquals(widget.childCount, 1) // 7: Heading + Heading + Heading + Heading + Heading + Heading + Linebreak + widget.setHtmlText("

Heading 1

") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("
Heading 1
") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("
Heading 1
") + assertEquals(1, widget.childCount) + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) // List test widget.setHtmlText("
  • List item 1
  • List item 2
") From d6c960f9313189147d8b04004ae07776ab044ee3 Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Tue, 17 May 2022 18:15:31 +0300 Subject: [PATCH 3/3] clear test from redundant assertions --- .../nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt index cd849b7ec..07aa75023 100644 --- a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt +++ b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt @@ -51,29 +51,20 @@ class HtmlTextViewWidgetTest : AutoCloseKoinTest() { // Heading test widget.setHtmlText("Heading 1

Paragraph 1

Heading 2

Paragraph 2

") - assertEquals( - widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), - 0 - ) // 2: Heading 1 + Heading 2 + assertEquals(widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), 0) // 2: Heading 1 + Heading 2 assertEquals(widget.childCount, 1) // 5: Heading + Text + Linebreak + Heading + Text widget.setHtmlText("

Heading 1

") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) widget.setHtmlText("

Heading 1

") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) widget.setHtmlText("

Heading 1

") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) widget.setHtmlText("

Heading 1

") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) widget.setHtmlText("
Heading 1
") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) widget.setHtmlText("
Heading 1
") - assertEquals(1, widget.childCount) assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) // List test