E5.18.1hide versus disable unauthorized nav设计
无权限项可以隐藏,也可以显示但禁用并提示原因
别名: 无权限导航 · disabled nav item · 隐藏或禁用
概念解释
某一导航项当前用户无权使用时,界面有两种老实的做法:藏起来,或留在原位但禁用并写明原因(hide versus disable unauthorized nav)。两种都比「看起来能点、点了才报错」诚实。差别在于要不要让人知道这个地点存在。选择发生在画导航的时候,不是发生在点进去之后。
机制
隐藏把该项从选择场拿掉,场变干净,也不会点到一个注定失败的入口。它适合「对该角色根本不该存在」的地点:普通成员看不到管理后台,考生看不到出题。禁用把该项留在地图上,选中态走不到,但名称还在,旁边有「需要某角色 / 需要开通」。它适合「存在、只是你现在去不了」:升级后会出现的模块、要申请才能用的导出、同事有而自己暂无的队列。地图仍完整,人不会把缺口理解成产品残缺,但选择场多了一块不可用的面积。
「能点再失败」两头不占:选择场被一项假入口污染,失败又来得晚,还往往只说「出错」而不说权限。禁用而不给原因同样不老实:人看见灰项,不知道是暂时的、要付费、还是坏了。原因必须在该项旁边可读,而不是点开对话框才说。
边界
安全敏感到连名称都不能泄露的能力(未公开的内部工具名)只能隐藏,禁用会把名称暴露给无权的人。反向:名称已经在合同、培训、同事口中出现的能力,隐藏会造成更大的沟通成本,应禁用加原因。同一项对不同角色在两种策略间来回切,地图会抖,角色变化时要选稳定的那一种。移动宽度上禁用项仍占槽,可能挤掉真有权的项,这时隐藏更合适。
怎么落地
- 为每个无权项事先选定策略:对该角色不存在则隐藏;存在但当前不可用则禁用并写原因(缺什么、谁能开)。
- 不要做成可点再报错。原因写在项旁,不要只靠悬停。
- 同一产品里同类项用同一策略,避免有的灰、有的消失。
- 验证:用无权账号看导航。该藏的应不在场;该留的应在场、不可激活、且不点就能读到原因。任何「点了才说没权限」都是第三种不老实。再核对原因是否具体到角色或开通动作,而不是一句「无法访问」。