什么是Affordance?

在人机交互领域中,我们常常提到某个设计的affordance。其中文对应的意思并没有一个统一的意见。Wikipedia2上先这个词被译为“承担特质”或者“环境赋使”(非常晦涩难懂),后又提出可译为“直观功能”,也有同行将其译为“可供性”3等等。是一个经常被使(滥)用,但是其义常常没能被准确表述的概念。Mads Soegarrd在HCI词汇表中总结了这个词的解释1

Affordance这个词在英文中也是一个新词。该词由认知心理学家James J. Gibson于1979年在《The Ecological Approach to Visual Perception》一书中首次提出,后来在1988年被Donald Norman在其书《The Pcychology of Everyday Things》中引入到人机交互(HCI)领域。

Norman的解释

在Norman第一次将Affordance应用到人机交互领域时,他所指的Affordance是,一个物体自身表现出的“怎样使用”的性质,对于其功能的视觉提示。用人话来说就是,这个东西看上去应该怎么使用。比如茶壶手柄是被手握着的,按钮是用来按的。按他自己的话说:

“...the term affordance refers to the perceived and actual properties of the thing, primarily those fundamental properties that determine just how the thing could possibly be used. (affordance一词指,一个物体‘被接收到的’和‘真正的’属性,其中主要的是决定这个物体该如何使用的功能性的属性)”(Norman 1988, p.9)

也就是说,一个东西的Affordance = 人们觉得一个东西要怎么用 + 这个东西本身的功能属性。比如,鼠标的affordance = 人们直观觉得它的功能(可以吃吗?可以握住?可以控制电脑指针?) +真正的功能属性(鼠标的线接口可以插电脑,左右键可以按,可以在桌面上滑动,可以控制指针)。这个“真正的功能属性”是被设计者定义的,而“人们觉得的(接收到的)功能”是在用户测试中发现的。

Gibson的解释

该词的原创者Gibson对Affordance这个词的原始使用稍有不同,他提出的Affordance是这样定义的:

"an action possibility available in the environment to an individual, independent of the individual's ability to perceive this possibility (人们在环境中的可能的操作,它与人们是有能力接受这种可能性无关)" (McGrenere and Ho, 2000)

说人话就是,Affordance指的是一个东西它可以用来干什么,它所有的功能都可以包含在它的Affordance内,而不只是人们可以用它来干什么。Gibson并没有考虑“人们接受到”的部分,而是只是指所有的可能性。比如一个门,可以用来开关(大部分人能接受到的功能),也可以用来让忍者伪装起来(不是所有人都能接收到的功能,可能忍者才能想到,但是确实可以这么用)。

到底“人们能接收到的”该不该算作一个物体的affordance的标准,这导致了后来人们对这个词使用上的混乱。像开头提到的,即使是维基百科,也在页面上提出了“承担特质”(更接近Gibson的解释)和“直观功能”(更接近Norman的解释)两种翻译。于是现在对该词的定义并没有一个定论。所以建议大家使用的时候要多加小心,如果可能尽量避免使用这个词,用更浅显直白的词代替(如“直观功能”代表Norman的解释,“可用功能”代表Gibson的解释)。如果一定要使用该词,使用时自己先给出解释以防止读者、听众的误解(当然如果硬要装逼让观众听不懂,那就随便吧)。


1 Mads Soegaard, The Glossary of Human Computer Interaction - 5. Affordances, https://www.interaction-design.org/literature/book/the-glossary-of-human-computer-interaction/affordances

2 Wikipedia 承担特质, https://zh.wikipedia.org/wiki/%E6%89%BF%E6%93%94%E7%89%B9%E8%B3%AA

3 iD公社,Affordance(可供性)和设计,http://www.hi-id.com/?p=2732

