如何在.NET的MenuItems,_without_ JavaScript中设置辅助功能属性

时间:2015-07-17 17:41:54

标签: c# html asp.net accessibility wai-aria

我正在开发基于.NET MenuItems的sidenav,如下所示:

<asp:MenuItem value="19" Text="Profile" Selectable="false"></asp:MenuItem>
<asp:MenuItem value="0" Text="Overview" ToolTip="Overview" Selected="true"></asp:MenuItem>
<asp:MenuItem value="2" Text="My Info & Email Subscriptions"  ToolTip="My Info & Email Subscriptions"></asp:MenuItem>

在HTML中,输出在每个MenuItem周围生成一系列嵌套表,如下所示:

<div id="_links" class="span-3">
    <table id="FormUserControl__tabMenu" cellpadding="0" cellspacing="0" border="0" style="clear:left;">
        <tbody>
            <tr id="FormUserControl__tabMenun0">
                <td>
                    <table cellpadding="0" cellspacing="0" border="0" width="100%">
                        <tbody>
                             <tr>
                                 <td style="white-space:nowrap;width:100%;">
                                      <a style="text-decoration:none;">
                                          <div id="FormUserControl__tabMenu_ctl00__tabMenuItemPanel" class="myAccountHeading    ">
                                              Profile
                                          </div>
                                       </a>
                                  </td>
                             </tr>
                      </tbody>
                  </table>
               </td>
           </tr>
           <tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" title="Overview" id="FormUserControl__tabMenun1">
                 <td>
                     <table cellpadding="0" cellspacing="0" border="0" width="100%">
                     <tbody>
                         <tr>
                             <td style="white-space:nowrap;width:100%;"><a href="javascript:__doPostBack('FormUserControl$_tabMenu','0')" style="text-decoration:none;">
                                 <div id="FormUserControl__tabMenu_ctl01__tabMenuItemPanel" class="sideNav">
                                     Overview
                                  </div>
                              </td>
                          <tr>
                      <tbody>
                  </td>
             </tr>
         </tbody>
     </table>
 </div>

如何在这些最里面的div中添加辅助功能角色和咏叹调级别?目标是实现可访问性合规性。例如:

 <div role="heading" aria-level="[2]">Profile</div>

我查看了MSDN文档,看起来没有办法在初始的MenuItem声明中添加这些属性。 我还尝试在CSS中添加rolearia-level属性,我知道这很糟糕,但我认为可以设置content,这值得尝试。这不起作用。 我可以在JavaScript中轻松做到这一点,但我真的想避免涉及到它,它是最后的手段,我知道如何做到这一点。

有没有办法将MenuItem输出更改为涉及角色和咏叹调级别?或者,有没有办法让它输出一个标题而不是嵌套在两个表中的div?

非常感谢!

0 个答案:

没有答案