虽然我对Web应用程序信息特别感兴趣,但我也对桌面应用程序开发有些好奇.这个问题是由我在我的个人网站上的工作以及我的工作所驱动的,我在那里开发了一些功能,但是将其留给其他人以融入网站的外观和感觉.
对于颜色方案,布局,格式等等,是否有任何指南或经验法则?我希望确保访问者的可读性和清晰度,但不要同时保持平淡和沉闷.
至于我在这方面的知识 - 如果你给我一张照片,我有足够的知识在屏幕上重现它,但如果你让我设计一个新的界面或重新设计现有的界面,我不知道从哪里开始.
首先我要说的是,我们验证了服务器端的每个字段,因此这是一个关于客户端可用性的问题.
关于何时使用javascript验证和格式化html表单输入字段的传统智慧是什么?
例如,我们有一个电话号码字段.我们允许数字,空格,括号和连字符.我们希望该字段有十位数.此外,我们希望该字段看起来像(123)456-7890,即使用户没有这样输入.
好像我们可以
我已经看到它完成了所有这些方法,但我无法从可用性的角度找到最佳(甚至普遍接受)的信息,更重要的是,为什么.
[ 编辑:一些澄清]
我们绝对不执行任何格式标准.当我说格式时,我的意思是我们将使用javascript重写事物,使它们看起来很好.如果用户键入1234567890,我们将其更改为(123)456-7890.没有可能失败的"格式化规则".
我将此与验证区分开来,因为如果它们没有输入足够的数字,我们必须让它们修复它.
我想我应该将这个问题重新解释为"什么是关于何时验证以及何时格式化......的传统智慧?
到目前为止答案中的好消息!
编辑:我接受我自己的答案,希望其他人会发现这个链接和我一样有用.
我正在写一个内部工具webapp; 该工具的一个中心页面有一大堆相关命令,用户可以通过单击页面上的多个按钮之一来执行这些命令,如下所示:
工具栏http://img709.imageshack.us/img709/1928/commands.png
理想情况下,所有按钮都适合一行.通常我会通过将每个小部件从带有(有时长)文本标签的按钮更改为简单紧凑的图标来实现此目的 - 例如
标有"保存"的按钮http://img337.imageshack.us/img337/773/saver.png
可以用熟悉的磁盘图标替换:
磁盘图标http://p.yusukekamiyamane.com/icons/search/fugue/icons-24/disk-black.png
不幸的是,我不认为我可以为这个特定页面上的每个按钮执行此操作.某些命令按钮没有良好的视觉模拟 - "VDS列表".或者,如果我需要在将来为其他类型的列表添加另一个按钮,我需要两个图标来传达"list-ness"和哪个列表.所以,我还在考虑这个选项,但我不喜欢它.
所以现在是时候为我添加另一个按钮了(你不喜欢内部工具吗?).该单行上没有足够的空间来容纳新按钮.除了我已经提到的图标解决方案之外,什么是简化/整理/减少或改进此UI的好方法?
*根据Jakob Nielsen的文章,我想认为下拉菜单不是解决方案.
编辑:我不是在寻找关于图标理念的输入.我正在寻找其他解决方案.对不起,我的示例磁盘图标很小; 这只是一个例子.我现在正在展示一个更大的一个,希望更清楚.
我读过一篇关于Web可用性的文章(不记得/找不到哪里),描述了何时使用下拉菜单以及何时使用自动填充字段.
基本上,文章说人类大脑不能存储超过最后五个选项供选择.
例如,在一个配置文件表单中,当前的职业存在,系统为您提供了一系列选项,当您阅读第六个选项时,您的大脑将不再记住第一个选项.这个例子是一个使用自动填充字段的好地方,用户输入他认为是他职业的东西,然后从过滤的几个选项中选择更好的东西.
我想听听你对这个问题的看法.
我应该何时使用下拉列表以及何时使用自动填充字段?
我的webapp中有一个字段,用户输入大量文本.我想实现x-webkit-speech元素.它适用于所有的
<input>
Run Code Online (Sandbox Code Playgroud)
盒子,但我无法让它呈现在
<textarea name="uxMyInput" rows="30" cols="20" id="uxMyInput" onblur="convert();" style="width:100%;" x-webkit-speech=""></textarea>
Run Code Online (Sandbox Code Playgroud) 考虑一个C#GUI应用程序,它使用a FileStream来读取用户通过"打开文件"对话框选择的文件.
如果读取因其中一个例外而失败,那么以用户友好的方式向用户报告失败的正确方法是什么?
我应该为每个例外发明我自己的消息,还是有办法获得一个我可以逐字呈现给用户的本地化,用户友好的消息?
我问的是.NET本身是否能够为我提供一个我可以呈现的描述性字符串(这与其他.NET程序一致).我知道我可以卷起自己的,但如果有标准的选择,我想避免这种情况.
我正在写一个表示某些Web API的Python库。现在,我的库目录看起来与此相似:
__init__.pyAccount.pyOrder.pyCategory.pyrequests.py在中__init__.py,我有类似以下内容:
from .Account import Account
from .Order import Order
from .Category import Category
from . import requests
Run Code Online (Sandbox Code Playgroud)
这允许先使用import cool_site然后再cool_site.Account(…)进行诸如此类的操作,但是存在以下问题:当我在IDLE中处理代码时,该对象随后被称为cool_site.Account.Account,这感觉很不好。
接下来我感到不满意的是我的代码组织。现在,我的Account班级接受初始化凭证,创建一个requests.Session对象,然后处理与服务器的所有通信,即搜索订单等。Account然后,此类实例将自身传递给所有其他实例,例如传递给Order-,因此订单的实例将具有.account保存Account创建它的实例的属性。当另一个类实例本身必须执行某项操作时(例如,更改订单的注释)(通过调用o.comment = 'new comment',由类中的@comment.setter装饰器进行更改Order),它将其转发给一个Account对象,该对象在初始化时传递给该对象,然后使用example self.account.set_order_comment(new_comment)。然后,此方法将使用所有Web请求来实现该目标。
我想问的最后一件事是如何以及在哪里保留低级请求模板。现在我在cool_site.requests子模块中有它,针对不同的请求有不同的功能,例如SetOrderComment上述情况(这是一个功能,因此应该小写,但是在这种情况下,我认为它在某种程度上类似于类-是可以吗?)。该Account.set_order_comment会使用这样的:
r = cool_site.requests.SetOrderComment(order.id, new_comment)
response = self._session.request(**r)
Run Code Online (Sandbox Code Playgroud)
因为此函数会返回一个带有参数的字典,以Session.request从requests库中获取函数。身份验证标头已在类实例的_session …
我们偶尔需要通知用户有关警告或问题的信息.但通常情况下,特别是如果这是一个常见问题,用户只会忽略警告并继续.通常用户甚至不会记得看到警告,但我们检查他们的日志并看到有几个显示.那么,当你试图告诉他们重要的事情时,你如何让用户注意?
这并不像在允许用户保存之前强制用户解决所有问题一样简单.由于各种原因(通常是针对无法立即解决或根本无法解决的问题),他们经常需要保存我们的业务规则并不严格的数据.
我们有一个更好的警告/错误处理系统,我认为会有很多帮助,但我想看看别人做了什么.
我刚刚从维基百科ISO 3166-1中写了一份国家列表
我的目标是在我的xhtml中选择使用它,但它是一个巨大的列表.你有多少人来自阿鲁巴?但是你有多少来自英国,法国甚至是美国?
有时,我可以看到最常见的国家列在列表的顶部.
这是一个好习惯吗?为什么不呢?
usability ×10
javascript ×2
api-design ×1
autocomplete ×1
c# ×1
combobox ×1
exception ×1
html ×1
html5 ×1
localization ×1
python ×1
readability ×1
validation ×1
warnings ×1
wiki ×1