# Input method

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Input_method
> Markdown URL: https://mediated.wiki/source/Input_method.md
> Source: https://en.wikipedia.org/wiki/Input_method
> Source revision: 1349534428
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Method for generating non-native characters on devices

An animation shows how an input method produces [Korean texts](/source/Korean_language_and_computers).

An **input method** (or **input method editor**, commonly abbreviated **IME**) is an [operating system](/source/Operating_system) component or program that enables users to generate characters not natively available on their [input devices](/source/Input_device) by using sequences of characters (or mouse operations) that are available to them. Using an input method is usually necessary for languages that have more [graphemes](/source/Grapheme) than there are keys on the keyboard.

For instance, on the computer, this allows the user of [Latin](/source/Latin_alphabet) [keyboards](/source/Keyboard_layout) to input [Chinese](/source/Chinese_characters), [Japanese](/source/Japanese_writing_system), [Korean](/source/Hangul) and [Indic](/source/Indic_script) characters. On hand-held devices, it enables the user to type on the [numeric keypad](/source/Telephone_keypad) to enter [Latin alphabet characters](/source/Latin_alphabet) (or any other alphabet characters) or touch a screen display to input text. On some operating systems, an input method is also used to define the behavior of the [dead keys](/source/Dead_key).

## Implementations

This section needs expansion. You can help by adding missing information. (January 2011)

Screenshot of [Swarachakra](/source/Swarachakra), an input method producing [Indic scripts](/source/Indic_scripts)

Although originally coined for [CJK](/source/CJK) (Chinese, Japanese and Korean) computing, the term is now sometimes used generically to refer to a program to support the input of any language. To illustrate, in the [X Window System](/source/X_Window_System), the facility to allow the input of [Latin characters](/source/Latin_character) with [diacritics](/source/Diacritic) is also called an input method.

On [Windows XP](/source/Windows_XP) or later [Windows](/source/Microsoft_Windows), Input method, or IME, are also called *Text Input Processor*, which are implemented by the [Text Services Framework](/source/Text_Services_Framework) [API](/source/API).

## Relationship between the methodology and implementation

While the term *input method editor* was originally used for [Microsoft Windows](/source/Microsoft_Windows#Multilingual_support), its use has now gained acceptance in other operating systems[*[citation needed](https://en.wikipedia.org/wiki/Wikipedia:Citation_needed)*], especially when it is important to distinguish between the [computer interface](/source/Interface_(computer_science)) and implementation of input methods, or among the input methods themselves, the editing functionality of the program or operating system component providing the input method, and the general support of input methods in an operating system. This term has, for example, gained general acceptance on the Linux operating system and [Android](/source/Android_(operating_system));[1] it is also used on [macOS](/source/MacOS).[2]

- The term *input method* generally refers to a particular way to use the keyboard to input a particular language, for example the [Cangjie method](/source/Cangjie_method), the [pinyin method](/source/Pinyin_method), or the use of [dead keys](/source/Dead_key).

- On the other hand, the term *input method editor* on Microsoft products refers to the program that allows an input method to be used (for example MS New Pinyin), or the *editing area* that allows the user to do the input. It can also refer to a character palette, which allows any Unicode character to be input individually.

## See also

- [CJK characters](/source/CJK_characters) – Logographs in shared East Asian written tradition

- [Internationalization and localization](/source/Internationalization_and_localization) – Process of making software accessible worldwide

- [Unicode input#Techniques](/source/Unicode_input#Techniques) – Input characters using their Unicode code points

### Related techniques

- [Alt codes](/source/Alt_codes) – Input methodPages displaying short descriptions of redirect targets

- [Handwriting recognition](/source/Handwriting_recognition) – Ability of a computer to receive and interpret intelligible handwritten input

- [Keyboard layout](/source/Keyboard_layout) – Arrangement of keys on a typographic keyboard, in particular *[dead keys](/source/Dead_keys)*

### Input methods versus language

- [Chinese input method](/source/Chinese_input_method)

- [Japanese language and computers](/source/Japanese_language_and_computers) - [Japanese input method](/source/Japanese_input_method) – Methods used to input Japanese characters on a computer

- [Korean language and computers](/source/Korean_language_and_computers)

- [Vietnamese language and computers](/source/Vietnamese_language_and_computers)

- [Indic scripts input methods in Wikipedia](https://en.wikipedia.org/wiki/Help:Multilingual_support_(Indic)) for languages used in South Asia, Southeast Asia, and parts of Central Asia and East Asia.

### Specific input methods

- [List of input methods for Unix platforms](/source/List_of_input_methods_for_Unix_platforms)

- [ATOK](/source/ATOK) – Proprietary Japanese input method editor

- [Microsoft Windows#Multilingual support](/source/Microsoft_Windows#Multilingual_support) – Computer operating system MS IME for Windows

- [Tise](/source/Tise) – Tibetan input method editor for Windows

- [Wnn](/source/Wnn) – Japanese text input system

### Input methods for handheld devices

- [Multi-tap](/source/Multi-tap) – Text entry system for mobile phones —Used on many mobile telephones—hit the (combined alphanumeric) key for the letter you want until it comes up, then wait or proceed with a different key.

- [T9](/source/T9_(predictive_text)) – Mobile phone technology/[XT9](/source/XT9)—Type the key for every letter once, then, if needed, type Next until the right word comes up. May also correct misspellings and regional typos (if an adjacent key is pressed incorrectly).

- [iTap](/source/ITap) – Predictive text system —Similar to first-generation T9, with word [autocomplete](/source/Autocomplete).

- [LetterWise](/source/LetterWise) – Patented predictive text entry systems—Hit the key with the letter you want, if it doesn't come up, hit Next until it does.

- [FITALY](/source/FITALY) – Keyboard layout for stylus or touch input (An array, almost square, which minimizes distance travelled from one letter to another.)

- [MessagEase](/source/MessagEase), an input method optimized for the most common letters, that can enter hundreds of characters with single hand motions

- [8pen](https://en.wikipedia.org/w/index.php?title=8pen&action=edit&redlink=1), an input method using circular swipes in an attempt to mimic hand movements

- [Graffiti](/source/Graffiti_(Palm_OS)), the Palm OS input method, entered using a stylus

- [Pouces](https://en.wikipedia.org/w/index.php?title=Pouces&action=edit&redlink=1), an input method using touches and swipes

### Virtual keyboards

Main article: [Virtual keyboard](/source/Virtual_keyboard)

- [Fleksy](/source/Fleksy)—Eyes-free touch typing for touchscreen devices, also used by blind / visually impaired people.[3]

- [SwiftKey](/source/SwiftKey)—context-sensitive word-prediction[4][5]

- [Swype](/source/Swype) – Virtual keyboard application, an input method that uses swiping gestures instead of tapping to quickly enter text

- [Gboard](/source/Gboard) – Virtual keyboard app for Android and iOS, the keyboard that comes bundled with the Android operating system

## References

1. **[^](#cite_ref-1)** ["Create an input method | Views"](https://developer.android.com/develop/ui/views/touch-and-input/creating-input-method). *Android Developers*. Retrieved 2025-03-09.

1. **[^](#cite_ref-2)** ["InputMethodKit"](https://developer.apple.com/documentation/inputmethodkit). *Apple Developer Documentation*. Retrieved 2025-03-09.

1. **[^](#cite_ref-3)** Meddaugh, Jason (2013-02-01), [*2012: A Technology Year in Review*](https://web.archive.org/web/20210211165921/https://afb.org/aw/14/2/15840), US: American Foundation for the Blind, archived from [the original](http://www.afb.org/afbpress/pub.asp?DocID=aw140203) on 2021-02-11, retrieved 2013-02-25, Our top story of 2012 involves a formerly little-known app called Fleksy and its rise toward prominence and mainstream acceptance.

1. **[^](#cite_ref-4)** Fiedlerová, Klára (2012-05-10), [*Possibilities of Text Input for Handicapped People*](https://web.archive.org/web/20171014075957/https://dip.felk.cvut.cz/browse/pdfcache/fiedlkla_2012dipl.pdf) (PDF), Prague: Czech Technical University in Prague, p. 15, archived from [the original](https://dip.felk.cvut.cz/browse/pdfcache/fiedlkla_2012dipl.pdf) (PDF) on 2017-10-14, retrieved 2012-08-01, Word prediction is used to speed up the text entry. The prediction system uses the context of the sentence to predict three words that could be used next.

1. **[^](#cite_ref-5)** ["For phones - SwiftKey"](http://www.swiftkey.com). *SwiftKey*. TouchType. Retrieved 2016-10-21.

## External links

Wikimedia Commons has media related to [Input Methods](https://commons.wikimedia.org/wiki/Category:Input_Methods).

- [Microsoft Input Method Editors (IMEs) for Chinese, Japanese and Korean](http://www.microsoft.com/en-US/download/details.aspx?id=30390)

- [BhashaIndia](http://www.bhashaindia.com/), the Microsoft portal for Indic languages, which has Indic IME for download.

- [Google Transliteration IMEs](http://www.google.com/ime/transliteration)

v t e Input method By operating system Windows Input Method Manager (IMM32) Text Services Framework (TSF) Unix-like Fcitx Intelligent Input Bus (IBus) Internet/Intranet Input Method Framework (IIIMF) Maliit Smart Common Input Method (SCIM) uim X Input Method (XIM) more… Other Google Input Tools OpenVanilla Conversion Japanese Anthy ATOK Google Japanese Input Kotoeri Wnn Chinese Array Biaoxingma Boshiamy Cangjie (Simplified / Express) CKC Dayi Pinyin Google Microsoft Sogou Stroke count Wubi (Wang Ma) ZhengMa Korean Google Korean Input imhangul Nabi Microsoft Korean IME Nalgaeset Vietnamese VPSKeys WinVNKey UniKey Vietkey Indian Bobble Meitei input methods

v t e Microsoft APIs and frameworks Graphics and UI Desktop Window Manager Direct2D Direct3D D3D (extensions) GDI / GDI+ WPF Silverlight WinUI Windows Color System Windows Image Acquisition Windows Imaging Component DirectX Graphics Infrastructure (DXGI) Windows Advanced Rasterization Platform WinG Audio DirectMusic DirectSound XACT Speech API XAudio2 Multimedia DirectX Media Objects Video Acceleration Xinput DirectInput DirectShow Managed DirectX Media Foundation XNA Windows Media Video for Windows Web MSHTML JScript VBScript BHO XDR SideBar Gadgets TypeScript Data access Data Access Components (MDAC) ADO ADO.NET ODBC OLE DB Extensible Storage Engine Entity Framework Sync Framework Access Database Engine MSXML OPC Networking Winsock LSP Winsock Kernel Filtering Platform NDIS Windows Rally BITS P2P API MSMQ DirectPlay Communication Messaging API Telephony API WCF Administration and management Win32 console Windows Script Host WMI (extensions) PowerShell Task Scheduler Offline Files Shadow Copy Windows Installer Error Reporting Event Log Common Log File System Component model COM COM+ ActiveX Distributed Component Object Model .NET Framework Libraries Framework Class Library Microsoft Foundation Classes (MFC) Active Template Library (ATL) Windows Template Library (WTL) Device drivers WDM WDF KMDF UMDF WDDM NDIS UAA VxD Security Crypto API CAPICOM Windows CardSpace Data Protection API Security Support Provider Interface (SSPI) .NET ASP.NET ADO.NET Remoting Silverlight TPL WCF WCS WPF WF Software factories Enterprise Library CCF IPC MSRPC Dynamic Data Exchange (DDE) Remoting WCF Accessibility Active Accessibility UI Automation Text and multilingual support DirectWrite Text Services Framework Text Object Model Input method editor Language Interface Pack Multilingual User Interface Uniscribe

---
Adapted from the Wikipedia article [Input method](https://en.wikipedia.org/wiki/Input_method) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Input_method?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
