Accessibility link - Android

On Android, links should be embedded inside an URLSpan.

To create text links, you can show the span in using the setText method of TextView. To support assistive technologies on lower version of Android, you need to call the ViewCompat.enableAccessibleClickableSpanSupport() method.

The helper method ViewCompat.addLinks() is also useful to automatically create accessible links.

Warning: you have to remove the android:autoLink attribute from your XML to make your URLSpan's clickable.

val textView = TextView(this)

val url = "https://appt.org"
val link = "Appt"

val spannableString = SpannableString("Learn more about $link")

val index = spannableString.indexOf(link)
spannableString.setSpan(URLSpan(url), index, index + link.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

textView.text = spannableString
textView.movementMethod = LinkMovementMethod.getInstance()

ViewCompat.enableAccessibleClickableSpanSupport(textView)