Hộp thoại

Hộp thoại là một thành tố điều khiển đồ hoạ dưới dạng cửa sổ nhỏ để giao tiếp thông tin với người dùng và nhắc họ phản hồi.
Hộp thoại được phân loại thành hộp thoại "trạng thái" và "không trạng thái", tùy thuộc vào việc hộp thoại đó có chặn sự tương tác của người dùng với chương trình tạo ra nó không. Kiểu của hộp thoại hiển thị phụ thuộc vào tương tác mong muốn với người dùng.
Loại hộp thoại đơn giản nhất là hộp cảnh báo, hiển thị một thông báo và có thể yêu cầu một sự khẳng định rằng thông điệp đã được đọc, thường là bằng cách nháy vào "OK", hoặc quyết định xem liệu có tiếp tục một hoạt động không bằng cách nháy vào "OK" hoặc "Huỷ". Hộp cảnh báo cũng được sử dụng để hiển thị một "thông báo chấm dứt", đôi khi là yêu cầu người dùng xác nhận rằng họ đã đọc thông báo, trong trường hợp ứng dụng hay hệ điều hành bị lỗi có chủ ý hoặc không có chủ ý (sự cố). (Ví dụ, "Gedit đã gặp phải một lỗi và phải dừng chương trình.") Mặc dù hộp thoại trạng thái là một mẫu tương tác thường xuyên được sử dụng, nó cũng bị các chuyên gia về tính khả dụng chỉ trích là không hiệu quả cho mục đích sử dụng chính – bảo vệ trước các lỗi gây ra bởi các hoạt động có tính phá huỷ, và vì thế các lựa chọn thay thế tốt hơn tồn tại.
Loại không trạng thái.
Hộp thoại không trạng thái được sử dụng khi các thông tin yêu cầu không nhất thiết phải có để tiếp tục, do đó, các cửa sổ có thể được để sau trong khi tiếp tục làm việc ở nơi khác. Ví dụ về hộp thoại không trạng thái là một thanh công cụ, tách biệt khỏi ứng dụng chính, hoặc có thể được tách ra từ ứng dụng chính, và các mục trong thanh công cụ có thể được dùng để chọn các tính năng hoặc chức năng của ứng dụng.
Nhìn chung, thiết kế phần mềm tốt yêu cầu các hộp thoại thuộc vào loại này nếu có thể, vì chúng không buộc người dùng vào một chế độ hoạt động cụ thể nào cả. Chẳng hạn như một hộp thoại thiết đặt của tài liệu hiện tại, ví dụ màu chữ và màu nền. Người dùng có thể tiếp tục thêm văn bản vào cửa sổ chính dù có màu gì đi chăng nữa, nhưng có thể thay đổi nó bất cứ khi nào thông qua hộp thoại.
Loại trạng thái hệ thống.
Hộp thoại trạng thái hệ thống ngăn cản sự tương tác với những cửa sổ khác trên màn hình và ngăn người dùng chuyển sang ứng dụng khác hoặc thực hiện bất kỳ hành động nào khác cho đến vấn đề mà hộp thoại đưa ra được giải quyết. Hộp thoại trạng thái hệ thống được sử dụng nhiều hơn trong các hệ thống đơn nhiệm trước đây, khi mà chỉ một ứng dụng có thể chạy vào bất cứ thời điểm nào. Một ví dụ hiện tại về hộp thoại loại này là màn hình tắt máy của các phiên bản Windows hiện tại. 
Loại trạng thái ứng dụng.
Mẫu hộp thoại tạm dừng chương trình: người dùng không thể tiếp tục mà không đóng hộp thoại; chương trình có thể yêu cầu một số thông tin bổ sung trước khi nó có thể tiếp tục, hoặc có thể chỉ cần xác nhận rằng người dùng muốn tiến hành một mục tiêu có khả năng nguy hiểm của hành động (hộp thoại xác nhận). Người dùng với khả năng sử dụng thông thường coi các hộp thoại mẫu là thiết kế giải pháp xấu, vì chúng có khuynh hướng xuất lỗi. Hành động nguy hiểm nên không thể nén bất cứ nơi nào có thể; một hộp thoại cảnh báo rằng phương thức xuất hiện bất ngờ hoặc được miễn nhiệm tự động (vì người sử dụng đã phát triển một thói quen) sẽ không bảo vệ được từ các hành động nguy hiểm. Hộp thoại mẫu ngắt chính quy trình làm việc. Hiệu ứng này đã có thể được tìm thấy bởi các nhà nghiên cứu vì nó tập trung vào việc hoàn thành các nhiệm vụ bị từ chối thay vì nó ngăn chặn người dùng thay đổi nhiệm vụ khác nhau khi cần thiết.
Loại trạng thái tài liệu.
Khái niệm về một tài liệu phương thức thoại gần đây đã được sử dụng, đáng chú ý nhất trong OS X và trình duyệt Opera. Trong trường hợp đầu tiên, chúng được thể hiện như tấm gắn vào một cửa sổ gốc. Những đoạn hội thoại chỉ hiện cửa sổ cho đến khi người sử dụng gạt bỏ hộp thoại, cho phép làm việc trong các cửa sổ khác để tiếp tục, thậm chí trong cùng một ứng dụng.
Trong OS X, hộp thoại xuất hiện phát ra từ một khe trong cửa sổ gốc của họ, và được thể hiện với một hình ảnh động. Điều này giúp cho người dùng hiểu rằng hộp thoại được gắn liền với cửa sổ gốc, không chỉ thể hiện ở phía trước của nó. Không có công việc nào có thể được thực hiện trong các tài liệu cơ bản của chính nó trong khi hộp thoại được hiển thị, nhưng các cửa sổ gốc vẫn có thể được di chuyển, thay đổi kích thước, giảm thiểu, và các cửa sổ khác có thể được đưa ra phía trước để người dùng có thể làm việc.
Cùng loại của các hộp thoại có thể được so sánh với "tiêu chuẩn" hộp thoại mẫu được sử dụng trong Windows và các hệ điều hành khác.
Các điểm tương đồng bao gồm:
Sự khác biệt bao gồm:
Cả hai cơ chế có thiếu sót: