diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-colorblind-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-colorblind-linux.png
index 20f4aa76743..e23667a1b18 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-colorblind-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-dimmed-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-dimmed-linux.png
index b615ecb964b..79a724ef53e 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-dimmed-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-high-contrast-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-high-contrast-linux.png
index 052ef2404ac..a2a5c466875 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-high-contrast-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-linux.png
index 20f4aa76743..e23667a1b18 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-tritanopia-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-tritanopia-linux.png
index 20f4aa76743..e23667a1b18 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-tritanopia-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-colorblind-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-colorblind-linux.png
index 5096afadc17..690de683e19 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-colorblind-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-high-contrast-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-high-contrast-linux.png
index f852a6c1f31..3b84c6bfcf3 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-high-contrast-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-linux.png
index 5096afadc17..690de683e19 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-linux.png differ
diff --git a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-tritanopia-linux.png b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-tritanopia-linux.png
index 5096afadc17..690de683e19 100644
Binary files a/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-tritanopia-linux.png and b/.playwright/snapshots/components/Select.test.ts-snapshots/Select-Visually-Hidden-Label-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-colorblind-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-colorblind-linux.png
index 63246ca096c..57524e01a0c 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-colorblind-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-dimmed-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-dimmed-linux.png
index 0fe26a39a62..2ac97c09329 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-dimmed-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-high-contrast-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-high-contrast-linux.png
index 2a630538b89..de97f364394 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-high-contrast-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-linux.png
index 63246ca096c..57524e01a0c 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-tritanopia-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-tritanopia-linux.png
index 63246ca096c..57524e01a0c 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-tritanopia-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-colorblind-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-colorblind-linux.png
index 8503848620f..6b59ee5122a 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-colorblind-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-high-contrast-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-high-contrast-linux.png
index 48a4bf4cff0..8cdad426948 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-high-contrast-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-linux.png
index 8503848620f..6b59ee5122a 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-linux.png differ
diff --git a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-tritanopia-linux.png b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-tritanopia-linux.png
index 8503848620f..6b59ee5122a 100644
Binary files a/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-tritanopia-linux.png and b/.playwright/snapshots/components/TextInput.test.ts-snapshots/TextInput-Visually-Hidden-Label-light-tritanopia-linux.png differ
diff --git a/packages/react/src/Select/Select.features.stories.tsx b/packages/react/src/Select/Select.features.stories.tsx
index 4ca67b9d91f..ff25f5dffe8 100644
--- a/packages/react/src/Select/Select.features.stories.tsx
+++ b/packages/react/src/Select/Select.features.stories.tsx
@@ -1,5 +1,5 @@
import React from 'react'
-import {Select, FormControl, Box} from '..'
+import {Select, FormControl, Box, Heading} from '..'
export default {
title: 'Components/Select/Features',
@@ -60,8 +60,11 @@ export const WithCaption = () => (
export const VisuallyHiddenLabel = () => (
+
+ Primer form title
+
- Default label
+ Primer form label
+ Label is visually hidden; the title describes the purpose visually
)
diff --git a/packages/react/src/TextInput/TextInput.features.stories.tsx b/packages/react/src/TextInput/TextInput.features.stories.tsx
index 672be82b4e7..4bb872520ed 100644
--- a/packages/react/src/TextInput/TextInput.features.stories.tsx
+++ b/packages/react/src/TextInput/TextInput.features.stories.tsx
@@ -1,5 +1,5 @@
import React, {useState} from 'react'
-import {Box, FormControl, Stack} from '..'
+import {Box, FormControl, Heading, Stack} from '..'
import type {TextInputProps} from '../TextInput'
import TextInput from '../TextInput'
import {CalendarIcon, CheckIcon, XCircleFillIcon} from '@primer/octicons-react'
@@ -31,9 +31,13 @@ export const WithCaption = () => (
export const VisuallyHiddenLabel = () => (
+
+ Primer form title
+
- Default label
+ Primer form label
+ Label is visually hidden; the title describes the purpose visually
)