Skip to content

Commit c4d76a6

Browse files
Traducido: accessibility.md (angular-hispano#50)
* Traducido Traducido el apartado "Accesibilidad en Angular". Pendiente de revisión. * Update aio/content/guide/accessibility.md Co-authored-by: Pato <[email protected]> * Update aio/content/guide/accessibility.md Co-authored-by: Pato <[email protected]> * Update aio/content/guide/accessibility.md Co-authored-by: Pato <[email protected]> * Update aio/content/guide/accessibility.md Co-authored-by: Pato <[email protected]> Co-authored-by: Pato <[email protected]>
1 parent db394e2 commit c4d76a6

File tree

1 file changed

+59
-59
lines changed

1 file changed

+59
-59
lines changed

aio/content/guide/accessibility.md

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,112 @@
1-
# Accessibility in Angular
1+
# Accesibilidad en Angular
22

3-
The web is used by a wide variety of people, including those who have visual or motor impairments.
4-
A variety of assistive technologies are available that make it much easier for these groups to
5-
interact with web-based software applications.
6-
In addition, designing an application to be more accessible generally improves the user experience for all users.
3+
Hay una amplia variedad de personas que utilizan la web, algunas de ellas con discapacidad visual o motora.
4+
Existen diferentes tecnologías de apoyo que hacen que sea mucho más fácil para estos grupos
5+
interactuar con aplicaciones de software basadas en la web.
6+
Además, diseñar una aplicación para que sea más accesible, normalmente mejora la experiencia de usuario en general.
77

8-
For an in-depth introduction to issues and techniques for designing accessible applications, see the [Accessibility](https://developers.google.com/web/fundamentals/accessibility/#what_is_accessibility) section of the Google's [Web Fundamentals](https://developers.google.com/web/fundamentals/).
8+
Para una introducción en profundidad a los problemas y técnicas sobre el diseño de aplicaciones accesibles, puede consultar la sección de [Accesibilidad](https://developers.google.com/web/fundamentals/accessibility/#what_is_accessibility) de Google [Fundamentos Web](https://developers.google.com/web/fundamentals/).
99

10-
This page discusses best practices for designing Angular applications that
11-
work well for all users, including those who rely on assistive technologies.
10+
Esta página habla de las mejores prácticas para diseñar aplicaciones en Angular que funcionan
11+
bien para todos los usuarios, incluyendo aquéllos que necesitan tecnologías de apoyo.
1212

1313
<div class="alert is-helpful">
1414

15-
For the sample app that this page describes, see the <live-example></live-example>.
15+
Para ver la aplicación de ejemplo que describe esta página, ir a <live-example></live-example>.
1616

1717
</div>
1818

19-
## Accessibility attributes
19+
## Atributos de accesibilidad
2020

21-
Building accessible web experience often involves setting [ARIA attributes](https://developers.google.com/web/fundamentals/accessibility/semantics-aria)
22-
to provide semantic meaning where it might otherwise be missing.
23-
Use [attribute binding](guide/attribute-binding) template syntax to control the values of accessibility-related attributes.
21+
Crear una web accesible a menudo implica establecer los [atributos ARIA](https://developers.google.com/web/fundamentals/accessibility/semantics-aria)
22+
para proporcionar la semántica que, de otro modo, podría no estar presente.
23+
Usa la plantilla de sintaxis del [enlace de atributos](attribute binding) (guide/attribute-binding) para controlar los valores de los atributos relacionados con la accesibilidad.
2424

25-
When binding to ARIA attributes in Angular, you must use the `attr.` prefix, as the ARIA
26-
specification depends specifically on HTML attributes rather than properties of DOM elements.
25+
Para enlazar los atributos ARIA en Angular, debes usar el prefijo `attr.`, ya que la especificación ARIA
26+
depende de los atributos HTML y no de las propiedades de los elementos del DOM.
2727

2828
```html
2929
<!-- Use attr. when binding to an ARIA attribute -->
3030
<button [attr.aria-label]="myActionLabel">...</button>
3131
```
3232

33-
Note that this syntax is only necessary for attribute _bindings_.
34-
Static ARIA attributes require no extra syntax.
33+
Observa que esta sintaxis solo es necesaria para los _enlaces_ de atributos.
34+
Los atributos ARIA estáticos no requieren de ninguna sintaxis adicional.
3535

3636
```html
3737
<!-- Static ARIA attributes require no extra syntax -->
3838
<button aria-label="Save document">...</button>
3939
```
4040

41-
NOTE:
41+
NOTA:
4242

4343
<div class="alert is-helpful">
4444

45-
By convention, HTML attributes use lowercase names (`tabindex`), while properties use camelCase names (`tabIndex`).
45+
Por convenio, los atributos HTML se escriben en minúscula (`tabindex`), mientras que para las propiedades se usa *camelCase* (`tabIndex`).
4646

47-
See the [Binding syntax](guide/binding-syntax#html-attribute-vs-dom-property) guide for more background on the difference between attributes and properties.
47+
Consulta la guía [Sintaxis del enlace](guide/binding-syntax#html-attribute-vs-dom-property) para saber más sobre las diferencias entre atributos y propiedades.
4848

4949
</div>
5050

5151

52-
## Angular UI components
52+
## Componentes del interfaz de usuario de Angular
5353

54-
The [Angular Material](https://material.angular.io/) library, which is maintained by the Angular team, is a suite of reusable UI components that aims to be fully accessible.
55-
The [Component Development Kit (CDK)](https://material.angular.io/cdk/categories) includes the `a11y` package that provides tools to support various areas of accessibility.
56-
For example:
54+
La librería [Angular Material](https://material.angular.io/), que es mantenida por el equipo Angular, es un conjunto de componentes reutilizables para la interfaz de usuario que pretende ser totalmente accesible.
55+
El [Kit de Desarrollo de Componentes (CDK)](https://material.angular.io/cdk/categories) (Component Development Kit) incluye el paquete `a11y` que proporciona herramientas para dar soporte a distintos aspectos de la accesibilidad.
56+
Por ejemplo:
5757

58-
* `LiveAnnouncer` is used to announce messages for screen-reader users using an `aria-live` region. See the W3C documentation for more information on [aria-live regions](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-live).
58+
* `LiveAnnouncer` se utiliza para comunicar mensajes a los usuarios de lectores de pantalla que usan la region `aria-live`. Se puede consultar la documentación de la W3C para obtener más información sobre [regiones aria-live](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-live).
5959

60-
* The `cdkTrapFocus` directive traps Tab-key focus within an element. Use it to create accessible experience for components like modal dialogs, where focus must be constrained.
60+
* La directiva `cdkTrapFocus` limita el foco de la tecla de tabulación para que se quede dentro de un elemento. Úsala para crear una experiencia accesible en componentes como las ventanas modales, donde el foco debe estar limitado.
6161

62-
For full details of these and other tools, see the [Angular CDK accessibility overview](https://material.angular.io/cdk/a11y/overview).
62+
Para obtener más detalles sobre esta y otras herramientas, consulta el [resumen de accesibilidad del Angular CDK](https://material.angular.io/cdk/a11y/overview).
6363

6464

65-
### Augmenting native elements
65+
### Aumento de elementos nativos
6666

67-
Native HTML elements capture a number of standard interaction patterns that are important to accessibility.
68-
When authoring Angular components, you should re-use these native elements directly when possible, rather than re-implementing well-supported behaviors.
67+
Los elementos HTML nativos capturan una serie de patrones de interacción estándar que son importantes para la accesibilidad.
68+
Al crear componentes de Angular, deberías reutilizar estos elementos nativos directamente cuando sea posible, en lugar de volver a implementar comportamientos bien soportados.
6969

70-
For example, instead of creating a custom element for a new variety of button, you can create a component that uses an attribute selector with a native `<button>` element.
71-
This most commonly applies to `<button>` and `<a>`, but can be used with many other types of element.
70+
Por ejemplo, en lugar de crear un elemento personalizado para un nuevo tipo de botón, puedes crear un componente que use un selector de atributos con un elemento nativo `<button>`.
71+
Esto se aplica sobre todo a `<button>` y `<a>`, pero se puede usar con muchos otros tipos de elementos.
7272

7373
You can see examples of this pattern in Angular Material: [`MatButton`](https://github.com/angular/components/blob/master/src/material/button/button.ts#L66-L68), [`MatTabNav`](https://github.com/angular/components/blob/master/src/material/tabs/tab-nav-bar/tab-nav-bar.ts#L67), [`MatTable`](https://github.com/angular/components/blob/master/src/material/table/table.ts#L17).
7474

75-
### Using containers for native elements
75+
### Uso de contenedores para elementos nativos
7676

77-
Sometimes using the appropriate native element requires a container element.
78-
For example, the native `<input>` element cannot have children, so any custom text entry components need
79-
to wrap an `<input>` with additional elements.
80-
While you might just include the `<input>` in your custom component's template,
81-
this makes it impossible for users of the component to set arbitrary properties and attributes to the input element.
82-
Instead, you can create a container component that uses content projection to include the native control in the
83-
component's API.
77+
A veces, para usar el elemento nativo apropiado hace falta un contenedor.
78+
Por ejemplo, el elemento nativo `<input>` no puede tener hijos, por lo que cualquier componente de entrada de texto personalizado necesita envolver un `<input>` con elementos adicionales.
8479

85-
You can see [`MatFormField`](https://material.angular.io/components/form-field/overview) as an example of this pattern.
80+
Si bien puedes incluir el `<input>` en la plantilla de tu componente personalizado,
81+
esto hace que sea imposible para los usuarios de dicho componente establecer propiedades y atributos arbitrarios para el elemento de entrada.
82+
En su lugar, puedes crear un componente contenedor que utilice la proyección de contenido para incluir el control nativo en el
83+
API del componente.
8684

87-
## Case study: Building a custom progress bar
85+
Puedes consultar [`MatFormField`](https://material.angular.io/components/form-field/overview) para ver un ejemplo de este patrón.
8886

89-
The following example shows how to make a simple progress bar accessible by using host binding to control accessibility-related attributes.
87+
## Caso práctico: creación de una barra de progreso personalizada
9088

91-
* The component defines an accessibility-enabled element with both the standard HTML attribute `role`, and ARIA attributes. The ARIA attribute `aria-valuenow` is bound to the user's input.
89+
El siguiente ejemplo muestra cómo hacer que una barra de progreso simple sea accesible utilizando el *host binding* para controlar los atributos relacionados con la accesibilidad.
90+
91+
* El componente define un elemento habilitado para accesibilidad con el atributo HTML estándar `role` y los atributos ARIA. El atributo ARIA `aria-valuenow` está vinculado a la entrada del usuario.
9292

9393
<code-example path="accessibility/src/app/progress-bar.component.ts" header="src/app/progress-bar.component.ts" region="progressbar-component"></code-example>
9494

9595

96-
* In the template, the `aria-label` attribute ensures that the control is accessible to screen readers.
96+
* En la plantilla, el atributo `aria-label` asegura que el control sea accesible para los lectores de pantalla.
9797

9898
<code-example path="accessibility/src/app/app.component.html" header="src/app/app.component.html" region="template"></code-example>
9999

100100

101-
## Routing and focus management
101+
## Enrutamiento y gestión del foco
102+
103+
El seguimiento y el control del [foco](https://developers.google.com/web/fundamentals/accessibility/focus/) en una interfaz de usuario son aspectos muy importantes en el diseño si queremos tener en cuenta la accesibilidad.
104+
Al usar el enrutamiento de Angular, debes decidir dónde va el foco de la página al navegar.
102105

103-
Tracking and controlling [focus](https://developers.google.com/web/fundamentals/accessibility/focus/) in a UI is an important consideration in designing for accessibility.
104-
When using Angular routing, you should decide where page focus goes upon navigation.
106+
Para evitar depender únicamente de señales visuales, te debes asegurar de que el código de enrutamiento actualiza el foco después de la navegación de la página.
107+
Usa el evento `NavigationEnd` del servicio` Router` para saber cuándo actualizar el foco.
105108

106-
To avoid relying solely on visual cues, you need to make sure your routing code updates focus after page navigation.
107-
Use the `NavigationEnd` event from the `Router` service to know when to update
108-
focus.
109+
El siguiente ejemplo muestra cómo encontrar y poner el foco en el contenido principal de la cabecera (el elemento `#main-content-header`) dentro del DOM después de la navegación.
109110

110111
The following example shows how to find and focus the main content header in the DOM after navigation.
111112

@@ -119,13 +120,12 @@ router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {
119120
});
120121

121122
```
122-
In a real application, the element that receives focus will depend on your specific
123-
application structure and layout.
124-
The focused element should put users in a position to immediately move into the main content that has just been routed into view.
125-
You should avoid situations where focus returns to the `body` element after a route change.
123+
En una aplicación real, el elemento que recibe el foco dependerá de la estructura específica y del diseño que tenga tu aplicación.
124+
El elemento enfocado debe colocar a los usuarios en una posición en la que pasen inmediatamente al contenido principal que acaba de ser visualizado.
125+
Debe evitar situaciones en las que el foco vuelva al elemento `body` después de un cambio de ruta.
126126

127127

128-
## Additional resources
128+
## Recursos adicionales
129129

130130
* [Accessibility - Google Web Fundamentals](https://developers.google.com/web/fundamentals/accessibility)
131131

@@ -145,13 +145,13 @@ You should avoid situations where focus returns to the `body` element after a ro
145145

146146
* [Codelyzer](http://codelyzer.com/rules/) provides linting rules that can help you make sure your code meets accessibility standards.
147147

148-
Books
148+
Libros
149149

150150
* "A Web for Everyone: Designing Accessible User Experiences", Sarah Horton and Whitney Quesenbery
151151

152152
* "Inclusive Design Patterns", Heydon Pickering
153153

154-
## More on accessibility
154+
## Más sobre accesibilidad
155155

156-
You may also be interested in the following:
156+
Podrías estar interesado en lo siguiente:
157157
* [Audit your Angular app's accessibility with codelyzer](https://web.dev/accessible-angular-with-codelyzer/).

0 commit comments

Comments
 (0)