diff --git a/core/src/components/datetime/datetime.tsx b/core/src/components/datetime/datetime.tsx
index eb6a1e9d09..e2a2f3ba35 100644
--- a/core/src/components/datetime/datetime.tsx
+++ b/core/src/components/datetime/datetime.tsx
@@ -641,7 +641,7 @@ export class Datetime implements ComponentInterface {
aria-disabled={disabled ? 'true' : null}
aria-expanded={`${isExpanded}`}
aria-haspopup="true"
- aria-labelledby={labelId}
+ aria-labelledby={label ? labelId : null}
class={{
[mode]: true,
'datetime-disabled': disabled,
diff --git a/core/src/components/datetime/test/a11y/datetime.spec.ts b/core/src/components/datetime/test/a11y/datetime.spec.ts
new file mode 100644
index 0000000000..2007e77ce3
--- /dev/null
+++ b/core/src/components/datetime/test/a11y/datetime.spec.ts
@@ -0,0 +1,30 @@
+import { newSpecPage } from '@stencil/core/testing';
+import { Datetime } from '../../datetime';
+import { Item } from '../../../item/item';
+import { Label } from '../../../label/label';
+
+describe('Datetime a11y', () => {
+ it('does not set a default aria-labelledby when there is not a neighboring ion-label', async () => {
+ const page = await newSpecPage({
+ components: [Datetime, Item, Label],
+ html: `