diff options
| author | antoliny0919 <antoliny0919@gmail.com> | 2025-05-22 15:56:51 +0900 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2025-10-14 08:10:43 -0400 |
| commit | bc03f1064e10fa247a46d4e8a98ba9b26aa4790d (patch) | |
| tree | fe2ba060988bc4d7e124e0dce536009fbea0e21f /django/contrib/admin | |
| parent | 407ab793573ce82c93cfdc86e5a0a7fa804f60f5 (diff) | |
Fixed #34041 -- Added aria-current attribute to admin breadcrumbs.
Co-authored by: farita1699 <uwanjerry25@gmail.com>
Diffstat (limited to 'django/contrib/admin')
18 files changed, 108 insertions, 85 deletions
diff --git a/django/contrib/admin/static/admin/css/base.css b/django/contrib/admin/static/admin/css/base.css index a3ddccdd91..ee67fe7cd5 100644 --- a/django/contrib/admin/static/admin/css/base.css +++ b/django/contrib/admin/static/admin/css/base.css @@ -754,19 +754,37 @@ td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { /* BREADCRUMBS */ -div.breadcrumbs { +ol.breadcrumbs { background: var(--breadcrumbs-bg); padding: 10px 40px; border: none; color: var(--breadcrumbs-fg); - text-align: left; + margin-top: 0; + margin-bottom: 0; +} + +ol.breadcrumbs li { + display: inline-block; + font-size: 0.875rem; + padding: 0; + line-height: 0; +} + +ol.breadcrumbs li:not([aria-current="page"])::after { + content: ' \203A ' / ''; +} + +ol.breadcrumbs li a[aria-current="page"] { + color: var(--breadcrumbs-fg); + text-decoration: none !important; + cursor: default; } -div.breadcrumbs a { +ol.breadcrumbs a { color: var(--breadcrumbs-link-fg); } -div.breadcrumbs a:focus, div.breadcrumbs a:hover { +ol.breadcrumbs a:focus, ol.breadcrumbs a:hover { color: var(--breadcrumbs-fg); } diff --git a/django/contrib/admin/templates/admin/500.html b/django/contrib/admin/templates/admin/500.html index b5ac5c3b6c..61e459356c 100644 --- a/django/contrib/admin/templates/admin/500.html +++ b/django/contrib/admin/templates/admin/500.html @@ -2,10 +2,10 @@ {% load i18n %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Server error' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Server error' %}</li> +</ol> {% endblock %} {% block title %}{% translate 'Server error (500)' %}{% endblock %} diff --git a/django/contrib/admin/templates/admin/app_index.html b/django/contrib/admin/templates/admin/app_index.html index 727f72b190..ff4188cb66 100644 --- a/django/contrib/admin/templates/admin/app_index.html +++ b/django/contrib/admin/templates/admin/app_index.html @@ -6,13 +6,13 @@ {% if not is_popup %} {% block nav-breadcrumbs %} <nav aria-label="{% translate 'Breadcrumbs' %}"> - <div class="breadcrumbs"> - <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> - › - {% for app in app_list %} - {{ app.name }} + <ol class="breadcrumbs"> + <li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> + <li aria-current="page"> + {% for app in app_list %}{{ app.name }} {% endfor %} - </div> + </li> + </ol> </nav> {% endblock %} {% endif %} diff --git a/django/contrib/admin/templates/admin/auth/user/change_password.html b/django/contrib/admin/templates/admin/auth/user/change_password.html index 01c357d8c7..08d191b765 100644 --- a/django/contrib/admin/templates/admin/auth/user/change_password.html +++ b/django/contrib/admin/templates/admin/auth/user/change_password.html @@ -11,13 +11,13 @@ {% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.model_name }} change-form{% endblock %} {% if not is_popup %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a> -› <a href="{% url opts|admin_urlname:'change' original.pk|admin_urlquote %}">{{ original|truncatewords:"18" }}</a> -› {% if form.user.has_usable_password %}{% translate 'Change password' %}{% else %}{% translate 'Set password' %}{% endif %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li> +<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a></li> +<li><a href="{% url opts|admin_urlname:'change' original.pk|admin_urlquote %}">{{ original|truncatewords:"18" }}</a></li> +<li aria-current="page">{% if form.user.has_usable_password %}{% translate 'Change password' %}{% else %}{% translate 'Set password' %}{% endif %}</li> +</ol> {% endblock %} {% endif %} {% block content %}<div id="content-main"> diff --git a/django/contrib/admin/templates/admin/base.html b/django/contrib/admin/templates/admin/base.html index ac72935f29..16c1808a0c 100644 --- a/django/contrib/admin/templates/admin/base.html +++ b/django/contrib/admin/templates/admin/base.html @@ -72,10 +72,10 @@ {% block nav-breadcrumbs %} <nav aria-label="{% translate 'Breadcrumbs' %}"> {% block breadcrumbs %} - <div class="breadcrumbs"> - <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> - {% if title %} › {{ title }}{% endif %} - </div> + <ol class="breadcrumbs"> + <li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> + {% if title %}<li aria-current="page">{{ title }}</li>{% endif %} + </ol> {% endblock %} </nav> {% endblock %} diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index 8e7ced9a48..f6edffb4d4 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/django/contrib/admin/templates/admin/change_form.html @@ -15,12 +15,12 @@ {% if not is_popup %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› {% if has_view_permission %}<a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %} -› {% if add %}{% blocktranslate with name=opts.verbose_name %}Add {{ name }}{% endblocktranslate %}{% else %}{{ original|truncatewords:"18" }}{% endif %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li> +<li>{% if has_view_permission %}<a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %}</li> +<li aria-current="page">{% if add %}{% blocktranslate with name=opts.verbose_name %}Add {{ name }}{% endblocktranslate %}{% else %}{{ original|truncatewords:"18" }}{% endif %}</li> +</ol> {% endblock %} {% endif %} diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html index b12f8ec583..42e157a85e 100644 --- a/django/contrib/admin/templates/admin/change_list.html +++ b/django/contrib/admin/templates/admin/change_list.html @@ -29,11 +29,11 @@ {% if not is_popup %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=cl.opts.app_label %}">{{ cl.opts.app_config.verbose_name }}</a> -› {{ cl.opts.verbose_name_plural|capfirst }} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=cl.opts.app_label %}">{{ cl.opts.app_config.verbose_name }}</a></li> +<li aria-current="page">{{ cl.opts.verbose_name_plural|capfirst }}</li> +</ol> {% endblock %} {% endif %} diff --git a/django/contrib/admin/templates/admin/delete_confirmation.html b/django/contrib/admin/templates/admin/delete_confirmation.html index 2ccf719e05..1d04008cc0 100644 --- a/django/contrib/admin/templates/admin/delete_confirmation.html +++ b/django/contrib/admin/templates/admin/delete_confirmation.html @@ -10,13 +10,13 @@ {% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation{% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a> -› <a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a> -› {% translate 'Delete' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li> +<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a></li> +<li><a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a></li> +<li aria-current="page">{% translate 'Delete' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/admin/delete_selected_confirmation.html b/django/contrib/admin/templates/admin/delete_selected_confirmation.html index 2414e79095..c6d0566883 100644 --- a/django/contrib/admin/templates/admin/delete_selected_confirmation.html +++ b/django/contrib/admin/templates/admin/delete_selected_confirmation.html @@ -10,12 +10,12 @@ {% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a> -› {% translate 'Delete multiple objects' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li> +<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a></li> +<li aria-current="page">{% translate 'Delete multiple objects' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/admin/invalid_setup.html b/django/contrib/admin/templates/admin/invalid_setup.html index 1ef7c71434..ed686f7e30 100644 --- a/django/contrib/admin/templates/admin/invalid_setup.html +++ b/django/contrib/admin/templates/admin/invalid_setup.html @@ -2,10 +2,10 @@ {% load i18n %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {{ title }} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{{ title }}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/admin/object_history.html b/django/contrib/admin/templates/admin/object_history.html index 40aaecc40a..130232666f 100644 --- a/django/contrib/admin/templates/admin/object_history.html +++ b/django/contrib/admin/templates/admin/object_history.html @@ -2,13 +2,13 @@ {% load i18n admin_urls %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› <a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a> -› <a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a> -› {% translate 'History' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li> +<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a></li> +<li><a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a></li> +<li aria-current="page">{% translate 'History' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/registration/logged_out.html b/django/contrib/admin/templates/registration/logged_out.html index e9a5545024..759ec734c7 100644 --- a/django/contrib/admin/templates/registration/logged_out.html +++ b/django/contrib/admin/templates/registration/logged_out.html @@ -1,7 +1,12 @@ {% extends "admin/base_site.html" %} {% load i18n %} -{% block breadcrumbs %}<div class="breadcrumbs"><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></div>{% endblock %} +{% block breadcrumbs %} +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Logout' %}</li> +</ol> +{% endblock %} {% block nav-sidebar %}{% endblock %} diff --git a/django/contrib/admin/templates/registration/password_change_done.html b/django/contrib/admin/templates/registration/password_change_done.html index 784ab37278..e8e019fca9 100644 --- a/django/contrib/admin/templates/registration/password_change_done.html +++ b/django/contrib/admin/templates/registration/password_change_done.html @@ -9,10 +9,10 @@ {% include "admin/color_theme_toggle.html" %} {% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password change' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password change' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/registration/password_change_form.html b/django/contrib/admin/templates/registration/password_change_form.html index 3d66aeb162..d377c201ce 100644 --- a/django/contrib/admin/templates/registration/password_change_form.html +++ b/django/contrib/admin/templates/registration/password_change_form.html @@ -12,10 +12,10 @@ {% include "admin/color_theme_toggle.html" %} {% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password change' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password change' %}</li> +</ol> {% endblock %} {% block content %}<div id="content-main"> diff --git a/django/contrib/admin/templates/registration/password_reset_complete.html b/django/contrib/admin/templates/registration/password_reset_complete.html index e6a383fcfe..1e30fdf4b8 100644 --- a/django/contrib/admin/templates/registration/password_reset_complete.html +++ b/django/contrib/admin/templates/registration/password_reset_complete.html @@ -2,10 +2,10 @@ {% load i18n %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password reset' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password reset' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/registration/password_reset_confirm.html b/django/contrib/admin/templates/registration/password_reset_confirm.html index 5e1478be83..2ad675da24 100644 --- a/django/contrib/admin/templates/registration/password_reset_confirm.html +++ b/django/contrib/admin/templates/registration/password_reset_confirm.html @@ -4,10 +4,10 @@ {% block title %}{% if form.new_password1.errors or form.new_password2.errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} {% block extrastyle %}{{ block.super }}<link rel="stylesheet" href="{% static "admin/css/forms.css" %}">{% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password reset confirmation' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password reset confirmation' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/registration/password_reset_done.html b/django/contrib/admin/templates/registration/password_reset_done.html index 8b1971a76e..194217638f 100644 --- a/django/contrib/admin/templates/registration/password_reset_done.html +++ b/django/contrib/admin/templates/registration/password_reset_done.html @@ -2,10 +2,10 @@ {% load i18n %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password reset' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password reset' %}</li> +</ol> {% endblock %} {% block content %} diff --git a/django/contrib/admin/templates/registration/password_reset_form.html b/django/contrib/admin/templates/registration/password_reset_form.html index e12189af54..3737414d81 100644 --- a/django/contrib/admin/templates/registration/password_reset_form.html +++ b/django/contrib/admin/templates/registration/password_reset_form.html @@ -4,10 +4,10 @@ {% block title %}{% if form.email.errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} {% block extrastyle %}{{ block.super }}<link rel="stylesheet" href="{% static "admin/css/forms.css" %}">{% endblock %} {% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Password reset' %} -</div> +<ol class="breadcrumbs"> +<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li> +<li aria-current="page">{% translate 'Password reset' %}</li> +</ol> {% endblock %} {% block content %} |
