轉自  http://book.csdn.net/bookfiles/552/10055218452.shtml

 

 

 

還有一個例子用來說明程式師將使用者介面設計得一團糟,讓用戶感覺很蠢。在Windows桌面上,隨便選擇一個文檔。然後按刪除(Delete)”鍵。除非您知道如何禁用該功能,否則您將會看到如圖1-3所示的確認對話方塊,詢問您是否真的想刪除這個檔。

1-3  Windows回收站彈出的毫無用處的確認對話方塊

您是否曾經說過,哪怕只有一次,哦!我並不想這樣做。謝謝您的提醒。然後按一下(NO)”?您看見過或者聽說過別人這樣做嗎?反正我從來沒有。確認機制被大量濫用,其結果非常具有諷刺意味:它變得完全沒有用處。這個對話方塊不斷地扮演著狼來了的角色,就像伊索寓言中的牧羊童,沒有人會注意到它,即便它提醒您不要刪除自己真的不想刪除的檔。如此頻繁地看到這個對話方塊,導致它已經起不到任何警示作用了。人們在處理這些對話方塊的時候,總是無意識地按一下確定(Yes)”。它不能為您提供任何安全性。但是,還好我們能夠關閉這個對話方塊。然而,還有很多這樣的對話方塊根本去不掉,這些對話方塊完全沒有必要存在,無論是在任何地方,任何時候,都不應該存在。

日常生活中的其他事情都不需要確認。當您將要轉動汽車發動機鑰匙的時候,它不會問您,您真的打算開啟引擎嗎?。當您把選好的雜貨放到超市的收銀機前時,超市的收銀員不會問您,您確定要買這些東西嗎?。想想在您發現Amazon.com自創的1-Click訂購功能之後,您從它這裡購買了多少本圖書。

為什麼程式師總是要求確認呢?他們這樣做的理由是,他們認為用戶糊塗了,使用者不知道自己剛才命令程式所做的事情所導致的後果。假設其他部分的使用者介面也同樣糟糕,這個理由或許能夠成立。但是要求用戶進行確認並不能解決這個問題。如果用戶輸入了一些觸發該對話方塊的什麼命令,他會感到困惑,但是當他看見這個確認對話方塊的時候會更加感到困惑。既然程式似乎不情願執行使用者交給它的命令,用戶就會認為自己做錯了某些事情。程式師使用確認對話方塊就可以不做以下幾件事情:(1)清晰地向用戶解釋他在做什麼,這樣用戶就不會試圖做那些他不想做的事情;(2)如果用戶確實做了一些後來感到後悔的事情,就為他們提供一項恢復措施。

但是用戶真的做錯某件事情怎麼辦?假設您在超市裡面挑選了一隻手電筒,但是所附帶的電池型號不對。那麼細心的店員會不會詢問您,您確定要買這些嗎?優秀的使用者介面難道不應該讓使用者不去犯這樣的錯誤嗎?當然應該這樣做,而且電腦程式的一大優勢就是能夠做到這一點。但是如果每次都盲目地詢問用戶您確定要執行剛才告訴我的那些事情嗎?,這就達不到預期的效果。相反,優秀的使用者介面應該在最開始的時候就防止問題的出現。在銷售手電筒的網頁上面,或許可以添加一個核取方塊:包含電池。在預設情況下,這個核取方塊處於選中的狀態,因為如果沒有電池,手電筒就不會亮。而對於那些已經有很多電池的買家來說,可以將這個選項去掉。或者更好的辦法是,將電池放到手電筒的包裝裡面,這樣在拆開包裝之後就可以立即使用,根本不需要考慮電池的問題。聰明的使用者介面設計者應該在開始編寫程式之前就想好怎麼設計介面。如果程式師認為需要確認框,那麼我敢向您保證,他一定把使用者介面的其他某個部分搞砸了,這部分如果做得好的話本來可以消除對確認框的需求。他可能從未嘗試過這樣做,但是他本來應該如此。確認機制是為那些懶惰的或者粗心的程式師準備的,而每位用戶都要為此付費。而且這種機制根本沒有任何實際效果。

