PATENT DOCUMENT

Publication Number: US-8527861-B2
Application Number: US-73529307-A
Country: US
Kind Code: B2

Title: Methods and apparatuses for display and traversing of links in page character array

Abstract:
A method for processing a page character array finds links and creates link groups containing adjacent link characters. Adjacency of link characters is preferably defined as characters which are separated by any combination of no characters, blank space characters, line feed characters, or separator characters, such as vertical or horizontal separator bars or other separator characters. Once link groups have been defined, the method lays out each link group for display in an optimized form. Links are displayed as buttons. An optimized form of display includes centering all the buttons in a vertical list. Another optimized form of display includes laying out the link group as a rectangular matrix of buttons. According to another aspect, each of the links in a link group are logically mapped to a distinct user input, such as a key or voice command. The logical mapping aspect and optimized display aspect are optionally combined for certain types of hardware. For example, if keys are physically adjacent to any part of the display, the links are displayed near the keys, or in horizontal and/or vertical alignment with the keys, so that the key to which a link is mapped is apparent from its position on the display screen. As another example, the name of key or command to which a link is mapped is displayed within or beside the button containing the name of the link.

Claims:
What is claimed is: 
     
       1. A mobile device having a display screen, comprising:
 a processor; and 
 a processor readable storage medium having processor readable program code embodied in said processor readable storage medium, said processor readable program code for programming the device to: 
 find links within a page character array and filter out of the page character array characters which are not links; 
 create one or more link groups each having a plurality of links; 
 lay out each link group for display in optimum form on the display screen of the mobile device at predetermined display screen locations based upon hardware of the mobile device, wherein the predetermined screen locations correspond to discrete user locations; 
 display on the display screen of the mobile device a first portion of the link group layout, wherein the first portion does not include all links of the link group; 
 logically map each of the displayed links of the first portion of the link group to a distinct user input, in which correspondence between links in the link group and keystrokes or voice commands is created; 
 alter the display of the link groups to display a second portion of the link group layout; and 
 logically map each of the displayed links of the second portion of the link group to a distinct user input; 
 wherein the mapping of each of the displayed links of the second portion of the link group does not alter the mapping of the first portion of the link group such that the mapping of links of the first and the second portions of the link group are maintained concurrently. 
 
     
     
       2. A mobile device as in  claim 1 , wherein adjacent link characters comprise link characters separated in the page character array by any combination of: no other characters, blank space characters, line feed characters, and link separator characters. 
     
     
       3. A mobile device as in  claim 1 , wherein the program code lays out links as buttons. 
     
     
       4. A mobile device as in  claim 1 , wherein the program code centers links in a vertical list. 
     
     
       5. A mobile device as in  claim 1 , wherein the program code lays out links in a rectangular matrix. 
     
     
       6. A mobile device as in  claim 1 , wherein the program code
 lays out an indication of a corresponding mapped keystroke along with each link name for each link in the link group. 
 
     
     
       7. A method comprising:
 finding links within a page character array and filter out of the page character array characters which are not links; 
 creating one or more link groups each having a plurality of links; 
 laying out each link group for display in optimum form on the display screen of the mobile device at predetermined display screen locations based upon hardware of the mobile device, wherein the predetermined screen locations correspond to discrete user locations; 
 displaying on the display screen of the mobile device a first portion of the link group layout, wherein the first portion does not include all links of the link group; 
 logically mapping, using one or more processors, each of the displayed links of the first portion of the link group to a distinct user input, in which correspondence between links in the link group and keystrokes or voice commands is created; 
 altering the display of the link groups to display a second portion of the link group layout; and 
 logically mapping each of the displayed links of the second portion of the link group to a distinct user input, 
 wherein the mapping of each of the displayed links of the second portion of the link group does not alter the mapping of the first portion of the link group such that the mapping of links of the first and the second portions of the link group are maintained concurrently. 
 
     
     
       8. The method of  claim 7 , wherein adjacent link characters comprise link characters separated in the page character array by any combination of: no other characters, blank space characters, line feed characters, and link separator characters. 
     
     
       9. The method of  claim 7 , wherein laying out each link group for display includes laying out links as buttons. 
     
     
       10. The method of  claim 7 , wherein laying out each link group for display includes laying out links as centered in a vertical list. 
     
     
       11. The method of  claim 7 , wherein laying out each link group for display includes laying out links in a rectangular matrix. 
     
     
       12. The method of  claim 7 , further comprising:
 laying out an indication of a corresponding mapped keystroke along with each link name for each link in the link group. 
 
     
     
       13. A processor readable storage medium having processor readable program code embodied in the processor readable storage medium, the processor readable program code for programming the device to:
 find links within a page character array and filter out of the page character array characters which are not links; 
 create one or more link groups each having a plurality of links; 
 lay out each link group for display in optimum form on the display screen of the mobile device at predetermined display screen locations based upon hardware of the mobile device, wherein the predetermined screen locations correspond to discrete user locations; 
 display on the display screen of the mobile device a first portion of the link group layout, wherein the first portion does not include all links of the link group; 
 logically map each of the displayed links of the first portion of the link group to a distinct user input, in which correspondence between links in the link group and keystrokes or voice commands is created; 
 alter the display of the link groups to display a second portion of the link group layout; and 
 logically map each of the displayed links of the second portion of the link group to a distinct user input; 
 wherein the mapping of each of the displayed links of the second portion of the link group does not alter the mapping of the first portion of the link group such that the mapping of links of the first and the second portions of the link group are maintained concurrently.

