diff --git a/CHANGELOG.md b/CHANGELOG.md index 92b65a9d..72471c30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ and this project adheres to ## [Unreleased] +### Changed + +- ⚡️(frontend) improve accessibility: + - #1248 + - #1235 + ## [3.5.0] - 2025-07-31 ### Added @@ -25,9 +31,7 @@ and this project adheres to - ♻️(frontend) redirect to doc after duplicate #1175 - 🔧(project) change env.d system by using local files #1200 - ⚡️(frontend) improve tree stability #1207 -- ⚡️(frontend) improve accessibility - - #1232 - - #1248 +- ⚡️(frontend) improve accessibility #1232 - 🛂(frontend) block drag n drop when not desktop #1239 ### Fixed diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx b/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx index b047960e..3d9beed1 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx @@ -10,7 +10,8 @@ import { useToastProvider, } from '@openfun/cunningham-react'; import { DocumentProps, pdf } from '@react-pdf/renderer'; -import { useMemo, useState } from 'react'; +import i18next from 'i18next'; +import { cloneElement, isValidElement, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { css } from 'styled-components'; @@ -92,10 +93,15 @@ export const ModalExport = ({ onClose, doc }: ModalExportProps) => { const exporter = new PDFExporter(editor.schema, pdfDocsSchemaMappings, { resolveFileUrl: async (url) => exportCorsResolveFileUrl(doc.id, url), }); - const pdfDocument = (await exporter.toReactPDFDocument( + const rawPdfDocument = (await exporter.toReactPDFDocument( exportDocument, )) as React.ReactElement; + // Inject language for screen reader support + const pdfDocument = isValidElement(rawPdfDocument) + ? cloneElement(rawPdfDocument, { language: i18next.language }) + : rawPdfDocument; + blobExport = await pdf(pdfDocument).toBlob(); } else { const exporter = new DOCXExporter(editor.schema, docxDocsSchemaMappings, {