但是難道您不希望對那些具有破壞性的動作(比如刪除某個檔)進行確認嗎?不,確實不想這麼做。啟動汽車或者購買雜貨不需要確認,因為這些事情都很簡單,如果您突然發現自己犯了錯誤,也很容易反悔。您只需要熄滅點火器或者退還不想要的貨物。電腦程式能夠快速而又容易地複製文檔和記憶體。這可以讓程式師能夠為用戶提供反向執行已經完成的操作。這種撤銷(Undo)功能是使用者介面設計人員所擁有的最棒的武器之一。我認為,它是自滑鼠發明以來使用者介面設計中最大的一處改進。

如果按一下了圖1-3所示的確認框中的確定(Yes)”按鈕(或者已經徹底關閉這個對話方塊)Windows並不會將該文檔從電腦上完全刪除。它會將這個文檔移動到磁片的另一個被稱為回收站的地方,跟Macintosh作業系統上那個著名的垃圾桶類似。如果事後改變了自己的想法,想要取回這份文檔,只要還沒有清空回收站,您就可以從回收站中取回。一般刪除檔時都是真正想把檔刪除掉。當出現一些意外情況時再採取辦法補救(比如,滑鼠的滑動導致選擇了錯誤的檔,我昨天就碰到了這樣的事情),而不是試圖通過使用確認對話方塊來打擾每位元使用者的方式防止這些錯誤,前者的效率要高得多,而且,由於過度使用後者已經沒有任何效果。此時,一點補救措施勝過一大堆預防。

撤銷(Undo)”功能不僅可以用於檔操作,而且可以用在應用程式中。這個命令通常放置在編輯功能表項目下面,同時還對應有恢復(Redo,作用就是撤銷撤銷命令的執行結果)”。如果沒有撤銷功能的話,我沒有辦法連續寫作5分鐘時間,可能會輸入很傻的句子,或者將文字移動到錯誤的位置上。編寫這項功能的程式師為所有的用戶做了一件非常有意義的事情。所有的用戶都應該感謝他們。要想很好地實現這個功能,以便讓用戶無須費力思考它,只需要按下“Ctrl+Z”,就可以取回前面的結果,這需要很大的工作量(這驗證了那句話容易的事情不簡單”)。只有那些不能撤銷的操作,程式才應該進行確認。除此之外,所有的操作也都應該可以撤銷。

撤銷功能的真正好處在於它讓使用者能夠探索程式。根據功能表項目上的簡單標籤和工具列上的小圖示,使用者並不總能夠理解一個新的程式。但是由於這個程式具備撤銷功能,使用者就可以嘗試各種不同的操作,而且知道這樣做不會破壞任何東西,因為萬一操作錯誤只需幾次按一下動作就可以還原。您可以四處移動某一段落,看看把它放在其他地方的效果如何,如果不滿意的話,可以立即撤銷修改。程式師經常把不正確的用戶輸入看作是傻瓜的作為,這個傻瓜應該坐下來閱讀使用手冊。事實並非如此。這是人類學習的主要途徑。具備撤銷功能的應用程式使得人們可以進行探索,而不會讓人感覺恐懼。它認識到使用者的人性並使其得以提升。如果不能正確實現這項功能就是一種道德過失。

如果完全正確地實現了撤銷功能,那麼在整個系統中就只有一個具有破壞性的操作,這個操作就是清空回收站。某些人可能會認為這項操作應該有一個確認對話方塊,就像Windows系統現在所做的這樣。但是即使在這裡,確認對話方塊的作用是為了防止另一個不好的設計:在上下文功能表中,資源管理器功能表項目下面緊挨著清空回收站功能表項目。滑動滑鼠,在上下文功能表中下移3個位置,而不是兩個位置,就會執行後者而不是前者。這是一種不好的設計。既然清空回收站是系統中唯一具有破壞作用的操作,那麼它就應該有一個別無他用的特殊動作,可以是一次性同時按下滑鼠的左右鍵(這個操作被稱為“chording”),或者在用滑鼠按一下的同時按住某個鍵。更好的方法是讓回收站自動清空,當回收站中的檔存放時間超過某個時限(可以是一個月,但使用者可以配置)之後,就刪除這些檔,這樣基本上就不需要手動清空它了。您難道不想讓自己家的垃圾桶也具備這個功能嗎?不管在什麼條件下,您都不應該在任何地方看到確認對話方塊。顯示對話方塊的程式師逃避了自己應盡的職責,他們不應該再從事使用者介面設計這項職業。

 

arrow
arrow
    全站熱搜

    on0216 發表在 痞客邦 留言(0) 人氣()