FocusManager sınıfı
Bir veya daha fazla IFocusableTree'de Blockly odağını yöneten ve bu odağı DOM ile çift yönlü olarak senkronize eden, sayfa başına tek bir öğe.
Sayfadaki belirli Blockly bileşenleri için giriş odağını açıkça değiştirmek isteyen arayanlar, bu yöneticideki odak işlevlerini kullanmalıdır.
Yönetici, DOM'daki odak etkinliklerini (kullanıcıların sayfa öğelerini tıklamasından kaynaklanabilir) işlememekten ve karşılık gelen IFocusableNode'ların, focusNode() çağrılarıyla temsil edileceği şekilde etkin/pasif olarak vurgulandığından emin olmaktan sorumludur.
İmza:
export declare class FocusManager
Markalar
Marka | Değiştiriciler | Açıklama |
---|---|---|
(constructor)(addGlobalEventListener) | FocusManager sınıfının yeni bir örneğini oluşturur. |
Özellikler
Mülk | Değiştiriciler | Tür | Açıklama |
---|---|---|---|
ACTIVE_FOCUS_NODE_CSS_CLASS_NAME |
|
(bildirilmedi) | Şu anda etkin DOM ve Blockly odağına sahip IFocusableNode öğelerine atanan CSS sınıfı. Bu hiçbir zaman doğrudan kullanılmamalıdır. Bunun yerine, düğümlerin etkin odaklanmaya sahip olmasını sağlamak için FocusManager'ı kullanın (DOM odaklanması aracılığıyla otomatik olarak veya bu sınıf tarafından sağlanan çeşitli focus* yöntemleriyle manuel olarak). Bu sınıf adıyla sorgu oluşturmamanız da önerilir. Bunun yerine, belirli bir düğümü bulmak için FocusableTreeTraverser veya IFocusableTree'nin yöntemlerini kullanın. |
PASSIVE_FOCUS_NODE_CSS_CLASS_NAME |
|
(bildirilmedi) | Şu anda pasif odaklanmaya sahip olan (yani göreceli ağaçlarındaki en son etkin odaklanmaya sahip düğümlerdir; ACTIVE_FOCUS_NODE_CSS_CLASS_NAME'e bakın ve çevrelerindeki ağacın odaklanması istendiğinde tekrar etkin odaklanma alırlar, örneğin aşağıdaki focusTree kullanılır) IFocusableNode öğelerine atanan CSS sınıfı. Bu sabitin doğrudan kullanılmasıyla ilgili uyarılar ve sınırlamalar için ACTIVE_FOCUS_NODE_CSS_CLASS_NAME konusuna bakın (genellikle hiçbir zaman kullanılması gerekmez). |
Yöntemler
Yöntem | Değiştiriciler | Açıklama |
---|---|---|
ephemeralFocusTaken() | ||
focusNode(focusableNode) | DOM girişini belirtilen düğüme odaklar ve etkin olarak odaklanmış şekilde işaretler. Daha önce odaklanılan tüm düğümler, pasif olarak vurgulanacak (farklı bir odaklanılabilir ağaçtaysa) veya bulanıklaştırılacak (aynı ağaçtaysa) şekilde güncellenir. **Önemli**: Sağlanan düğüme odaklanılamıyorsa (ör. canBeFocused() yöntemi false değerini döndürüyorsa) bu düğüm yok sayılır ve mevcut odaklanma durumu değişmez. Bu işlemin, odaklanıldığında ekran okuyucular tarafından düzgün bir şekilde okunabilmesi için belirtilen düğümün öğesinin tabindex'ini güncelleyebileceğini unutmayın. |
|
focusTree(focusableTree) | Belirli bir IFocusableTree'yi odaklar. Bu, ya pasif olarak odaklanılan düğüme etkin odağı geri yüklemek ya da ağacın kök düğümüne odaklanmak anlamına gelir. Belirtilen ağaçta zaten odaklanılmış bir düğüm varsa bunun mevcut odağı değiştirmeyeceğini (bu düğümde pasif odak yoksa etkin odağa geri yüklenir) unutmayın. Diğer düğümlerin nasıl etkilendiği hakkında ayrıntılı bilgi için getFocusedNode'a bakın. |
|
getFocusedNode() | Odaklanmış IFocusableNode'u (her zaman odaklanmış bir IFocusableTree'ye bağlıdır) veya yoksa boş değeri döndürür. Bu işlevin, IFocusableTree.getFocusedNode() ile eşitliği koruyacağını unutmayın. Yani, bir ağacın kendisi odaklanmışsa ancak kök olmayan alt öğelerinin hiçbiri odaklanmamışsa bu işlev null değerini döndürür ancak getFocusedTree() işlevi döndürmez. Ayrıca, geçici odak şu anda yakalanmışsa (ör. takeEphemeralFocus kullanılarak) burada döndürülen düğümün şu anda DOM odağına sahip olmayabileceğini unutmayın. |
|
getFocusedTree() | Odağı olan geçerli IFocusableTree'yi veya şu anda odak yoksa null değerini döndürür. Ayrıca, geçici odak şu anda yakalanmışsa (ör. takeEphemeralFocus kullanılarak) burada döndürülen ağacın şu anda DOM odağına sahip olmayabileceğini unutmayın. |
|
getFocusManager() | static |
Sayfa genelindeki FocusManager'ı döndürür. Döndürülen örneğin işlev çağrıları arasında değişmeyeceği garanti edilir ancak sayfa yüklemeleri arasında değişebilir. |
isRegistered(tree) | Belirtilen ağacın registerTree kullanılarak bu yöneticiye kaydedilip kaydedilmediğini ve unregisterTree kullanılarak henüz kaydının silinip silinmediğini döndürür. | |
registerTree(tree, rootShouldBeAutoTabbable) | Otomatik odak yönetimi için yeni bir IFocusableTree kaydeder. Ağaçta şu anda DOM odaklı bir öğe varsa odak, yeni ve artık izlenen bir öğeye/düğüme değişene kadar bu yöneticideki dahili durumu etkilemez. Bu işlev, sağlanan ağaç bu yöneticiye zaten kayıtlıysa hata verir. Ağacın kaydedilip kaydedilmediğinden emin olunamayan durumlarda kontrol etmek için isRegistered özelliğini kullanın. Ağacın kaydı, otomatik sekme duraklarını yapılandıracak şekilde özelleştirilebilir. Bu özellik, kullanıcının özellikle ağacın kök dizinine sekme ile gidebilmesini sağlar ancak bu yalnızca ağaç etkin odaklanma durumunda değilken mümkündür. Bu işlev devre dışı bırakılırsa ağacın kökü, ilk odaklanıldığında diğer odaklanılabilir düğümlerle aynı şekilde otomatik olarak odaklanılabilir (ancak sekme ile erişilebilir değil) hale getirilir. |
|
takeEphemeralFocus(focusableElement) | Döndürülen lambda çağrılana kadar belirli bir öğe için odağı geçici olarak yakalar. Bu özelliğin, özellikle iletişim kutuları gibi kısa süreli kullanıcı arayüzü akışlarında yararlı olması beklenmektedir. ÖNEMLİ: Döndürülen lambda *mutlaka* çağrılmalıdır. Aksi takdirde, otomatik odaklanma özelliği sayfanın hiçbir yerinde çalışmaz. Lambda çağrısını ilgili geçici kullanıcı arayüzünün kapatılmasına bağlamanız önemle tavsiye edilir. Böylece giriş, geçici kullanıcı arayüzü dışındaki bir öğe için manuel olarak değiştirilirse kullanıcı arayüzü kapanır ve otomatik giriş geri yüklenir. Bu lambda'nın tam olarak bir kez çağrılması gerektiğini ve sonraki çağrıların hata vereceğini unutmayın. Yöneticinin, geçici odak etkin olduğunda bile DOM giriş sinyallerini izlemeye devam edeceğini ancak döndürülen lambda çağrılana kadar düğüm durumunu gerçekten değiştirmeyeceğini unutmayın. Ayrıca, herhangi bir zamanda yalnızca 1 geçici odak bağlamı etkin olabilir (aynı anda birden fazla bağlamı etkinleştirmeye çalışmak hataya neden olur). |
|
unregisterTree(tree) | IFocusableTree'nin otomatik odak yönetiminden kaydını siler. Ağaçta daha önce odaklanılmış bir düğüm varsa bu düğümün vurgusu kaldırılır. Bu işlev, DOM odağını DEĞİŞTİRMEZ. Bu işlev, sağlanan ağaç şu anda bu yöneticide kayıtlı değilse hata verir. Bu işlev, ağaç otomatik sekme yönetimiyle kaydedilmişse ağacın kök öğesinin tabindex'ini sıfırlar. |