|
|
@@ -0,0 +1,36 @@ |
|
|
|
# Tesseract |
|
|
|
|
|
|
|
## Design |
|
|
|
- Tesseract components follow a strict and simple design philosophy. |
|
|
|
- The aesthetics of the elements are rigid--any element which users can |
|
|
|
interact with should be easily recognizable--they are determined by the |
|
|
|
usage of the chosen accent color. |
|
|
|
- The look and feel of the elements are designed to be less opinionated |
|
|
|
as possible. |
|
|
|
|
|
|
|
## Engineering |
|
|
|
- Every component is a derivative of an existing HTML element, |
|
|
|
thus any Tesseract component can substitute for any HTML element |
|
|
|
with added capabilities like improved user experience and consistency. |
|
|
|
- In case of overloaded HTML elements such as `<input>`, Tesseract |
|
|
|
dissects the element into multiple components each having a single |
|
|
|
defined behavior. |
|
|
|
- Tesseract components gracefully degrade to their native counterparts, |
|
|
|
allowing user agents without client-side JavaScript to still use the |
|
|
|
components with minimal loss of functionality. |
|
|
|
- Tesseract components render Web-compliant HTML and CSS, thus |
|
|
|
making it resilient to future changes in the HTML/CSS specifications. |
|
|
|
- Tesseract components are designed to be used with popular JavaScript |
|
|
|
frameworks like React. Consumption of the components using the framework |
|
|
|
of choice should be seamless, even with the use of form-handling libraries. |
|
|
|
- Terminal-based browsers such as Lynx are used to test the components |
|
|
|
for accessibility and graceful degradation. |
|
|
|
|
|
|
|
## Accessibility |
|
|
|
- Components are made to be accessible according to Web standards (WAI-ARIA). |
|
|
|
- Focus handling is managed sensibly to facilitate functional |
|
|
|
keyboard navigation. |
|
|
|
- In cases where there are improvements in user experience, some |
|
|
|
elements may have different markup and appearance. Tesseract |
|
|
|
ensures components are still usable on most assistive technologies given |
|
|
|
both versions of the user interface. |