Patrones Índice de páginas
- Cómo pedimos información
 - Cómo mostramos información
 - Ayudar a resolver
 - Páginas y flujos
 
Acciones de tabla
Cómo mostramos información
Otorga más información sobre la tabla para hacerla más accesible y permite realizar acciones en lote.
Acerca de esta tabla
En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".
La segunda columna contiene enlaces de acceso a los items.
Las cabeceras de columna tienen opción de ordenación.
Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.
Selección múltiple y Acciones sobre la tabla de items
Mostrar código del ejemplo: includes/_pattern.acciones-de-tabla.njk
Contenido
Nunjucks macro del ejemplo: includes/_pattern.acciones-de-tabla.njk
{% from "components/checkboxes/_macro.checkboxes.njk" import componentCheckboxes %}
{% from "components/details/_macro.details.njk" import componentDetails %}
{% from "components/menubar/_macro.menubar.njk" import componentMenubar %}
{# Instrucciones de funcionamiento de la tabla #}
{% call componentDetails({
  "summary": {
    "html": "Acerca de esta tabla"
  },
  "classes": "mb-xs text-sm"
})  %}
    <div id="descTable1" class="grid gap-sm">
      <p>En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".</p>
      <p>La segunda columna contiene enlaces de acceso a los items.</p>
      <p>Las cabeceras de columna tienen opción de ordenación.</p>
      <p>Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.</p>
    </div>
{% endcall %}
{# Barra de Acciones #}
<section class="flex flex-col lg:flex-row lg:flex-wrap lg:w-full" aria-labelledby="acciones-items">
  <h3 id="acciones-items" class="sr-only">Selección múltiple y Acciones sobre la tabla de items</h3>
  <div class="lg:flex sm:flex-1">
    <form action="#">
      {{ componentCheckboxes({
        "idPrefix": "todos-items",
        "name": "todos-items",
        "classes": "c-checkboxes--sm mt-sm -mb-xl ml-base",
        "items": [
          {
            "value": "todas",
            "text": "Seleccionar todo",
            "classes": "-mt-base",
            "label": {
              "classes": "text-sm -mt-1"
            }
          }
        ]
      })  }}
    </form>
  </div>
  <div class="flex lg:items-start lg:ml-auto lg:pl-base order-first lg:order-last">
    {{ componentMenubar({
      "id": "actions-table-menubar",
      "idPrefix": "actions-table",
      "ariaLabel":"Acciones sobre los items seleccionados de la tabla",
      "items": [
        {
          "text": "Importar items",
          "ariaLabel": "Importar items",
          "id": "actions-table-item-1",
          "classes": "c-menubar__button--transparent c-menubar__button--sm mb-sm mr-sm",
          "href": "#"
        },
        {
          "text": "Aceptar",
          "ariaLabel": "Aceptar",
          "id": "actions-table-item-2",
          "classes": "c-menubar__button--sm mb-sm mr-sm",
          "href": "#"
        },
        {
          "text": "Reenviar",
          "ariaLabel": "Reenviar items seleccionados",
          "id": "actions-table-item-3",
          "classes": "c-menubar__button--sm mb-sm mr-sm",
          "sub": {
            "items": [
              {
                "role": "menuitem",
                "text": "A una bandeja personal"
              },
              {
                "role": "menuitem",
                "text": "A un organismo"
              }
            ],
            "attributes": {
              "aria-labelledby": "actions-table-item-3"
            }
          }
        }
      ]
    })  }}
  </div>
</section>
{# fin Barra de Acciones #}
  HTML del ejemplo: includes/_pattern.acciones-de-tabla.njk
<!-- details -->
<details class=" mb-xs text-sm">
  <summary class="py-sm cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black">
    <span class="c-link">
      Acerca de esta tabla
    </span>
  </summary>
  <div class="py-sm">
    <div>
      <div id="descTable1" class="grid gap-sm">
        <p>En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".</p>
        <p>La segunda columna contiene enlaces de acceso a los items.</p>
        <p>Las cabeceras de columna tienen opción de ordenación.</p>
        <p>Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.</p>
      </div>
    </div>
  </div>
</details>
<!-- /details -->
<section class="flex flex-col lg:flex-row lg:flex-wrap lg:w-full" aria-labelledby="acciones-items">
  <h3 id="acciones-items" class="sr-only">Selección múltiple y Acciones sobre la tabla de items</h3>
  <div class="lg:flex sm:flex-1">
    <form action="#">
      <!-- checkboxes -->
      <div class="c-form-group">
        <div class="c-checkboxes c-checkboxes--sm mt-sm -mb-xl ml-base" data-module="c-checkboxes">
          <div class=" -mt-base c-checkboxes__conditional-hidden">
            <div class="relative flex items-start py-base">
              <div class="flex items-center mx-sm">
                <input class="w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:outline-black focus:outline-1 focus:outline-offset-2 focus:ring-3 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base" id="todos-items" name="todos-items" type="checkbox" value="todas">
              </div>
              <div class="pt-0.5 leading-5">
                <!-- label -->
                <label class="block text-sm -mt-1" for="todos-items">Seleccionar todo</label>
                <!-- /label -->
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- /checkboxes -->
    </form>
  </div>
  <div class="flex lg:items-start lg:ml-auto lg:pl-base order-first lg:order-last">
    <!-- menubar -->
    <div id="actions-table-menubar" class="c-menubar">
      <ul data-module="c-menubar" id="actions-table-menubar-menubar" class="lg:flex lg:flex-wrap" role="menubar" aria-label="Acciones sobre los items seleccionados de la tabla">
        <li class="relative" role="none">
          <a role="menuitem" id="actions-table-item-1" href="#" class="c-menubar__button c-menubar__button--transparent c-menubar__button--sm mb-sm mr-sm">
            Importar items
          </a>
        </li>
        <li class="relative" role="none">
          <a role="menuitem" id="actions-table-item-2" href="#" class="c-menubar__button c-menubar__button--sm mb-sm mr-sm">
            Aceptar
          </a>
        </li>
        <li class="relative" role="none">
          <a href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" class="c-menubar__button c-menubar__button--sm mb-sm mr-sm" id="actions-table-item-3">
            <span class="inline-flex self-center align-middle">Reenviar</span>
            <span class="c-menubar__msg">Con ítems seleccionados</span>
            <svg class="inline-block -mr-2  align-middle -my-px" viewBox="0 0 96 96" aria-hidden="true" fill="currentColor" focusable="false" width="1.5em" height="1.5em">
              <g>
                <path d="M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z" />
              </g>
            </svg></a>
          <ul role="menu" class="c-menubar__tooltip w-max max-w-64 hidden border border-neutral-base shadow-md bg-white text-sm" aria-label="Reenviar items seleccionados" aria-labelledby="actions-table-item-3">
            <li role="menuitem" id="sub-actions-table-item-3-1" data-option="sub-actions-table-item-3-1" class="flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none">
              A una bandeja personal
            </li>
            <li role="menuitem" id="sub-actions-table-item-3-2" data-option="sub-actions-table-item-3-2" class="flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none">
              A un organismo
            </li>
          </ul>
        </li>
      </ul>
    </div>
    <!-- /menubar -->
  </div>
</section>
  Cuándo lo utilizamos #
Qué componentes utilizamos #
Accesibilidad #
- El objetivo de la descripción de la tabla es ayudar a todas las personas a comprender su estructura y su funcionamiento. La descripción es especialmente útil para las personas que no pueden ver la tabla y acceden con un lector de pantalla. Para redactar de forma adecuada la descripción ten en cuenta que:
      
- Si la tabla no tiene un título incluido con la etiqueta 
<caption>, debes comenzar la descripción identificando la tabla (por ejemplo, indica que es el listado de trámites realizados). - No debes hacer referencia a cuántas filas y columnas tiene la tabla, ya que el lector de pantalla anuncia por defecto esta información.
 - La descripción no resume los datos, sino que ofrece información relevante sobre su estructura y funcionamiento, similar a la información que perciben las personas que pueden ver la tabla. De este modo, las personas usuarias de lector de pantalla pueden hacerse una imagen mental de la tabla e interactuar con ella de manera más rápida y eficiente.
 
 - Si la tabla no tiene un título incluido con la etiqueta 
 - Las acciones deben estar dentro de un elemento 
<section>y tener un encabezado con.sr-onlyque las describa.