From b84dcab0289f1e37fdda6c7bf1b8ff0e47a207f3 Mon Sep 17 00:00:00 2001 From: Hamza El Aoutar Date: Wed, 27 Apr 2022 14:58:36 +0000 Subject: [PATCH 1/4] Announce external links to screen readers Signed-off-by: Hamza El Aoutar --- .../src/components/Link/Link.tsx | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index a1af06ae3b..2b711930a7 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -18,12 +18,28 @@ import { useAnalytics } from '@backstage/core-plugin-api'; import MaterialLink, { LinkProps as MaterialLinkProps, } from '@material-ui/core/Link'; +import { makeStyles } from '@material-ui/core/styles'; import React, { ElementType } from 'react'; import { Link as RouterLink, LinkProps as RouterLinkProps, } from 'react-router-dom'; +const useStyles = makeStyles( + { + visuallyHidden: { + top: 0, + position: 'absolute', + zIndex: 1000, + transform: 'translateY(-200%)', + '&:focus': { + transform: 'translateY(5px)', + }, + }, + }, + { name: 'Link' }, +); + export const isExternalUri = (uri: string) => /^([a-z+.-]+):/.test(uri); export type LinkProps = MaterialLinkProps & @@ -62,6 +78,7 @@ const getNodeText = (node: React.ReactNode): string => { */ export const Link = React.forwardRef( ({ onClick, noTrack, ...props }, ref) => { + const classes = useStyles(); const analytics = useAnalytics(); const to = String(props.to); const linkText = getNodeText(props.children) || to; @@ -83,7 +100,10 @@ export const Link = React.forwardRef( onClick={handleClick} {...(newWindow ? { target: '_blank', rel: 'noopener' } : {})} {...props} - /> + > + {props.children} + , Opens in a new window + ) : ( // Interact with React Router for internal links Date: Wed, 27 Apr 2022 15:05:19 +0000 Subject: [PATCH 2/4] Added changeset Signed-off-by: Hamza El Aoutar --- .changeset/witty-readers-give.md | 5 +++++ .../core-components/src/components/Link/Link.tsx | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/witty-readers-give.md diff --git a/.changeset/witty-readers-give.md b/.changeset/witty-readers-give.md new file mode 100644 index 0000000000..87d19fc281 --- /dev/null +++ b/.changeset/witty-readers-give.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': minor +--- + +Announce external links to screen readers diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index 2b711930a7..d1b9e2b7db 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -28,13 +28,13 @@ import { const useStyles = makeStyles( { visuallyHidden: { - top: 0, + clip: 'rect(0 0 0 0)', + clipPath: 'inset(50%)', + overflow: 'hidden', position: 'absolute', - zIndex: 1000, - transform: 'translateY(-200%)', - '&:focus': { - transform: 'translateY(5px)', - }, + whiteSpace: 'nowrap', + height: 1, + width: 1, }, }, { name: 'Link' }, From 3cb3ada2a6fd971e8fc925a8ac5868884f7385db Mon Sep 17 00:00:00 2001 From: Hamza El Aoutar Date: Wed, 27 Apr 2022 16:13:49 +0000 Subject: [PATCH 3/4] Fixed git-release-manager/Features snapshot test Signed-off-by: Hamza El Aoutar --- plugins/git-release-manager/src/features/Features.test.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/git-release-manager/src/features/Features.test.tsx b/plugins/git-release-manager/src/features/Features.test.tsx index 8f9e3544f2..110c3e2351 100644 --- a/plugins/git-release-manager/src/features/Features.test.tsx +++ b/plugins/git-release-manager/src/features/Features.test.tsx @@ -79,6 +79,11 @@ describe('Features', () => { to="https://docs.github.com/en/github/administering-a-repository/managing-releases-in-a-repository" > Git releases + + , Opens in a new window + .

From c0055ece91c948633e1507347510eac166bd6880 Mon Sep 17 00:00:00 2001 From: Hamza El Aoutar Date: Thu, 28 Apr 2022 09:19:38 +0000 Subject: [PATCH 4/4] Fix changeset: minor to patch release Signed-off-by: Hamza El Aoutar --- .changeset/{witty-readers-give.md => early-crabs-help.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .changeset/{witty-readers-give.md => early-crabs-help.md} (58%) diff --git a/.changeset/witty-readers-give.md b/.changeset/early-crabs-help.md similarity index 58% rename from .changeset/witty-readers-give.md rename to .changeset/early-crabs-help.md index 87d19fc281..a1464e0338 100644 --- a/.changeset/witty-readers-give.md +++ b/.changeset/early-crabs-help.md @@ -1,5 +1,5 @@ --- -'@backstage/core-components': minor +'@backstage/core-components': patch --- Announce external links to screen readers