Skip to content

Commit d291c0d

Browse files
committed
Change ToggleButton to Button for Accessibility
ToggleButton is read as a switch by TalkBack even when it's being used as a button in the formatting toolbar so this function strips that behavior away so that it's announced as a button.
1 parent 9f2cb0c commit d291c0d

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/util/Extensions.kt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,15 @@ import android.content.Context
55
import android.text.Editable
66
import android.text.Spannable
77
import android.text.Spanned
8+
import android.view.View
9+
import android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK
10+
import android.widget.Button
11+
import android.widget.ToggleButton
12+
import androidx.core.view.AccessibilityDelegateCompat
13+
import androidx.core.view.ViewCompat
14+
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
815
import org.wordpress.aztec.AztecParser
16+
import org.wordpress.aztec.R
917

1018
fun Editable.getLast(kind: Class<*>): Any? {
1119
val spans = this.getSpans(0, this.length, kind)
@@ -55,4 +63,19 @@ fun ClipData.Item.coerceToHtmlText(parser: AztecParser): String {
5563
}
5664

5765
return text.toString()
58-
}
66+
}
67+
68+
fun ToggleButton.convertToButtonStateForAccessibility() {
69+
ViewCompat.setAccessibilityDelegate(this, object : AccessibilityDelegateCompat() {
70+
override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfoCompat?) {
71+
super.onInitializeAccessibilityNodeInfo(host, info)
72+
info?.className = Button::class.java.name
73+
info?.isCheckable = false
74+
info?.isLongClickable = false
75+
info?.addAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat(ACTION_CLICK, context.getString(R.string.accessibility_action_click_label)))
76+
info?.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_LONG_CLICK)
77+
}
78+
})
79+
}
80+
81+

aztec/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<!-- GENERAL -->
44
<string name="cursor_moved">Cursor moved</string>
5-
<string name="samsung_disabled_custom_clipboard">Sorry, this feature is disabled on Android 8. Please use the Paste action instead.</string>
5+
<string name="accessibility_action_click_label">activate</string>
66

77
<!-- LINK DIALOG -->
88
<string name="link_dialog_title">Insert link</string>

0 commit comments

Comments
 (0)