# 66: Ngăn ngừa lỗi

Thông báo lỗi là tương tác then chốt giữa người dùng và hệ thống. Chúng xảy ra khi giao tiếp giữa người dùng và hệ thống lâm vào bế tắc.

Thật dễ dàng khi cho rằng lỗi là do người dùng nhập input sai. Nhưng lỗi sai của con người có hệ thống và khá dễ đoán. Vì vậy, có thể sửa lỗi giao tiếp giữa người dùng và hệ thống theo cách bạn làm giữa các thành phần khác nhau trong hệ thống.

Chẳng hạn bạn muốn người dùng nhập một ngày trong một phạm vi nhất định. Thay vì cho phép người dùng nhập một ngày bất kỳ, hãy cung cấp một danh sách hay lịch hiển thị các ngày trong phạm vi đó. Điều này giúp loại bỏ nguy cơ người dùng nhập một ngày ngoài phạm vi đã cho.

Lỗi định dạng là một vấn đề phổ biến khác. Chẳng hạn, nếu người dùng được cung cấp văn bản Ngày và nhập một ngày tuỳ ý, ví dụ “ngày 29 tháng 7 năm 2012” thì sẽ khá khó hiểu nếu họ từ chối chỉ vì nó không ở định dạng ưa thích (chẳng hạn như “DD/ MM/ YYYY”). Tệ hơn nữa là từ chối “29 / 07 / 2012” chỉ vì nó chứa thêm khoảng cách- loại vấn đề này đặc biệt khó hiểu đối với người dùng vì ngày dường như luôn ở định dạng họ mong muốn.

Lỗi này xảy ra vì việc từ chối ngày dễ dàng hơn so với phân tích ba hoặc bốn định dạng ngày phổ biến nhất. Những lỗi lặt vặt này dẫn đến sự thất vọng của người dùng, kéo theo nhiều lỗi khi họ mất tập trung. Thay vào đó, hãy tôn trọng sở thích của người dùng để nhập thông tin. Một cách khác để tránh lỗi định dạng là cung cấp tín hiệu - ví dụ một nhãn hiển thị định dạng mong muốn (“DD/ MM/ YYYY”). Một gợi ý khác là có thể chia phạm vi đã cho thành ba hộp văn bản gồm hai, hai và bốn ký tự.

Tín hiệu khác với hướng dẫn: Tín hiệu thường có xu hướng gợi ý; trong khi hướng dẫn thường khá dài dòng. Tín hiệu xảy ra tại thời điểm tương tác; hướng dẫn xuất hiện trước thời điểm tương tác. Tín hiệu cung cấp bối cảnh; hướng dẫn thì sử dụng chúng.

Nói chung, hướng dẫn không hiệu quả trong việc ngăn ngừa lỗi. Người dùng có xu hướng cho rằng các giao diện sẽ hoạt động phù hợp với trải nghiệm trước đây của họ (Hẳn mọi người đều biết “ngày 29 tháng 7 năm 2012” nghĩa là gì). Vì vậy, hướng dẫn thường bị bỏ qua. Trong khi đó tín hiệu giúp người dùng tránh xa các lỗi.

Một cách khác để tránh lỗi là cung cấp mặc định. Người dùng thường nhập các giá trị tương ứng với hôm nay, ngày mai, sinh nhật của tôi, deadline hoặc ngày tôi nhập lần trước khi tôi sử dụng biểu mẫu này. Tùy thuộc vào ngữ cảnh, một trong số này có thể là một lựa chọn tốt như một mặc định thông minh.

Dù nguyên nhân là gì, các hệ thống nên tiếp nhận được lỗi. Bạn có thể làm điều này bằng cách cung cấp nhiều cấp độ hoàn tác cho tất cả hành động, đặc biệt với những hành động có khả năng phá hủy hoặc sửa đổi dữ liệu của người dùng.

Ghi chép và phân tích các hành động hoàn tác cũng có thể làm nổi bật giao diện đang khiến người dùng mắc lỗi trong vô thức, chẳng hạn như nhấp liên tục vào nút sai. Những lỗi này thường được gây ra bởi tín hiệu sai lệch hoặc do trình tự tương tác mà bạn hoàn toàn có thể thiết kế lại để tránh những lỗi về sau.

Bất kể cách tiếp cận nào bạn thực hiện, hầu hết các lỗi đều theo một hệ thống nhất định. Đó là hệ quả của sự hiểu lầm giữa người dùng và phần mềm. Thấu hiểu suy nghĩ của người dùng, giải thích thông tin, đưa ra quyết định và dữ liệu đầu vào sẽ giúp bạn sửa các lỗi tương tác giữa phần mềm và người dùng.