專利名稱:用于選擇交互字段的方法、系統(tǒng)、計算機程序產(chǎn)品、存儲裝置、機頂盒以及電視機的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種從多個交互字段中選擇交互字段的方法,所述方法包括貫穿交互字段來導(dǎo)航以便選擇交互字段。
本發(fā)明還涉及一種用于從多個交互字段中選擇交互字段的系統(tǒng),所述系統(tǒng)包括導(dǎo)航裝置,用于貫穿交互字段來導(dǎo)航以便選擇交互字段。
本發(fā)明還涉及被設(shè)計成能夠執(zhí)行這種方法的計算機程序產(chǎn)品。
本發(fā)明還涉及包括這種計算機程序產(chǎn)品的存儲裝置。
本發(fā)明還涉及包括這種系統(tǒng)的機頂盒和電視機。
這種方法、系統(tǒng)和計算機程序產(chǎn)品的實施例通常區(qū)別于通過基于可擴展標(biāo)記語言(XML)的文檔的導(dǎo)航支持得知,參考2000年10月6日、http//www.w3.org/TR/2000/REC-xml-20001006上的W3C介紹的可擴展標(biāo)記語言(XML)1.0(第二版)。這里,W3C代表World wide Web聯(lián)盟。這種文檔包括例如以超文本標(biāo)記語言(HTML)撰寫的文檔(參見1999年12月24日、http//www.w3.org/TR/htail401/上的W3C介紹的HTML 4.01規(guī)范),以可擴展超文本標(biāo)記語言(XHTML)撰寫的文檔(參見XHTML 1.02000年1月、http//www.w3.org/TR/xhtml1/上的W3C介紹的XML 1.0中的Extensible HyperText Markup Language AReformulation of HTML 4),或者同步多媒體集成語言(SynchronizedMultimedia Integration Language,SMIL)撰寫的文檔(參考2001年8月在http//www.w3.org/TR/2001/REC-smil20-20010807/上的W3C介紹的Synchronized Multimedia Integration Language(SMIL 2.0)。
SMIL已經(jīng)設(shè)計成能為多媒體內(nèi)容的集成顯示和與多媒體內(nèi)容交互提供XML語法。它還被設(shè)計成能支持資料檔案,如此使得應(yīng)用程序和設(shè)備可以因他們的設(shè)計目的而縮放和擴展。此外,SMIL已經(jīng)設(shè)計成能共同操作,如此使得其應(yīng)用程序可以在分布、異構(gòu)環(huán)境中操作。
貫穿包括在基于HTML或者基于SMIL的文檔內(nèi)的交互字段的導(dǎo)航支持通過所謂的“tabindex”屬性支持,參見1999年12月24日、http//www.w3.org/TR/html401/上的W3C介紹的HTML 4.01規(guī)范。在此文檔里面,在第“17.11.1 Tabbing navigation”節(jié)中定義了“tabindex”屬性,參見http//www.w3.org/TR/html401/interact/forms.htmlffadef-tabindex,其中在此重復(fù)其中最相關(guān)的部分tabindex=number[CN]此屬性依照制表順序為當(dāng)前文檔規(guī)定了當(dāng)前元素的位置。此值必須是0和32767之間的數(shù)字。用戶代理應(yīng)該忽略前導(dǎo)(leading)的零。
所述制表順序定義了這樣一種順序,其中當(dāng)用戶經(jīng)由鍵盤導(dǎo)航時,元素將接收聚焦。所述制表順序可以包括在其他元素內(nèi)嵌套的元素。
可以接收聚焦的元素應(yīng)該依照以下規(guī)則由用戶代理導(dǎo)航,所述規(guī)則為支持tabindex屬性并且將其指定為正值的那些元素首先被導(dǎo)航。導(dǎo)航從具有最低tabindex值的元素到具有最高值的元素進行。這些值無須是連續(xù)的,它們也不必從任何特殊值開始。具有同一tabindex值的元素依照它們在字符流中出現(xiàn)的順序來導(dǎo)航。
不支持tabindex屬性或者支持它并且將它指定為“0”值的那些元素接下來被導(dǎo)航。將這些元素依照它們出現(xiàn)在字符流中的順序?qū)Ш健票礞I。令制表導(dǎo)航或者元素激活的實際按鍵序列取決于用戶代理的結(jié)構(gòu)(例如,“tab”鍵用于導(dǎo)航而“enter”鍵用于啟動所選擇的元素)。
用戶代理還可以定義鍵序列以便依照相反順序?qū)Ш街票眄樞?。?dāng)?shù)竭_制表順序的末尾(或者開始)時,用戶代理可以循環(huán)回到開始(或者末尾)。
“tabindex”值的在前定義已經(jīng)由SMIL接替。SMIL將時序語義學(xué)引入HTML的tabindex中,其中只可以觀察到有源字段,參見http//www.w3.org/TR/smi120/extended-linking.htinliffadef-tabindex,這里重復(fù)其中最相關(guān)的部分tabindex此屬性提供了與HTML[HTML4]中tabindex屬性相同的功能。它依照制表順序為當(dāng)前文檔規(guī)定了元素的位置。所述制表順序定義了這樣一種順序,其中當(dāng)用戶經(jīng)由鍵盤導(dǎo)航時,元素將接收聚焦。在任意的特定時間點,只有具有有源時間線的元素因制表順序而被考慮。無源元素應(yīng)該因制表順序而被忽略。
當(dāng)媒體對象元素具有tabindex屬性時,那么將其排序的制表索引插入到由媒體對象的tabindex屬性值指定的位置上的SMCL制表索引中。這假定媒體對象自身具有制表索引,諸如具有tabindex屬性的嵌入式HTML。這樣使SMIL顯示中的所有鏈接起點,也包括在嵌入顯示中的那些,能夠在待經(jīng)由鍵入tab來排序的列表上的有塊位置。
由此,“tabindex”屬性通過向交互字段指定數(shù)字來標(biāo)識交互字段,由此,程序設(shè)計者可以基于線性比例排序那些字段。用戶可以通過以下方式來控制聚焦,即選擇有源字段,所述方式為命中TAB和SHFT-TAB鍵,依照由“tabindex”值給出的順序、讓聚焦上移或者下移到下一個或者上一個字段。
通常,將XML文檔顯示在支持鼠標(biāo)導(dǎo)航的設(shè)備上,并且用戶通過使用像鼠標(biāo)或者游戲桿的指示裝置可以依照隨機順序來導(dǎo)航。然后,基于TAB的導(dǎo)航協(xié)助基于鼠標(biāo)的導(dǎo)航。
與此相反,像機頂盒和電視機的消費者電子設(shè)備通常提供基于箭頭的導(dǎo)航,使用包括在搖控內(nèi)或者獨立的鍵盤內(nèi)的左/右和上/下鍵。實際上經(jīng)常使用獨立的OK按鈕來選擇交互字段,但是用戶只在自由移動光標(biāo)方面受限。由此,當(dāng)載入XML文檔以便在消費者電子設(shè)備上顯示、并且所述消費者電子設(shè)備只有左/右和上/下鍵是用戶可以利用的時,用戶可以使用這些左/右和上/下鍵進行二維導(dǎo)航。然而,由于“tabindex”屬性只描述了線性順序,所以那些鍵只能依照一個方向來用于導(dǎo)航。因此,沒有受益于左/右和上/下鍵的二維字符,因此要么一對鍵失去作用,要么兩對鍵都在交互字段上的聚焦中產(chǎn)生相同的移動。
本發(fā)明的一個目的在于提供一種依照前文的方法,該方法更加得益于左/右和上/下鍵的二維字符。為了實現(xiàn)此目的,所述方法的特征在于所述方法還包括將多個交互字段細分為多個子集,其中每個子集均包括多個交互字段的若干交互字段;并且導(dǎo)航以便選擇交互字段包括貫穿與多個子集交叉的所述數(shù)量的交互字段來導(dǎo)航;并且貫穿在多個子集的一個子集內(nèi)的所述數(shù)量的交互字段來導(dǎo)航;通過將多個交互字段劃分為多個子集,其中每個子集均包括多個交互字段的若干交互字段,上/下鍵可用于導(dǎo)航不同的子集并且選擇預(yù)定子集來從中選擇交互字段。然后,在每個子集內(nèi),左/右鍵可用于導(dǎo)航用戶想要選擇的交互字段。同樣可能的是,左/右鍵用于選擇預(yù)定子集,而上/下鍵用于選擇子集中的交互字段。據(jù)此,支持二維導(dǎo)航。本發(fā)明的更進一步的優(yōu)點在于還可以支持三維、四維以及更多維的導(dǎo)航。然后,每個維數(shù)包括多個子集,橫穿這些子集來貫穿所述數(shù)量的交互字段來導(dǎo)航。
依照本發(fā)明的方法的實施例在權(quán)利要求2中描述了。通過使用交互字段的線性順序,可以按照導(dǎo)航可能的方向來算術(shù)地表示交互字段。例如,在二維導(dǎo)航的實例中,當(dāng)交互字段I在以下范圍0≤I<2x+y中定義時,然后I可以表示為I=v×2y+h其中0≤v<2x并且0≤h<2y。因此,左鍵可以減小h的值,右鍵可以增加h的值,而上鍵可以減小v的值,而下鍵可以增加v的值。由此,上/下和左/右鍵的二維導(dǎo)航方向可用于貫穿交互字段導(dǎo)航。例如,在三維導(dǎo)航的實例中,當(dāng)可以在以下范圍0≤I<3x+y+z中定義I,然后I可以表示為I=d×3x+y+v×3y+h其中0d<3x,0≤v<3x并且0≤h<3y。因此,例如對于附加的維數(shù)來說,后退和前進鍵可以減小和增加d的值,而上、下、左和右鍵可以如先前描述的那樣更新v和h的值。所提及的基礎(chǔ)值、即2和3是舉例,其他值也是可以想到的。
依照本發(fā)明的方法的實施例在權(quán)利要求3中描述了。通過使用定義了多個子集的標(biāo)志,可以影響包括在一個集合內(nèi)的所述數(shù)量的交互字段。優(yōu)選的是,當(dāng)線性地排序所述交互字段時,標(biāo)志可以定義v和h值的預(yù)先描述的范圍。當(dāng)在描述該文檔的語言內(nèi)定義了交互字段的范圍時,只定義v或者h的一個范圍就足夠了。那些范圍還可以在語言自身的定義中被定義。
依照本發(fā)明的方法的實施例在權(quán)利要求4中描述了。通過使用定義了貫穿交互字段導(dǎo)航的方向的另外標(biāo)志,可以確定如上所述的v和/或h的值是否被優(yōu)先循環(huán)地遍歷。
本發(fā)明的一個目的在于提供一種依照前文的系統(tǒng),該系統(tǒng)更加得益于左/右和上/下鍵的二維字符。為了實現(xiàn)此目的,所述系統(tǒng)的特征在于所述系統(tǒng)還包括細分裝置,用于將多個交互字段細分為多個子集,其中每個子集均包括多個交互字段的若干交互字段;以及導(dǎo)航裝置,用于貫穿與多個子集交叉的所述數(shù)量的交互字段來導(dǎo)航;并且貫穿在多個子集的一個子集內(nèi)的所述數(shù)量的交互字段來導(dǎo)航。
一種計算機程序產(chǎn)品,被設(shè)計成能執(zhí)行依照本發(fā)明的方法。
包括依照本發(fā)明的這種計算機程序產(chǎn)品的存儲裝置。
包括依照本發(fā)明系統(tǒng)的機頂盒。
包括依照本發(fā)明系統(tǒng)的電視機。
本發(fā)明將通過以下附圖示出的實施例來描述。
圖1舉例說明了依照本發(fā)明的方法的主要步驟;圖2舉例說明了包括用戶可選字段的屏幕的直觀布局;圖3舉例說明了在“上”事件情況下、依照本發(fā)明的方法的主要步驟;圖4舉例說明了在“上”事件情況下、依照本發(fā)明的方法的另外的實施例;圖5舉例說明了在“下”事件的情況下、依照本發(fā)明的方法的主要步驟;圖6舉例說明了在“左”事件的情況下、依照本發(fā)明的方法的主要步驟;圖7舉例說明了在“右”事件的情況下、依照本發(fā)明的方法的主要步驟;圖8舉例說明了依照本發(fā)明的系統(tǒng)的主要部件;圖9以圖解法方式舉例說明了包括依照本發(fā)明系統(tǒng)的實施例的電視機;圖10以圖解方式舉例說明了包括依照本發(fā)明系統(tǒng)的實施例的機頂盒。
圖1舉例說明了依照本發(fā)明方法的主要步驟。這里,步驟S100是初始化步驟。在此步驟期間,接收、分析并且在適當(dāng)?shù)娘@示設(shè)備上顯示SMIL文檔120或者例如HTML、XML或者交互媒體文檔,其中所述顯示設(shè)備諸如電視屏或者個人計算機的屏幕。當(dāng)所述文檔聲明如HTML 4.0或者SMIL規(guī)范中定義的“tabindex”屬性時,所述方法進行到步驟S102。當(dāng)文檔沒有聲明“tabindex”屬性或者另一個屬性提供了與“tabindex”屬性相同的語義時,方法在步驟S104結(jié)束。作為選擇,可以將tabindex設(shè)定為缺省值,令算法延續(xù)而不結(jié)束。如上所述,“tabindex”的當(dāng)前定義即HTML和SMIL定義將“tabindex”定義為從0到32767的范圍內(nèi)的15位值0≤tabindex≤32767。因此線性順序,所以將值“tabindex”分為多個范圍,例如2個范圍7位一個范圍并且8位一個范圍。在S102之內(nèi),檢測是否有特殊元素122顯示在文檔內(nèi),所述文檔說明這兩個范圍之間的邊緣設(shè)置。當(dāng)出現(xiàn)特殊元素或者屬性時,讀取此屬性并且將屬性值用于確定范圍。例如元素或者屬性<tabIndexBorder lower=“5”/>
聲明邊緣將在5位。由此,h范圍在5位上而v范圍是15-5=10位。當(dāng)特殊元素或者屬性不存在時,使用缺省值,用于將值“tabindex”分隔為8位范圍和7位范圍。此缺省值還可以在普遍承認的文檔內(nèi)定義。此外,檢測是否有其他特殊元素124顯示,用于聲明是否循環(huán)地遍歷h和v的值,如下所述。當(dāng)特殊元素或者屬性出現(xiàn)時,讀取此屬性,并且將屬性值用于確定是否循環(huán)地遍歷h和v的值。例如元素或者屬性<circularValue v=″yes″h=″no″/>
聲明將循環(huán)地遍歷v的值并且不循環(huán)地遍歷h的值。
假定將“tabindex”值分為8位范圍和7位范圍。然后,可以如下計算所述值tabindex=vx256+h其中0≤v≤127且0≤h≤255。由此,將“tabindex”值分為多個連續(xù)的集合,如以下表1中所述
表1如表1中所示,優(yōu)選的是,將子集中的tabindex的值排序,如此使得子集中的值是連續(xù)的并且沒有值包括在一個以上子集中。具有最小tabindex值的交互字段被給出最初的聚焦。同樣可能的是,具有最高tabindex值或者具有隨機選擇的tabindex值的交互字段被給出最初的聚焦,或者元素的最低tabindex,所述元素當(dāng)前是有源的或者是在屏幕上可見的等等。接下來,方法進行到步驟S106,其中它等待直到檢測到用戶輸入。可以從搖控器接收用戶輸入,所述搖控器支持上/下和左/右事件。當(dāng)接收到這些事件之一時,在下一步S108內(nèi)檢驗實際上接收到的是哪個事件。如果接收了“上”事件,執(zhí)行步驟S110,如果接收了“下”事件,執(zhí)行步驟S112,如果接收了“左”事件,執(zhí)行步驟S114,如果接收了“右”事件,執(zhí)行步驟S116。這些步驟將在下面詳盡闡述。
如在用于SMIL顯示的tabindex定義中定義的那樣,將媒體對象元素的順序tabindex插入由媒體對象tabindex屬性值指定的位置上的SMIL tabindex。這可以是這樣的情況,如果例如SMIL顯示是在數(shù)字通用盤(DVD)播放器上顯示的SMIL文檔并且媒體對象元素是HTML文檔。在該情況下父母是SMIL文檔而孩子是HTML文檔。由于tabindex的SMIL定義,父母與子女文檔兩個的tabindex都聲明父母文檔中的單個點,所述父母文檔可以經(jīng)由一維和二維導(dǎo)航來到達。如果到達此單個點,那么孩子文檔接替tabindex的計算。然后,作為本發(fā)明的另外的實施例,父母文檔的tabindex、tabindex1可以定義為tabindex1=v1×2y1+h1]]>并且孩子文檔的tabindex、tabindex2可以定義為tabindex2=v2×2y2+h2]]>
然后,tabindex值的這些定義可以導(dǎo)致tabindex值的以下計算-如果導(dǎo)航發(fā)生在父母文檔內(nèi)tabindex=tabindex1-如果導(dǎo)航發(fā)生在孩子文檔內(nèi)tabindex=tabindex1×2x2+y2+tabindex2]]>其中孩子文檔中的二維導(dǎo)航令v2和h2改變,并且孩子文檔中的一維導(dǎo)航令h1和h2改變。還可以想到v1、h1、v2、h2的其他變化組合,以便提供貫穿文檔導(dǎo)航的可供選擇的方法。由此,tabindex值的這些計算可以被認為是從二維導(dǎo)航空間(即上、下、左和右)到二維以上導(dǎo)航空間(即3維、四維或者m維導(dǎo)航空間)的映射。作為引起上、下、左、右事件的結(jié)果,在此實施例中v和h值的改變對應(yīng)于如下所述實施例內(nèi)v和h值的改變。還可以想到包括更多維數(shù)。
總的來說,tabindex值的計算可以反映出所涉及的維數(shù)。例如,當(dāng)涉及三維的導(dǎo)航時,當(dāng)其可以是除上、下、左、右時間外的情況時,存在前進和后退事件,tabindex值的可以依照以下公式計算tabindex=d×3x+y+v×3y+h其中tabindex在以下范圍內(nèi),并且0≤d<3x,0≤v<3x并且0≤h<3y。
然后,類似于在相應(yīng)實施例中描述的更新v和h的值那樣,更新d、v和h的值。
圖2舉例說明了包括用戶可選字段的屏幕的直觀布局。這里,200是屏幕,例如電視屏、個人數(shù)字助理的屏幕等等。202,204,206,208,210,212和214是用戶可選擇的字段。在此示例內(nèi)沒有其他用戶可選字段。這些字段由如以下表中所描述的“tabindex”值來標(biāo)識。
表2如可以從表1中導(dǎo)出一樣,字段202在v=0的集合范圍內(nèi);字段204和206在v=1的集合范圍內(nèi);字段208,210和212在v=2的集合范圍內(nèi);字段214在v=4的集合范圍內(nèi)。注意,在此示例內(nèi)沒有獲得v=3的字段。
圖3舉例說明了在“上”事件的情況下、依照本發(fā)明方法的主要步驟的實施例。在“上”事件的情況下,其指的是用戶例如按下顯示在遙控或者顯示在傳統(tǒng)字母數(shù)字鍵盤上的“上”按鈕,諸如箭頭鍵,所述方法將首先在上述表1內(nèi)的集合中搜索保持包含“tabindex”值的集合的有效v值。假定最初選擇隨機選擇字段。例如,選擇字段206并且tabindex=500,由此v=1,并且h=244。在當(dāng)前實施例的剩余部分中,將這些值稱為起始值。如上所述,當(dāng)接收到“上”事件時,依照本發(fā)明的方法進行到步驟S110,如圖1所示。在此步驟內(nèi),將v的值減去1,即v=1-1=0,并且將h的值設(shè)定為其起始值,即h=244。
在下一步驟S300中,檢測是否存在符合新的tabindex值的交互字段,所述新的tabindex值tabindex=0×256+244=244。當(dāng)存在可選擇的有效交互字段時,方法進行到步驟S302。當(dāng)沒有可選擇的有效交互字段時,方法進行到步驟S304。
在步驟S302內(nèi),可選擇的交互字段接收用戶聚焦。給予用戶不同的視覺反饋,以便表明交互字段接收用戶聚焦。例如,通過高亮顯示交互字段,或者通過貫穿邊界線強調(diào)交互字段等等??梢酝ㄟ^向用戶發(fā)送可聞信號來進行其他反饋。
在步驟S304內(nèi),將h的值減去1,即h=244-1=243。
在下一步驟S306中,檢測是否存在符合新的tabindex值的交互字段,所述新的tabindex值tabindex=0×256+243=243。當(dāng)存在可選擇的有效交互字段時,方法進行到步驟S302。當(dāng)沒有可選擇的有效交互字段時,方法進行到步驟S308。
在步驟S308內(nèi),檢測h的值是否小于0。如果h的值大于或等于0,那么方法回到步驟S304。依照此方法,小于h起始值的所有h值被遍歷,即起始tabindex值244,即v的新值500,即0。如果h的值小于0,那么方法進行到步驟S310。
在步驟S310內(nèi),將h的值增加1。在第一次執(zhí)行此步驟時,將h的值設(shè)定為等于其起始值,即244,由此在該情況下h的新值成為h=244+1=245。
在下一步驟S312中,檢測是否存在符合新的tabindex值的交互字段,所述新的tabindex值tabindex=0×256+245=245。當(dāng)存在可選擇的有效交互字段時,方法進行到步驟S302。當(dāng)沒有可選擇的有效交互字段時,方法進行到步驟S314。
在步驟S314內(nèi),檢測h的值是否大于255。如果h的值小于或等于255,那么方法回到步驟S310。依照此方法,大于h起始值的所有h值被遍歷,即起始tabindex值244,即v的新值500,即0。如果h的值大于255,那么方法進行到步驟S316。
在步驟S316內(nèi),檢測v的值是否小于其最小值,即0,或者v的值是否大于v的起始值。如果v的值大于或等于0并且v的值小于或者等于v的起始值,那么方法回到步驟S110??梢姡∮趘的起始值的所有v的值被遍歷,即起始tabindex值1,即500。如果v的值小于0并且v的值大于v的起始值,那么方法進行到步驟S318。
在步驟S318內(nèi),將v的值增加1,從v和h的起始值開始設(shè)定為其的起始值。由此,v的新值成為v=+1=2,并且h的新值成為h=244。
在下一步驟S320中,檢測是否存在符合新的tabindex值的交互字段,所述新的tabindex值tabindex=2×256+244=757。當(dāng)存在可選擇的有效交互字段時,方法進行到步驟S302。當(dāng)沒有可選擇的有效交互字段時,方法進行到步驟S322。
在步驟S322內(nèi),檢測v的值是否大于127。如果v的值小于或等于127,那么方法回到步驟S304??梢?,大于v的起始值的所有v的值被遍歷。如果v的值大于127,那么沒有可以選擇的有效交互字段,所述有效交互字段不同于從開始選擇的交互字段,并且所述方法在步驟S324中結(jié)束。
在步驟S324內(nèi),因為除了選擇“上”按鈕中選擇的字段,沒有其他字段可以選擇,所以執(zhí)行異常處理。在此異常處理期間,用戶接收可聞信號或者別的信號以表明沒有其他可選字段有效。還可以使用其他異常處理技術(shù)。
圖4舉例說明了在“上”事件情況下、依照本發(fā)明方法的主要步驟的另一個實施例。在此實施例中,循環(huán)地遍歷v和h的值。這意味著如果v的值變得小于其最小值,那么將其設(shè)定為最大值。對于在前示例來說,當(dāng)已經(jīng)遍歷了v=0的值之后,將v的值設(shè)定為127,作為將要遍歷下一個值,。這意味著如果v的值變得大于其最高值,那么將其設(shè)定為最小值。由此,如果在已經(jīng)遍歷了v=127的值之后,將v的值設(shè)定為0,作為將要遍歷下一個值。同樣適用于h的值。
如上所述,當(dāng)接收到如圖1中所示的“下”事件時,依照本發(fā)明的方法進行到步驟S112。假定最初選擇隨機選擇字段,例如選擇圖2的字段210。那么,tabindex=601,由此v=2,并且h=89。
在步驟S112內(nèi),將v的值增加1,即v=3。
在下一步驟S404中,檢測是否已經(jīng)遍歷了v的值。當(dāng)是這樣的時,方法進行到步驟S412。當(dāng)沒有遍歷所有的v值,那么方法進行到步驟S406。
在步驟S412內(nèi),因為除了從選擇“上”按鈕中選擇的字段,沒有其他字段可以選擇,所以執(zhí)行異常處理。在此異常處理期間,用戶接收可聞信號或者別的信號以表明沒有其他可選字段有效。還可以使用其他異常處理技術(shù)。
在步驟S406內(nèi),檢測對于tabindex的新值、即tabindex=3×256+89=857來說,是否存在有效的可選字段。當(dāng)依照該值存在有效的可選字段時,方法進行到步驟S414。當(dāng)沒有有效的可選字段時,方法進行到步驟S408。
在步驟S414內(nèi),用戶接收適當(dāng)?shù)姆答?,其表明最新選定的字段。例如,通過高亮顯示此最新選定的字段來表明。然而,在當(dāng)前示例內(nèi),沒有由此tabindex標(biāo)識的字段。
在步驟S408內(nèi),增加h的值以便在由v=3標(biāo)識的集合內(nèi)搜索字段。除了如上所述的依照循環(huán)方式增加h的值外,諸如搜索最近的h的值的其他實現(xiàn)方式也是可能的。
接下來、在步驟S410內(nèi),檢測是否已經(jīng)遍歷了所有h的值而沒有發(fā)現(xiàn)可選字段。如果沒有遍歷所有h的值,那么方法進行到步驟S406。如果已經(jīng)遍歷了所有h的值,那么方法回到步驟S112。
在步驟S406內(nèi),檢測對于tabindex新值來說是否存在有效的可選字段。在當(dāng)前示例內(nèi),對于v=3來說沒有有效的可選字段,由此,將遍歷所有h的值,并且方法進行到步驟S112,在該步驟內(nèi),增加v的值。
在步驟S112內(nèi),將v設(shè)定為4,并且tabindex的新值等于4×256+89=1113。如上所述,方法繼續(xù)進行產(chǎn)生選定字段214,參見圖2,同時tabindex值等于1030。
圖5舉例說明了在“上”事件情況下、依照本發(fā)明的方法的主要步驟。在“上”事件的情況下,其指的是用戶按下顯示在遙控或者顯示在傳統(tǒng)的字母數(shù)字鍵盤上的“上”按鈕,依照本發(fā)明的方法進行到步驟S110。在此實施例中,循環(huán)地遍歷v和h的值。在不循環(huán)地遍歷v和h的情況下的類似實現(xiàn)方式可以從圖3中所述的實施例中導(dǎo)出。
在此步驟S110內(nèi),減小v的值。在當(dāng)前示例中,將v的值減少到1。搜索新的可選字段,該新的可選字段由tabindex等于1×256+89=345來標(biāo)識。其他步驟S504,S506,S508,S510,S512,S514對應(yīng)于如上所述的步驟S404,S406,S408,S410,S412和S414。
除了如在“上”和“下”事件中描述的那樣增加h,還可以減小h或者執(zhí)行兩者的結(jié)合。
圖6舉例說明了在“左”事件情況下、依照本發(fā)明的方法的主要步驟。在“左”事件的情況下,其指的是用戶按下顯示在遙控或者顯示在傳統(tǒng)的字母數(shù)字鍵盤上的“左”按鈕,依照本發(fā)明的方法進行到步驟S114。在此實施例中,循環(huán)地遍歷h的值。
在此步驟S114內(nèi),減小h的值。對于當(dāng)前示例來說,將h減少到88。
在下一步驟S604中,首先檢測是否已經(jīng)遍歷了對應(yīng)v的當(dāng)前值的所有h的值。如果對于v的當(dāng)前值來說不是所有的h值都已經(jīng)遍歷,那么方法進行到步驟S606。如果對于v的當(dāng)前值來說所有的h值都已經(jīng)遍歷,那么方法進行到步驟S608。
在步驟S606內(nèi),檢測是否有由tabindex的新值標(biāo)識的字段,所述tabindex的新值2×256+88=600。在當(dāng)前示例內(nèi),參見圖2,這種字段2 08存在并且方法進行到步驟S610,其中還如先前描述的那樣,給用戶選擇此字段208的適當(dāng)?shù)姆答?。如果沒有由等于600的tabindex標(biāo)識的字段,方法進行到步驟S114。
在步驟S608內(nèi),如上所述的執(zhí)行異常處理。
在別的實現(xiàn)方式中,還能夠進行到步驟S112,參見圖4或者S110,參見圖5,并且還分別如“下”事件或者“上”事件中所述那樣進行。
在其他實現(xiàn)方式中,不循環(huán)地遍歷h的值,并且類似于圖3中的方法的實施例的描述改變?nèi)缟纤龅牟襟E。
圖7舉例說明了在“右”事件情況下、依照本發(fā)明的方法的主要步驟。在“右”事件的情況下,其指的是用戶按下顯示在遙控或者顯示在傳統(tǒng)的字母數(shù)字鍵盤上的“右”按鈕,依照本發(fā)明的方法進行到步驟S116。在此實施例中,循環(huán)地遍歷h的值。
在步驟S116中,增加h的值。對于當(dāng)前示例來說,將h增加到90。
在下一步驟S704中,首先檢測是否已經(jīng)遍歷了對應(yīng)v的當(dāng)前值的所有h值。如果對于v的當(dāng)前值來說不是所有的h值都已經(jīng)遍歷,那么方法進行到步驟S706。如果已經(jīng)遍歷了所有的h值,那么方法進行到步驟S708。
在步驟S708內(nèi),如上所述的執(zhí)行異常處理。
在步驟S706內(nèi),檢測是否有由tabindex的新值標(biāo)識的字段,所述tabindex的新值2×256+90=602。在當(dāng)前示例中,沒有由此tabindex值標(biāo)識的字段,并且方法進行到步驟S116。此循環(huán)進行,直到tabindex等于767,用于標(biāo)識字段212,參見圖2。
然后,方法從步驟S706進行到步驟S710。
在步驟S710中,同樣如前所述給用戶選擇此字段212的適當(dāng)?shù)姆答仭?br>
在別的實現(xiàn)方式中,還能夠進行到步驟S110,參見圖5或者S112,參見圖4,并且還分別如“上”事件或者“下”事件中所述那樣進行。
在本發(fā)明的2D導(dǎo)航的其他實現(xiàn)方式中,獨立地聲明對每個tabindex增加和減少值。例如,依照它們的各個tabindices考慮元素的以下布局
每一tabindex對每個方向、即水平和垂直方向的增加和減少在文檔中聲明。例如,對具有tabindex=01的元素X01來說,聲明如下<element tabindex=“01”left=“0”right=“9”up=“0”down=“2 0”../>
現(xiàn)在,從具有tabindex=01的元素X01開始,事件“左”或者“上”不引起聚焦的變化。事件“下”引起聚焦改變到具有tabindex=21的元素X21,而事件“右”引起聚焦改變至具有tabindex=10的元素X10。由此,可以如下計算下一個選擇的tabindex值、即tabindex_nexttabindex_next=tabindex+vd×Cdown+vu×Cup+hl×Cleft+hr×Cright其中,在“下”事件情況下,將vd的值設(shè)定為1,在其他事件(上、左、右)的情況下將其設(shè)定為0。通過“上”事件將vu的值設(shè)定為1,在其他事件將其設(shè)定為0,在“左”事件將hl的值設(shè)定為1,在其他事件的情況下將其設(shè)定為0,在“右”事件的情況下將hr的值設(shè)定為1,在其他事件情況下將其設(shè)定為0。將Cdown、Cup、Cleft、Cright值分別設(shè)定為屬性下、上、左、右的值。
然后,從元素X01開始并且到接收到“下”事件時,下一個選擇的元素的tabindex、即tabindex_next如下計算tabindex_next=01+1×20+0×0+0×0+0×9=01+20=21。
在父母與子女文檔的實例中,左、右、上和下偏移值例如可以適用于完整的孩子文檔,必要時給出孩子文檔否決父母文檔的機會。
代替使用偏移值,例如可以使用絕對值,如此使得“下”=21事件始終引起選擇具有tabindex等于21的下一個tabindex值,或者引起搜索具有其值最接近于21的tabindex。
在其他實現(xiàn)方式中,下一個tabindex、即tabmdex_next例如還可以通過計算不同元素的“h”之間和“v”值之間的最小差來計算
tabindex_next是最小化值(h_tabindex_next-h_tabindex)2+(v_tabindex_next-v_tabindex)2]]>或者是“h”和“v”值之間差的絕對值的最小化abs(h_tdbindex_next-h_tabindex)+abs(v_tabindex_next-v_tabindex)其中h_tabindex_next是下一個選擇的tabindex的“h”值,h_tabindex是目前選擇的tabindex的“h”值,v_tabindex_next是下一個選擇的tabindex的“v”值,v_tabindex是目前選擇的tabindex的“v”值;在計算下一個選擇的tabindex值方面,還可以想到許多其他變化,如此使得下一個選擇的tabindex值對應(yīng)于相應(yīng)事件的期待行為。
在描述的實現(xiàn)方式中,如果沒有元素對應(yīng)于計算的新的tabindex值,那么可以選擇可替代的元素。優(yōu)選的是,這個元素是tabindex值最接近于最新計算的tabindex值的元素。首先增加“h”值然后“v”值(其它類似的方式)來例如計算最接近的tabindex值。這里,在不脫離本發(fā)明原理的情況下,多個可替代計算方法都是可能的。
所提及的實現(xiàn)方式還可以應(yīng)用于例如8鍵導(dǎo)航,無論在哪種情況下,必定將更多維數(shù)添加到tabindex的計算中。
在其他實現(xiàn)方式中,不循環(huán)地遍歷h的值,并且類似于圖3中的方法的實施例的描述改變?nèi)缟纤龅牟襟E。
在所描述的本發(fā)明的方法實施例中的順序不是必須的,所屬技術(shù)領(lǐng)域的專業(yè)人員可以改變步驟的順序或者使用線程模型、多處理機系統(tǒng)或者多進程來同時執(zhí)行這些步驟、而不脫離本發(fā)明設(shè)計的原理。此外,將“tabindex”的范圍細分為多個子范圍可以依照二維以上方式進行導(dǎo)航,并且能夠與一維(1D)導(dǎo)航相兼容。
圖8舉例說明了依照本發(fā)明的系統(tǒng)的主要部件。所述系統(tǒng)包括存儲器802,804和824。這些存儲器經(jīng)由軟件總線826彼此相連。存儲器802包括計算機可讀代碼830,其被設(shè)計成能接收信號。當(dāng)執(zhí)行時,將此信號通過計算機可讀代碼830翻譯成適當(dāng)?shù)氖录T如“上”、“下”、“左”或者“右”。這些事件表明貫穿交互字段所要求的導(dǎo)航,如圖2中所示的例子那樣。存儲器804包括計算機可讀代碼832,其被設(shè)計成能將“tabindex”的范圍分隔為多個子范圍,如上所述。此外,包括在存儲器802中的所述計算機可讀代碼830被設(shè)計成能橫穿在“上”或者“下”事件情況下的范圍來導(dǎo)航,并且被設(shè)計成能在“左”或者“右”事件的情況下的范圍中導(dǎo)航。還可以想到的是,可以選擇其他導(dǎo)航方向來橫穿或者在“tabindex”的范圍值中導(dǎo)航。所述系統(tǒng)還包括處理器806,其與軟件總線826相連,并且可以執(zhí)行包括在存儲器中的所述計算機可讀代碼。在所述系統(tǒng)中包括通用存儲器824,用于包括被設(shè)計成能向用戶通知正確和不正確的交互字段的選擇和被設(shè)計成能接收來自于互聯(lián)網(wǎng)828的文檔的計算機可讀代碼,其中所述互聯(lián)網(wǎng)828與系統(tǒng)800相連。所述文檔還可以從存儲設(shè)備或者別的信息載體接收。通用存儲器824包括另外的計算機可讀代碼,其被設(shè)計成能在與系統(tǒng)相連的屏幕上表示文檔。從搖控器814接收“上”、“下”、“左”和“右”信號。遙控器包括可選字段816,818,820和822。遙控器814還可以包括更多字段,像“OK”字段(未示出),這些字段可以由用戶使用以便確認選擇。當(dāng)用戶選定字段816時,將“上”信號傳送到系統(tǒng)800。當(dāng)用戶選定字段818,820或者822時,將信號“下”、“左”和“右”分別傳送到系統(tǒng)800。系統(tǒng)800選擇性地包括遙控器814,或者系統(tǒng)800可以提供遙控器814包括的功能。將信號經(jīng)由紅外線無線地傳輸,但是其他協(xié)議、像藍牙也是可能的。信號還可以有線傳輸,無論在哪種情況下,都將遙控器物理地與系統(tǒng)800相連。同樣可能的是,將一個以上的遙控與系統(tǒng)800相連,例如通過使用互聯(lián)網(wǎng)連接實現(xiàn)。在該情況下,搖控器都可以貫穿交互字段導(dǎo)航。計算機可讀代碼還可以通過存儲設(shè)備810更新,存儲設(shè)備810包括計算機程序產(chǎn)品834,被設(shè)計成能執(zhí)行依照本發(fā)明的方法。存儲設(shè)備由適當(dāng)?shù)淖x取裝置讀取,例如CD閱讀器808,其與系統(tǒng)800相連。所述系統(tǒng)可以依照硬件和軟件實現(xiàn),或者能夠操作軟件的任何其他標(biāo)準(zhǔn)體系結(jié)構(gòu)。
圖9以圖解方式舉例說明了包括依照本發(fā)明系統(tǒng)的實施例的電視機910。這里,天線900接收電視信號。還可以使用任何能夠接收或者再現(xiàn)電視信號的設(shè)備來替換天線900,例如像衛(wèi)星反射器、電纜、存儲設(shè)備、互聯(lián)網(wǎng)或者以太網(wǎng)。接收器902接收基于SMBL或者HTML的文檔,將其連同電視信號一起接收或者分開接收。除接收器902之外,電視機包含可編程部件904,例如可編程集成電路。此可編程部件包含依照本發(fā)明的系統(tǒng)906。電視屏幕908示出了由接收器902收到的文檔,并且由可編程部件904處理。電視機910選擇性地可以包括或者與DVD播放器912相連。
圖10以圖解方式舉例說明了包括依照本發(fā)明系統(tǒng)的實施例的機頂盒的主要部分。這里,天線1000接收電視信號。所述天線例如還可以是衛(wèi)星反射器、電纜、存儲設(shè)備、互聯(lián)網(wǎng)、以太網(wǎng)或者能夠接收電視信號的任何其他設(shè)備。機頂盒1002接收信號。所述信號例如可以是數(shù)字的。除機頂盒中包含的常見部件之外,但是在此未示出,所述機頂盒包含依照本發(fā)明的系統(tǒng)1004。連同電視信號一起接收或者與電視信號分開接收的基于SMIL或者HTML的文檔,被顯示在電視機1006上,所述電視機1006與機頂盒1002相連。
權(quán)利要求
1.一種從多個交互字段中選擇交互字段的方法,所述方法包括貫穿交互字段來導(dǎo)航以便選擇交互字段,其特征在于所述方法還包括將多個交互字段細分為多個子集,其中每個子集均包括多個交互字段的若干交互字段;并且導(dǎo)航以便選擇交互字段包括貫穿與多個子集交叉的所述數(shù)量的交互字段來導(dǎo)航;并且貫穿在多個子集的一個子集內(nèi)的所述數(shù)量的交互字段來導(dǎo)航。
2.如權(quán)利要求1所述的選擇交互字段的方法,其中多個交互字段的順序是線性的。
3.如權(quán)利要求1所述的選擇交互字段的方法,其中第一預(yù)定標(biāo)志表明將多個交互字段所細分成為的多個子集。
4.如權(quán)利要求1所述的選擇交互字段的方法,其中第二預(yù)定標(biāo)志確定導(dǎo)航方向以便選擇交互字段。
5.一種用于從多個交互字段中選擇交互字段的系統(tǒng)(800),所述系統(tǒng)包括導(dǎo)航裝置(830),用于貫穿交互字段導(dǎo)航以便選擇交互字段,其特征在于所述系統(tǒng)還包括細分裝置(832),用于將多個交互字段細分為多個子集,其中每個子集均包括多個交互字段的若干交互字段;以及導(dǎo)航裝置(830)是用于貫穿與多個子集交叉的所述數(shù)量的交互字段來導(dǎo)航;并且貫穿在多個子集的一個子集內(nèi)的所述數(shù)量的交互字段來導(dǎo)航。
6.一種設(shè)計成能執(zhí)行如權(quán)利要求1所述的方法的計算機程序產(chǎn)品(834)。
7.一種包括如權(quán)利要求5所述的計算機程序產(chǎn)品(834)的存儲設(shè)備(810)。
8.一種包括如權(quán)利要求4所述的系統(tǒng)(800)以便選擇交互字段的機頂盒(902)。
9.一種包括如權(quán)利要求4所述的系統(tǒng)(800)以便選擇交互字段的電視機(810)。
10.一種包括如權(quán)利要求3所述的第一預(yù)定標(biāo)志的文檔(120)。
11.一種包括如權(quán)利要求4所述的第二預(yù)定標(biāo)志的文檔(120)。
全文摘要
貫穿諸如XHTML和SMIL的XML文檔中的交互字段的導(dǎo)航支持由所謂的tabindex屬性來支持。為了實現(xiàn)貫穿交互字段的二維導(dǎo)航,提出了一種方法,所述方法將交互字段劃分為多個子集。根據(jù)一維的導(dǎo)航導(dǎo)航經(jīng)過與多個子集交叉的交互字段。根據(jù)其它維的導(dǎo)航導(dǎo)航貫穿多個子集內(nèi)的交互字段。
文檔編號G06F3/0489GK1630846SQ03803633
公開日2005年6月22日 申請日期2003年1月29日 優(yōu)先權(quán)日2002年2月11日
發(fā)明者W·R·T·坦卡特 申請人:皇家飛利浦電子股份有限公司