Focus refers to the place in an application where user interaction takes place. Properly maintained focus allows users to know where they are in an application and what the next keystroke will do.
Keyboard focus refers to the ability to access and appropriately interact with elements on the screen from the keyboard.
Visual focus refers to a visual cue (such as a yellow rectangle or cursor) that indicates where the next user interaction will take place.
Programmatic focus refers to the programming language that is exposed to assistive technology to indicate where user interaction will take place.