fix accessibility label in notifications (#4305)
* fix accessibility label in notifications * add accessibility options to expand post * inherit from outside, but always include `activate` * include option to disable label/hint on previewable avatar * fix hidden elements still being read on voiceover * make it work for followers too * extract variable * fix hint * update wording elsewhere
This commit is contained in:
parent
b51640fbc0
commit
708a80e7a7
3 changed files with 93 additions and 49 deletions
|
@ -64,6 +64,8 @@ export const Link = memo(function Link({
|
|||
anchorNoUnderline,
|
||||
navigationAction,
|
||||
onBeforePress,
|
||||
accessibilityActions,
|
||||
onAccessibilityAction,
|
||||
...props
|
||||
}: Props) {
|
||||
const t = useTheme()
|
||||
|
@ -89,6 +91,11 @@ export const Link = memo(function Link({
|
|||
[closeModal, navigation, navigationAction, href, openLink, onBeforePress],
|
||||
)
|
||||
|
||||
const accessibilityActionsWithActivate = [
|
||||
...(accessibilityActions || []),
|
||||
{name: 'activate', label: title},
|
||||
]
|
||||
|
||||
if (noFeedback) {
|
||||
return (
|
||||
<WebAuxClickWrapper>
|
||||
|
@ -97,6 +104,14 @@ export const Link = memo(function Link({
|
|||
onPress={onPress}
|
||||
accessible={accessible}
|
||||
accessibilityRole="link"
|
||||
accessibilityActions={accessibilityActionsWithActivate}
|
||||
onAccessibilityAction={e => {
|
||||
if (e.nativeEvent.actionName === 'activate') {
|
||||
onPress()
|
||||
} else {
|
||||
onAccessibilityAction?.(e)
|
||||
}
|
||||
}}
|
||||
{...props}
|
||||
android_ripple={{
|
||||
color: t.atoms.bg_contrast_25.backgroundColor,
|
||||
|
|
|
@ -53,6 +53,7 @@ interface PreviewableUserAvatarProps extends BaseUserAvatarProps {
|
|||
profile: AppBskyActorDefs.ProfileViewBasic
|
||||
disableHoverCard?: boolean
|
||||
onBeforePress?: () => void
|
||||
accessible?: boolean
|
||||
}
|
||||
|
||||
const BLUR_AMOUNT = isWeb ? 5 : 100
|
||||
|
@ -386,6 +387,7 @@ let PreviewableUserAvatar = ({
|
|||
profile,
|
||||
disableHoverCard,
|
||||
onBeforePress,
|
||||
accessible = true,
|
||||
...rest
|
||||
}: PreviewableUserAvatarProps): React.ReactNode => {
|
||||
const {_} = useLingui()
|
||||
|
@ -399,7 +401,12 @@ let PreviewableUserAvatar = ({
|
|||
return (
|
||||
<ProfileHoverCard did={profile.did} disable={disableHoverCard}>
|
||||
<Link
|
||||
label={_(msg`See profile`)}
|
||||
label={
|
||||
accessible
|
||||
? _(msg`${profile.displayName || profile.handle}'s avatar`)
|
||||
: undefined
|
||||
}
|
||||
accessibilityHint={accessible ? _(msg`Opens this profile`) : undefined}
|
||||
to={makeProfileLink({
|
||||
did: profile.did,
|
||||
handle: profile.handle,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue