Are frames accessible?

HTML (HyperText Markup Language) frames are occasionally used to organize a web page by assembling at least two other web pages into a shared visual space. The strongest arguments against using frames have more to do with usability than accessibility. For example, frames reduce the amount of usable space on a page, they make it difficult or impossible for users to link directly to or bookmark a specific page within a frameset, and they often prevent users' Back buttons from working as expected.

As for accessibility, frames are not in and of themselves inaccessible. Keyboard users and assistive technology users are able to navigate among the various frames that compose a frames page. However, frames do present additional usability challenges that are unique to users with disabilities, particularly those who use screen readers.

Often in a frames interface, a user's selection of a link in one frame changes the content in another frame. A sighted user might recognize this change visually, whereas screen reader users receive no indication that a change has occurred. Therefore, in order for this interface to be usable by screen reader users, they must be provided with clear instructions as to what to expect, including where to find the updated content. Screen reader users can switch back and forth between frames, but they must know which frames to switch to in order to find the content they're seeking.

Maximum usability of frames for screen reader users also requires that each frame has a meaningful title that speaks to its function. Each frame is titled in the definition of the frameset, by the defining of a TITLE attribute for each frame. "Navigation" and "Content" are two common examples of frame titles that work well for screen reader users. In contrast, frame titles like "FrameA" and "FrameB" or "Left Frame" and "Right Frame" should be avoided, because they do not communicate frame function and are of little or no use to screen reader users. In addition to the TITLE attribute, a NAME and ID attribute are required as this is how code in the HTML page refers to a frame.

Some users may be unable to view frames because of limitations of their browsers or assistive technologies or because they've chosen to disable frames. For these individuals, content should be made available via the <noframes> element. This element has often been misused as a means of simply informing users that they don't have access to the content of the page. However, when used appropriately, <noframes> allows web authors to describe the contents of the frames and provide links to individual frame pages or other pages where users can access site contents.