Unplanned
Last Updated: 23 Mar 2026 09:41 by ADMIN
Scheduled for 2026 Q1 SP2
Jay
Created on: 23 Mar 2026 09:28
Category: Window
Type: Bug Report
0
RadWindow predefined dialogs do not fully expose required accessibility attributes

The predefined RadWindowManager dialog templates do not fully expose the required accessibility attributes.

Two issues are present in the default predefined dialog markup:

  • The RadAlert message container does not expose live-region semantics required by accessibility audit tools, e.g. role="alert" / aria-live behavior.
  • The RadPrompt input does not expose a sufficient accessible label in the default template markup.
1 comment
ADMIN
Rumen
Posted on: 23 Mar 2026 09:36

Hi Jay,

Thank you for reporting this and for providing the detailed markup and accessibility findings.

We were able to confirm the accessibility problems in the predefined RadWindowManager dialogs. The problem affects the accessibility attributes in the default dialog templates:

  • the RadAlert message container does not expose the required live-region semantics
  • the RadPrompt input does not expose a sufficient accessible label in the default template markup

As a temporary workaround, you can override the predefined RadWindowManager dialog templates and add the missing attributes manually. Since the markup you shared uses the Classic dialog structure, please use the Classic RenderMode template section from the following help article as a base:

How to Change the Dialog Templates

Please apply the following adjustments in your custom templates:

  • add role="alert" to the alert message container
  • add aria-label="Enter Value" to the prompt input

You can use the following sample as a starting point:

        <telerik:RadWindowManager ID="RadWindowManager2" runat="server" RenderMode="Classic">
            <AlertTemplate>
                <div class="rwDialogPopup radalert">
                    <div class="rwDialogText" role="alert">
                        {1}
           
                    </div>
                    <div>
                        <a onclick="$find('{0}').close(true);" class="rwPopupButton" href="javascript:void(0);">
                            <span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[OK]##</span></span>
                        </a>
                    </div>
                </div>
            </AlertTemplate>

            <PromptTemplate>
                <div class="rwDialogPopup radprompt">
                    <div class="rwDialogText">
                        {1}
           
                    </div>
                    <div>
                        <script type="text/javascript">
                            function RadWindowprompt_detectenter(id, ev, input) {
                                if (!ev) ev = window.event;
                                if (ev.keyCode == 13) {
                                    var but = input.parentNode.parentNode.getElementsByTagName("A")[0];
                                    if (but) {
                                        if (but.click) but.click();
                                        else if (but.onclick) {
                                            but.focus(); var click = but.onclick; but.onclick = null; if (click) click.call(but);
                                        }
                                    }
                                    return false;
                                }
                                else return true;
                            }
                </script>
                        <input title="Enter Value"
                            aria-label="Enter Value"
                            onkeydown="return RadWindowprompt_detectenter('{0}', event, this);"
                            type="text"
                            class="rwDialogInput"
                            value="{2}" />
                    </div>
                    <div>
                        <a onclick="$find('{0}').close(this.parentNode.parentNode.getElementsByTagName('input')[0].value);"
                            class="rwPopupButton" href="javascript:void(0);">
                            <span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[OK]##</span></span>
                        </a>
                        <a onclick="$find('{0}').close(null);" class="rwPopupButton" href="javascript:void(0);">
                            <span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[Cancel]##</span></span>
                        </a>
                    </div>
                </div>
            </PromptTemplate>

            <ConfirmTemplate>
                <div class="rwDialogPopup radconfirm">
                    <div class="rwDialogText">
                        {1}
           
                    </div>
                    <div>
                        <a onclick="$find('{0}').close(true);" class="rwPopupButton" href="javascript:void(0);">
                            <span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[OK]##</span></span>
                        </a>
                        <a onclick="$find('{0}').close(false);" class="rwPopupButton" href="javascript:void(0);">
                            <span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[Cancel]##</span></span>
                        </a>
                    </div>
                </div>
            </ConfirmTemplate>
        </telerik:RadWindowManager>
As a token of appreciation for the report, I have also awarded your account with Telerik Points.

Regards,
Rumen
Progress Telerik

Stay tuned by visiting our public roadmap and feedback portal pages! Or perhaps, if you are new to our Telerik family, check out our getting started resources