VoiceOver/TalkBack items inside Carousel/Flatlist
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- react-native, typescript
- Ambito
- accessibility, mobile
Direzione di ricerca
Inizia riproducendo il comportamento di VoiceOver/TalkBack descritto per Carousel e FlatList, usando l'esempio nell'issue come punto di partenza. Analizza il comportamento di accessibilità rilevante di React Native e determina come gli elementi di Carousel con focus debbano esporre il proprio contenuto preservando al contempo la navigazione con incremento/decremento; il lavoro è completato quando ogni elemento con focus può essere letto e navigato in modo accessibile su entrambe le piattaforme.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is there an existing issue for this?
- I have searched the existing issues
Code of Conduct
- I agree to follow this project's Code of Conduct
Question
Hello, love your project! Although I can't find the way to VoiceOver items inside the Carousel. It captures the entire carousel and says that user has to swipe up or down to navigate through the carousel but in my opinion it would be nice to read the content of the focused item. Something like this:
import { Carousel } from '@react-native-ama/extras';
import { Text } from '@react-native-ama/react-native';
import { View } from 'react-native';
const Component = () => {
const data = [
{ header: 'Title 1', text: 'Text 1' },
{ header: 'Title 2', text: 'Text 2' },
{ header: 'Title 3', text: 'Text 3' },
];
const flatListRef = React.useRef<FlatList<(typeof data)[number]>>(null);
const renderItem: ListRenderItem<(typeof data)[number]> = ({ item }) => {
return (
<View>
<Text accessibilityRole="header">item.header<Text />
<Text accessibilityRole="summary">item.text<Text />
<View />
);
};
return (
<FlatList
ref={flatListRef}
data={data}
renderItem={renderItem}
accessible={true}
accessibilityLabel="Carousel"
accessibilityRole="adjustable"
accessibilityActions={[{ name: 'increment' }, { name: 'decrement' }]}
onAccessibilityAction={(event: AccessibilityActionEvent) => {
const value = event.nativeEvent.actionName === 'increment' ? 1 : -1;
const newIndex = carouselIndexForScreenReader.current + value;
carouselIndexForScreenReader.current = clamp(newIndex, 0, data.length - 1);
flatListRef.current?.scrollToIndex({
index: carouselIndexForScreenReader.current,
});
}}
/>
);
};
- Lingua principale
- TypeScript
- Stelle
- 295
- Fork
- 22
- Merge medio
- 20m
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di FormidableLabs/react-native-ama
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
FormidableLabs/react-native-ama#322 · 3 reazioni ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
FormidableLabs/react-native-ama#319 · 4 commenti · 1 reazione ·
-
Upgrade linting and add ts:check to automationForse di nuovo libera @JDMathew l’ha presa 703 giorni fa e non c’è nessuna pull request aperta. Aperta
FormidableLabs/react-native-ama#277 · 1 assegnatario ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
-
Add useCarousel and Carousel to extra packageForse di nuovo libera @JDMathew l’ha presa 749 giorni fa e non c’è nessuna pull request aperta. Aperta
FormidableLabs/react-native-ama#258 · 1 assegnatario ·
Tutte le issue di FormidableLabs/react-native-ama
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
farbenmeer/tapi#531 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
naver/egjs-flicking#971 ·
-
Renderer treats a sub-pixel width difference as a resize, which cancels the `motion()` entranceAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Tenant
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
MTES-MCT/Dossier-Facile-Frontend#2061 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
backnotprop/plannotator#1784 ·
I maintainer di solito rispondono entro 1 giorno