什么是Affordance?的更多相关文章

  1. Essential controls for web app

    AUTO-COMPLETE/AUTO-SUGGEST Auto-complete using Vaadin Offer auto-suggest or auto-complete to help yo ...

  2. BUTTONS V. 2.0.0——CSS按钮库

    BUTTONS-V2-CSS库样式职责 CSS库样式职责分离优点 模块样式命名更清晰化 易于维护.扩展性强 动画效果——修改样式后有过度效果,默认样式 源码如下 <!DOCTYPE html&g ...

  3. iOS - Frame 项目架构

    前言 iOS 常见的几种架构: 标签式 Tab Menu 列表式 List Menu 抽屉式 Drawer 瀑布式 Waterfall 跳板式 Springborad 陈列馆式 Gallery 旋转木 ...

  4. iPad应用开发者的建议

    原文摘自Smashing Magazine<A Dad’s Plea To Developers of iPad Apps For Children> 我花了很长时间为孩子购买和测试iPa ...

  5. web设计经验<三>值得你深入了解的交互设计5大支柱

    随着单页式设计和移动端的兴起,网页中的交互设计越来越重要了.为了打造流畅而可靠的用户体验,你需要对交互设计有更加深入的了解. 正如同我们在<交互设计最佳实践(卷1)>中所述,要做好交互设计 ...

  6. 手势识别(一)--手势基本概念和ChaLearn Gesture Challenge

    以下转自: http://blog.csdn.net/qq1175421841/article/details/50312565 像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的 ...

  7. ActionBar官方教程(1)简介及各区域介绍

    Action Bar The action bar is a window feature that identifies the user location, and provides user a ...

  8. 【转】android官方侧滑菜单DrawerLayout详解

    原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html drawerLayout是Support ...

  9. 牛逼的bootcss之buttons

    css源码 /*! @license * * Buttons * Copyright 2012-2014 Alex Wolfe and Rob Levin * * Licensed under the ...

随机推荐

  1. P1613 跑路 倍增思想 + 邻接矩阵

    题意 给定一个有向图,每条边的花费为1.现在有一个空间跑路器,可以走2^k长度的路,只用花1秒的时间.问从1走到n最少的时间.n <= 50, k <= 64. 思路 这道题说是倍增,但是 ...

  2. HDU 6634 网络流最小割模型 启发式合并

    如果我们先手拿完所有苹果再去考虑花费的话. S -> 摄像头 -> 苹果 -> T 就相当于找到一个最小割使得S和T分开. ans = sum - flow. 然后对于这一个模型, ...

  3. 牛客网暑期ACM多校训练营(第三场) C Shuffle Cards 平衡树 rope的运用

    链接:https://www.nowcoder.com/acm/contest/141/C来源:牛客网 Eddy likes to play cards game since there are al ...

  4. hdu 6435 CSGO

    题意:现在有n个主武器, m个副武器, 你要选择1个主武器,1个副武器, 使得 题目给定的那个式子最大. 题解:这个题目困难的地方就在于有绝对值,| a - b | 我们将绝对值去掉之后 他的值就为 ...

  5. 用深度学习技术FCN自动生成口红

    1 这个是什么?        基于全卷积神经网络(FCN)的自动生成口红Python程序. 图1 FCN生成口红的效果(注:此两张人脸图来自人脸公开数据库LFW) 2 怎么使用了?        首 ...

  6. 深入浅出TypeScript(5)- 在React项目中使用TypeScript

    前言 在第二小节中,我们讨论了利用TypeScript创建Web项目的实现,在本下节,我们讨论一下如何结合React创建一个具备TypeScript类型的应用项目. 准备 Webpack配置在第二小节 ...

  7. Mac环境IntelliJ IDEA配置JDK提示The selected directory is not a valid home for JDK

    笔者使用mac配置如下: 硬件环境:MacBook Pro 操作系统:MacOS Sierra 10.13.6 开发工具:IntelliJ IDEA 2016.x JDK版本:已有Open JDK 8 ...

  8. C++ 深入浅出工厂模式(初识篇)

    初识工厂模式 我们先看工厂模式的介绍 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创 ...

  9. 史上最详 Thymeleaf 使用教程

    前言 操作前建议先参考我的另一篇博客:玩转 SpringBoot 2 快速整合 | Thymeleaf 篇 查看如何在SpringBoot 中使用 Thymeleaf.还有一点需要注意的是:模版页面中 ...

  10. Net基础篇_学习笔记_第十天_方法(函数)

    方法(函数): 函数就是将一堆代码进行重用的一种机制.//解决冗余代码问题------方法出现了.            面向对象的三大特征:封装.继承.多态 函数的语法:[public] stati ...