Skip to content

Commit 67943eb

Browse files
authored
Merge pull request #121 from cloudscribe/feature/110
#110 accessibility tweaks
2 parents b161c16 + 0db9859 commit 67943eb

7 files changed

Lines changed: 15 additions & 16 deletions

src/cloudscribe.Web.Navigation/Views/Shared/Bootstrap4NavigationNodeChildDropdownPartial.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
continue;
1616
}
1717
if (!await Model.HasVisibleChildren(childNode)) {
18-
<li class='@Model.GetClass(childNode.Value, "")'><a class="dropdown-item" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)]</a></li>
18+
<li role="menuitem" class='@Model.GetClass(childNode.Value, "")'><a class="dropdown-item" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)]</a></li>
1919
}
2020
else {
2121

22-
<li class='@Model.GetClass(childNode.Value, "dropdown ", "active", true)'>
22+
<li role="menuitem" aria-haspopup="menu" class='@Model.GetClass(childNode.Value, "dropdown ", "active", true)'>
2323
<a class="dropdown-item dropdown-toggle" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)] </a>
2424
@Model.UpdateTempNode(childNode) <partial name="Bootstrap4NavigationNodeChildDropdownPartial" model="@Model" /> @* recursion *@
2525
</li>

src/cloudscribe.Web.Navigation/Views/Shared/Bootstrap5NavigationNodeChildDropdownPartial.cshtml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515
continue;
1616
}
1717
if (!await Model.HasVisibleChildren(childNode)) {
18-
<li class='@Model.GetClass(childNode.Value, "")'><a class="dropdown-item" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)]</a></li>
18+
<li role="menuitem" class='@Model.GetClass(childNode.Value, "")'><a class="dropdown-item" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)]</a></li>
1919
}
2020
else {
2121

22-
<li class='@Model.GetClass(childNode.Value, "dropdown ", "active", true)'>
22+
<li role="menuitem" aria-haspopup="menu" class='@Model.GetClass(childNode.Value, "dropdown ", "active", true)'>
2323
<a class="dropdown-item dropdown-toggle" href="@Url.Content(Model.AdjustUrl(childNode))">@Html.Raw(Model.GetIcon(childNode.Value))@sr[Model.AdjustText(childNode)] </a>
2424
@Model.UpdateTempNode(childNode) <partial name="Bootstrap5NavigationNodeChildDropdownPartial" model="@Model" /> @* recursion *@
2525
</li>
26-
2726
}
2827
}
2928
</ul>

src/cloudscribe.Web.Navigation/Views/Shared/Components/Navigation/Bootstrap4TopNavWithDropdowns.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
77
@addTagHelper *, cloudscribe.Web.Navigation
88

9-
<ul class="navbar-nav mr-auto" role="menubar">
9+
<ul class="navbar-nav mr-auto" role="menubar" aria-label="@sr["Top menu"]">
1010
@if (await Model.ShouldAllowView(Model.RootNode))
1111
{
1212
<li cwn-data-attributes="@Model.RootNode.Value.DataAttributes" class='@Model.GetClass(Model.RootNode.Value, "nav-item")'><a class="nav-link" href="@Url.Content(Model.AdjustUrl(Model.RootNode))">@Html.Raw(Model.GetIcon(Model.RootNode.Value))@sr[Model.AdjustText(Model.RootNode)]</a></li>
@@ -19,11 +19,11 @@
1919
if (!await Model.ShouldAllowView(node)) { continue; }
2020
if (!await Model.HasVisibleChildren(node))
2121
{
22-
<li class='@Model.GetClass(node.Value, "nav-item")' cwn-data-attributes="@node.Value.DataAttributes"><a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
22+
<li role="menuitem" class='@Model.GetClass(node.Value, "nav-item")' cwn-data-attributes="@node.Value.DataAttributes"><a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
2323
}
2424
else
2525
{
26-
<li class='@Model.GetClass(node.Value, "nav-item dropdown", "active", true)' cwn-data-attributes="@node.Value.DataAttributes">
26+
<li role="menuitem" aria-haspopup="menu" class='@Model.GetClass(node.Value, "nav-item dropdown", "active", true)' cwn-data-attributes="@node.Value.DataAttributes">
2727
<a class="nav-link dropdown-toggle" id="dropdown-@node.Value.Key" aria-haspopup="true" aria-expanded="false" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)] </a>
2828
@Model.UpdateTempNode(node) <partial name="Bootstrap4NavigationNodeChildDropdownPartial" model="@Model" />
2929
</li>

