موضوع مقاله: حالت (رابط کاربری) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # حالت (رابط کاربری) | مقدمه: در طراحی رابط کاربری، یک حالت، یک تنظیم متمایز در یک برنامهٔ رایانه‌ای یا هر رابط فیزیکی ماشین است که در آن ورودی یکسان کاربر، نتایج ادراکی دگرگونی نسبت به نتایج برآمده از آن در تنظیمات دیگر ایجاد می‌کند. | ## بخش 1: حالت (رابط کاربری) | اجزای رابط مودال دربرگیرندهٔ کلیدهای Caps lock و Insert در صفحه کلید استاندارد رایانه هستند که هر دو معمولاً تایپ کاربر را پس از فشرده شدن در حالت متفاوتی قرار می‌دهند و پس از فشرده شدن مجدد، آن را به حالت عادی برمی‌گردانند. تعریف جف راسکین در کتاب خود با عنوان «رابط انسانی» (The Humane Interface)، حالت‌داشتن را اینگونه تعریف می‌کند:«یک رابط انسان و ماشین در رابطه با یک حرکت معین، زمانی مودال است که (۱) وضعیت کنونی رابط، محل توجه کاربر نباشد و (۲) رابط، بسته به وضعیت کنونی سامانه، یکی از چندین پاسخ گوناگون را به حرکت اجرا کند.» (صفحه 42)از نگاه راسکین و طبق تعریف او، یک رابط کاربری مادامی که کاربر کاملاً از وضعیت فعلی آن آگاه باشد، مودال نیست. راسکین از این به عنوان "محل توجه" (از کلمه لاتین locus به معنای "مکان" یا "موقعیت") یاد می‌کند. معمولاً اگر تغییر وضعیت به‌طور هدفمند بدست کاربر آغاز شده باشد، یا اگر سامانه سیگنال‌های قوی برای اطلاع کاربر از تغییر وضعیت در مکانی که همکنش رخ می‌دهد، ارسال کند، کاربر از وضعیت سامانه آگاه است. اگر جایگاه توجه کاربر به ناحیه دیگری تغییر کند، وضعیت رابط کاربری ممکن است نشان دهنده یک حالت باشد زیرا کاربر دیگر از آن آگاه نیست. لری تسلر حالت‌ها را به عنوان «حالتی از رابط کاربری که برای مدت زمانی طول می‌کشد، به هیچ شیء ویژه‌ای مرتبط نیست و نقشی جز قرار دادن تفسیر روی ورودی کنشگر ندارد» تعریف کرد. (pdf) نمونه‌ها مودال چندین نمونه از نرم‌افزارها به عنوان مودال یا با کاربری از حالت‌های رابط کاربری توصیف شده‌اند: ویرایشگرهای نوشتار - بیشتر به گونهٔ پیش‌فرض در حالت درج هستند، ولی می‌توان با فشار دادن کلید درج، آنها را به حالت overtype و بیرون از آن تغییر داد. براوو (ویرایشگر) - نخستین ویرایشگر مودال WYSIWYG که برای رایانه‌های زیراکس آلتو در زیراکس پارک بدست باتلر لمپسون و چارلز سیمونی ساخته شد vi – یک حالت برای درج نوشتار و یک حالت جداگانه برای وارد کردن فرمان‌ها دارد. همچنین یک حالت "ex" برای صدور فرمان‌های پیچیده‌تر (برای نمونه جستجو و جایگزینی) وجود دارد. در شرایط عادی، ویرایشگر پس از صدور یک فرمان به‌طور خودکار به حالت پیشین بازمی‌گردد. مشتقات، مانند Vim و Neovim ایمکس - مفهوم "کلیدهای پیشوند" را دارد که با فشار دادن کلید کنترل به علاوه یک کلید حرف، یک حالت مودال را ایجاد می‌کند. این با vi متفاوت است زیرا این حالت همیشه به محض فراخوانی فرمان (زمانی که توالی فشردن کلیدهایی که آن را فعال می‌کنند کامل شود) پایان می‌یابد. ایمکس همچنین دارای چندین حالت "اصلی و فرعی" است که فرمان‌ها موجود را تغییر می‌دهند و ممکن است بر اساس گونه پرونده به‌طور خودکار فراخوانی شوند تا پرونده‌هایی از آن گونه را آسان‌تر ویرایش کنند. حالت‌هایی برای مرور پرونده، مرور وب، IRC و ایمیل وجود دارد و الگوهای همکنش آنها معادل نرم‌افزارهای کاربردی در محیط ایمکس است. ابزارهایی که از یک پالت در برنامه‌های ویرایش عکس و طراحی انتخاب می‌شوند، نمونه‌هایی از رابط کاربری مودال هستند. برخی از ویرایشگرهای تصویر پیشرفته دارای قابلیتی هستند که در آن می‌توان با فشردن کلید، به ابزارهای مشابه به صورت غیر مودال دسترسی پیدا کرد و تا زمانی که کلید نگه داشته شود، فعال می‌مانند. بازی‌های ویدیویی می‌توانند از حالت‌های بازی به عنوان مکانیک برای بهبود گیم‌پلی کاربری کنند. پنجره‌های مودال، تمام گردش کار را در برنامه سطح بالا مسدود می‌کنند تا زمانی که پنجره مودال بسته شود. بدون حالت لری تسلر در PARC با کاربری از بازخوردهای جمع‌آوری‌شده از یک آزمایش کاربری با سیلویا آدامز تازه استخدام‌شده، بینش‌هایی را برای یک پردازشگر نوشتار بدون مدل ابداع کرد، که در آن از او خواسته شده بود تا برخی حرکات را برای اصلاح علائم تصحیح روی نوشتار دیجیتال، به‌صورت دستی انجام دهد. این آزمایش، بیل انگلیش، مدیر تسلر، را از مشکلات رابط کاربری مودال پیشین‌شان متقاعد کرد. خطاهای حالت حالت‌ها بیشتر در طراحی رابط کاربری مورد انتقاد قرار می‌گیرند، زیرا احتمالاً وقتی کاربر فراموش می‌کند رابط کاربری در چه وضعیتی است، عملی را انجام می‌دهد که مناسب حالت دیگری است و پاسخی غیرمنتظره و نامطلوب دریافت می‌کند، خطاهای حالت ایجاد می‌کنند. یک خطای حالت می‌تواند کاملاً تکان‌دهنده و گیج‌کننده باشد، زیرا کاربر با نقض ناگهانی انتظارات کاربری خود کنار می‌آید. اگر تغییری در وضعیت سامانه بدون توجه رخ دهد (که بدست سامانه یا بدست شخص دیگری، مانند کاربری که پیشتر از دستگاه کاربری می‌کرده است، آغاز شود)، یا اگر پس از مدتی کاربر تغییر وضعیت را فراموش کند، مشکلاتی رخ می‌دهد. یکی دیگر از مشکلات رایج، تغییر ناگهانی وضعیت است که فعالیت کاربر را مختل می‌کند، مانند سرقت تمرکز. در چنین شرایطی، به راحتی ممکن است اتفاق بیفتد که کاربر برخی عملیات را با در نگاه گرفتن وضعیت قدیمی انجام دهد، در حالی که مغز هنوز سیگنال‌های نشان دهنده تغییر وضعیت را به‌طور کامل پردازش نکرده است. کلیدهای غیرفعال برای علامت‌های تفکیک نیز یک حالت کوتاه‌مدت ایجاد می‌کنند، حداقل اگر بازخورد بصری مبنی بر تغییر کاراکتر تایپ شده بعدی ارائه ندهند. در حالی که کلیدهای Lock در صفحه کلیدهای رایانه شخصی با این هدف طراحی شده‌اند که به عنوان کلیدهای مودال کاربری شوند، طراحی سخت‌افزار IBM PC نیازی به مودال بودن این کلیدها یا هیچ کلید خاص دیگری ندارد، بلکه به نرم‌افزار اجازه می‌دهد تا هر کلیدی را به عنوان مودال در نگاه بگیرد. | ## بخش 2: حالت (رابط کاربری) | این امر باعث ایجاد خطاهای حالت مرتبط با طرح‌بندی فعلی صفحه‌کلید می‌شود: بیشتر، همگام‌سازی حالت "طرح‌بندی فعلی" بین انسان و رابط از بین می‌رود و نوشتار در طرحی تایپ می‌شود که طرح‌بندی مورد نگاه نیست و باعث ایجاد نوشتار بی‌معنی و سردرگمی می‌شود. کلیدهای صفحه‌کلید در عناصر رابط کاربری مانند "(y/n)" در صورت ترجمه یک برنامه می‌توانند اثر معکوس داشته باشند. یک مثال رایج، ظاهر شدن ناگهانی یک دیالوگ خطای مودال در یک برنامه هنگام تایپ کاربر است که گونهٔ سرقت تمرکز محسوب می‌شود؛ کاربر انتظار دارد نوشتار تایپ شده در یک فیلد نوشتاری وارد شود، ولی این دیالوگ غیرمنتظره ممکن است تمام ورودی‌ها را نادیده بگیرد، یا ممکن است برخی از کلیدهای فشرده شده (مانند "Y" برای "بله" و "N" برای "خیر") را به گونه‌ای تفسیر کند که کاربر قصد آن را نداشته است، که بیشتر باعث ایجاد یک اقدام مخرب می‌شود که بازگشت‌پذیر نیست. برنامه‌نویسان می‌توانند با پیاده‌سازی یک تأخیر کوتاه بین نمایش دیالوگ مودال و شروع پذیرش ورودی صفحه کلید، این مشکل را کاهش دهند. ویرایشگر نوشتار یونیکس vi می‌تواند برای مبتدیان به طرز چشمگیری دشوار باشد، دقیقاً به این دلیل که از حالت‌ها کاربری می‌کند، و به این دلیل که نسخه‌های پیشین به‌طور پیش‌فرض نشانگر حالت را غیرفعال پیکربندی کرده‌اند. در بسیاری از بازی‌های ویدیویی رایانهی، از صفحه‌کلید هم برای کنترل بازی و هم برای تایپ پیام‌ها کاربری می‌شود. کاربران ممکن است فراموش کنند که در «حالت تایپ» هستند، زیرا سعی می‌کنند به چیزی ناگهانی در بازی واکنش نشان دهند و کنترل‌ها را بی‌پاسخ بیابند (و در عوض نوار نوشتار آنها پر از کلیدهای فرمان فشرده شده باشد). در حوادث حمل و نقل سردرگمی در حالت پرواز بخشی از وقایعی بود که منجر به از دست رفتن پرواز ۴۴۷ ایرفرانس در سال ۲۰۰۹ و کشته شدن ۲۲۸ نفر شد. خلبانان با کشیدن دسته فرمان به کاهش ارتفاع واکنش نشان دادند، که می‌توانست واکنش مناسبی با فعال بودن کامل خلبان خودکار باشد و در آن صورت هواپیما را در حالت اوج‌گیری قرار می‌داد. با این حال، سامانه‌های هواپیما به دلیل مسدود شدن حسگر سرعت هوا وارد حالت اتوماسیون کمتر ("قانون مستقیم" در اصطلاحات ایرباس) شده بودند و به خلبانان اجازه می‌دادند هواپیما را در حالت واماندگی در ارتفاع بالا قرار دهند، که از آن حالت بهبود نیافتند. طبق گزارش NTSB، یکی از عوامل مؤثر در سقوط پرواز ۲۱۴ خطوط هوایی آسیانا در سال ۲۰۱۳ «پیچیدگی‌های سامانه‌های کنترل خودکار گاز و هدایت خودکار پرواز بود… که احتمال خطای حالت پرواز را افزایش می‌داد». تحقیقات نشان داد که اهرم‌های کنترل‌کننده پیشرانه‌های آزیموت کشتی به شیوه‌ای نوشتاراسب با حالت تنظیم‌شده برای آنها کاربری نشده‌اند و در نتیجه کشتی به جای توقف در دریچه، شتاب گرفته است. مک‌کین، با یک نفتکش تجاری در تنگه مالاکا برخورد کرد و منجر به کشته شدن ده خدمه شد. تحقیقات انجام شده بدست ارتش ایالات متحده به این نتیجه رسید که بی‌درنگ پیش از برخورد، کنترل‌های سکان و نیروی محرکه بین ایستگاه‌های پل فرماندهی توزیع مجدد شده بودند و خدمه پل فرماندهی از این توزیع مجدد کاملاً آگاه نبودند. در ۱۰ آوریل ۲۰۱۸، کشتی تدارکاتی ۵۰۰۰ تنی VOS Stone از یک سکوی بادی در حال ساخت در دریای بالتیک جدا شد. ناخدای کشتی تصمیم گرفت برای انجام آزمایش سامانه، هدایت را در حالت جایگزین قرار دهد. ارتباط ناکافی با افسر نگهبان منجر به از دست دادن موقت کنترل، برخورد با سکو، آسیب دیدن سه نفر از خدمه و خسارت قابل توجه شد. در ۱۹ آوریل ۲۰۲۰، یک جت جنگنده F-35A در یک حادثه فرود در پایگاه نیروی هوایی اگلین نابود شد. تحقیقات نشان داد که این هواپیما با حالت اشتباه دریچه گاز خودکار پیکربندی شده بود و در نتیجه هواپیما پس از فرود غیرقابل کنترل شد. در ۵ اکتبر ۲۰۲۴، کشتی هیدروگرافی نیروی دریایی نیوزیلند <i id="mwyg">، ماناوانویی،</i> در صخره‌ای در نزدیکی سیومو، آپولو، ساموآ به گل نشست و روز بعد غرق شد. طبق یک تحقیق رسمی، خدمه پل فرماندهی متوجه فعال بودن سامانهٔ هدایت خودکار کشتی نشده بودند. ارزیابی حالت‌ها برای جلب توجه کامل کاربر و وادار کردن او به پذیرش محتوای موجود در آنها در نگاه گرفته شده‌اند، به ویژه هنگامی که تأیید حیاتی از سوی کاربر مورد نیاز است. این کاربرد اخیر به دلیل ناکارآمدی در کاربرد مورد نگاهش (محافظت در برابر خطاها در اقدامات مخرب) به دلیل عادت کردن، مورد انتقاد قرار گرفته است. اگرچه حالت‌ها می‌توانند در کاربردهای خاص برای محدود کردن عملیات خطرناک یا نامطلوب موفق باشند، به ویژه هنگامی که حالت به‌طور فعال بدست کاربر به عنوان یک شبه حالت حفظ می‌شود. حالت‌ها همچنین می‌توانند به عنوان قراردادهای کاملاً شناخته شده، مانند ابزارهای نقاشی، عمل کنند. طرفداران مودال ممکن است استدلال کند که بسیاری از فعالیت‌های رایج، جنبهٔ کیفی دارند و کاربران با آنها سازگار می‌شوند. راننده ممکن است از اینکه با فشار دادن پدال گاز، وسیله نقلیه به سمت جلو شتاب نمی‌گیرد، شگفت‌زده شود، به احتمال زیاد به این دلیل که وسیله نقلیه در حالت عملیاتی مانند پارک، خلاص یا دنده عقب قرار گرفته است. | ## بخش 3: حالت (رابط کاربری) | رابط‌های کیفی برای جلوگیری از خطاهای حالت مانند این، نیاز به آموزش و تجربه دارند. جف راسکین، متخصص رابط کاربری، به شدت با حالت‌ها مخالفت کرد و نوشت: «حالت‌ها منبع قابل توجهی از خطاها، سردرگمی، محدودیت‌های غیرضروری و پیچیدگی در رابط‌ها هستند.» بعداً او خاطرنشان می‌کند: «همکارم، دکتر جیمز وینتر، می‌نویسد: «تصادفی نیست که فحش دادن با #&%!#$& نشان داده می‌شود؛ این کاری است که «ماشین تحریر هنگام تایپ اعداد با دکمه Caps Lock انجام می‌داد.» راسکین کتاب خود «رابط انسانی» را به توصیف اصول رابط کاربری بدون حالت برای رایانه‌ها اختصاص داد. برخی از طراحان رابط کاربری اخیراً گام‌هایی برای آشکارتر و کاربرپسندتر کردن پنجره‌های مودال برداشته‌اند، به این صورت که با تیره کردن پس‌زمینه پشت پنجره یا اجازه دادن به هر کلیک ماوس در خارج از پنجره مودال برای بسته شدن اجباری پنجره - طرحی به نام Lightbox - خطر خطاهای مودال را کاهش می‌دهند. جیکوب نیلسن به عنوان یکی از مزایای پنجره‌های مودال، افزایش آگاهی کاربر را بیان می‌کند. «وقتی چیزی نیاز به اصلاح دارد، بهتر است مطمئن شوید که کاربر از آن مطلع است.» برای این هدف، طراحی Lightbox تضاد بصری قوی بین پنجره و بقیه عناصر بصری ایجاد می‌کند. با این حال، اگرچه چنین روشی ممکن است خطر همکنش‌ها اشتباه سهوی را کاهش دهد، ولی این مشکل را حل نمی‌کند که پنجره مودال مانع کاربری از ویژگی‌های عادی برنامه می‌شود و بنابراین کاربر را از انجام هرگونه اقدامی برای رفع مشکل یا حتی از پیمایش صفحه برای مشاهده اطلاعاتی که باید به درستی از بین گزینه‌های ارائه شده بدست پنجره مودال انتخاب کند، بازمی‌دارد و هیچ کاری برای کاهش ناامیدی کاربر از افتادن در بن‌بستی که نمی‌تواند بدون عواقب کم و بیش مخرب از آن فرار کند، انجام نمی‌دهد. لری تسلر، از زیراکس پارک و اپل رایانه، آنقدر از حالت‌های رانندگی نوشتارفر بود که یک پلاک شخصی‌سازی‌شده برای ماشینش گرفت که روی آن نوشته شده بود: «NO MODES». او از نخستین دهه ۱۹۸۰ تا زمان مرگش در سال ۲۰۲۰ از این پلاک روی ماشین‌های گوناگون کاربری می‌کرد. بروس وایمن، طراح یک میز چند لمسی برای نمایشگاه هنری موزه هنر دنور استدلال می‌کند که رابط‌های کاربری برای چندین کاربر همزمان باید بدون مدل باشند تا از تمرکز روی هر کاربر واحد جلوگیری شود. در صورت امکان، جایگزین‌هایی برای حالت‌هایی مانند فرمان undo و سطل بازیافت توصیه می‌شود. دونالد نورمن، محقق HCI، استدلال می‌کند که بهترین راه برای جلوگیری از خطاهای حالت، علاوه بر نشانه‌های واضح از وضعیت، کمک به کاربران برای ساخت یک مدل ذهنی دقیق از سامانه است که به آنها امکان پیش‌بینی دقیق حالت را می‌دهد. این موضوع، برای مثال، بدست برخی از تابلوهای ایست در تقاطع‌های جاده‌ای نشان داده می‌شود. یک راننده ممکن است با دیدن یک تابلو ایست چهار طرفه در نزدیکی خانه‌اش، فرض کند که تقاطع‌های مشابه نیز چهار طرفه خواهند بود. اگر فقط دو طرفه باشد، راننده می‌تواند در صورت عدم مشاهده خودروهای دیگر، از آن عبور کند. به خصوص اگر دید مسدود باشد، یک خودرو می‌تواند از آن عبور کند و به اولین خودرو از پهلو برخورد کند. یک طراحی بهبود یافته با گنجاندن یک نمودار کوچک که نشان می‌دهد کدام یک از مسیرها دارای تابلو ایست هستند و کدام یک نیستند، این مشکل را کاهش می‌دهد و در نتیجه آگاهی موقعیتی رانندگان را بهبود می‌بخشد. برای نمونه، یک پنجره مودال می‌تواند در کنار عنصر کنترل گرافیکی قرار گیرد که فعال‌سازی آن را فعال می‌کند. کنترل‌های مودال می‌توانند مختل‌کننده باشند، بنابراین باید تلاش‌هایی برای کاهش ظرفیت آنها برای مسدود کردن کار کاربر انجام شود. پس از انجام کاری که حالت برای آن فعال شده است، یا پس از یک عمل لغو مانند کلید Escape، بازگشت به حالت پیشین هنگام رد شدن یک حالت، تأثیر منفی را کاهش می‌دهد. کوازیمودس در کتاب «رابط انسانی»، جف راسکین از چیزی که آن را «شبه حالت‌ها» می‌نامید، دفاع کرد. این حالت‌ها حالت‌هایی هستند که فقط از طریق برخی اقدامات مداوم از سوی کاربر در جای خود نگه داشته می‌شوند. اصطلاح شبه حالت ترکیبی از پیشوند لاتین «شبه-» (که به معنای تقریباً، تا حدی) و کلمه انگلیسی «mode» است. مادامی که کاربر در حال انجام یک عمل آگاهانه، مانند فشار دادن یک کلید و نگه داشتن آن در حین فراخوانی یک فرمان، باشد، برنامه وارد آن حالت می‌شود. مزیت ادعایی این تکنیک این است که کاربر هنگام فراخوانی یک فرمان، نیازی به یادآوری وضعیت فعلی برنامه ندارد: همان عمل همیشه همان نتیجه درک شده را ایجاد می‌کند. رابطی که فقط از شبه‌حالت‌ها کاربری می‌کند و هیچ حالت کاملی ندارد، طبق تعریف راسکین، همچنان بدون مدل است. ویژگی StickyKeys با سریالی کردن ضربات کلیدهای اصلاح‌کننده با کلیدهای معمولی، یک حالت شبه‌حالت را به یک حالت تبدیل می‌کند، به گونه‌ای که نیازی به فشردن همزمان آنها نباشد. بدین سان، افزایش احتمال خطای حالت تا حد زیادی با بهبود دسترسی برای کاربران دارای معلولیت جسمی جبران می‌شود. | ## جمع‌بندی | کاربری از بررسی مدل برای کمک به کشف سردرگمی‌های حالت و سایر شگفتی‌های اتوماسیون.