diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-07-03 15:57:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-03 15:57:53 -0500 |
commit | bc55241c9ae731f633f8b93a9b7eac7635070148 (patch) | |
tree | 2f75cf5fc31bb8214f848a4326c1af731000b842 /src/view/com/util/forms/DropdownButton.tsx | |
parent | 0163ba0af8cd42e2a76b3ae66efc0777afdc2544 (diff) | |
download | voidsky-bc55241c9ae731f633f8b93a9b7eac7635070148.tar.zst |
[APP-724] Collection of accessibility fixes (#949)
* Fix: include alt text on the web lightbox image * a11y: Dont read the 'ALT' label * a11y: remove a wrapper behavior from posts This appears to have been introduced with the goal of creating meta actions on posts, but the behavior seems counter-productive. The accessibility inspector was unable to access individual items within the post and therefore most content was simply skipped. There may be a way to support the post actions without losing the ability to access the inner elements but I couldnt find it. -prf * a11y: apply alt tags to image wrappers so they get read * a11y: set Link accessibilityLabel to the title if none set * a11y: skip the SANDBOX watermark * a11y: improve post meta to not read UI and give a useful date * ally: improve post controls * a11y: add labels to lightbox images on mobile * fix types
Diffstat (limited to 'src/view/com/util/forms/DropdownButton.tsx')
-rw-r--r-- | src/view/com/util/forms/DropdownButton.tsx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx index c6e650077..ad216d97e 100644 --- a/src/view/com/util/forms/DropdownButton.tsx +++ b/src/view/com/util/forms/DropdownButton.tsx @@ -50,6 +50,8 @@ interface DropdownButtonProps { openToRight?: boolean rightOffset?: number bottomOffset?: number + accessibilityLabel?: string + accessibilityHint?: string } export function DropdownButton({ @@ -63,6 +65,7 @@ export function DropdownButton({ openToRight = false, rightOffset = 0, bottomOffset = 0, + accessibilityLabel, }: PropsWithChildren<DropdownButtonProps>) { const ref1 = useRef<TouchableOpacity>(null) const ref2 = useRef<View>(null) @@ -128,8 +131,8 @@ export function DropdownButton({ hitSlop={HITSLOP} ref={ref1} accessibilityRole="button" - accessibilityLabel={`Opens ${numItems} options`} - accessibilityHint={`Opens ${numItems} options`}> + accessibilityLabel={accessibilityLabel || `Opens ${numItems} options`} + accessibilityHint=""> {children} </TouchableOpacity> ) @@ -246,7 +249,9 @@ export function PostDropdownBtn({ testID={testID} style={style} items={dropdownItems} - menuWidth={isWeb ? 220 : 200}> + menuWidth={isWeb ? 220 : 200} + accessibilityLabel="Additional post actions" + accessibilityHint=""> {children} </DropdownButton> ) @@ -335,6 +340,7 @@ const DropdownItems = ({ key={index} style={[styles.menuItem]} onPress={() => onPressItem(index)} + accessibilityRole="button" accessibilityLabel={item.label} accessibilityHint={`Option ${index + 1} of ${numItems}`}> {item.icon && ( |