IFocusableNode ইন্টারফেস
ইনপুট ফোকাস থাকতে পারে এমন কিছুর প্রতিনিধিত্ব করে।
স্বাক্ষর:
export interface IFocusableNode
পদ্ধতি
পদ্ধতি | বর্ণনা |
---|---|
হতে পারে ফোকাসড() | এই নোড ফোকাস করার অনুমতি দেয় কিনা তা নির্দেশ করে। যদি এটি মিথ্যা প্রত্যাবর্তন করে তবে অন্যান্য IFocusableNode পদ্ধতিগুলির কোনটি বলা হবে না। মনে রাখবেন যে এই ফাংশনের বাস্তবায়নগুলি নোডের জীবনকালের জন্য গতিশীলভাবে তাদের রিটার্ন মান মান পরিবর্তন করলে বিশেষ যত্ন নেওয়া উচিত কারণ নির্দিষ্ট পরিবেশ পরিস্থিতি এই নোডের DOM উপাদানের ফোকাসযোগ্যতাকে প্রভাবিত করতে পারে (যেমন উপাদানটির একটি ইতিবাচক বা শূন্য ট্যাবিন্ডেক্স আছে কিনা)। এছাড়াও, নোড ফোকাস ধারণ করার সময় সত্য থেকে একটি মিথ্যা মানতে পরিবর্তন করা হলে তা অবিলম্বে নোডের বর্তমান ফোকাস বা FocusManager-এর অভ্যন্তরীণ অবস্থার পরিবর্তন করবে না এবং এর ফলে নোডের কিছু ফাংশন ডিফোকাস করার সময় পরে কল করা হতে পারে (যেহেতু এটি আগে ফোকাস করার সময় ফোকাসযোগ্য বলে বিবেচিত হয়েছিল)। ইমপ্লিমেন্টেশনগুলি সাধারণত এখানে সর্বদা সত্য হওয়া উচিত যদি না এমন পরিস্থিতিতে থাকে যার অধীনে এই নোডটি ফোকাস বিবেচনার জন্য এড়িয়ে যাওয়া উচিত। উদাহরণগুলির মধ্যে অক্ষম হওয়া, শুধুমাত্র-পঠনযোগ্য, একটি সম্পূর্ণরূপে চাক্ষুষ অলঙ্করণ, বা কোনও ভিজ্যুয়াল প্রতিনিধিত্ব ছাড়াই একটি নোড অন্তর্ভুক্ত থাকতে পারে যা এই ইন্টারফেসটি বাস্তবায়ন করতে হবে (যেমন একটি অভিভাবক ইন্টারফেস এটি প্রসারিত করার কারণে)। একটি নোড ফোকাসযোগ্য হওয়া উচিত কিনা তা নির্ধারণ করার সময় অ্যাক্সেসিবিলিটির সর্বোত্তম অনুশীলনের কথা মাথায় রাখুন যেহেতু এমনকি নিষ্ক্রিয় এবং শুধুমাত্র-পঠন উপাদানগুলি এখনও প্রায়শই ব্যবহারকারীদের সাংগঠনিক প্রসঙ্গ প্রদানের জন্য প্রাসঙ্গিক (বিশেষত স্ক্রিন রিডার ব্যবহার করার সময়)। |
GetFocusable Element() | DOM উপাদান প্রদান করে যা স্পষ্টভাবে ফোকাস পাওয়ার জন্য অনুরোধ করা যেতে পারে। গুরুত্বপূর্ণ: অনুগ্রহ করে মনে রাখবেন যে এই উপাদানটির পৃষ্ঠায় একটি দৃশ্যমান উপস্থিতি প্রত্যাশিত কারণ এটি উভয়ই স্পষ্টভাবে ফোকাস করা হবে এবং এর বর্তমান ফোকাস অবস্থার (যেমন ঝাপসা, সক্রিয়ভাবে ফোকাস করা এবং প্যাসিভভাবে ফোকাস করা) এর উপর নির্ভর করে এর স্টাইল পরিবর্তিত হবে। উপাদানটিতে দুটি শৈলীর একটি সংযুক্ত থাকবে (যেখানে কোন শৈলী অস্পষ্ট/ফোকাস করা নির্দেশ করে না): - blocklyActiveFocus - blocklyPassiveFocus প্রত্যাবর্তিত উপাদানটির অবশ্যই একটি বৈধ আইডি নির্দিষ্ট করা থাকতে হবে এবং এই আইডিটি সমগ্র পৃষ্ঠা জুড়ে অনন্য হওয়া উচিত। একটি সঠিকভাবে অনন্য আইডি না থাকার ফলে একটি নোড ফোকাস করার চেষ্টা করা হতে পারে (যেমন একটি মাউস ক্লিকের মাধ্যমে) একই আইডি সহ অন্য নোডের দিকে নিয়ে যাওয়া আসলে FocusManager দ্বারা ফোকাস হয়ে যায়। ফিরে আসা উপাদানটি অবশ্যই দৃশ্যমান হবে যদি নোডটি কখনও FocusManager.focusNode() বা FocusManager.focusTree() এর মাধ্যমে ফোকাস করা হয়। onNodeFocus() কল না করা পর্যন্ত একটি উপাদানকে লুকিয়ে রাখার অনুমতি দেওয়া হয়, অথবা onNodeBlur() এ কল দিয়ে লুকানো হয়। এটি প্রত্যাশিত যে প্রকৃত ফিরে আসা উপাদানটি নোডের জীবনকালের জন্য পরিবর্তিত হবে না (অর্থাৎ, এর বৈশিষ্ট্যগুলি পরিবর্তিত হতে পারে তবে একটি নতুন উপাদান কখনই ফেরত দেওয়া উচিত নয়)। এছাড়াও, প্রত্যাবর্তিত উপাদানটির ট্যাবিনডেক্স এই নোড এবং ফোকাস ম্যানেজারের জীবনচক্র জুড়ে ওভাররাইট করা থাকবে। যদি একটি নোডের জন্য প্রথমে ফোকাস ম্যানেজারের মাধ্যমে ফোকাস না করে সরাসরি ফোকাস করার ক্ষমতা প্রয়োজন হয় তবে এটির নিজস্ব ট্যাব সূচক সেট করতে হবে। |
GetFocusableTree() | এই নোডের সবচেয়ে কাছের প্যারেন্ট ট্রি ফেরত দেয় (যে ক্ষেত্রে একটি গাছের নীচে স্বতন্ত্র গাছ থাকে), যা এই নোডটির অন্তর্গত সেই গাছটিকে প্রতিনিধিত্ব করে। |
অননোডব্লার() | যখন এই নোড সক্রিয় ফোকাস হারায় তখন কল করা হয়। এটি এখনও প্যাসিভ ফোকাস থাকতে পারে। এটিতে onNodeFocus() এর মতো একই বাস্তবায়ন সীমাবদ্ধতা রয়েছে। |
onNodeFocus() | যখন এই নোড সক্রিয় ফোকাস পায় তখন কল করা হয়। মনে রাখবেন যে দৃশ্যমানতা মডিফায়ারগুলি পরিবর্তন করা বাস্তবায়নের জন্য ঠিক আছে, তবে তাদের নিম্নলিখিতগুলি এড়ানো উচিত: - DOM উপাদানগুলি তৈরি করা বা অপসারণ করা (রেন্ডারার বা ড্রয়ারের মাধ্যমে সহ)৷ - DOM ফোকাস() কল বা ফোকাস ম্যানেজারের মাধ্যমে ফোকাসকে প্রভাবিত করা। |