diff options
| author | Jay Patel <jbp@somaiya.edu> | 2024-10-05 11:26:59 +0200 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-10-17 14:23:24 +0200 |
| commit | 8b1a3a56438ce99fe9058f078a6bdd92a01e1130 (patch) | |
| tree | 1fc7de4e32611d521db97653947de9c8fa004b85 | |
| parent | 48fa531fbcd96af301781a6e5192509081d7dd2d (diff) | |
Fixed #35795 -- Added role="button" to links acting as buttons for screen readers.
| -rw-r--r-- | django/contrib/admin/static/admin/js/inlines.js | 10 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/actions.html | 4 | ||||
| -rw-r--r-- | django/views/templates/technical_500.html | 2 |
3 files changed, 8 insertions, 8 deletions
diff --git a/django/contrib/admin/static/admin/js/inlines.js b/django/contrib/admin/static/admin/js/inlines.js index a4246d6e12..cd3726cf30 100644 --- a/django/contrib/admin/static/admin/js/inlines.js +++ b/django/contrib/admin/static/admin/js/inlines.js @@ -50,11 +50,11 @@ // If forms are laid out as table rows, insert the // "add" button in a new table row: const numCols = $this.eq(-1).children().length; - $parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a class="addlink" href="#">' + options.addText + "</a></tr>"); + $parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a role="button" class="addlink" href="#">' + options.addText + "</a></tr>"); addButton = $parent.find("tr:last a"); } else { // Otherwise, insert it immediately after the last form: - $this.filter(":last").after('<div class="' + options.addCssClass + '"><a class="addlink" href="#">' + options.addText + "</a></div>"); + $this.filter(":last").after('<div class="' + options.addCssClass + '"><a role="button" class="addlink" href="#">' + options.addText + "</a></div>"); addButton = $this.filter(":last").next().find("a"); } } @@ -104,15 +104,15 @@ if (row.is("tr")) { // If the forms are laid out in table rows, insert // the remove button into the last table cell: - row.children(":last").append('<div><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></div>"); + row.children(":last").append('<div><a role="button" class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></div>"); } else if (row.is("ul") || row.is("ol")) { // If they're laid out as an ordered/unordered list, // insert an <li> after the last list item: - row.append('<li><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></li>"); + row.append('<li><a role="button" class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></li>"); } else { // Otherwise, just insert the remove button as the // last child element of the form's container: - row.children(":first").append('<span><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></span>"); + row.children(":first").append('<span><a role="button" class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></span>"); } // Add delete handler for each row. row.find("a." + options.deleteCssClass).on('click', inlineDeleteHandler.bind(this)); diff --git a/django/contrib/admin/templates/admin/actions.html b/django/contrib/admin/templates/admin/actions.html index ca1327c6d5..f506c92334 100644 --- a/django/contrib/admin/templates/admin/actions.html +++ b/django/contrib/admin/templates/admin/actions.html @@ -13,9 +13,9 @@ {% if cl.result_count != cl.result_list|length %} <span class="all hidden">{{ selection_note_all }}</span> <span class="question hidden"> - <a href="#" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a> + <a role="button" href="#" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a> </span> - <span class="clear hidden"><a href="#">{% translate "Clear selection" %}</a></span> + <span class="clear hidden"><a role="button" href="#">{% translate "Clear selection" %}</a></span> {% endif %} {% endif %} {% endblock %} diff --git a/django/views/templates/technical_500.html b/django/views/templates/technical_500.html index 31f0dfe1b9..a2fc8415f5 100644 --- a/django/views/templates/technical_500.html +++ b/django/views/templates/technical_500.html @@ -212,7 +212,7 @@ {% endif %} {% if frames %} <div id="traceback"> - <h2>Traceback{% if not is_email %} <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);"> + <h2>Traceback{% if not is_email %} <span class="commands"><a href="#" role="button" onclick="return switchPastebinFriendly(this);"> Switch to copy-and-paste view</a></span>{% endif %} </h2> <div id="browserTraceback"> |
