Skip to content

Commit

Permalink
Group edit series options (#1079)
Browse files Browse the repository at this point in the history
As discussed in PR #1021 this is a
PoC to test screenreader output with individual groups.
  • Loading branch information
owi92 authored Jan 16, 2024
2 parents 8e0b5d6 + 42089d4 commit 3ec29ec
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 16 deletions.
29 changes: 20 additions & 9 deletions frontend/src/routes/manage/Realm/Content/Edit/EditMode/Series.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from "react";
import React, { useId } from "react";
import { useTranslation } from "react-i18next";
import { graphql, useFragment, useMutation } from "react-relay";
import { useController, useFormContext } from "react-hook-form";
Expand Down Expand Up @@ -82,6 +82,8 @@ export const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRe
rules: { required: true },
});

const headingId = useId();

return <EditModeForm create={create} save={save} map={(data: SeriesFormData) => data}>
<Heading>{t("manage.realm.content.series.series.heading")}</Heading>
{"series" in errors && <div css={{ margin: "8px 0" }}>
Expand All @@ -96,8 +98,6 @@ export const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRe
onBlur={seriesField.onBlur}
/>
<div
role="group"
aria-label={t("manage.realm.content.display-options")}
css={{
display: "flex",
flexDirection: "row",
Expand All @@ -115,8 +115,11 @@ export const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRe
},
}}
>
<div>
<Heading>{t("series.settings.order")}</Heading>
<div
role="group"
aria-labelledby={headingId + "-order"}
>
<Heading id={headingId + "-order"}>{t("series.settings.order")}</Heading>
<DisplayOptionGroup type="radio" {...{ form }} optionProps={[
{
option: "order",
Expand Down Expand Up @@ -144,8 +147,11 @@ export const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRe
},
]} />
</div>
<div>
<Heading>{t("series.settings.layout")}</Heading>
<div
role="group"
aria-labelledby={headingId + "-view"}
>
<Heading id={headingId + "-view"}>{t("series.settings.layout")}</Heading>
<DisplayOptionGroup type="radio" {...{ form }} optionProps={[
{
option: "layout",
Expand All @@ -167,8 +173,13 @@ export const EditSeriesBlock: React.FC<EditSeriesBlockProps> = ({ block: blockRe
},
]} />
</div>
<div>
<Heading>{t("manage.realm.content.series.metadata.heading")}</Heading>
<div
role="group"
aria-labelledby={headingId + "-metadata"}
>
<Heading id={headingId + "-metadata"}>
{t("manage.realm.content.series.metadata.heading")}
</Heading>
<DisplayOptionGroup type="checkbox" {...{ form }} optionProps={[
{
option: "showTitle",
Expand Down
15 changes: 8 additions & 7 deletions frontend/src/routes/manage/Realm/Content/Edit/EditMode/util.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ import { COLORS } from "../../../../../../color";
import { screenWidthAbove, screenWidthAtMost } from "@opencast/appkit";


export const Heading: React.FC<{ children: ReactNode }> = ({ children }) => <h3 css={{
":not(:first-of-type)": { marginTop: 12 },
marginBottom: 8,
fontSize: 18,
}}>
{children}
</h3>;
export const Heading: React.FC<{ id?: string; children: ReactNode }> = ({ id, children }) =>
<h3 id={id} css={{
":not(:first-of-type)": { marginTop: 12 },
marginBottom: 8,
fontSize: 18,
}}>
{children}
</h3>;


type NiceRadioProps = React.PropsWithChildren<{
Expand Down

0 comments on commit 3ec29ec

Please sign in to comment.