Description:
CLAIM OF PRIORITY 
     This application is a continuation of U.S. patent application Ser. No. 10/443,683, filed May 22, 2003, now abandoned, which is a continuation of U.S. patent application Ser. No. 09/374,223, filed Aug. 13, 1999, abandoned. 
    
    
     CROSS REFERENCE TO RELATED PATENT 
     The following U.S. patent is assigned to the assignee of the present application, and its disclosure is incorporated herein by reference: 
     U.S. Pat. No. 6,547,830, issued Apr. 15, 2003, by Paul Mercer and entitled, “METHOD AND ARTICLE OF MANUFACTURE FOR MAXIMIZING THE AMOUNT OF TEXT DISPLAYED.” 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention pertains to the field of browsers for displaying page character arrays, such as HTML web pages, which have link characters representing links to other page character arrays. Specifically, the present invention pertains to the field of small display devices, such as cellular telephones. 
     2. Discussion of the Related Art 
     Many devices, such as handheld devices, have relatively small displays for providing information to users. Typically, handheld devices are designed to be mobile, lightweight, and small, which necessitates a relatively small display. A cellular telephone is an example of a handheld device having a small display. The cellular telephone&#39;s small display provides only enough space for a few lines of text which may include a name and a telephone number. Large amounts of text are not easily provided on a small display. 
     Moreover, users of handheld devices may require more information than can be easily provided on a small display. A typical user may want to have information that requires extensive text such as weather forecasts, driving directions, or stock updates. This type of information generally requires numerous lines of text that may not fit on a small display. For example, a user may desire to access an internet page having a variety of fonts identifying links or other usable information. Large amounts of information may be obtained from remote locations, such as servers on the internet, which are accessible by a handheld device, but the amount of information provided to a user is limited by the small display of the handheld device. 
     The content of internet web pages is specified by page character arrays containing, for example, HTML (Hyper Text Markup Language) code or another descriptor language&#39;s code, such as HDML, WML, SGML, or XML. Any device, such as a browser, attempting to display web pages must be able to interpret the codes in the page character arrays that describe the web pages. A link character is a type of character in page character array describing a web page that represents a pointer to another web page specified by another page character array. 
     Conventional browsers display link characters in page character arrays as blue underlined text. Groups of links are conventionally constructed of link characters separated by separator bars and/or blank spaces. Conventional browsers make no attempt to optimize the display of groups of links based upon the display size or hardware configuration of the machine running the browser. In other words, aside from underlining the links and coloring them blue, a conventional browser makes no other decisions about how to display a link. Links may be interspersed with text, graphics, and other links; the placement of the link on the display depends upon the surrounding context. 
     Frequently, web pages include “link bars” which are a series of several links placed adjacently or in close proximity to one another. The links in the link bars are sometimes separated by vertical bars, placed on separate lines, or include blank spaces between them. Conventionally, there is no explicit indication in the page character array that a series of links are associated to one another. As a consequence of this fact, a series of links may be intended to fit on a single line by the author of the web page. However, when the page is accessed by a small screen device, all the links can not fit on a single line due to the limited width of the display. This results in a confusing and visually displeasing result on the small screen device. 
     Furthermore, conventional browsers make no attempt to provide a mechanism, other than cursor pointing and clicking, by which the user can select a link in a web page so that another web page can be retrieved. Small screen devices, such as cellular phones, typically do not have mouses or cursor pointing and clicking capability. 
     As is apparent from the above discussion, a need exists for an acceptable and visually pleasing way to display of groups of links for small screen displays. A need also exists for the provision of a link selection mechanism for machines which do not have cursor pointing and clicking capabilities. 
     SUMMARY OF THE INVENTION 
     Conventional browsers display link characters in page character arrays as blue underlined text. Groups of links are conventionally constructed of link characters separated by separator bars and/or blank spaces. Conventional browsers make no attempt to optimize the display of groups of links based upon the display size or hardware configuration of the machine running the browser. Conventional browsers make no attempt to provide a mechanism, other than cursor pointing and clicking, by which the user can select a link. An object of the present invention is to optimize the display of groups of links for small screen displays. Another object of the present invention is to provide an efficient link selection mechanism for machines which do not have cursor pointing and clicking capabilities. 
     According to an aspect of the present invention, a method for processing a page character array finds links and creates link groups containing adjacent link characters. Adjacency of link characters is preferably defined as characters which are separated by any combination of no characters, blank space characters, line feed characters, or separator characters, such as vertical or horizontal separator bars or other separator characters. By filtering out line feeds, links which would conventionally be displayed as vertical link lists are detected and grouped as link groups for optimized display according to the present invention. 
     Once link groups have been defined, the method lays out each link group for display in an optimized form. In the preferred embodiment of the present invention, links are displayed as buttons. An optimized form of display according to the present invention includes centering all the buttons in a vertical list. Another optimized form of display according to the present invention includes laying out the link group as a rectangular matrix of buttons. 
     According to another aspect of the present invention, each of the links in a link group is logically mapped to a distinct user input. For example, if a link group consists of nine links, then each of the links is mapped to one of the nine keys 1 through 9. If the link group is currently being displayed, then by pressing any of the keys 1 through 9, the machine traverses the corresponding link. As another example, in a machine with a microphone, each of the links is mapped to a specific voice command. This voice command mapping is alternatively coupled with the keystroke mapping. Thus, the user either presses the 3 key or says the word “three” to instruct the machine to traverse the third link in a link group. The logical mapping of links to a distinct user input provides a mechanism for selecting the link which was not specified by the page character array, but rather which is intelligently instantiated according to the present invention. 
     The logical mapping aspect and optimized display aspect of the present invention are optionally combined for certain types of hardware. For example, in a cellular telephone having keys 1 through 9 physically configured in a standard three-by-three telephone keypad matrix, the links are laid out on the display screen in a three-by-three rectangular matrix such that the upper left link corresponds to the key 1 and the lower right link corresponds to the key 9. As another example, if keys are physically adjacent to any part of the display, the links are displayed near the keys, or in horizontal and/or vertical alignment with the keys, so that the key to which a link is mapped is apparent from its position on the display screen. As yet another example, the name of key or command to which a link is mapped is displayed within or beside the button containing the name of the link; thus, additional information not specified in the page character array is interjected into the display according to the present invention to facilitate link selection. 
     These and other features, aspects, and advantages of the present invention are fully described in the Detailed Description of the Invention, which discusses the Figures in narrative form. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1A  illustrates a cellular telephone having software according to an embodiment of the present invention. 
         FIG. 1B  illustrates a block diagram of a device according to an embodiment of the present invention. 
         FIG. 2  illustrates a software and hardware block layer diagram according to an embodiment of the present invention. 
         FIG. 3  illustrates a page character array used as input to the methods according to the present invention. 
         FIG. 4  illustrates a conventional browser&#39;s display screen appearance after displaying the page character array shown in  FIG. 3 . 
         FIG. 5  illustrates a method of processing a page character array according to the present invention. 
         FIG. 6  illustrates a display screen appearance after displaying the page character array shown in  FIG. 3  using a method according to the present invention shown in  FIGS. 5 and 13 . 
         FIG. 7  illustrates an input device to link correspondence table generated by a method according to the present invention shown in  FIGS. 5 and 15  for the page character array shown in  FIG. 3  and the display screen appearance shown in  FIG. 6 . 
         FIG. 8  illustrates a method of implementing the step shown in  FIG. 5  of finding links and creating link groups according to the present invention. 
         FIG. 9  illustrates a continuation of the page character array shown in  FIG. 3  used as input to the methods according to the present invention. 
         FIG. 10A  illustrates a link group extracted from the page character array shown in  FIG. 3  by a method according to the present invention shown in  FIG. 8 . 
         FIG. 10B  illustrates another link group extracted from the page character array shown in  FIGS. 3 and 9  by a method according to the present invention shown in  FIG. 8 . 
         FIG. 11  illustrates an intermediate page character array generated from the page character array shown in  FIGS. 3 and 9  by a method according to the present invention shown in  FIG. 8 . 
         FIG. 12  illustrates a conventional browser&#39;s display screen appearance after displaying the page character array shown in  FIG. 9 . 
         FIG. 13  illustrates a method of implementing the step shown in  FIG. 5  of laying out link groups for a display screen in an optimized form according to the present invention. 
         FIG. 14  illustrates a display screen appearance after displaying the page character array shown in  FIG. 9  using a method according to the present invention shown in  FIGS. 5 and 13 . 
         FIG. 15  illustrates a method of implementing the step shown in  FIG. 5  of logically mapping link groups to the distinct user input according to the present invention. 
         FIG. 16  illustrates a display screen appearance in relation to input device keys after displaying the page character array shown in  FIG. 3  using a method according to the present invention shown in  FIGS. 5 and 13 . 
         FIG. 17  illustrates an input device to link correspondence table generated by a method according to the present invention shown in  FIGS. 5 and 15  for the page character array shown in  FIG. 3  and the display screen appearance shown in  FIG. 16 . 
         FIG. 18  illustrates a display screen appearance after displaying the page character array shown in  FIG. 3  using a method according to the present invention shown in  FIGS. 5 and 15 . 
     
    
    
     The Figures are more fully described in narrative form in the Detailed Description of the Invention. In the Figures, like method steps are labeled with like reference numerals. 
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1A  illustrates a device having a small display according to an embodiment of the present invention. In an embodiment, the device may be a handheld device. In particular,  FIG. 1A  illustrates a cellular telephone  1  having a small display  15 . Cellular telephone  1  also includes input device  16  and, in particular, a numeric keypad. Display  15  provides a window  2  having text  3  according to an embodiment of the present invention. An expanded view of window  2  and text  3  is illustrated in  FIG. 3  and described below. Cellular telephone  1  has wireless access to the world-wide-web (“www”) or internet  18  and/or may optionally be connected to other data networks such as the Wireless Access Protocol (“WAP”). 
     While a cellular telephone embodiment of the present invention is illustrated in  FIG. 1A , one of ordinary skill in the art would appreciate that many other embodiments of the present invention fall within the scope of the appended claims. For example, embodiments of the present invention may include pagers, palm top computers, personal digital assistants (“PDA”), digital video device (“DVD”) players, digital cameras, printers, or an equivalent thereof. Generally, an embodiment of the present invention may include any information appliance. An information appliance is any mobile device that is designed to provide users with access to information stored on the device, or to information stored elsewhere when connected to data resources via a wired or wireless connection. 
     According to embodiments of the present invention, cellular telephone  1 , supports wireless protocol communications, including the Global System for Mobile communications (“GSM”), Time Division Multiple Access (“TDMA”), Personal Digital Cellular (“PDC”), Code Division Multiple Access (“CDMA”), W-CDMA, or CDMA-2000. 
       FIG. 1B  illustrates a hardware/software block diagram according to an embodiment of the present invention. A device  17  according to an embodiment of the present invention includes an electronics bus  14  for electrically coupling various device components. Ellipses are shown to identify other software and hardware components that may be present in an embodiment of the present invention. For example, device  17  may be a cellular telephone which has communication software and wireless communication hardware. 
     Processor  10  is coupled to bus  14 . In an embodiment, processor  10  may be an embedded microprocessor such as a Sharp® Microelectronics ARM7 processor, a low power 32 bit reduced instruction set computer (“RISC”) processor. In another embodiment, processor  10  may be a Motorola® 68K Dragonball microprocessor. In alternate embodiments, processor  10  may be a Power PC, MIPS, or X86 processor. 
     Memory  11  is also coupled to bus  14  and stores link group software  12  according to an embodiment of the present invention. In an alternate embodiment, link group software  12  may be stored on persistent storage device such as a magnetic hard disk, a floppy magnetic disk, CD-ROM or other write data storage technology, singly or in combination. Memory  11  can include read-only-memory (“ROM”), ready-access-memory (“RAM”), virtual memory or other memory technology, singly or in combination. In an embodiment, memory  11  is an approximately 50K ROM. 
     Speaker/microphone  17  is also coupled to bus  14  and is used as an audio input/output device in an embodiment of the present invention. Input device  16  is coupled to bus  14 . In an embodiment, input device  16  may be a numeric keypad or a touch sensitive screen. Small display  15  is also coupled to bus  14 . In an embodiment, small display  15  may be a bit map display having a pixel size of 80×60. In alternate embodiments, the small display  15  may have a pixel size up to and including 128×64, 160×240, or 320×240. 
       FIG. 2  illustrates a software and hardware block layer diagram  30  according to an embodiment of the present invention. System software  32  and system hardware  31  are used in connection with application program interface  33  to support a graphical user interface  34  according to an embodiment of the present invention. 
     System software  32  may include a real time operating system software for controlling internal operation of device  17 . System software  32  may also include a web browser for accessing internet  18  over a wired or wireless connection. 
     In an embodiment, graphical user interface  34  is used to provide information and/or text to display  15  on cellular telephone  1  illustrated in  FIG. 1A . Link group software  12  is used in connection with graphical user interface software  34  to provide link group information to a small display  15 . In an embodiment, link group software  12  is able to map a hypertext markup language (“HTML”) page from internet  18  to small display  15  by using link group software  12  which is described below. 
       FIG. 3  illustrates a page character array  300  used as input to the method according to the present invention. The characters  301  through  309  are link characters representing links to page character arrays named A through I, respectively. Characters  310  through  316  represent vertical splitter bars. Characters  317  through  321  represent line feed characters, which are logically equivalent to carriage return characters. Characters  322  through  331  represent text characters. Character  332  represents a blank space. 
     For the purposes of explanation of the present invention, the term “character” refers to a token of the document encoding standard, for example ASCII, UNICODE, HTML, and XML. In other words, a “character” is any string or code that has some defined significance. A link character represents an actionable token, such as retrieving another page character array, or executing an arbitrary computer function such as playing a sound, or initiating a computer transaction. A blank space or line feed character refers to any token which creates white space or a sequence of codes that result in blank space. 
       FIG. 4  illustrates a conventional browser&#39;s display screen appearance after displaying the page character array  300  shown in  FIG. 3 . Specifically, a conventional browser displays links A through I as blue underlined text  401  through  409  which correspond to link characters  301  through  309 , respectively, shown in  FIG. 3 . Vertical splitter bars  410  through  416  illustrated in  FIG. 4  are displayed by a conventional browser as a result of interpretation of vertical splitter characters  310  through  316  shown in  FIG. 3 . The links F, G, H, and I, appear on a lower line than the links A, B, C, D, and E because line feed character  317  advances the display to the subsequent line. Blank space  417  illustrated in  FIG. 4  is a result of the conventional browser&#39;s interpretation of line feed characters  318  and  319 . The text  418  illustrated in  FIG. 4  is a result of the conventional browser&#39;s interpretation of text characters  322  through  332 . Blank space  419  is a result of the conventional browser&#39;s interpretation of line feed characters  320  and  321  shown in  FIG. 3 . As is clearly illustrated by  FIG. 3 , the page character array  300  contains no explicit specification that links A through I are related to each other or are to be displayed in any particular specialized manner because they are related links. 
       FIG. 5  illustrates a method  500  of processing a page character array according to the present invention. The method starts with step  501 . At step  502 , the method finds links and creates link groups (or in other words hyperlink groupings). As will be discussed later, link groups consist of adjacent link characters within the page character array. At step  503 , the method lays out the link groups created in step  502  for display in an optimized form. At step  504 , link groups created in step  502  are logically mapped to a distinct user input, such as the touching of a specific key, or the receipt of a specific voice command. The method  500  is finished at step  505 . It is to be noted that steps  503  and  504  are alternatively optional according to the present invention. In other words, after the link groups are created in step  502 , either an optimized display can be generated according to the present invention in step  503  or a logical mapping of the link groups to a distinct user input can be performed by step  504 . Thus, in alternative embodiments, either step  503  or step  504  is omitted according to the present invention. In the preferred embodiment, however, both steps  503  and  504  are performed according to the present invention. 
       FIG. 6  illustrates a display screen appearance  600  after displaying the page character array shown in  FIG. 3  using a method according to the present invention shown in  FIGS. 5 and 13 . Buttons  601  through  609  are a result of the interpretation of link characters  301  through  309  by the method according to the present invention. The display screen appearance  600  illustrated in  FIG. 6  represents one possible optimized screen display corresponding to a nine link group detected in step  502  and displayed in step  503  as the display screen appearance  600 . There are many other possible screen layouts which may be created in alternative to display screen appearance  600 , as will be described below, according to the present invention. 
       FIG. 7  illustrates an input device to link correspondence table  700  generated by a method according to the present invention shown in  FIGS. 5 and 15  for the page character array  300  shown in  FIG. 3  and the display screen appearance  600  shown in  FIG. 6 . As will be described below, step  504  logically maps each of the keys 1 through 9 to a corresponding one of the links A through I, as illustrated in Table  700 . Thus, when the user strikes one of the keys 1 through 9 while the link group containing links A through I is in the display screen, the link corresponding to the key pressed will be traversed by the method according to the present invention. 
       FIG. 8  illustrates a method of implementing the step shown in  FIG. 5  of finding links and creating link groups according to the present invention. Thus, the method  502  illustrated in  FIG. 8  is an exploded view of the method step  502  shown in  FIG. 5  and represents the presently preferred embodiment for executing the step  502  shown in  FIG. 5 . However, it is to be understood that various additions and modifications to the method  502  shown in  FIG. 8  can be alternatively implemented without departing from the spirit and scope of the present invention. The method starts at step  801  and at step  802  the page character array is accessed. The next character is retrieved from the page character array at step  803 . Test  804  determines if the character retrieved in step  803  is a link. In several page character array description languages, such as HTML, there are several alternative characters which represent links. Test  804  detects all such link characters. If the character retrieved in step  803  is a link, then the method  502  opens a new empty link group at step  805 . At step  806 , the character previously determined by step  804  to be a link is added to the new link group created in step  805 . The next character in the page character array is then retrieved at step  807 . Test  808  determines if the character retrieved by step  807  is a link. If the character is a link then the method reverts to step  806  and that link is added to the current link group which was previously created in step  805 . If the character retrieved in step  807  is not a link, then test  809  determines if the character is a blank space or line feed character. If the character retrieved in step  807  is a blank space or line feed, then the method  502  essentially filters it out of the page character array by advancing back to step  807  to retrieve the next subsequent character. If the character is not a blank space or line feed, then step  810  determines if the character is a link separator character. Link separator characters are alternatively any one of vertical splitter characters, horizontal splitter characters, or other arbitrary characters, such as a plus or minus sign, which are used to separate link characters. If the character is determined to be a link separator by step  810 , it is also essentially filtered out by the method  502  because the method then reverts back to step  807  to retrieve the next subsequent character. However, if the character is not a link separator, then the link group opened in step  805  is closed at step  811 . The method then reverts to step  803  to retrieve the next character in the page character array. If at any point steps  803  or  807  do not detect any more characters in the page character array, then the method is done at step  812  as the page character array has been fully parsed. 
       FIG. 9  illustrates a continuation of the page character array  300  shown in  FIG. 3  used as input to the methods according to the present invention. Characters  901  through  904  represent links, characters  905  through  908  represent blank spaces, and character  909  represents a line feed or carriage return. 
       FIG. 10A  illustrates a link group extracted from the page character array  300  shown in  FIG. 3  by a method  502  according to the present invention shown in  FIG. 8 . Specifically, all of the link characters  301  through  309  illustrated in  FIG. 3  have been grouped into a first link group  1000  containing only the characters representing the links. The vertical splitter characters  310  through  316  as well as the line feed character  317  shown in  FIG. 3  have been filtered out by the method  502 . 
       FIG. 10B  illustrates another link group  1050  extracted from the page character array  900  shown in  FIGS. 3 and 9  by a method  502  according to the present invention shown in  FIG. 8 . Specifically, link characters  901  through  904  have been grouped into a second link group  1050  by the method  502 . Blank space characters  905 - 908  have been filtered out, along with line feed character  909 . 
       FIG. 11  illustrates an intermediate page character array  1100  generated from the page character array shown in  FIGS. 3 and 9  by a method  502  according to the present invention and shown in  FIG. 8 . Specifically, the method  502  has detected the first link group  1000  and second link group  1050  and replaced them with characters  1101  and  1102  representing pointers to the link groups  1000  and  1050 , respectively. The remaining characters and the intermediate page character array  1100  represent characters from the page character array  300  which were not grouped into a link group. 
       FIG. 12  illustrates a conventional browser&#39;s display screen appearance  1200  after displaying the page character array  900  shown in  FIG. 9 . Link characters  901  through  904  are interpreted by a conventional browser and displayed as blue underlined text  1201  through  1204 , respectively. Blank space characters  905  and  906  are interpreted by a conventional browser and create the space  1205  illustrated in  FIG. 12 . Similarly, blank space characters  907  and  908  correspond to space  1206  illustrated in  FIG. 12 . Line feed character  909  is interpreted by a conventional browser to place the subsequent characters on a lower line, which creates the two-line appearance  1200  illustrated in  FIG. 12 . 
       FIG. 13  illustrates a method of implementing the step  503  shown in  FIG. 5  of laying out link groups for a display screen in an optimized form according to the present invention. The method starts at  1301 . At step  1302 , link characters are laid out as buttons, such as illustrated in  FIG. 6 . A button is preferably enclosed by a circular or oval shaped boundary. At step  1303 , the method  503  lays out the buttons in predetermined screen locations based upon the hardware upon which the method is executing. The method is completed at step  1304 . Thus,  FIG. 13  illustrates the method of implementing step  503  shown in  FIG. 5 , and is therefore an exploded view of the steps required to implement step  503  shown in  FIG. 5 . 
       FIG. 14  illustrates a display screen appearance  1400  after displaying the page character array  900  shown in  FIG. 9  using a method  502  according to the present invention shown in  FIGS. 5 and 13 . In the screen display appearance  1400 , buttons  1401  through  1402  correspond to characters  901  through  904  shown in  FIG. 9 . In the display screen appearance  1400 , buttons  1400  through  1404  are horizontally centered in a vertical list. This horizontal centering represents an embodiment of an optimized form of display of a link group according to the present invention. 
       FIG. 15  illustrates a method  504  of implementing the step shown in  FIG. 5  of logically mapping link groups to distinct user input according to the present invention. The method starts at step  1501 . Test  1502  determines if a link group is currently in the display screen. If the link group is not currently in the display screen, then the method ends at step  1505 . In other words, no action is taken by step  504  in the event that a link group is not currently being displayed in the display screen. Step  1303  illustrated in  FIG. 13  lays out the buttons in a predetermined screen location based upon a hardware in a logical frame buffer. Only a portion of the logical frame buffer is actually displayed at any given time. If the link group is in the portion of the screen layout which is in the display screen, then step  1503  creates a correspondence between the links and the displayed link group and key strokes or voice commands. This is illustrated, for example, by the Table  700  shown in  FIG. 7 . At step  1504 , the machine interprets key strokes or voice commands as a command to traverse the corresponding link. If a link group is not currently in the display screen, then key strokes or voice commands are not interpreted as link invocations. 
       FIG. 16  illustrates a display screen appearance  1600  in relation to input device keys  1601  through  1605  after displaying the page character array  300  shown in  FIG. 3  using a method  500  according to the present invention shown in  FIGS. 5 and 13 . The links A through F shown in  FIG. 16  are selected by the user by pressing one of the L or R keys  1601  or  1602  and one of the T, M, or B keys  1603  through  1605 . For example, link A is traversed by pressing the L key  1601  and the T key  1603 . The F link is traversed by pressing the R key  1602  and the B key  1605 . In the example shown in  FIG. 16 , links are laid out in optimized form by step  503  so as to be vertically and horizontally aligned with the input keys to which they are logically mapped by step  504 . Another example of the combination of steps  503  and  504  is found in  FIG. 6 , where links A through I are laid out so as to physically correspond to numbers 1 through 9 on a standard telephonic keypad. 
       FIG. 17  illustrates an input device to link correspondence table  1700  generated by a method  504  according to the present invention shown in  FIGS. 5 and 15  for the page character array  300  shown in  FIG. 3  and the display screen appearance shown in  FIG. 16 . Specifically, each of the links is mapped to a unique combination of the keys  1601  through  1605 . 
       FIG. 18  illustrates a display screen appearance  1800  after displaying the page character array  300  shown in  FIG. 3  using a method according to the present invention shown in  FIGS. 5 and 15 . In  FIG. 18 , the keys to which links A, B, and C are logically mapped by step  504  are actually displayed alongside the link names. In this respect, the present invention optionally displays in step  503  an indication of the physical key to which the link is mapped in step  504 . Thus, link C is selected by pressing the 3 key as shown in the screen display appearance  1800 . Alternatively to the above-described laying out of the indication of the corresponding mapped keystroke along with each link name for each link in the link group illustrated in  FIG. 18 , the indication of the corresponding mapped keystroke is laid out as a small captioned box next to or above the layout of the link (not unlike a footnote) to indicate the mapping relationship. 
     As shown in  FIGS. 16 and 18 , only a portion of the entire first link group is displayed on the display screen. Specifically, in  FIG. 16 , links G, H, and I could not fit on the display screen  1600 , and in  FIG. 18 , links D through I could not fit on the display screen  1800 . As the user scrolls down so that the remaining links become visible and the first few links in the link group are not visible, the method  504  optionally creates a different mapping of the input keys to the links in the link group, or optionally maintains the same correspondence between input keys and links. In the example shown in  FIG. 16 , it is anticipated that as links G, H, and I become visible, the mapping of the T, M, and B keys  1603  through  1605  is altered so that horizontal alignment is maintained. If the user scrolls down so that links G and H are visible but links A and B are not visible, then links A and B are no longer selectable by the user. However, in the example shown in  FIG. 18 , as the user scrolls down such that links D, E, and F are visible instead of links A, B, and C, then the method  504  according to the present invention preferably maintains the mapping of keys  4 ,  5 , and  6  to links D, E, and F, and therefore links A, B, and C are still selectable by the user by depressing the appropriate keys even though they are no longer visible on the display screen. 
     The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.

Metadata:
Filing Date: 20070413
Publication Date: 20130903
Grant Date: 20130903
Priority Date: 19990813
Inventors: MERCER PAUL
Assignee: APPLE INC
CPC Classifications: [{"code": "H04M1/724", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/0489", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/0238", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0238", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/724", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F16/9577", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/9577", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0489", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 23475859