Skip to content

Instantly share code, notes, and snippets.

@mnirfan
Last active March 21, 2025 06:15
Show Gist options
  • Select an option

  • Save mnirfan/8bfb923185269e9e813d7826f089a3fb to your computer and use it in GitHub Desktop.

Select an option

Save mnirfan/8bfb923185269e9e813d7826f089a3fb to your computer and use it in GitHub Desktop.
import android.content.Context
import android.view.View
import android.view.accessibility.AccessibilityEvent
+import android.view.accessibility.AccessibilityNodeInfo
import com.lynx.tasm.behavior.LynxContext
import com.lynx.tasm.behavior.LynxProp
import com.lynx.tasm.behavior.ui.view.AndroidView
import com.lynx.tasm.event.LynxCustomEvent
import com.lynx.tasm.behavior.ui.view.UISimpleView
class RadioButton(context: LynxContext) : UISimpleView<AndroidView>(context) {
override fun createView(context: Context?): AndroidView {
return AndroidView(context).apply {
...
setOnClickListener {
...
}
+ // Assign the correct accessibility information
+ setAccessibilityDelegate(object : View.AccessibilityDelegate() {
+ override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfo) {
+ super.onInitializeAccessibilityNodeInfo(host, info)
+
+ // make screen readers recognize this view as a radio button
+ info.className = "android.widget.RadioButton"
+
+ info.isEnabled = !mDisabled
+ info.isCheckable = !mDisabled
+ info.isChecked = mChecked
+ info.text = mText
+ }
+ })
...
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment