diff --git a/change/@fluentui-react-breadcrumb-preview-99feac5c-b9dd-4c16-b451-3c2cc099992c.json b/change/@fluentui-react-breadcrumb-preview-99feac5c-b9dd-4c16-b451-3c2cc099992c.json
new file mode 100644
index 0000000000000..92487c2d5ad43
--- /dev/null
+++ b/change/@fluentui-react-breadcrumb-preview-99feac5c-b9dd-4c16-b451-3c2cc099992c.json
@@ -0,0 +1,7 @@
+{
+ "type": "patch",
+ "comment": "fix: use button when no href is defined",
+ "packageName": "@fluentui/react-breadcrumb-preview",
+ "email": "sarah.higley@microsoft.com",
+ "dependentChangeType": "patch"
+}
diff --git a/packages/react-components/react-breadcrumb-preview/package.json b/packages/react-components/react-breadcrumb-preview/package.json
index 20c74510ba9ca..90deb80bdd32f 100644
--- a/packages/react-components/react-breadcrumb-preview/package.json
+++ b/packages/react-components/react-breadcrumb-preview/package.json
@@ -35,6 +35,7 @@
"@fluentui/scripts-tasks": "*"
},
"dependencies": {
+ "@fluentui/react-aria": "^9.3.44",
"@fluentui/react-button": "^9.3.54",
"@fluentui/react-icons": "^2.0.217",
"@fluentui/react-link": "^9.1.33",
diff --git a/packages/react-components/react-breadcrumb-preview/src/components/Breadcrumb/Breadcrumb.test.tsx b/packages/react-components/react-breadcrumb-preview/src/components/Breadcrumb/Breadcrumb.test.tsx
index 972e104880e0b..5a648a3842a9d 100644
--- a/packages/react-components/react-breadcrumb-preview/src/components/Breadcrumb/Breadcrumb.test.tsx
+++ b/packages/react-components/react-breadcrumb-preview/src/components/Breadcrumb/Breadcrumb.test.tsx
@@ -32,12 +32,11 @@ describe('Breadcrumb', () => {
-
Item 1
-
+
diff --git a/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/BreadcrumbButton.test.tsx b/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/BreadcrumbButton.test.tsx
index a35254dea7941..214368e3368ca 100644
--- a/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/BreadcrumbButton.test.tsx
+++ b/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/BreadcrumbButton.test.tsx
@@ -26,12 +26,11 @@ describe('BreadcrumbButton', () => {
const result = render(Default BreadcrumbButton);
expect(result.container).toMatchInlineSnapshot(`
`);
});
@@ -42,9 +41,8 @@ describe('BreadcrumbButton', () => {
);
expect(result.container).toMatchInlineSnapshot(`
`);
});
diff --git a/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/useBreadcrumbButton.ts b/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/useBreadcrumbButton.ts
index 07125e03b7548..e85558896e403 100644
--- a/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/useBreadcrumbButton.ts
+++ b/packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/useBreadcrumbButton.ts
@@ -1,4 +1,5 @@
import * as React from 'react';
+import type { ARIAButtonProps } from '@fluentui/react-aria';
import { useButton_unstable } from '@fluentui/react-button';
import type { ButtonProps } from '@fluentui/react-button';
import { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';
@@ -18,7 +19,9 @@ export const useBreadcrumbButton_unstable = (
ref: React.Ref,
): BreadcrumbButtonState => {
const { size } = useBreadcrumbContext_unstable();
- const { current = false, ...rest } = props;
+ const { current = false, as, ...rest } = props;
+
+ const controlType = as ?? (props as ARIAButtonProps<'a'>).href ? 'a' : 'button';
return {
...useButton_unstable(
@@ -26,7 +29,7 @@ export const useBreadcrumbButton_unstable = (
appearance: 'subtle',
role: undefined,
type: undefined,
- as: 'a' as const,
+ as: controlType,
iconPosition: 'before',
'aria-current': current ? props['aria-current'] ?? 'page' : undefined,
'aria-disabled': current ? props['aria-disabled'] ?? true : undefined,
diff --git a/packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbWithTooltip.stories.tsx b/packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbWithTooltip.stories.tsx
index 7d7c484775925..f6037cb3665af 100644
--- a/packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbWithTooltip.stories.tsx
+++ b/packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbWithTooltip.stories.tsx
@@ -102,11 +102,11 @@ function renderItem(entry: Item, isLastItem: boolean) {
return (
{isTruncatableBreadcrumbContent(entry.item, 30) ? (
-
-
+
+
{truncateBreadcrumbLongName(entry.item)}
-
-
+
+
) : (
{entry.item}