From b4fd9afa627439c7f0664e362e2d79c62cb2d552 Mon Sep 17 00:00:00 2001 From: Besser Sehen Landshut Date: Mon, 24 Aug 2026 17:12:54 +0200 Subject: [PATCH 1/2] fix(ui): give the question list a heading hierarchy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The list heading and every entry in it were both `h5`:
← "All Questions"
← every question title Same level, so nothing tells a screen reader which of them names the page and which are its entries. Jumping by heading walks a flat list where a structure was meant. And `/questions` — the busiest page of the forum — had no `h1` at all; `grep " --- ui/src/components/QuestionList/index.tsx | 24 +++++++++++++++++------- ui/src/pages/Questions/Linked/index.tsx | 2 +- ui/src/pages/Tags/Detail/index.tsx | 4 ++-- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ui/src/components/QuestionList/index.tsx b/ui/src/components/QuestionList/index.tsx index 3d770dbe5..7106dba23 100644 --- a/ui/src/components/QuestionList/index.tsx +++ b/ui/src/components/QuestionList/index.tsx @@ -100,13 +100,21 @@ const QuestionList: FC = ({ return (
-
- {source === 'questions' - ? t('all_questions') - : source === 'linked' + {/* `h1` where this heading is the page's own — the question list at + /questions has no other. Everywhere else the page brings its own + `h1` and this one sits below it. `fs-5` keeps the size it had as + an `h5`. */} + {source === 'questions' ? ( +

+ {t('all_questions')} +

+ ) : ( +

+ {source === 'linked' ? t('x_posts', { count }) : t('x_questions', { count })} -

+
+ )}
= ({ className="text-secondary ms-1 flex-shrink-0" />
-
+ {/* One level below the list's own heading, not the same + one it used to share with it. `fs-5` keeps the size. */} +

e.stopPropagation()} @@ -175,7 +185,7 @@ const QuestionList: FC = ({ {li.title} {li.status === 2 ? ` [${t('closed')}]` : ''} -

+ {viewType === 'card' && (
{ return ( -

{t('title')}

+

{t('title')}

{t('description')}  {questionTitle} diff --git a/ui/src/pages/Tags/Detail/index.tsx b/ui/src/pages/Tags/Detail/index.tsx index 62ff5dd45..585a52777 100644 --- a/ui/src/pages/Tags/Detail/index.tsx +++ b/ui/src/pages/Tags/Detail/index.tsx @@ -134,14 +134,14 @@ const Index: FC = () => {
) : (
-

+

{tagInfo.display_name} -

+
Date: Mon, 24 Aug 2026 19:12:42 +0200 Subject: [PATCH 2/2] fix(ui): give the tag, user and badge pages an h1 as well MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three more pages carry their title as `h3` and have no `h1` at all. The groups below them jump further than one level — `h6` on the user page, `h5` on the badge page — so they become `h2`. `fs-3`, `fs-6` and `fs-5` carry the sizes the old tags had, so nothing changes on screen. Still without any heading, and therefore not in here: the settings pages and the search results. Those need wording and an i18n key, which is a different kind of decision than renaming a tag. Co-Authored-By: Claude Opus 5 (1M context) --- ui/src/pages/Badges/index.tsx | 4 ++-- ui/src/pages/Tags/index.tsx | 2 +- ui/src/pages/Users/index.tsx | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/src/pages/Badges/index.tsx b/ui/src/pages/Badges/index.tsx index 9ca6d9a05..22ecb7dca 100644 --- a/ui/src/pages/Badges/index.tsx +++ b/ui/src/pages/Badges/index.tsx @@ -35,11 +35,11 @@ const Index = () => { return (
-

{t('title')}

+

{t('title')}

{badgesList?.map((item) => { return (
-
{item.group_name}
+

{item.group_name}

{item.badges?.map((badge) => { return ( diff --git a/ui/src/pages/Tags/index.tsx b/ui/src/pages/Tags/index.tsx index b3e22fff5..0af4a1c46 100644 --- a/ui/src/pages/Tags/index.tsx +++ b/ui/src/pages/Tags/index.tsx @@ -81,7 +81,7 @@ const Tags = () => { return ( -

{t('title')}

+

{t('title')}

diff --git a/ui/src/pages/Users/index.tsx b/ui/src/pages/Users/index.tsx index 9382af7a0..431b72ebf 100644 --- a/ui/src/pages/Users/index.tsx +++ b/ui/src/pages/Users/index.tsx @@ -43,7 +43,7 @@ const Users = () => { return ( -

{t('title')}

+

{t('title')}

@@ -55,7 +55,7 @@ const Users = () => { -
{t(key)}
+

{t(key)}