CN107003801A - 控制图形用户界面 - Google Patents
控制图形用户界面 Download PDFInfo
- Publication number
- CN107003801A CN107003801A CN201580066311.0A CN201580066311A CN107003801A CN 107003801 A CN107003801 A CN 107003801A CN 201580066311 A CN201580066311 A CN 201580066311A CN 107003801 A CN107003801 A CN 107003801A
- Authority
- CN
- China
- Prior art keywords
- navigation
- gui
- elements
- navigation elements
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0489—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
一种控制电子设备的图形用户界面GUI的方法。GUI由被电子设备处理的GUI定义文档定义。GUI定义文档定义用于渲染GUI的GUI的布局、GUI的可导航元素、至少一个导航事件以及每个可导航元素的至少一个导航数据集,其中导航数据集为至少一个导航事件中的相应一个导航事件指定响应于导航事件要导航到的可导航元素中的下一个可导航元素。该方法包括由电子设备根据布局渲染GUI;以及通过以下方式从当前可导航元素导航到下一个可导航元素:由电子设备接收导航事件,以及响应于接收到的导航事件,由电子设备将当前可导航元素设置为非活动的并且将下一个可导航元素设置为活动的用于用户交互,其中下一个可导航元素基于当前可导航元素的至少一个导航数据集来确定。
Description
技术领域
本发明一般而言涉及控制图形用户界面的方法,并且特别涉及用于这种方法的设备和计算机软件。
背景技术
图形用户界面(GUI)是允许用户与电子设备交互的用户界面。GUI具有用于让用户与之交互的(图形)元素。例如,这些元素表示按钮、输入域、复选框、图标、文本域等。
由于用户想通过GUI进行导航,这意味着他想从GUI的一个元素导航到另一个元素,因此出现了困难。这样的导航应当尽可能直观以简化GUI的使用。但是,从GUI开发人员的角度来看,在电子设备内实现通过GUI的导航应该需要花费尽可能少的付出。此外,为不同设备和/或不同任务设计和/或适应GUI要求高灵活性以及GUI底层导航机制的易维护性。此外,GUI,特别是其底层导航机制应该需要尽可能少的电子设备资源。
此外,当今的要求需要新的应用在许多功能区域中是面向web的。例如,在HTML4.01中,元素必须从用户那里接收焦点才能变为活动的并执行其任务。例如,用户必须激活由A元素指定的链接才能跟随该指定的链接。类似地,用户必须给出文本框焦点才能将文本输入其中。为了对元素给出焦点,用户可以利用键盘从一个元素导航到下一个元素。HTML文档的作者可以定义贴标签顺序,其指定如果用户利用键盘导航文档,那么元素将接收焦点的顺序。一旦被选择,元素就可以由某个其它键序列激活。
在HTML 4.01中,标签导航基于属性定义“tabindex=正数”。该属性指定相应元素在特定文档的标签顺序中的位置。可以接收焦点的元素应该由用户代理根据以下规则进行导航:1)首先导航支持tabindex属性并且为其分配正值的那些元素。导航从具有最低tabindex值的元素前进到具有最高值的元素。值不必是连续的,也不必以任何特定的值开始。具有相同tabindex值的元素应当按照它们在字符流中出现的顺序进行导航。2)接下来导航不支持tabindex属性或支持tabindex属性但将其赋值为0的那些元素。这些元素按照它们在字符流中出现的顺序进行导航。3)被禁用的元素不参加该标记顺序。根据HTML4.01,以下元素支持tabindex属性:A、AREA、BUTTON、INPUT、OBJECT、SELECT和TEXTAREA。
WO 2001/054072描述了通过诸如网页的结构化内容来显示和导航。可获焦元素可以包括用于捕获定向导航指令和响应于检测到的定向导航指令而调用事件处理函数的属性。响应于接收到定向导航指令,触发函数的执行,并且浏览器或其它应用环境内的控件(control)将传递给该函数。该函数可以通过为内容中的每个元素设置标签索引顺序或其它数值导航顺序使得焦点移动到不同于默认的下一个元素的不同位置,而无需明确地定义导航顺序。
因此,在本领域中,关于开发、实现和/或控制电子设备的GUI,需要改进通过GUI的导航。
发明内容
本发明由独立的权利要求限定。
根据第一方面,提供了控制电子设备的图形用户界面(GUI)的方法。GUI由被电子设备处理的GUI定义文档定义。GUI定义文档定义用于渲染GUI的GUI的布局、GUI的可导航元素、至少一个导航事件以及每个可导航元素的至少一个导航数据集。这样的导航数据集为至少一个导航事件中的相应一个导航事件指定响应于导航事件要导航到的可导航元素中的下一个可导航元素。该方法还包括由电子设备根据布局渲染GUI,以及从当前可导航元素导航到GUI的下一个可导航元素。后者包括由电子设备接收导航事件,以及响应于接收到的导航事件,由电子设备将当前可导航元素设置为非活动的并且将下一个可导航元素设置为活动的用于用户交互,其中下一个可导航元素基于当前可导航元素的至少一个导航数据集来确定。
根据另一方面,提供了用于控制GUI的电子设备,其中电子设备被配置为根据上述方法控制GUI。
根据另一方面,提供了用于根据上述方法控制GUI的系统。该系统包括被配置为提供GUI定义文档的电子服务器设备(服务器)和被配置为客户端以从服务器接收GUI定义文档的电子设备(客户端),其中客户端被配置为根据上述方法控制GUI。
根据另一方面,提供了被配置为控制电子设备的图形用户界面(GUI)的计算机程序。GUI由GUI定义文档(其可由电子设备处理)定义。GUI定义文档定义用于渲染GUI的GUI的布局、GUI的可导航元素、至少一个导航事件以及每个可导航元素的至少一个导航数据集。这样的导航数据集为至少一个导航事件中的相应一个导航事件指定响应于导航事件要导航到的可导航元素中的下一个可导航元素。计算机程序还被配置为根据布局(例如,由电子设备)渲染GUI,并且从当前可导航元素导航到GUI的下一个可导航元素。后者包括(例如由电子设备)接收导航事件,并且响应于接收到的导航事件,将当前可导航元素(例如由电子设备)设置为非活动的,并且将下一个可导航元素设置为活动的用于用户交互,其中下一个可导航元素基于当前可导航元素的至少一个导航数据集来确定。根据另一方面,提供了计算机程序产品。该计算机程序产品包括计算机可读介质。它还包括存储在计算机可读介质上并且被配置为在由至少一个处理器执行时执行上述方法的程序代码。
还有的方面由从属权利要求阐述。
一般描述
在转到参考图的更详细的描述之前,首先讨论几个更一般的方面。
GUI由GUI定义文档定义。GUI定义文档包括GUI的布局的定义、GUI的可导航元素的定义、至少一个导航事件的定义以及每个可导航元素的至少一个导航数据集的定义。换句话说,仅基于单个文档,GUI定义文档至少定义GUI的外观以及关于根据布局、可导航元素、(一个或多个)导航事件以及导航数据集通过GUI导航的GUI的行为。在单个GUI定义文档中(虽然这可能包括各种文件)定义GUI的布局和导航机制两者减少了为开发GUI的付出和/或允许更紧凑、资源友好的GUI定义。
由于GUI定义文档包括布局的定义和可导航元素的定义,因此电子设备可以渲染GUI以向设备的用户显示它,并且基于单个文档,即GUI定义文档,提供GUI的导航功能。
为了高效地处理和存储GUI定义文档和/或为了改进的数据通信,例如,为了将GUI定义文档从服务器传送到客户端,在一些实施例中,GUI定义文档由单个文件表示。可替代地,例如,为了提高数据分离,在一些实施例中,GUI定义文档由多个文件表示,这些文件一起构建GUI定义文档。
电子设备可以是任何类型的,包括例如台式计算机、膝上型电脑、平板计算机、智能电话、TV、游戏控制台、汽车导航设备、汽车娱乐设备等。在一些实施例中,电子设备配备有键盘。可以响应于按下键盘的键或键的组合而接收导航事件。
在一些实施例中,电子设备具有用于显示渲染的GUI的显示器(严格地说,GUI的视图是根据GUI的布局渲染并显示的)。
在一些实施例中,电子设备是被布置为从服务器接收GUI定义文档的客户端。在一些实施例中,客户端和服务器是系统的成员,该系统被配置为执行本文所述的方法。客户端和服务器可以通过有线和/或无线技术连接,例如经由因特网或内联网连接。
在一些实施例中,GUI定义文档定义至少两个布局。这使得客户端能够在渲染GUI时选择多个布局中的一个。例如,不同的布局可以定义不同的颜色方案、可导航元素的不同大小、要在GUI的视图中渲染的文本的不同语言。例如,可以指派第一布局用于在固定设备的显示器(例如,个人计算机显示器)上显示GUI,并且可以指派第二布局用于在移动设备的显示器(例如,膝上型计算机显示器、平板计算机显示器和/或移动电话显示器)上显示GUI。为了提供独立于相应布局的GUI的相同导航行为,在一些实施例中,每个布局结合在GUI定义文档中定义的可导航元素的全部、相同的集合或相同的子集。可替代地,为了提供GUI的不同导航行为,在一些其它实施例中,第一布局结合第一可导航元素集合,并且第二布局结合第二可导航元素集合,其中第一集合和第二集合可以是分离的。
导航数据集有助于GUI的导航行为。导航数据集包括至少两条信息:它指定响应于特定的导航事件要导航到的可导航元素。因此,导航数据集在相应的导航事件和可导航元素之间建立相互关系,并且因此导航数据集将可导航元素与相应的可导航元素的特定导航事件相关联。导航数据集可以被理解为特定可导航元素的特性。例如,不同可导航元素的导航数据集可以将不同的可导航元素与相同的导航事件相关联和/或将不同的导航事件与相同的可导航元素相关联。
由特定导航数据集指定的特定可导航元素是响应于由该导航数据集指定的相应的导航事件而要导航到的GUI的可导航元素中的下一个可导航元素。因此,由于导航数据集属于其相应的可导航元素,因此特定可导航元素的至少一个导航数据集可以为其特定可导航元素定义(一个或多个)下一个可导航元素,当通过GUI导航时,该(一个或多个)下一个可导航元素依赖于相关联的导航事件接继在该特定可导航元素之后。
为了更好地理解在GUI的可导航元素内的导航,可以详细描述用于从一个可导航元素导航到下一个可导航元素的示例性导航活动:
假设作为示例性导航活动的起始点,GUI的可导航元素中的特定一个可导航元素实际上被设置为活动的。该可导航元素(其被实际上设置为活动的)在本文中被称为当前可导航元素。此外,如果没有明确另外提及,术语“元素”在本文中要被理解为“可导航元素”;因此,例如,表述“当前元素”要被理解为“当前可导航元素”。GUI的可导航元素的示例是按钮、表、表的列、表的行和表的单元、文本域、复选框、具有可选条目的列表、单选按钮、滚动条、退出图标、下拉菜单和其它菜单元素、窗口、弹出窗口等。
返回到示例性导航活动,例如,响应于用户输入,可以接收特定导航事件(在GUI定义文档中定义)。响应于导航事件的接收,该接收到的导航事件被用作决定GUI的可导航元素中的哪一个成为示例性导航活动的目标(本文的“下一个可导航元素”),即,当前元素的后继元素的基础。由于当前元素(仍然)是起始点,因此该决定基于该(当前)元素的导航数据集。依赖于接收到的导航元素,GUI定义文档的那个元素被确定为根据当前元素的导航数据集与特定导航事件相关联的下一个元素。换句话说,当前元素(通过其导航数据集)“知道”关于依赖于相应的(一个或多个)导航事件的所有可能的候选后继元素。
于是,当前可导航元素被设置为非活动的,并且如此确定的下一个可导航元素被设置为活动的。到目前为止作为导航目标的下一个可导航元素成为(新的)当前可导航元素,并且由此它成为通过GUI进一步导航活动的新起点。因此,通过GUI的导航以逐步的方式工作,即,形象地表达为,通过这种导航活动从一个元素跳到下一个元素。
因此,GUI的导航行为由导航数据集定义,使得它们依赖于(不同的可能)导航事件为每个元素单独地定义相应的后继(下一个)元素。至于导航,导航事件触发可导航元素之间的导航,其中每个元素通过其导航数据集定义响应于和依赖于导航事件而要导航到的可能的下一个可导航元素。换句话说,导航数据集可以被理解为导航规则,该导航规则为其相应的可导航元素定义依赖于接收到的导航事件的相应的下一个可导航元素。
GUI定义文档可以包括进一步的导航规则(除了导航数据集之外),例如,用于控制导航区域(例如,在不同的导航区域之间的切换)的导航规则(将在下面描述)、用于错误处理的规则和/或用于异常处理的规则。
在GUI定义文档中定义的导航规则可以遵循GUI的导航策略。导航策略可以描述GUI的导航行为。可能期望GUI提供不同的导航行为,例如,依赖于键盘、显示器和/或设备类型的导航行为,GUI可以通过不同的键集合,例如,通过光标键或者通过生成字符的键或者通过功能键(F1、F2等),导航。因此,在一些实施例中,GUI定义文档可以包括不同的导航策略,即,至少两个策略。
至于导航策略,由此,在一些实施例中,导航策略可以是任意导航策略。任意导航策略明确地为可导航元素定义其相应的下一个可导航元素。这向GUI的开发人员给予了关于GUI的导航行为的高度定制,因为对于可导航元素,可以在GUI中单独定义可能的下一个可导航元素。
在一些实施例中,导航策略可以是最近邻(nearest neighbor)导航策略。最近邻导航策略意味着对于可导航元素,其下一个可导航元素是关于GUI的渲染视图的最近邻可导航元素。因此,在最近邻导航策略中,下一个可导航元素由GUI的渲染视图内的可导航元素的空间关系(尤其是位置和大小)确定。最近邻导航策略可以说明水平和/或垂直导航,例如,通过响应于导航事件(例如,与水平光标键(LEFT,RIGHT)和/或垂直光标键(UP,DOWN)相关联的导航事件)在水平和/或垂直方向导航到最近邻可导航元素(从当前元素开始)。
可能期望GUI可独立于电子设备的特定硬件、固件和/或操作系统来适用。因此,在一些实施例中,GUI定义文档包括定义GUI的布局的超文本标记语言文档,例如HTML文档或XHTML文档(HTML和XHTML在本文被共同称为“HTML”)。在一些实施例中,导航规则由HTML代码(例如,作为HTML对象和/或作为HTML对象的属性)、JavaScript代码和/或PHP代码来实现。
在一些实施例中,在GUI定义文档中静态地定义导航数据集。例如,导航数据集可以被定义为一个或多个数据数组、一个或多个表和/或表示可导航元素的HTML元素的HTML属性。因此,在这些实施例中,可以在GUI定义文档中例如按照任意的导航政策手动设置导航规则。
在一些实施例中,由程序代码(例如,在GUI定义文档本身中或由位于服务器端或客户端处的导航策略实现引擎定义的)基于可导航元素的特性和/或GUI的布局生成导航规则。这样的导航规则以及其相关联的导航策略可以被理解为动态导航规则。在这样的动态导航策略中,用于特定当前可导航元素的下一个可导航元素由程序代码(例如,JavaScript或PHP)依赖于相应的导航事件来确定。
在一些实施例中,最近邻导航策略是动态策略,因为下一个可导航元素由程序代码分析当前可导航元素与GUI的渲染视图内的周围可导航元素之间的空间关系来确定。程序代码响应于与光标键(比如UP、DOWN、LEFT、RIGHT)相关联的导航事件确定在相应的(上、下、左或右)方向上最近邻的可导航元素作为下一个元素。在这样的实施例中,可以由程序代码为当前可导航元素自动确定下一个可导航元素。
由于可以仅基于键盘事件来生成导航事件,因此可以在没有鼠标的情况下完全执行通过GUI的导航,并且GUI可以在无鼠标的环境(诸如无鼠标的电子设备)中实现。这允许快速通过GUI导航,因为用户不需要在键盘和鼠标之间切换。在GUI用例如HTML实现并且由web浏览器处理的情况下,这变得尤其相关,因为web浏览器和/或HTML关于通过HTML元素导航提供很少的功能。在一些实施例中,电子设备是无指示设备的。但是,在一些实施例中,可以可选地使用鼠标或其它指示设备用于在GUI内导航,如后面将描述的。
如前所述,导航到下一个可导航元素包括将该(下一个)可导航元素设置为活动的。在一些实施例中,这还包括将先前设置为活动的的元素或GUI的所有(剩余)其它可导航元素设置为非活动的。因此,控制GUI的方法可以包括预防措施,以确保在任何时间点可导航元素中最多只有单个可导航元素被设置为活动的。在一些实施例中,将可导航元素设置为活动的意味着用户输入可以被传递给被设置为活动的的元素,而用户输入可以不被传递给未被设置为活动的(即设置为非活动的)的元素。用户可以与设置为活动的的可导航元素交互,例如将文本输入到文本输入元素中、选择或取消选择复选框元素、或例如通过在键盘上键入“回车(Enter)”和/或“空格(Space)”键按下按钮。
为了将用户引导到当前元素,在一些实施例中,导航到下一个元素包括,例如,响应于将下一个元素设置为活动的,(图形上)强调下一个元素(当它成为当前元素时)。在一些实施例中,将特定元素设置为非活动的伴随着(图形上)解除强调该特定元素。例如,可导航元素仅在如果它被设置为活动的时才可以被强调。因此,在一些实施例中,在任何时间点最多只能强调可导航元素中的单个可导航元素。在一些实施例中,(图形上)强调元素包括利用不同的颜色、利用附加的阴影、利用附加的边框和/或利用与其没有被强调时相比更粗的边框或文本来渲染被强调的元素。
对于无鼠标或无指点设备通过GUI的导航,即,在无需使用比如鼠标、轨迹球或触摸屏功能的指示设备的情况下,在一些实施例中,导航事件可以是来自键盘的键代码和/或来自用户输入的字符代码。在一些实施例中,键盘事件本身和/或输入事件本身可以被认为是导航事件。在一些实施例中,导航事件仅基于键盘事件和/或输入事件,这意味着控制GUI的方法或者电子设备(例如,客户端的操作系统或由设备处理的诸如web浏览器的应用)响应于键盘事件和/或输入事件而生成导航事件。
例如,响应于光标键(例如,诸如“Up”、“Down”、“Left”、“Right”、“Tab”、“PageUp”、“PageDown”、“Home”、“End”)、生成字符的键(例如,诸如“A”至“Z”、“0”至“9”、“Space”)或修饰键(例如,诸如“Shift”、“Alt”或“Ctrl”)和/或其任何组合在键盘上被按下,可以通过控制GUI的方法来接收导航事件。因此,定义将用户从GUI的当前可导航元素引导到下一个可导航元素的导航事件的当前方法允许很大的导航灵活性、更通用的导航,并且因此提高了电子设备的可用性和可操作性。
键代码是数字命名的代码,其编码键盘的哪些键或键的组合受到例如由用户在键盘上键入的影响。键代码还可以以(一个或多个)键受影响的方式进行编码:键代码可以对键是否被按下或释放进行编码。在一些实施例中,响应于按下至少一个键和/或释放键盘的键,接收到导航事件。在一些实施例中,在至少一个键被持续按压期间重复地接收到导航事件。换句话说,把键按压一段时间将导致一个接一个地发出导航事件。
字符代码在用户输入产生字符时生成。例如,可以在键入键盘上生成字符的键时生成字符代码。例如,字符代码给出字符的ASCII值。字符代码和键代码不一定相同;例如,小写“a”和大写“A”由于用户在键盘上按下相同的键“A”而可以具有相同的键代码,但是由于结果得到的字符是不同的而具有不同的字符代码。此外,具有特定字符代码的大写“A”可以通过与键盘的左“Shift”键或右“Shift”键组合键入键“A”来生成,该左“Shift”键或右“Shift”键通过识别涉及左“Shift”键还是右“Shift”键的不同的键代码而编码。相应地,在一些实施例中,除了生成字符的键之外,键代码还可以对修饰键的状态进行编码。
导航事件可以包括唯一导航事件标识符或由唯一导航事件标识符组成,唯一导航事件标识符允许通过控制GUI的方法识别和/或区分不同的导航事件。例如,唯一导航标识符可以包括序列号,或唯一导航标识符可以包括键代码和/或字符代码或由键代码和/或字符代码组成。导航事件可以对应于所有键盘可用键代码的任何子集和/或电子设备支持的所有字符代码的任何子集的任何代码。
在一些实施例中,控制GUI的方法涉及用于从可能的键盘事件和/或输入事件中仅选择特定事件的过滤器。例如,这允许仅响应于用户按下可用键的特定子集而生成导航事件。例如,导航事件可以仅响应于光标键和/或“Tab”键或这些键的组合(可选地与修饰键中的特定修饰键的组合)而生成。这还允许响应于与某些键(例如诸如生成字符的键)对应的键盘事件和/或输入事件而没有导航事件。
为了不干扰电子设备的其它任务,在一些实施例中,可以将事件(诸如键盘事件和/或输入事件)传回(到设备、设备的操作系统或设备内的事件处理程序)。但是,例如为了防止对设备的其它任务的意外干扰,在一些实施例中,响应于其已生成导航事件的那些事件从客户端被扣留,即它们不被传回。
在一些实施例中,由控制GUI的方法来解释鼠标事件、来自触摸屏的触摸事件和/或其它指示设备事件,以便更新当前可导航元素。例如,覆盖(在GUI的渲染视图内)鼠标光标位置、触摸位置或指示设备位置(例如,在相应的事件内编码)的GUI的可导航元素成为(新的)当前可导航元素。这可以包括将这个元素设置为活动的和/或强调这个元素。
在一些实施例中,GUI定义文档定义每个可导航元素的至少2个、4个或6个导航数据集,其中特定可导航元素的数据集内的每个导航数据集关于其相关联的导航事件是唯一的。因此,每个可导航元素对于根据其导航数据集的数量的确切数量的不同导航事件是敏感的。具有n个导航数据集的可导航元素对于n个不同的导航事件是敏感的。
对于特定元素,可能期望两个或更多个导航事件可以导致从作为当前元素的该特定元素导航到相同的下一个元素。例如,当在GUI的渲染视图内被布置在列中的可导航元素内导航的情况下,可能期望按下“左(left)”和“上(up)”的箭头键可以朝相同(向上)的方向导航,即,导航到相同的位于上面的下一个元素。因此,对于特定的可导航元素,在一些实施例中,在其导航数据集中指定的不同的下一个元素的数量可以小于导航数据集的数量,因为至少两个不同的导航数据集指定相同的可导航元素作为下一个元素。
为了唯一地识别每个可导航元素,在一些实施例中,GUI定义文档为每个可导航元素定义唯一可导航元素标识符(唯一ID)。
在一些实施例中,可导航元素通过其相应的唯一ID进行寻址。在一些实施例中,导航数据集包括下一个可导航元素的唯一ID,以指定响应于相应的导航事件要导航到这个元素。为了在通过GUI导航时保持跟踪,在一些实施例中,维护当前可导航元素标识符(当前ID)。当前ID对应于当前可导航元素的唯一ID。至于从当前可导航元素导航到下一个可导航元素,在一些实施例中,当导航到下一个可导航元素时,当前ID被设置为下一个可导航元素的唯一ID的值。
在一些实施例中,GUI定义文档定义除了可导航元素之外的其它元素。例如,可导航元素和(本身)不可导航元素的不同之处可以至少在于,对于可导航元素,在GUI定义文档中定义了唯一ID,而对于不可导航元素,GUI定义文档缺少唯一ID。因此,特定元素内唯一ID的存在定义该特定元素是可导航元素还是不可导航元素。值得注意的是,在这个特定段落中,术语“元素”不等于“可导航元素”。
在一些实施例中,电子设备初始化GUI,例如,在第一次渲染GUI之前。为了定义用于通过GUI导航的起始点,在一些实施例中,GUI定义文档定义对应于可导航元素中的特定一个可导航元素的唯一ID的起始标识符(起始ID)。例如,初始化GUI可以包括将当前ID设置为如在GUI定义文档中定义的起始ID的值。因此,在初始化GUI时,可以将元素中的特定一个元素设置为当前可导航元素,即,作为导航的初始起始点。例如,可以强调起始点。
在一些实施例中,GUI定义文档将至少一个可导航元素定义为要被隐藏的,即,在渲染GUI时对用户不可见。在一些实施例中,GUI定义文档定义相应可导航元素的隐藏特性。在一些实施例中,相应可导航元素的隐藏特性可以包括在相应可导航元素的定义内。例如,隐藏特性可以被实现为定义为HTML元素的可导航元素的HTML属性。在一些实施例中,隐藏特性可以与GUI定义文档内的可导航元素的定义分开被定义。例如,GUI定义文档定义包括要隐藏的至少一个可导航元素的列表,其中特定元素被包括在列表中的事实仅仅意味着它要被隐藏。在一些实施例中,GUI定义文档包括为要隐藏的至少一个可导航元素或为所有可导航元素指定相应的隐藏属性的表,隐藏属性指定相应元素当前是否要被隐藏。在GUI定义文档中定义的至少一个可导航元素或每个可导航元素可以具有隐藏特性。如果相应元素的隐藏特性被设置为活动的,那么相应的元素不会被渲染;否则,如果相应元素的隐藏特性被设置为非活动的,那么当渲染GUI时相应的元素可以被渲染。在一些实施例中,隐藏特性可以通过电子设备进行切换,例如,通过将隐藏特性分别设置为活动的和非活动的来暂时隐藏和/或显示相应的可导航元素(在GUI的渲染视图中)。
在一些实施例中,GUI定义文档定义要禁用的至少一个可导航元素。被禁用意味着禁止将相应的可导航元素设置为关于通过GUI导航的当前元素。在一些实施例中,GUI定义文档定义相应可导航元素的禁用特性。在一些实施例中,相应可导航元素的禁用特性可以被包括在相应可导航元素的定义内。例如,禁用特性可以被实现为定义为HTML元素的可导航元素的HTML属性。在一些实施例中,禁用特性可以与GUI定义文档内的可导航元素的定义分开被定义。例如,GUI定义文档定义包括要禁用的至少一个可导航元素的列表,其中特定元素被包括在列表中的事实仅仅意味着它要被禁用。在一些实施例中,GUI定义文档包括为要禁用的至少一个可导航元素或为所有可导航元素指定相应禁用属性的表,禁用属性指定相应元素当前是否被禁用。在GUI定义文档中定义的至少一个可导航元素或每个可导航元素可以具有禁用特性。例如,禁用特性可以通过电子设备进行切换。例如,当导航到其禁用特性被设置为活动的(即作为禁用元素)的元素时,那么禁用元素被绕过,并且从禁用元素的角度来看的下一个元素自动被设置为当前元素。但是,这需要仔细的设计和控制GUI,因为这可能导致无限循环。禁用特性可以通过电子设备进行切换,例如,以暂时阻止用户导航到禁用的元素或允许导航到该元素(如果禁用特性被设置为非活动的)。
在一些实施例中,要被隐藏和/或被禁用的可导航元素可以由在GUI定义文档中定义的表中的单个条目或相应可导航元素的单个属性来指定。例如,隐藏特性和禁用特性可以被组合成指示相应的可导航元素是否被隐藏、被禁用或既不被隐藏也不被禁用的单个(多状态)信号。在其它示例中,这样的信号可以指示相应的可导航元素是否被隐藏、被禁用、被隐藏和禁用、或者既不被隐藏也不被禁用。
在一些实施例中,GUI定义文档可以包括HTML文档,并且可以将可导航元素定义为HTML元素。HTML文档和元素可以由web浏览器来解释,以渲染HTML文档(网页)的视图,即渲染GUI。Web浏览器在多种类型的电子设备上可得到,这允许GUI在这些设备上实现。在一些实施例中,使用web体系架构和利用HTML定义的GUI使得本文描述的方法能够在客户端侧、服务器侧或两侧上实现。
在一些实施例中,通过由电子设备处理的web浏览器由JavaScript执行从当前可导航元素到下一个可导航元素的导航。JavaScript提供基于事件的系统,该系统在必要时触发事件,使得浏览器可以捕获它们并动态地进行反应。这适用于键盘事件和输入事件。这允许在一些实施例中,控制GUI的方法并且尤其是在GUI内的导航完全由HTML与JavaScript相结合来实现。
因此,这些实施例满足了当今在大多数功能领域中需要面向web的新应用的需求。如开始已经讨论的,标准HTML对于在网页中通过HTML元素导航是非常有限的。例如,HTML原生地只支持使用“Tab”和“Shift”+“Tab”键从一个输入元素切换到另一个输入元素。在没有任何说明的情况下,这种导航的顺序自然地由浏览器根据HTML文档中的HTML元素的出现顺序来选择。该顺序可以通过所谓的tab-index机制来更改,其中HTML元素具有tab-index特性,该特性是表示HTML元素的排名的顺序编号。因此,tab-index机制允许根据这个排名进行线性导航。但是,特定的HTML元素不知道其相应的相邻元素,因为它仅仅知道它的tab-index的(排名)号码。
因此,根据重客户端服务器体系架构,重客户端体系架构被安装在用户的计算机上,并且可以利用对操作系统API和资源的完全访问。相反,轻量级的面向web的客户端服务器体系架构被描述到浏览器中。这意味着它们只能访问浏览器API和资源,从而包装一些操作系统功能。这导致多个技术问题,诸如浏览器内的键盘导航。
在一些实施例中,表示GUI的可导航元素的HTML元素包括表示相应可导航元素的至少一个导航数据集的HTML属性。这使得web浏览器能够渲染GUI以及通过GUI导航,因为HTML元素包括导航数据集的导航信息,导航数据集指定响应于特定导航事件要导航到的下一个元素。例如,特定元素的单个HTML属性可以表示恰好一个导航数据集,或者单个HTML属性可以表示特定元素的所有导航数据集。
例如,关于特定HTML元素(表示GUI的可导航元素),表示导航数据集的其HTML属性可以由JavaScript访问以确定响应于接收到的导航事件的下一个可导航元素。在一些实施例中,特定可导航元素的至少一个导航数据集由除表示特定可导航元素的HTML元素之外的HTML元素或HTML对象来定义。在一些实施例中,所有可导航元素的导航数据集的总体可以由单个HTML元素或单个HTML对象来定义。在一些实施例中,导航数据集由在GUI定义文档中定义的程序代码(例如,JavaScript代码和/或PHP代码)来定义。
如上所述,可以使用JavaScript来强调或解除强调HTML对象。因此,GUI定义文档可以是HTML文档,可选地包括适当的JavaScript,以执行上述方法。GUI定义文档可以是单个(HTML)文件,或者可替代地,分离成多个文件。
在一些实施例中,原生地不可通过HTML导航的HTML元素也在GUI定义文档中被定义为可导航元素。例如,在一些实施例中,HTML图像资源被定义为GUI定义文档中的可导航元素。此外,GUI定义文档可以将任何可能的HTML元素定义为可导航元素,例如,通过向相应的HTML元素添加导航数据集作为HTML属性。
如已经描述的,在GUI定义文档中定义的不同布局可以允许GUI的不同外观。可替代地或作为其的附加,一些实施例包括另外的机制,其特别地允许GUI的不同外观以及不同的导航行为:GUI定义文档可以定义至少两个导航区域,其中对于该至少两个导航区域中的每一个,GUI定义文档定义与用于渲染GUI的相应导航区域相关联的至少一个布局、与相应导航区域相关联的可导航元素以及每个可导航元素的至少一个导航数据集。
使用导航区域,通过选择至少两个导航区域中的一个导航区域、根据所选择的导航区域的布局渲染GUI、以及仅在与所选择的导航区域相关联的可导航元素内从当前可导航元素导航到下一个可导航元素可以将导航(暂时地)限制到特定导航区域。这意味着接收到导航事件并且响应于接收到的导航事件,将所选择的导航区域的当前可导航元素设置为非活动的,并且将所选择的导航区域的下一个可导航元素设置为活动的用于用户交互,其中下一个可导航元素基于当前可导航元素的至少一个导航数据集来确定。因此,每个导航区域可以具有其自己的一个或多个导航策略。
在一些实施例中,导航区域的这种机制由电子设备处理以生成多个页面、多个窗口、至少一个子窗口和/或GUI(的渲染实例)的至少一个弹出窗口和/或将导航暂时限制到GUI(的渲染实例)的子区域。导航区域可以包括GUI的所有可导航元素或GUI的可导航元素的真正子集。可以在GUI定义文档中同时定义这两种类型的导航区域的一个或多个实例。在一些实施例中,GUI定义第一导航区域作为关于可导航元素的第二导航区域的真正子集。但是,在一些其它实施例中,在GUI定义文档中定义的所有导航区域关于GUI的可导航元素建立成对的分离子集,其中每个可导航元素被包括在恰好一个特定导航区域中。
在一些实施例中,GUI定义文档定义至少一个导航区域控制事件。GUI定义文档可以定义不同的区域控制事件,其可以包括用于激活至少两个导航区域中的特定一个的代码、用于停用导航区域的代码和/或用于分别在两个导航区域之间切换的代码。相应地,响应于接收到导航区域事件,在一些实施例中,分别激活或停用导航区域。激活导航区域可以包括根据导航区域的至少一个布局中的特定一个布局渲染GUI,以及如以上关于GUI如此一般描述的在导航区域的可导航元素内导航。可以如本文关于导航事件所描述的那样生成导航区域事件。在一些实施例中,可以响应于按下键盘的键或键的组合来接收导航事件。例如,导航区域控制事件可以是键代码和/或字符代码。
在一些实施例中,还可以提供一种装置,该装置包括至少一个处理器和被配置为在由至少一个处理器执行时执行任何上述方法的程序代码,或者,还可以提供一种程序产品,该程序产品包括计算机可读介质和存储在计算机可读介质上并且被配置为在由至少一个处理器执行时执行任何上述方法的程序代码。
表征本发明的这些和其它优点和特征在本文所附权利要求中阐述并形成本文的另一部分。但是,为了更好地理解本发明以及通过其使用获得的优点和目的,应当参考附图以及伴随的描述性内容,其中描述了本发明的示例性实施例。
附图说明
图1是控制GUI的方法的流程图。
图2是示例GUI定义文档的框图。
图3是在可导航元素内的导航的示意图。
图4是导航区域的示意图。
图5是图示示例电子设备和示例计算机程序产品的框图。
具体实施方式
现在转到附图,其中相同的数字贯穿几个视图表示相同的部件,图1图示控制电子设备50的图形用户界面(GUI)的示例方法。GUI由图2所示的示例GUI定义文档20定义。GUI定义文档20定义用于通过电子设备50渲染GUI的GUI的布局21。GUI定义文档20还定义GUI的多个可导航元素22。每个可导航元素22包括(至少两个)导航数据集23。相应的导航数据集23指定导航事件和响应于接收到导航事件而要导航到的下一个可导航元素22。因此,特定导航数据集23是由GUI定义文档20定义的、用于在GUI内导航的多个导航规则中的特定一个导航规则。由导航数据集23定义的导航规则为作为当前导航元素的其对应的可导航元素22定义依赖于导航事件的相应的下一个可导航元素22。
回到图1,GUI定义文档20由电子设备50处理。电子设备50负责根据布局21渲染10GUI的视图。此外,电子设备50负责从当前可导航元素22导航11到下一个可导航元素22。因此,电子设备50从可以连接到电子设备50或包括在设备50中的键盘接收12导航事件。响应于接收到的导航事件,如活动13所示,电子设备50将当前可导航元素22设置为非活动的,并且将下一个可导航元素22设置为活动的用于用户交互。对于该活动13,下一个可导航元素22基于当前可导航元素22的导航数据集23来确定。
在还有的示例中,GUI的可导航元素与导航数据集一起表示状态机,其中可导航元素表示状态机的状态,并且导航数据集表示状态中的两个状态之间的(状态机的)变换。
在还有的示例中,GUI定义文档由HTML文档表示,其中GUI由一个或多个HTML层定义。相应地,在这些示例中,GUI由通过电子设备处理的web浏览器来渲染。可导航元素是(可见的)HTML元素,并且相应可导航元素的导航数据集由表示相应可导航元素的可见HTML元素的HTML属性表示。
如图3所示,在还有的示例中,GUI定义文档将四个HTML元素定义为可导航元素,其中每个元素包括相应的唯一ID A、B、C和D。在这些示例中的一些示例中,GUI是状态机。相应地,可导航元素A、B、C和D被认为是状态机的状态,并且相应可导航元素A、B、C和D的导航数据集被认为是状态机的状态之间的变换。这些示例中还有的一些示例在状态和/或变换的数量上与本示例不同。回到图3所示的示例,变换由表示变换的起源的相应HTML元素的HTML属性表示。变换通过图3中的箭头示出。变换(即,导航数据集)表示HTML元素之间允许的导航,其中关于导航、导航数据或导航事件的术语“允许的”意味着GUI定义文档定义了为相应可导航元素指定相应导航数据的对应的导航数据集。
在本示例中,变换由键盘事件触发作为导航事件。GUI定义文档在本示例中定义了四个导航事件,其对应于通过按下光标键“Up”(向上)、“Down”(向下)、“Left”(向左)和“Right”(向右)生成的键盘事件。因此,在本示例中,GUI定义了四个允许的导航事件。关于在GUI内导航,控制GUI的方法忽略除了这四个允许的导航事件之外的其它键盘事件。但是,还有的示例区别在于,还有的或其它的键盘事件触发变换,例如响应于按下键盘的“Tab”、“Page up”、“Page Down”、“Home”和/或“End”键,生成允许的导航事件。
回到图3所示的示例,GUI定义文档还将具有唯一ID A的HTML元素的值A定义为起始ID。因此,当初始化GUI时,具有唯一ID A的HTML元素最初被设置为当前可导航元素并且被强调以向用户给出信号指示当前元素。这是由电子设备的web浏览器使用JavaScript来处理的。为了在通过GUI导航时对当前可导航元素保持跟踪,通过JavaScript维护当前ID,并且每次从当前可导航元素导航到下一个可导航元素时,用下一个可导航元素的唯一ID的值更新当前ID。
通过GUI的导航通过图3所示的示例针对一个导航活动(即从当前元素导航到下一个元素)进行了示例性讨论。例如,具有唯一ID A的HTML元素(简称为“元素A”)可以被假定为示例性导航活动的起始点(以下相应地适用于任何其它HTML元素作为起始点)。因此,元素A是当前元素(其因此实际上被强调),并且当前ID具有值A。根据图3,元素A允许四个变换。因此,在GUI定义文档中,存在为HTML元素A定义的四个导航数据集,其可以被制定为相应导航事件和对应的下一个可导航元素的元组:(Up,A)、(Down,B)、(Left,A)、(Right,B)。这些元组被实现为元素A的HTML属性。元素A对于每个允许的导航事件具有恰好一个导航数据集,其中对于每个允许的导航事件,定义了对应的导航数据集。这避免了未定义的情况。由于元素A是起始点,因此响应于按下光标键“Down”,电子设备50通过解释与导航事件D对应的导航数据集将元素B确定为下一个元素,该导航数据集携带以上提到的用于当前元素A的元组(Down,B)的信息。因此,元素B(被找到并且因此)被设置为当前元素,即,元素A被设置为非活动的,元素B被设置为活动的,并且当前ID被更新为值B。此外,元素B被强调,而先前的当前元素A被取消强调。因此,通过按下“Down”键,用户可以从元素A导航到元素B。
如通过以上的示例元组(例如,元组(Left,A))还可以看到的,对于一些导航事件,下一个可导航元素可以与当前可导航元素相同。这意味着当从元素A开始导航时,响应于按下光标键“Left”,当前元素保持不变。从用户的角度来看,在这种情况下,如果元素A实际上被强调,那么按下“Left”键看起来没有导航效果。
在还有的示例中,导航数据集由HTML属性表示,它是仅指定下一个可导航元素的一维数据数组。在这些示例中,导航数据集不包括关于相应导航事件的任何明确制定的信息,而是通过数组内的导航数据集的顺序隐含地指定相应导航事件。例如,上述制定为元组(Up,A)、(Down,B)、(Left,A)、(Right,B)的导航数据集可以被编码为列表(A,B,A,B)。在本示例中,GUI定义文档中在别处定义数组内的第一个位置表示与导航事件“Down”相关联的下一个元素、数组内的第二个位置表示与导航事件“Right”相关联的下一个元素,以此类推。这可以降低GUI定义文档所需的存储和存储器消耗和/或减少电子设备的处理资源。
在还有的示例中,图3所示的HTML元素A至D可以在GUI定义文档中如以下示例代码片段所示的那样定义:
<input type="text"value=""navnext="A,B,A,B"uniqueID="A"
name="element A">
<input type="text"value=""navnext="A,D,A,C"uniqueID="B"
name="e1ement B">
<input type="text"value=""navnext="A,D,B,D"uniqueID="C"
name="element C">
<input type="text"value=""navnext="B,D,C,D"uniqueID="D"
name="element D">
因此,在本示例中,元素A至D是HTML输入字段。每个元素A至D包括实现为HTML元素的HTML属性“uniquelD”的唯一ID。为了将元素A指定为导航的初始起始点,可以在HTML GUI定义文档的主体标签中定义起始ID,例如,定义为<body startID="A">。导航数据集被实现为HTML属性“navnext”,其提供表示其元素的相应下一个元素的唯一ID的值的列表。在该列表内,第一个条目指定响应于导航事件“Up”的下一个元素,第二个条目指定响应于导航事件“Down”的下一个元素,然后是针对“Left”,并且最后是针对“Right”。为条目定义相应的相关联导航事件的潜在(underlying)顺序由JavaScript方法“getNext”定义,该方法也包含在HTML GUI定义文档中:
Navigation.getNext=function(navigationEvent)
“getNext”方法读取在GUI定义文档中作为HTML属性“navnext”存储的导航数据集:
NavigationDataSet=
Navigation.current.Element.getAttribute('navnext');
nextElementsList=NavigationDataSet.split(",");
然后,该方法“getNext”确定依赖于实际导航事件的下一个元素,其中每个导航事件的相应条目通过JavaScript的“switch”结构加以考虑。导航事件表示当按下UP、DOWN、LEFT或RIGHT键时由键盘生成的相应键代码:
在还有的示例中,导航事件可以基于如前面关于键盘事件所述的鼠标事件和键盘事件两者。例如,响应于鼠标点击,生成导航事件,其包括当前鼠标光标位置。这些示例中的一些示例可以对应于图3所示的示例。如果鼠标光标击中GUI的渲染视图内的HTML元素A、B、C和D中的一个,那么相应的HTML元素被设置为当前元素。(例如,鼠标光标是否击中元素通过GUI的渲染视图内的相应元素的空间范围是否覆盖导航事件中包含的鼠标光标位置来确定)。但是,可能发生用户没有通过点击鼠标来击中可导航元素(由图3中的云标记“点击其它地方”图示)。在这种情况下,执行到由非可见HTML元素O表示的状态O的变换。这意味着所有(可见)HTML元素A至D都将被取消强调(并且被设置为非活动的),并且不可见HTML元素O被设置为活动的(但不被强调,因为它是不可见元素)。如图3所示,从状态O开始,所有允许的导航事件将通向初始起始点元素A。因此,在没有击中HTML元素A至D中任何一个的情况下,将把元素A设置为在接收到下一个允许的导航事件时的当前可导航元素。
在还有的示例中,如图4所示,GUI定义文档定义了两个导航区域40、41,其中每个导航区域被实现为HTML层。每个导航区域40、41包括一组完整的HTML元素作为可导航元素以及由HTML元素的HTML属性(表示导航数据集)定义的其自己的导航行为。通常,控制具有多个导航区域的GUI的方法可以包括在导航区域的相应导航区域之间进行切换。至于本示例,这对应于web浏览器在HTML层之间切换。在HTML层或导航区域40、41之间的切换包括分别初始化和渲染它将切换到的那个HTML层和导航区域40、41。图4所示的示例包括在第一导航区域40和第二导航区域41之间的切换,其中第一导航区域40表示GUI的主窗口,并且第二导航区域41表示GUI的弹出窗口。当主窗口(即,第一导航区域40)被激活时,导航被限制于在第一导航区域40内的HTML元素,而当弹出视图(即第一导航区域41)被激活时,导航被限制于第二导航区域41内的HTML元素。在图4所示的本示例中,控制GUI定义文档的方法因此提供了在导航区域40、41两者之间切换的机制,其中切换通过除了导航区域40、41的导航事件之外的适当的导航区域控制事件来触发。
图5是实现本文所述的方法的示例电子设备50的内部结构的示意性表示。该结构也可以应用于被配置为实现本文所述的方法的示例客户端或示例服务器。
电子设备50包括处理器51、主存储器52和非易失性存储器53,例如,硬盘驱动器、不可移动闪存、固态驱动器和/或诸如Micro或Mini SD卡的可移动存储卡,其永久地存储使得电子设备50能够执行其功能的软件,例如操作系统。此外,电子设备50包括显示器56、键盘57以及可选的光标输入设备58(诸如鼠标)。可选地,可以存在诸如读卡器和USB接口的附加I/O接口59。可选地,电子设备50包括网络接口54(例如,诸如Wi-Fi和/或蓝牙接口的无线网络接口)和/或2G/3G/4G移动网络接口设备。所有它们51-54和56–59经由总线55相互通信。
电子设备50被布置为执行存储在计算机可读介质60上的程序代码61,以使其执行上述任何方法。例如,程序代码61可以至少包括GUI定义文档。一组可执行指令,即,体现上述任何一种或全部方法的程序代码60完全地或至少部分地永久驻留在计算机可读介质61上,计算机可读介质61可以由电子设备50通过I/O接口59访问。可选地,程序代码61可以附加地或替代地存储在非易失性存储器53中。例如,程序代码61可以从与电子设备50暂时连接的计算机可读介质60经由I/O接口59复制到非易失性存储器53中。当被执行时,相应的处理数据驻留在主存储器52和/或处理器51中。程序代码61还可以作为传播信号通过有线或无线网络接口54从/向局域网或互联网内的软件服务器传送或接收。
虽然本文已经描述了根据本发明的教导构造的某些产品和方法,但是本专利的覆盖范围不限于此。相反,本专利涵盖了本发明教导的,或者在字面上或者根据等同原则完全落入所附权利要求范围内的所有实施例。
Claims (16)
1.一种控制电子设备的图形用户界面GUI的方法,
其中所述GUI由被所述电子设备处理的GUI定义文档定义,所述GUI定义文档定义:
用于渲染所述GUI的所述GUI的布局,
所述GUI的可导航元素,
至少一个导航事件,以及
每个可导航元素的至少一个导航数据集,其中,对于相应的可导航元素,导航数据集为所述至少一个导航事件中的相应一个导航事件指定响应于所述导航事件要导航到的所述可导航元素中的下一个可导航元素;
所述方法包括:
由所述电子设备根据所述布局渲染所述GUI;以及
通过以下方式从当前可导航元素导航到下一个可导航元素:
由所述电子设备接收导航事件,以及
响应于接收到的导航事件,由所述电子设备将所述当前可导航元素设置为非活动的,并且将所述下一个可导航元素设置为活动的用于用户交互,其中所述下一个可导航元素基于所述当前可导航元素的所述至少一个导航数据集来确定。
2.如权利要求1所述的方法,还包括响应于将所述下一个可导航元素设置为活动的,强调所述下一个可导航元素。
3.如前述权利要求中任一项所述的方法,其中所述导航事件包括来自键盘的键代码或来自用户输入的字符代码中的至少一个。
4.如前述权利要求中任一项所述的方法,其中所述GUI定义文档定义每个可导航元素的至少2个、4个或6个导航数据集,其中在特定可导航元素的数据集内的每个导航数据集关于其对应的导航事件是唯一的。
5.如前述权利要求中任一项所述的方法,
其中所述GUI定义文档定义:
用于每个可导航元素的唯一可导航元素标识符,以及
起始标识符,所述起始标识符对应于所述可导航元素中的特定一个可导航元素的唯一可导航元素标识符;以及
其中所述方法还包括:
维护当前可导航元素标识符,以及
初始化所述GUI,其包括将所述当前可导航元素标识符设置为所述起始标识符的值;以及
其中从所述当前可导航元素导航到所述下一个可导航元素还包括:
当导航到所述下一个可导航元素时,将所述当前可导航元素标识符设置为所述下一个可导航元素的所述唯一可导航元素标识符的值。
6.如前述权利要求中任一项所述的方法,其中所述GUI定义文档包括HTML文档,所述可导航元素是HTML元素;以及其中渲染所述GUI由web浏览器执行。
7.如前述权利要求中任一项所述的方法,其中从所述当前可导航元素导航到所述下一个可导航元素由web浏览器通过JavaScript执行。
8.如前述权利要求中任一项所述的方法,其中所述GUI定义文档还定义至少两个导航区域,其中对于所述至少两个导航区域中的每个导航区域,所述GUI定义文档定义:
用于渲染所述GUI的与所述相应导航区域相关联的布局,
与所述相应导航区域相关联的可导航元素,
至少一个导航事件,以及
每个可导航元素的至少一个导航数据集,其中导航数据集为所述至少一个导航事件中的相应一个导航事件指定响应于所述导航事件要导航到的所述可导航元素中的下一个可导航元素;以及
其中所述方法还包括:
选择所述至少两个导航区域中的一个导航区域;
根据所选择的导航区域的布局渲染所述GUI;以及
通过以下方式从所述当前可导航元素导航到所述下一个可导航元素:
接收导航事件;以及
响应于接收到的导航事件,由所述电子设备将所选择的导航区域的所述当前可导航元素设置为非活动的,并且将所选择的导航区域的所述下一个可导航元素设置为活动的用于用户交互,其中所述下一个可导航元素基于所述当前可导航元素的所述至少一个导航数据集来确定。
9.一种用于控制图形用户界面GUI的电子设备,其中所述电子设备被配置为控制所述GUI,其中所述电子设备被配置为处理GUI定义文档,所述GUI定义文档定义:
用于渲染所述GUI的所述GUI的布局,
所述GUI的可导航元素,
至少一个导航事件,以及
每个可导航元素的至少一个导航数据集,其中,对于相应的可导航元素,导航数据集为所述至少一个导航事件中的相应一个导航事件指定响应于所述导航事件要导航到的所述可导航元素中的下一个可导航元素;
电子设备还被配置为:
根据所述布局渲染所述GUI;以及
通过以下方式从当前可导航元素导航到下一个可导航元素:
由所述电子设备接收导航事件,以及
响应于接收到的导航事件,由所述电子设备将所述当前可导航元素设置为非活动的,并且将所述下一个可导航元素设置为活动的用于用户交互,其中所述下一个可导航元素基于所述当前可导航元素的所述至少一个导航数据集来确定。
10.如权利要求9所述的电子设备,其中所述电子设备还被配置为执行如权利要求2至8中任一项所述的方法。
11.如权利要求9或10所述的电子设备,其中所述电子设备还被配置为从服务器接收所述GUI定义文档的客户端。
12.如权利要求9至11中任一项所述的电子设备,其中所述电子设备包括:
被配置为生成导航事件的键盘;以及
被配置为显示所渲染的GUI的显示器。
13.一种用于控制图形用户界面GUI的系统,所述系统包括:
服务器,被配置为:
处理GUI定义文档,所述GUI定义文档定义:
用于渲染所述GUI的所述GUI的布局,
所述GUI的可导航元素,
至少一个导航事件,以及
每个可导航元素的至少一个导航数据集,其中,对于相应的可导航元素,导航数据集为所述至少一个导航事件中的相应一个导航事件指定响应于所述导航事件要导航到的所述可导航元素中的下一个可导航元素;以及
提供所述GUI定义文档;以及
电子设备,被配置为:
根据所述布局渲染所述GUI;以及
通过以下方式从当前可导航元素导航到下一个可导航元素:
由所述电子设备接收导航事件,以及
响应于接收到的导航事件,由所述电子设备将所述当前可导航元素设置为非活动的,并且将所述下一个可导航元素设置为活动的用于用户交互,其中所述下一个可导航元素基于所述当前可导航元素的所述至少一个导航数据集来确定,
其中所述电子设备还被配置为从所述服务器接收所述GUI定义文档的客户端。
14.如权利要求13所述的系统,其中所述系统还被配置为执行如权利要求1至8中任一项所述的方法。
15.一种被配置为控制电子设备的图形用户界面GUI的计算机程序,
其中所述GUI由GUI定义文档定义,所述GUI定义文档定义:
用于渲染所述GUI的所述GUI的布局,
所述GUI的可导航元素,
至少一个导航事件,以及
每个可导航元素的至少一个导航数据集,其中,对于相应的可导航元素,导航数据集为所述至少一个导航事件中的相应一个导航事件指定响应于所述导航事件要导航到的所述可导航元素中的下一个可导航元素;
所述计算机程序还被配置为:
由所述电子设备根据所述布局渲染所述GUI;以及
通过以下方式从当前可导航元素导航到下一个可导航元素:
由所述电子设备接收导航事件,以及
响应于接收到的导航事件,由所述电子设备将所述当前可导航元素设置为非活动的,并且将所述下一个可导航元素设置为活动的用于用户交互,其中所述下一个可导航元素基于所述当前可导航元素的所述至少一个导航数据集来确定。
16.如权利要求15所述的计算机程序,还被配置为执行如权利要求2至8中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/528,281 | 2014-10-30 | ||
EP14003668.2 | 2014-10-30 | ||
EP14003668.2A EP3015964B1 (en) | 2014-10-30 | 2014-10-30 | Controlling a graphical user interface |
US14/528,281 US10044785B2 (en) | 2014-10-30 | 2014-10-30 | Controlling a graphical user interface |
PCT/EP2015/002058 WO2016066250A1 (en) | 2014-10-30 | 2015-10-16 | Controlling a graphical user interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107003801A true CN107003801A (zh) | 2017-08-01 |
CN107003801B CN107003801B (zh) | 2020-10-09 |
Family
ID=54337235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580066311.0A Active CN107003801B (zh) | 2014-10-30 | 2015-10-16 | 控制图形用户界面 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107003801B (zh) |
WO (1) | WO2016066250A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113920912B (zh) * | 2019-06-27 | 2023-03-03 | 华为技术有限公司 | 一种显示属性调整方法以及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7735023B1 (en) * | 2003-09-30 | 2010-06-08 | Sap Ag | Generic keyboard navigation |
CN101833456A (zh) * | 2010-05-26 | 2010-09-15 | 四川长虹电器股份有限公司 | 人机界面中焦点元素导航方法 |
WO2011054072A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
US20110113364A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
CN102693127A (zh) * | 2011-02-15 | 2012-09-26 | 微软公司 | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2081108A1 (en) * | 2008-01-16 | 2009-07-22 | Research in Motion Limited | System and Method of Navigating Graphical User Interface Elements |
AU2008261147A1 (en) * | 2008-12-19 | 2010-07-08 | Canon Kabushiki Kaisha | Hierarchical authoring system for creating workflow for a user interface |
-
2015
- 2015-10-16 WO PCT/EP2015/002058 patent/WO2016066250A1/en active Application Filing
- 2015-10-16 CN CN201580066311.0A patent/CN107003801B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7735023B1 (en) * | 2003-09-30 | 2010-06-08 | Sap Ag | Generic keyboard navigation |
WO2011054072A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
US20110113364A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
CN101833456A (zh) * | 2010-05-26 | 2010-09-15 | 四川长虹电器股份有限公司 | 人机界面中焦点元素导航方法 |
CN102693127A (zh) * | 2011-02-15 | 2012-09-26 | 微软公司 | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 |
Also Published As
Publication number | Publication date |
---|---|
CN107003801B (zh) | 2020-10-09 |
WO2016066250A1 (en) | 2016-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507519B2 (en) | Methods and apparatus for dynamically adapting a virtual keyboard | |
US10044785B2 (en) | Controlling a graphical user interface | |
US9753604B2 (en) | Managing inputs from a plurality of user input device actuators | |
JP6234445B2 (ja) | 英数字を入力するためのユーザ・インタフェース | |
US6204837B1 (en) | Computing apparatus having multiple pointing devices | |
JP4501018B2 (ja) | 携帯端末装置および入力装置 | |
US20150040056A1 (en) | Input device and method for inputting characters | |
US7014099B2 (en) | Data entry device | |
WO2013084560A1 (ja) | 電子文書の表示を行う方法、並びにその装置及びコンピュータ・プログラム | |
EP3190482B1 (en) | Electronic device, character input module and method for selecting characters thereof | |
CN102893250B (zh) | 确定操作对象的方法和终端 | |
CN102939574A (zh) | 字符选择 | |
CN102043786A (zh) | 配置快速键予页面转换元素的浏览系统及其方法 | |
CA2802648C (en) | Web management device, web management method, web management program, computer readable recording medium for recording said program, and web system | |
US9658751B2 (en) | Mouse button function setting method and system thereof | |
US20130227477A1 (en) | Semaphore gesture for human-machine interface | |
CN107003801A (zh) | 控制图形用户界面 | |
US8887101B2 (en) | Method for moving a cursor and display apparatus using the same | |
KR20170133047A (ko) | 가상 키보드 구조, 가상 키패드 기반 문자 입력 방법, 이를 실현하기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록 매체 | |
KR101447969B1 (ko) | 다중 모니터 단말의 입력 장치 | |
WO2014014278A1 (ko) | 터치 유저 인터페이스 방법 및 영상 장치 | |
KR101016948B1 (ko) | 온스크린 방향키를 이용한 문자 입력 장치 및 방법 | |
EP3015964B1 (en) | Controlling a graphical user interface | |
CN101882188A (zh) | 增强电子签名工具数据输入安全性的方法及装置 | |
JP2013134657A (ja) | 情報処理装置、情報処理方法および情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |