Fix: documentation grammar
Add content descriptions to tabs

Content descriptions improve accessibility by providing a summary of
content that may be read by, for example, screen readers.
Use enumeration for tab selection extra
Use map between tabs and corresponding extra value
Cleanup: use generic class for loose coupling
Cleanup: move enum definition to bottom of class