A text box (input box), text field (input field) or text entry box is a graphical control element intended to enable the user to input text information to be used by the program. Human Interface Guidelines recommend a single-line text box when only one line of input is required, and a multi-line text box only if more than one line of input may be required. Non-editable text boxes can serve the purpose of simply displaying text.
A typical text box is a rectangle of any size, possibly with a border that separates the text box from the rest of the interface. Text boxes may contain zero, one, or two scrollbars. Text boxes usually display a text cursor (commonly a blinking vertical line), indicating the current region of text being edited. It is common for the mouse cursor to change its shape when it hovers over a text box.
Typical implementations allow a user to do the following:
- Type in text using a keyboard
- When keys are pressed, the text appears where the caret is. Some very simple text boxes may not show a caret, which would suggest that new characters typed in will appear at the end of the current text.
- Navigate and select portions of text
- Using a mouse:
- Change the caret position by clicking the desired point with a mouse cursor;
- Select a portion of text by pressing the main mouse button while pointing the cursor at one end of the desired part of the text and dragging the cursor to the other end while holding the button pressed.
- Using the keyboard:
- Pressing arrow keys changes caret position by one character or line (in multiline text boxes);
- Pressing Home / End keys (Microsoft's Windows OS) or Command-left arrow / Command-right arrow (Apple's Mac OS) moves the caret to the beginning / end of the line;
- Pressing Page Up / Down moves the caret a page (the number of lines that can be displayed in the text box at a time) backward / forward (Windows) or moves the scrollbar thumb a page backward / forward without changing the caret position (Mac OS);
- Holding the Ctrl key (Windows) while pressing arrow keys or Home / End keys makes the caret move at larger steps, e.g. words, paragraphs or beginning / end of document;
- Holding the Option key (Mac OS) while pressing arrows moves the caret whole words or paragraphs;
- Holding the Command key while pressing up or down arrows (Mac OS) or Holding the Ctrl key while pressing home / end (Windows) moves the caret to the beginning or end of the document;
- Holding the shift key while changing the caret position with a mouse or keyboard selects the text between the caret position from when shift was first pressed and its current position.
- Pressing Control-A|Ctrl+A (Windows) selects all text.
- Using a mouse:
- Edit the text (enable changing the text already entered)
- Work in insert or overwrite mode, typically switched using Insert key. In insert mode if there is a character to the right of the caret, the new character will be inserted before it, while in overwrite mode typing a new character will replace (overwrite) the character to the right of the caret position.
- Typing in a text while some part of the text already entered is selected will replace the selected text.
- Delete / Backspace keys remove one character right / left of current caret position, while pressing them together with the Ctrl or command key removes one word.
- Edit the text using standard clipboard operations.
- Undo / Redo changes with Ctrl+Z / Ctrl+Y (Windows) or command-Z / command-shift-Z (Mac OS)
The keys indicated relate to the text box widgets in Microsoft Windows and Mac OS X; similar if not identical keyboard bindings exist under the X Window System and other systems, and typically follow the same scheme as Windows.