> For the complete documentation index, see [llms.txt](https://ebay.gitbook.io/mindpatterns/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ebay.gitbook.io/mindpatterns/master.md).

# Introduction

This book will assist frontend developers in building accessible e-commerce websites and components.

The MIND Patterns are **not** to be confused with a visual design system, CSS framework or JavaScript library. Our patterns are instead intended to *complement* those systems by acting as foundational accessibility guidance.

These examples will assist the frontend developer with accessibility, but the source code is not considered to be final, production-ready code. Most examples leave additional steps; which typically will be any CSS styling and JavaScript behaviour that is not specifically related to core functionality or accessibility.

This book is a living, work-in-progress document.&#x20;

### TL;DR?

Don't feel like reading? You can, if you wish, dive straight into the [working examples](http://ebay.github.io/mindpatterns/).

### Pattern Philosophy

Each pattern follows a [progressive enhancement](http://en.wikipedia.org/wiki/Progressive_enhancement) strategy (where applicable), aims to conform to [WCAG 2.2](https://www.w3.org/TR/WCAG22/) Level AA, and for the most part builds on from the excellent guidance set out in the [ARIA Authoring Practices Guide (APG)](https://www.w3.org/WAI/ARIA/apg/).

### Pattern Organisation

There are four main groups of component-related patterns:

1. [**M**essaging](/mindpatterns/messaging.md)
2. [**I**nput](/mindpatterns/input.md)
3. [**N**avigation](/mindpatterns/navigation.md)
4. [**D**isclosure](/mindpatterns/disclosure.md)

These groups spell out the **MIND** acronym. If you ever wonder what group does a pattern fall into - then use your MIND!

Three other important groups complement the above patterns:

* [Structure](/mindpatterns/structure.md)
* [Anti-Patterns](/mindpatterns/antipatterns.md)
* [Techniques](/mindpatterns/techniques.md)

We have not yet incorporated these three groups into any kind of clever or witty acronym (which is disappointing, I know).

### Pattern Contents

Every completed pattern will include:

* Introduction
* Working examples
* Terminology
* Best practices
* Interaction design
* Developer guide
* ARIA Reference

The book also contains an appendix section with a list of [ARIA Essentials](/mindpatterns/appendix/aria-essentials.md), [References](/mindpatterns/appendix/references.md), [Utilities](/mindpatterns/appendix/utils.md) and [FAQ](/mindpatterns/appendix/faq.md).

### Pattern Principles

There are 4 guiding principles of accessibility, collectively know as **POUR**:

1. **P**erceivable: People experience content in different ways (sight, hearing, and touch). Content needs to be transferable into recognizable (or perceivable) formats.
2. **O**perable: Content needs to be navigable (or operable) by multiple methods—not just a mouse
3. **U**nderstandable: Web content needs to be understandable. Language should be simple and concise; functionality should be consistent and intuitive.
4. **R**obust: Create web content that works for all (or most!) technologies. This includes operating systems, browsers, and mobile devices.

### Testing

Accessibility testing is performed with latest versions of:

* Chrome & JAWS
* Firefox & NVDA
* Safari & VoiceOver

### JavaScript Utilities

Much of the common accessibility logic in our MIND Pattern examples comes courtesy of [MakeupJS](https://github.com/makeup/makeup-js) - a suite of vanilla, headless UI JavaScript modules - tailored specifically for building accessible user interfaces in a frontend framework agnostic manner. For example, implementing a keyboard roving tab index or dialog window modality.

### License

eBay MIND Patterns is released under the [CC-BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/).
