Key on a keyboard for tabulation
The
tab key
Tab ?
(abbreviation of
tabulator key
[1]
or
tabular key
)
[2]
on a
keyboard
is used to advance the cursor to the next
tab stop
.
History
[
edit
]
The word
tab
derives from the word
tabulate
, which means "to arrange data in a tabular, or table, form." When a person wanted to type a table (of numbers or text) on a
typewriter
, there was a lot of time-consuming and repetitive use of the
space bar
and
backspace
key. To simplify this, a horizontal bar was placed in the mechanism called the tabulator rack. Pressing the tab key would advance the carriage to the next
tabulator stop
. The original tabulator stops were adjustable clips that could be arranged by the user on the tabulator rack. Fredric Hillard filed a patent application for such a mechanism in 1900.
[3]
The tab mechanism came into its own as a rapid and consistent way of uniformly
indenting
the first line of each paragraph. Often a first tab stop at 5 or 6 characters was used for this, far larger than the indentation used when typesetting. For numeric data, however, the logical place for the tab stop is the location of the least significant digit. Tabbing to this location and then pressing the
backspace
key to back up to the position of the first digit is practical but slow. Various schemes for numeric tabs were proposed. For example, in 1903, Harry Dukes and William Clayton filed for a patent on a tab mechanism with multiple tab keys numbered 1, 10, 100, etc. Pressing 1 was a simple tab. Pressing 10 advanced to the space before the tab, pressing 100 advanced to the position 2 spaces before the tab.
[4]
Initially tab stops were set by adding and removing clips from the tab rack, but Edward Hess working for the
Royal Typewriter Company
filed for a patent in 1904 covering a system where the tab stops were permanently mounted on the tab bar. To set or reset a tab for a particular column, the tab stop for that column was simply rotated in or out of engagement.
[5]
In 1940, James Koca filed for a patent on a mechanism allowing the tab stops for each column to be set and cleared from the keyboard, eliminating the need for the typist to bend over the back of the machine to directly manipulate the tab rack.
[6]
These keys, if present, are typically labeled
tab set
and
tab clear
.
Modern usage
[
edit
]
In
word processing
and
text editing
, the Tab key will move the insertion point to the next tab stop in a table, insert the ASCII tab character, or insert multiple space characters (depending on the program used).
When filling out a computerized form, pressing Tab will sometimes move the cursor to the next
field
(and Shift-Tab will move the cursor to the previous field), eliminating the need to use a mouse to click in an adjacent field.
In many graphical applications, especially on
Windows
, the Tab key will move the
focus
to
every
control or widget
such as buttons so that the user interface can be used without a mouse at all (this was part of the
IBM Common User Access
design). On
macOS
, this is an option called "Full Keyboard Access".
A feature called
tab completion
can be used to complete a partially typed piece of text. For example, in some
command-line interfaces
, you may type the first few characters of a command or file-name, then press Tab. If there is no ambiguity about your intent, the rest of the characters will appear automatically. On some systems, even if your input is ambiguous, tab completion may give you a list of possible options to select from. Tab completion is more common on
Linux
,
Unix
, and
Unix-like
systems than
Windows
.
In
PC
video games
, the Tab key is very often used to show scores in multiplayer games. For single player games it is also used to show the world map or the player's inventory, as well as other useful info.
In
software engineering
, when developing computer programs or storing and manipulating data in files, the Tab character is often used for indentation purposes to help guide the flow of reading and add semantic structure to the code or data. Some programmers and programming languages prefer the usage of multiple whitespace characters instead for that purpose. Because of this, many text editors have an option that makes the tab key insert the number of whitespace characters that a tab character is set to be equivalent to (by default mostly four).
Tab characters
[
edit
]
The most known and common tab is a
horizontal tabulation
(HT) or
character tabulation
, which in
ASCII
has the decimal character code of 9, and may be referred to as
Ctrl
+
I
or
^I
. In
C
and many other
programming languages
the
escape sequence
\t
can be used to put this character into a
string literal
. The horizontal tab is usually inserted when the Tab key on a standard keyboard is pressed.
A
vertical tabulation
(VT) also exists and has ASCII decimal character code 11 (
Ctrl
+
K
or
^K
), escape character
\v
.
In
EBCDIC
the code for HT is 5. VT is 11 (coincidentally the same as in ASCII).
Originally, printer mechanisms used mechanical tab stops to indicate where the tabs went. This was done horizontally with movable metal prongs in a row, and vertically with a
loop of mylar or other tape the length of a page with holes punched in it
to indicate the tab stops. These were manually set to match the pre-printed forms that were loaded into the printer. In practice, settable tab stops were rather quickly replaced with fixed tab stops,
de facto
standardized at every multiple of eight characters horizontally, and every six lines vertically. A printing program could send zero or more tabs to get to the closest tab stop above and left of where it wanted to print, then send line feeds and spaces to get to the final location. Tab characters simply became a form of data compression.
Despite the fact that five characters were the typical paragraph indentation on typewriters at that time, the horizontal tab size of eight evolved because as a power of two it was easier to calculate with the limited digital electronics available.
[
citation needed
]
Using this size tab to indent code results in much white space on the left, so most text editors for code, such as
IDEs
, allow the size of the tab to be changed, and some (in particular on Windows) default to four instead of eight. Disagreements between programmers about
what size tabs are correct
, and whether to use tabs at all, are common.
[7]
Modern text editors usually have the Tab key insert the user-defined indentation and may use heuristics to adapt this behavior to existing files.
ISO 6429
includes the codes 136 (Horizontal Tabulation Set), 137 (Horizontal Tabulation with Justification) and 138 (Vertical Tabulation Set) that were intended to allow the program to set and clear tab stops.
[
dubious
–
discuss
]
This is rarely used or supported.
Tab-separated values
[
edit
]
Tab-separated values
(TSV) are used for exporting and importing database or spreadsheet field values. Text divided into fields delimited by tabs can often be pasted into a
word processor
and formatted into a table with a single command. For example, in Microsoft Word 2010, Insert > Table > Convert Text to Table... is the necessary command, producing a dialog where the user selects further details.
The TSV convention for exporting data may be compared to the alternative
comma-separated values
(CSV) convention (that may be using semicolons instead of commas), and both are easily converted into each other.
Gopher menus
use tab-separated values to indicate selectors.
TSV has also been cited in a modern approach to solving the programming debate regarding the use of tabs and spaces for code alignment called
elastic tabstops
.
[8]
This idea uses a scheme called tab-separated columns (TSC) rather than the similar tab-separated values (TSV).
HTML
[
edit
]
In
HTML
the horizontal tab is coded using
	
