首頁 >web前端 >js教程 >學習焦點()

學習焦點()

Jennifer Aniston
Jennifer Aniston原創
2025-02-21 10:39:14667瀏覽

Learning to focus()

學習焦點()

鑰匙要點

  • 對於Web可訪問性,管理焦點在JavaScript驅動的交互式小部件中至關重要。重要的是使用程序化焦點以確保用戶可以與接口的不同區域進行交互,即使不使用鼠標。 在更改ScrollTop的動畫中,必須覆蓋元素的默認功能,以確保屏幕讀取器輸出和鍵盤交互從頁面的正確區域繼續。這可以通過使用TabIndex屬性以編程為焦點的目標片段來實現這一目標,並在動畫的回調中包括JavaScript focus()方法。 >
  • 關閉對話框或模態窗口時,重新關注打開對話框的元素是合乎邏輯的。這可以通過將DOM節點保存在內存中或在其上寫下標記來完成。這有助於用戶知道他們在頁面上的位置,並防止他們必須涉足文檔才能再次找到自己的位置。
  • 多虧了好運,我有一雙功能齊全的眼睛。當涉及到網頁時,這是一個福音,因為將我的注意力從頁面的一個部分轉移到另一部分,只需半自覺地收縮我的眼外肌肉,並旋轉我的眼睛的圓周。 >儘管我的視覺效果 - 因此,因此可以說已經改變了焦點,但用戶界面本身並不知道我的注意力已經改變。至少,直到我開始與新審查的區域進行物理相互作用。換句話說,旋轉我的眼球是一個未錄製的事件。
>

>這是一個非常普遍但經常未解決的可訪問性問題:如果我不使用眼睛(和鼠標的手指向),那麼我如何“專注於”某些東西以與之互動?我確定您知道的答案是通過程序化的重點。但是,這並不像將“焦點”元素合併到我們的設計中那麼簡單。有時,不是用戶,而是用戶代表用戶的接口必須在不同區域之間移動。這就需要故意將重點管理集中在開發人員方面。

對於可訪問性,即使是最簡單的JavaScript驅動的交互式小部件,管理焦點至關重要,但是使用自動化的QA

工具幾乎不可能進行正確的用法。這就是為什麼我今天想帶您幾個簡單的示例。

>

> scrolltop動畫

