Dynamic Keyboard is a free software program that provides a reduced target on-screen keyboard with word prediction.
The keyboard is difficult to explain in words but it offers a simple interface to enter text using reduced keys on the screen. Watching a video is a better way to understand how it works, Dynamic Keyboard can be seen below in use by an typist using the (also free) myEye eye gaze tracking program. Other access methods include Intellikeys, a mouse or mouse emulator, joystick, track ball and head tracking. I had excellent success using it with the free head tracking program Camera Mouse.