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