在此示例中,我邀請您想像您已經“增強”了同一頁面導航鏈接,以便您不要突然跳到鏈接的目標片段(#第1節,假設),而是將其輕輕地引入此目的地通過JavaScript捲軸動畫。使用此技術時要注意的有關可訪問性的重要信息是覆蓋元素的默認功能的必要性。

event<span>.preventDefault();</span>
通過這樣做,您告訴瀏覽器要避免做任何標準,預期或可互操作的事情。您告訴鏈接

鏈接。實際上,確定鏈接實際上正確將用戶正確到頁面片段的唯一方法是關閉JavaScript。好吧, >通過簡單地鏈接到頁面片段(就像JavaScript Off的一個人一樣),瀏覽器本質上是

focus

此片段。這是屏幕讀取器輸出和鍵盤交互現在基於的地方。通過對ScrollTop進行動畫操作,不會進行這種聚焦操作,這意味著屏幕閱讀器的輸出和鍵盤交互從頁面區域繼續進行,而不再是視圖。這是不好的。 補救症

我們需要通過JavaScript聚焦目標片段。首先,我們需要將片段從編程上開始,因此需要使用Tabindex屬性。 Tabindex值為-1是一個特殊的值,這意味著腳本可以將元素重點放在,但不能集中用戶。這比TabIndex更可取:在這種情況下,因為沒有理由使用Tab鍵。

>

注意:感謝Patrick和其他人在評論中指出的事實是,這應該使用“ -1”而不是“ 0”作為Tabindex值,我們現在已經更正了。 🎜>

我們的第二個任務是將JavaScript focus()方法包括在動畫的回調中,確保動畫結束後的片段焦點>。

>最後,最好像簡單地鏈接到片段(例如http:// my-site/#Section1)那樣記錄我們在URL中的子頁面位置。這樣,我們就可以將地址複製為指向特定部分的鏈接(即我們可以“深鏈接”)。在焦點()發生之後包括以下行:
<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span>
</span>    ...
<span><span><span></section</span>></span></span>
>

當然,您將根據相應鏈接的HREF為任何變量替換“第1節”,減去#。

<span>document.getElementById('section1').focus();</span>
結果

>一個小的Codepen演示在下面嵌入。嘗試將其與僅作為慣常鍵盤用戶的tab和Shift Tab使用。 >
<span>window.location.hash = 'section1';</span>
請參閱codepen上的sitepoint(@sitepoint)的筆IDXJL。

請注意,我們在JavaScript中即時添加了Tabindex屬性。現在,我們將要滾動到的部分(片段)集中到了我們所感知的位置不僅僅是視覺效果。也就是說,我應該在轉到新部分後按TAB鍵,我將集中該部分中的下一個焦點元素;在下面的示例中,超鏈接讀取“ heydonworks.com”。

>
event<span>.preventDefault();</span>

>如果我們不專注於第1節,請按TAB鍵將關注插圖鏈接之後的下一個元素,該鏈接將將視口躍回我們的導航塊。換句話說,鍵盤用戶將返回第一方。

>
<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span>
</span>    ...
<span><span><span></section</span>></span></span>

關閉對話框(模式窗口)

這是另一個小例子。讓我們假裝用戶按下

為了使打開此按鈕可訪問,我們應該以與最後一個示例中的頁面片段相同的方式進行焦點()對話框。使用jqueryui,對話框的第一個按鈕(在我們的情況下為“確認”)將集中在集中。其他實現將對話容器集中。無論哪種方式,用戶都可以通過編程方式發送到正確的位置

>問題是:“對話框關閉時會集中註意力?”如果我們什麼也不做,新隱藏的對話框一定會失去焦點,但什麼都不會取代。在許多用戶代理中,這意味著默認情況下

焦點是使用戶通過文檔再次找到自己的位置。 >重新集中打開對話框的元素是更合乎邏輯的。這很容易通過將DOM節點保存在內存中或在其上寫下標記以供以後使用,例如:
<span>document.getElementById('section1').focus();</span>

>在對話框的結尾()方法的末尾,我們只會集中原始元素:>

>大多數屏幕讀取器重新集中在按鈕時,都會宣布頁面的標題,然後宣布焦點按鈕。這樣,您知道自己在哪裡。使用此方法的對話框的一個示例可以進行測試。
<span>window.location.hash = 'section1';</span>
>

結論

<span><span><span><a</span> href<span>="#whatever"</span>></span>scroll to section 'whatever'<span><span></a</span>></span></span>
>將漸進式增強與可訪問性混合在一起是一個普遍的錯誤。想到確保與JavaScript合作的某些東西降低(在這種情況下)意味著它是“可訪問”的。當然,它可以使沒有JavaScript的人可以訪問它,但是大多數鍵盤和屏幕讀取器用戶都像其他任何人一樣在JavaScript的幫助下與您的應用程序進行交互。訣竅是以尊重所有用戶的不同行為和輸入的方式使用JavaScript。

>還有一件事:如果您曾經負責使用使用ember.js或angularjs構建的一個頁面應用程序,請使用JavaScript focus()方法的代碼庫。此類應用程序完全使用“視圖”完全重寫導航;單一頁面的動態重建。如果沒有一些仔細的焦點管理,以這種方式重建DOM很快就可以很快弄清可訪問性。如果您的GREP發現不到幾個.cocus實例,則可能有很多工作要做。

>

經常詢問有關改善專注和集中的問題

>

>有哪些實際方法可以改善我的專注力和集中度?首先,保持健康的生活方式至關重要。這包括獲得足夠的睡眠,飲食平衡以及定期體育鍛煉。其次,正念和冥想可以幫助訓練您的大腦以更好地集中精力。第三,最大程度地減少了分心,例如關閉設備上的通知,可以幫助您專注於手頭的任務。最後,從長遠來看,定期休息實際上可以提高您的注意力和生產力。

>

>在學習時如何保持專注?

>保持專注於學習時,可以通過創造一個有益的環境來實現有益的環境學習。這意味著一個安靜,光線充足的空間,分心很小。將學習課程分解成可管理的塊,通常為25-30分鐘,然後短暫休息也很有幫助。該技術被稱為Pomodoro技術。此外,設定每個學習課程的明確,可實現的目標可以使您保持積極性和專注。

某些食物可以提高我的注意力嗎?眾所周知,富含omega-3脂肪酸的食物,例如魚類和亞麻籽,可以支持大腦健康。此外,水果和蔬菜,尤其是富含抗氧化劑的水果,可以幫助保護大腦免受損害並改善認知功能。蛋白質含量高的食物,例如瘦肉和豆類,也可以幫助您保持大腦的警覺和集中。對大腦的好處。它增加了血流,從而改善了大腦健康和認知功能。運動還釋放內啡肽,可以幫助改善情緒並減輕壓力,從而提高專注力和集中註意力。

>

>我如何改善工作的注意力?您的任務並根據其重要性和緊迫性對它們進行優先級。定期休息以避免倦怠也很有幫助。此外,最大程度地減少了分心,例如關閉設備上不必要的通知,可以幫助您專注於任務。

>

冥想可以幫助提高注意力和集中度嗎?它訓練您的大腦專注於當前時刻,而忽略分心。常規練習會導致注意力跨度的提高和更好的認知功能。

>

>睡眠如何影響注意力和濃度?

睡眠在認知功能中起著至關重要的作用。缺乏睡眠會損害關注,專注和決策能力。因此,獲得足夠的質量睡眠對於保持良好的專注和集中度至關重要。

>

>有些共同的注意力,我如何避免它們?

常見的干擾包括社交媒體,電子郵件和不必要的通知在您的設備上。為了避免這些,您可以設置特定時間檢查電子郵件和社交媒體。關閉不必要的通知也可以幫助最大程度地減少干擾。

>

>我如何訓練我的大腦以更好地集中註意力?

可以通過常規練習來訓練您的大腦以更好地進行注意力。正念和冥想等技術可以提供幫助。此外,用難題和遊戲挑戰大腦也可以提高認知功能和專注。和集中度。因此,通過深呼吸,瑜伽和正念等技術來管理壓力可以幫助提高注意力和集中註意力。

以上是學習焦點()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn