#35874: The console directive is not accessible for screenreaders.
-------------------------------+---------------------------------------
     Reporter:  Sarah Boyce    |                    Owner:  James Beard
         Type:  Bug            |                   Status:  assigned
    Component:  Documentation  |                  Version:  dev
     Severity:  Normal         |               Resolution:
     Keywords:  accessibility  |             Triage Stage:  Accepted
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+---------------------------------------
Changes (by James Beard):

 * owner:  Ahmed Nassar => James Beard


Old description:

> `docs._ext.djangodocs.visit_console_html` generates the HTML for the
> console directive in docs and has buttons for Linux/MasOS and Windows
>
> This is not very screen reader friendly.
> The main issues are that the labels are not read out properly (it should
> read out the current title but is reading the content of
> `&#xf17c/&#xf179`).
> That these are clickable and what happens when you click them are also
> not clear.
>
> I think it might be better to turn this into tabs:
> https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-manual/
>
> Some examples in docs:
> https://docs.djangoproject.com/en/5.1/intro/contributing/#getting-a-copy-
> of-django-s-development-version
> Example html:
> {{{
> <div class="console-block" id="console-block-0">
> <input class="c-tab-unix" id="c-tab-0-unix" type="radio" name="console-0"
> checked="">
> <label for="c-tab-0-unix" title="Linux/macOS">/</label>
> <input class="c-tab-win" id="c-tab-0-win" type="radio" name="console-0">
> <label for="c-tab-0-win" title="Windows"></label>
> <section class="c-content-unix" id="c-content-0-unix" style="display:
> block;">
> <div class="highlight-console notranslate"><div
> class="highlight"><pre><span></span><span class="gp">$ </span>git<span
> class="w"> </span>clone<span class="w">
> </span>https://github.com/YourGitHubName/django.git
> </pre></div>
> </div>
> </section>
> <section class="c-content-win" id="c-content-0-win" style="display:
> none;">
> <div class="highlight"><pre><span></span><span class="gp">...\&gt;</span>
> git clone https://github.com/YourGitHubName/django.git
> </pre></div>
> </section>
> </div>
> }}}

New description:

 `docs._ext.djangodocs.visit_console_html` generates the HTML for the
 console directive in docs and has buttons for Linux/MacOS and Windows

 This is not very screen reader friendly.
 The main issues are that the labels are not read out properly (it should
 read out the current title but is reading the content of
 `&#xf17c/&#xf179`).
 That these are clickable and what happens when you click them are also not
 clear.

 I think it might be better to turn this into tabs:
 https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-manual/

 Some examples in docs:
 https://docs.djangoproject.com/en/5.1/intro/contributing/#getting-a-copy-
 of-django-s-development-version
 Example html:
 {{{
 <div class="console-block" id="console-block-0">
 <input class="c-tab-unix" id="c-tab-0-unix" type="radio" name="console-0"
 checked="">
 <label for="c-tab-0-unix" title="Linux/macOS">/</label>
 <input class="c-tab-win" id="c-tab-0-win" type="radio" name="console-0">
 <label for="c-tab-0-win" title="Windows"></label>
 <section class="c-content-unix" id="c-content-0-unix" style="display:
 block;">
 <div class="highlight-console notranslate"><div
 class="highlight"><pre><span></span><span class="gp">$ </span>git<span
 class="w"> </span>clone<span class="w">
 </span>https://github.com/YourGitHubName/django.git
 </pre></div>
 </div>
 </section>
 <section class="c-content-win" id="c-content-0-win" style="display:
 none;">
 <div class="highlight"><pre><span></span><span class="gp">...\&gt;</span>
 git clone https://github.com/YourGitHubName/django.git
 </pre></div>
 </section>
 </div>
 }}}

--
Comment:

 Will make some improvements. Brief game plan:

 1. make the tabs look much more tab like
 1. make the generated HTML more screen reader friendly
 1. change the hover cursor to provide some visual feedback that tabs are
 clickable
 1. leave tabs as form inputs to retain css only presentation of the active
 block
 1. tidy up the layout of the block to match plain python pre-formatted
 code (padding on all sides, etc)

 R.e. item 4, am going to assume if moving to something more semantic like
 `<button>` for the tabs required Javascript (think it might) we'd prefer
 not to do that.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35874#comment:5>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019e7cc6091a-78d2dd98-d12f-4924-b0ed-786028df6090-000000%40eu-central-1.amazonses.com.

Reply via email to