{% extends "base.html" %} {% load i18n static %} {# Nothing in this file should be reported. It shows the template patterns #} {# that ramplint understands instead of flagging them as false positives. #} {% block extra_head %} {# A viewport that allows zooming, and an immediate redirect. #} {% endblock %} {% block content %}

{% block page_title %}{% endblock %}

{% trans "Details" %}

{# Rows rendered by Django - ramplint cannot see them, so it stays quiet. #} {{ form.as_table }}
{% include "orders/rows.html" %}
{# Layout table explicitly marked as such. #}
{{ left }}{{ right }}
{% csrf_token %} {# Label and input ids come from the form field. #} {# Attributes rendered by the widget itself. #} {# Valid autofill tokens, including sections and dynamic values. #} {# Wrapped label, hidden and submit inputs. #}
{# The same id in {% if %} / {% else %} branches - only one is ever rendered. #} {% if user.is_authenticated %}

{% trans "Welcome back" %}

{% else %}

{% trans "Hello, guest" %}

{% endif %} {# Text, translations and includes all count as accessible names. #} {% include "icons/help.html" %} {{ product.name }} {# Real links: fragment, named anchor, URL from a variable. #} {% trans "Jump to reviews" %} {% trans "Continue" %} {# tabindex 0 and -1 keep the natural focus order; dynamic values are skipped. #}
{% trans "Menu" %}
{{ dialog_content }}
{% trans "Cart" %} {# ARIA: valid roles, states and references; hidden content that cannot be focused. #}

{% trans "Sort" %}

{% trans "In stock only" %}
{{ widget }}
{# Lists: items from a loop, an include or a block; a description list with
groups. #}
    {% block steps %}{% endblock %}
{% for spec in product.specs.all %}
{{ spec.name }}
{{ spec.value }}
{% endfor %}
{# Tables: valid scope, a visually hidden header and the empty top-left corner cell. #} {% for region in regions %} {% endfor %}
{% trans "Q1" %}{% trans "Actions" %}
{{ region.name }}{{ region.q1 }}{% trans "Details" %}
{# A card with a link and a separate button; an without href is not a control. #}

{{ product.name }}

{# Language of parts: valid tags and the language from a variable. #}

{{ product.name_uk }}

{{ product.name_zh }}

{{ review.text }}
{{ news_ticker }}
{# Media: captions, a muted background video, a named chart and a PDF with a download link. #} {% trans "Sales grew 20% this year" %} {% trans "Download the price list (PDF)" %} {# Interactive roles that can be focused: tabindex, roving tabindex, a managed listbox. #}
{% trans "Details" %}{% trans "Reviews" %}
{% trans "Sold out" %} {# Access keys: unique, or the same key in exclusive branches. #} {% trans "Find" %} {% if user.is_authenticated %}{% trans "Account" %}{% else %}{% trans "Log in" %}{% endif %} {# Frames: title from a variable, and a hidden tracking frame. #} {# Decorative image with an intentionally empty alt. #} {# A known exception, silenced inline. #} {# ramplint: ignore img-alt #} {% endblock %}