or
	
[9]
[10]
but as with all whitespace characters in HTML, this will be displayed as a single space except inside
<pre>
,
<code>
tags (or other elements with
CSS
attribute
white-space
set to
pre
).
Here is an example:
- HTML
	
This line begins with a single tab.
Here
	
are
	
some
	
more
	
tab
	
characters
	
!
T.......T.......T.......T.......T.......T.......T.......T
- Inside
<pre>
This line begins with a single tab.
Here are some more tab characters !
T.......T.......T.......T.......T.......T.......T.......T
- Outside
<pre>
This line begins with a single tab.
Here are some more tab characters !
T.......T.......T.......T.......T.......T.......T.......T
Notice that the tab at the start of a line is removed outside
<pre>
, the eight-character spacing, and how a tab stop is skipped if there are more than eight characters since last one.
CSS3 defines
tab-size
property, which adjusts the number of spaces for the tab character from the default of eight.
[11]
The latest version of
WebKit
supports the
tab-size
property. The
Opera
web browser supports the
-o-tab-size
CSS property, the
Firefox
web browser supports the
-moz-tab-size
CSS property with the same meaning.
[12]
The vertical tab is

but is not allowed in
SGML
[
citation needed
]
; this includes
XML
1.0
[13]
and HTML.
Unicode
[
edit
]
The
Unicode
code points for the (horizontal) tab character, and the more rarely used vertical tab character are copied from
ASCII
:
[14]
- U+0009
<control-0009>
(CHARACTER TABULATION, horizontal tabulation (HT), tab)
- U+000B
<control-000B>
(LINE TABULATION, vertical tabulation (VT))
The tab characters can be graphically represented by
special symbols
:
- U+2409
␉
SYMBOL FOR HORIZONTAL TABULATION
- U+240B
␋
SYMBOL FOR VERTICAL TABULATION
Unicode also has characters for the symbols to represent or be printed on the tab key:
[15]
- U+21B9
↹
LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
(tab with shift tab)
- U+21C6
⇆
LEFTWARDS ARROW OVER RIGHTWARDS ARROW
- U+21E4
⇤
LEFTWARDS ARROW TO BAR
(leftward tab)
- U+21E5
⇥
RIGHTWARDS ARROW TO BAR
(rightward tab)
Unicode provides additional characters for tab symbols with triangle-headed arrow:
[16]
- U+2B70
⭰
LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
(left tab)
- U+2B71
⭱
UPWARDS TRIANGLE-HEADED ARROW TO BAR
(up tab)
- U+2B72
⭲
RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
(right tab)
- U+2B73
⭳
DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
(down tab)
- U+2B7E
⭾
HORIZONTAL TAB KEY
- U+2B7F
⭿
VERTICAL TAB KEY
See also
[
edit
]
References
[
edit
]
- ^
"Underwood Portable Typewriter Gallery"
. Archived from
the original
on 2011-02-22
. Retrieved
2011-04-09
.
- ^
"Instructions for Using the Underwood Typewriter"
(PDF)
. Retrieved
2011-04-09
.
- ^
Fredric W. Hillard, Type-writing machine,
U.S. patent 720,520
, granted Feb. 10, 1903.
- ^
Harry S. Dukes and William H. Clayton, Tabulating mechanism for type-writing machines,
U.S. patent 908,221
, granted Dec. 29, 1908.
- ^
Edward B. Hess, Writing Machine,
U.S. patent 931,305
, granted Aug. 17. 1909.
- ^
James F. Koca, Typewriter stop mechanism,
U.S. patent 2,358,517
, granted Sep. 19, 1944.
- ^
"Tabs versus Spaces"
.
www.jwz.org
. Retrieved
2020-06-02
.
- ^
Gravgaard, Nick.
"Elastic tabstops - a better way to indent and align code"
.
nickgravgaard.com
. Retrieved
23 March
2018
.
- ^
See
Character encodings in HTML#HTML character references
- ^
"Character Entity Reference Chart"
.
dev.w3.org
. Retrieved
23 March
2018
.
- ^
"CSS 3 tab-size property W3 specification"
.
- ^
"CSS tab-size property on Mozilla Developer Network"
. 21 February 2023.
- ^
"Extensible Markup Language (XML) 1.0"
(5th ed.).
W3C
. 26 November 2008. sec. "Charsets".
- ^
"C0 Controls and Basic Latin"
(PDF)
. Retrieved
2013-12-13
.
- ^
"Arrows ? Unicode"
(PDF)
. Retrieved
2013-12-13
.
- ^
"Miscellaneous Symbols and Arrows ? Unicode"
(PDF)
. Retrieved
2023-08-31
.