diff --git a/apps/mobile/src/features/pull-requests/PullRequestControls.tsx b/apps/mobile/src/features/pull-requests/PullRequestControls.tsx index ef8f59c74b079..9af6aacadb1e8 100644 --- a/apps/mobile/src/features/pull-requests/PullRequestControls.tsx +++ b/apps/mobile/src/features/pull-requests/PullRequestControls.tsx @@ -45,11 +45,15 @@ export function PullRequestCardRow(props: { readonly compact?: boolean; readonly menu?: boolean; readonly expanded?: boolean; + /** Section rows announce as headings so screen readers can jump between them; they still activate. */ + readonly heading?: boolean; readonly children?: ReactNode; }) { return ( )} - + {pr.title} diff --git a/apps/mobile/src/features/pull-requests/PullRequestSectionHeading.tsx b/apps/mobile/src/features/pull-requests/PullRequestSectionHeading.tsx index f9d6cf6d6788b..9b21ab31e2353 100644 --- a/apps/mobile/src/features/pull-requests/PullRequestSectionHeading.tsx +++ b/apps/mobile/src/features/pull-requests/PullRequestSectionHeading.tsx @@ -2,5 +2,9 @@ import type { ReactNode } from "react"; import { AppText } from "../../components/ui/AppText"; export function PullRequestSectionHeading({ children }: { readonly children: ReactNode }) { - return {children}; + return ( + + {children} + + ); } diff --git a/apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx b/apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx index 03ba26f2247cf..8ca31855a9f32 100644 --- a/apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx +++ b/apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx @@ -122,6 +122,7 @@ export function PullRequestChecksRow(props: RowProps) { value={checks.count} compact accessibilityLabel={`Checks, ${checks.label}`} + heading expanded={expanded} onPress={() => setExpanded(!expanded)} /> @@ -221,6 +222,7 @@ export function PullRequestBranchRow(props: RowProps) { compact menu={methods.length > 0 || canResolve} accessibilityLabel={`Branch, ${summary}`} + heading /> ); if (!methods.length && !canResolve) return row; @@ -270,6 +272,7 @@ export function PullRequestReviewersRow(props: RowProps) { value={summary.count} compact expanded={expanded} + heading onPress={() => setExpanded(!expanded)} /> {expanded ? ( diff --git a/apps/mobile/src/features/pull-requests/PullRequestTimeline.tsx b/apps/mobile/src/features/pull-requests/PullRequestTimeline.tsx index 4b7ba3a968187..4a2c9c1b8f7c7 100644 --- a/apps/mobile/src/features/pull-requests/PullRequestTimeline.tsx +++ b/apps/mobile/src/features/pull-requests/PullRequestTimeline.tsx @@ -96,28 +96,37 @@ function TimelineComment({ const state = normalizedReviewState(comment.reviewState); const approved = state === "APPROVED"; const changes = state === "CHANGES_REQUESTED"; + const author = comment.author?.login ?? "Unknown author"; + const action = approved ? "approved" : changes ? "requested changes" : "commented"; return ( - - - - - {comment.author?.login ?? "Unknown author"} - - {approved ? " approved" : changes ? " requested changes" : " commented"} + + + + + + {author} + {action} + + + {relativeTime(comment.createdAt)} - {relativeTime(comment.createdAt)} + {comment.path ? ( + + {comment.path} + + ) : null} - {comment.path ? ( - - {comment.path} - - ) : null} {preview.trim() || content.attachments.length ? ( - +