diff --git a/packages/ui/src/base/nav/nav.test.tsx b/packages/ui/src/base/nav/nav.test.tsx
index 9585fe2..444dc3b 100644
--- a/packages/ui/src/base/nav/nav.test.tsx
+++ b/packages/ui/src/base/nav/nav.test.tsx
@@ -551,14 +551,17 @@ describe("GlCollapsibleNav", () => {
expect(markup).toContain("data-disabled=\"\"");
});
- it("requires a direct leading and an accessible label for complex content", () => {
- expect(() => renderToStaticMarkup(
+ it("allows text-only items and requires an accessible label for complex content", () => {
+ const textOnlyMarkup = renderToStaticMarkup(
Issues
,
- )).toThrow("requires a direct leading GlIcon or GlAvatar");
+ );
+
+ expect(textOnlyMarkup).toContain("Issues");
+ expect(textOnlyMarkup).not.toContain("gl-nav-item-has-start-slot");
expect(() => renderToStaticMarkup(
diff --git a/packages/ui/src/base/nav/nav.tsx b/packages/ui/src/base/nav/nav.tsx
index 20efc49..61630f3 100644
--- a/packages/ui/src/base/nav/nav.tsx
+++ b/packages/ui/src/base/nav/nav.tsx
@@ -349,9 +349,6 @@ export function useNavButtonInternal(
invariant(component, "isIconOnly requires a leading GlIcon or GlAvatar.");
}
if(isIconOnly && !ariaLabel) invariant(component, "isIconOnly requires aria-label.");
- if(isCollapsibleTopLevel && !leading) {
- invariant(component, "requires a direct leading GlIcon or GlAvatar in GlCollapsibleNav.");
- }
if(isCollapsibleTopLevel && !ariaLabel && !derivedLabel) {
invariant(component, "requires aria-label when its label is not simple text.");
}