src/cloudscribe.Web.Navigation/Views/Shared/Components/Navigation/Bootstrap5TopNavWithDropdowns.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
77
@addTagHelper *, cloudscribe.Web.Navigation
88

9-
<ul class="navbar-nav me-auto" role="menubar">
9+
<ul class="navbar-nav me-auto" role="menubar" aria-label="@sr["Top menu"]">
1010
@if (await Model.ShouldAllowView(Model.RootNode))
1111
{
1212
<li cwn-data-attributes="@Model.RootNode.Value.DataAttributes" class='@Model.GetClass(Model.RootNode.Value, "nav-item")'><a class="nav-link" href="@Url.Content(Model.AdjustUrl(Model.RootNode))">@Html.Raw(Model.GetIcon(Model.RootNode.Value))@sr[Model.AdjustText(Model.RootNode)]</a></li>
@@ -19,11 +19,11 @@
1919
if (!await Model.ShouldAllowView(node)) { continue; }
2020
if (!await Model.HasVisibleChildren(node))
2121
{
22-
<li class='@Model.GetClass(node.Value, "nav-item")' cwn-data-attributes="@node.Value.DataAttributes"><a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
22+
<li role="menuitem" class='@Model.GetClass(node.Value, "nav-item")' cwn-data-attributes="@node.Value.DataAttributes"><a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
2323
}
2424
else
2525
{
26-
<li class='@Model.GetClass(node.Value, "nav-item dropdown", "active", true)' cwn-data-attributes="@node.Value.DataAttributes">
26+
<li role="menuitem" aria-haspopup="menu" class='@Model.GetClass(node.Value, "nav-item dropdown", "active", true)' cwn-data-attributes="@node.Value.DataAttributes">
2727
<a class="nav-link dropdown-toggle" id="dropdown-@node.Value.Key" aria-haspopup="true" aria-expanded="false" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)] </a>
2828
@Model.UpdateTempNode(node) <partial name="Bootstrap5NavigationNodeChildDropdownPartial" model="@Model" />
2929
</li>

src/cloudscribe.Web.Navigation/Views/Shared/Components/Navigation/Bs4ChildDropdown.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
if (! await Model.ShouldAllowView(node)) { continue; }
1414
if (! await Model.HasVisibleChildren(node))
1515
{
16-
<li class='nav-item'><a class='nav-link' href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
16+
<li role="menuitem" class='nav-item'><a class='nav-link' href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
1717
}
1818
else
1919
{
20-
<li class='nav-item'>
20+
<li role="menuitem" aria-haspopup="menu" class='nav-item'>
2121
<a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a>
2222
@Model.UpdateTempNode(node) <partial name="Bs4NavigationNodeChildTreePartial" model="@Model" />
2323
</li>

src/cloudscribe.Web.Navigation/Views/Shared/Components/Navigation/Bs5ChildDropdown.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
if (! await Model.ShouldAllowView(node)) { continue; }
1414
if (! await Model.HasVisibleChildren(node))
1515
{
16-
<li class='nav-item'><a class='nav-link' href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
16+
<li role="menuitem" class='nav-item'><a class='nav-link' href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a></li>
1717
}
1818
else
1919
{
20-
<li class='nav-item'>
20+
<li role="menuitem" aria-haspopup="menu" class='nav-item'>
2121
<a class="nav-link" href="@Url.Content(Model.AdjustUrl(node))">@Html.Raw(Model.GetIcon(node.Value))@sr[Model.AdjustText(node)]</a>
2222
@Model.UpdateTempNode(node) <partial name="Bs5NavigationNodeChildTreePartial" model="@Model" />
2323
</li>

src/cloudscribe.Web.Navigation/cloudscribe.Web.Navigation.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Description>an ASP.NET Core viewcomponent for menus and breadcrumbs</Description>
5-
<Version>6.0.0</Version>
5+
<Version>6.0.1</Version>
66
<TargetFramework>net6.0</TargetFramework>
77
<Authors>Joe Audette</Authors>
88
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>

0 commit comments

Comments
 (0)