UI의 무단 작업을 숨기거나 수행해야합니까? 아니면 오류가 발생합니까?
여러분의 의견을 부탁드립니다. 권한 또는 개체 상태가 부족하여 사용자가 수행 할 작업에 대한 UI 요소가있는 경우 해당 작업에 대한 UI 요소가 사용자에게 숨겨져 있어야 할 수없는 표시되어야하고 시도하면 오류가 발생합니까? 답변의 근거는 무엇입니까? 제도 된 경우 그 이유를 설명하고, 어떻게 처리합니까?
이 웹 인터페이스를 생성 할 것을 확인하고 권한을 이미 알고 있습니다. 주로 UI를 처리하는 방법에 대해 이야기하고 있습니다.
이것은 메뉴 항목 비활성화 또는 숨기기에, 대한 규칙 과 유사 하지만 메뉴뿐만 아니라 모든 유형의 UI 요소에 관심이 있습니다.
예 :
사용자가 새 이벤트를 만들 수있는 새 페이지가 있습니다. 이벤트는 마스터 이벤트 또는 하위 이벤트가 될 수 있습니다. 마스터 이벤트를 생성해야 "EditMasterEvent"권한이 필요하고 하위 이벤트를 생성 한 "EditEvent"권한 만 필요합니다. 기존 이벤트를 부모 (마스터 이벤트) 또는 부모 없음 (마스터 이벤트)으로 선택할 수있는 드롭 다운이 있습니다. 드롭 다운에 "마스터 이벤트 생성"선택 항목이 표시되거나 사용자에게 "이벤트 편집"권한 만있는 경우 생략해야합니다.
이벤트를 삭제하려는 애플리케이션 관리자이거나 이벤트 유형에 대한 적절한 편집 권한이 있어야합니다. 후자의 경우 이벤트도 5 년 이상이어야합니다. 이벤트를 삭제하면 시스템의 관련 데이터가 계단식으로 삭제되고 법적 규제가 데이터는 이벤트 이후 최소 5 년 동안 보관되어야합니다. 이 작업은 일반 사용자에게는 드물기 때문에 일반적인 경우에는 사용할 수 없습니다. 항상 표시 될 때만, 아니면 아니면 가능할 때만 표시됩니까?
거의 모든 UI 질문과 대답은 "상황에 따라 다름"입니다.
무엇을 사용자 만족도와 함께 검색 가능성을 평가해야합니다. 예를 들어 잘못된 작업을 허용하면 잘못된 이유를 설명 할 수 있습니다. 이 기능은 "이 기능이있는 이유"에 대한 답변이 명확하지 않은 경우 특히 유용합니다. 대부분의 사용자가 애플리케이션의 경우 중요합니다.
반면에 컨트롤을보고 클릭하면 "죄송합니다. 지금은 할 수 없습니다"라는 메시지가 표시되는 것만으로도 매우 실망 스러울 수 있습니다. 내가 몇 년 전에 물려받은 앱은 종류 그런의 것들로 가득 차 있지만 UI 사용을 좌절감으로 만들었습니다.
기능을 완전히 숨기는 것은 아닙니다. "몇 분 전에 있었지만"이 의미 해 사라진 기능을 알고 있습니다. 메뉴 항목이든 도구 모음 버튼이든 아니면 완전히 다른 것이 든,이를 숨기는 것은 최종 사용자에게 실망스러운 연습이 될 수 있습니다.
다음 사람에게 "이 기능을 사용하거나하거나 정보를 제공하는 대화 상자를 표시하는 것이 합리적입니까?"라고 표시하는 경우에만 사용성 테스트를 수행해 있습니다. 한 가지 다른 의견만으로도 문제를 다른 방향에서 바라 볼 수 있습니다.
결론 : 사용자에게 가장 잘 맞는 일을하십시오. 한 모든 시나리오는 특정 상황에서 유효합니다. 모든 UI 질문과 질문 자신 (또는 더 나은 사용자)에게 자신의 요구에 가장 적합한 것이 무엇인지.
숨김-현재 사용자가 사용할 수있는 최상의 접근 방식입니다. 사용자가있는 조치가없는 경우에 어떤 것이 가능한 것이 있는지 조치가없는 경우에 사용자가 사용할 수있는 조치가 없습니다.
현재 상황이나 현재 상황에서는 사용할 수 없습니다. 중단 된 옵션은 두 가지를 전달해야합니다. 첫째, 작업을 지금 사용할 수없고 둘째, 사용자가 작업을 사용하여 만들기 위해 수행 할 수있는 작업이 있습니다 (일부 설정 또는 권한 변경, 항목 선택, 필수 데이터 입력 등). ). 툴팁에서 작업을 활성화하기 위해 수행해야 할 작업을 수 있습니다. 사용자가 데이터를 입력하거나 메뉴를 설명 할 때 작업을 활성화 / 훌륭한하면 프로그램에 필요한 사항에 대한 제안을 제공합니다.
최악의 오류와 함께 실패-최악의 선택입니다. 작동 할 수있는 작업에 오류 보고서에 의존해야합니다. 시도하는 것 외에는 실패 할 수 없었습니다.
대신 요소를 숨기는 대신합니다. 이렇게하면 사용자가 옵션을 일반적으로 사용할 수 있음을 알고 요소를 현재 사용할 수없는 이유를 설명하는 도구 설명을 제공합니다.
때에 따라 다르지. 사용자가 행동이 가능한 것이 아니라 가능하다는 사실을 사용자에게 알리기를 원하십니까? 이 경우 버튼을 표시하되 되십시오. 예를 들어 사용자에게 삭제 권한이 없지만 다른 사용자는 삭제 권한이있는 경우 항목이 삭제 될 수있는 것을 필요하고, 조치가 필요한 경우에 필요한 경우에 수행 할 수 있습니다.
(예 : 감사 로그에 대한 읽기 액세스 권한이없는 사용자는 로그가 존재하는지 알지 못함) 버튼을 볼 수 없어야합니다. 완전히 무효화됩니다.
좋은 질문입니다!
몇 가지 고려 사항 :
페이지에 요소를 배치했지만하면 사용자가 시스템을 검사하고 javascriptlet을 사용하여 활성화 할 수있는 가능성이 여전히 있습니다.
전혀 표시하지 않는 전체 기능이 일반 사용자에게 약간의 혼란 스러울 수 있습니다. "여기에 편집 버튼이 없을까요?"
당신이 중 하나를 표시 및 해제 또는 표시하고 요소를 확인하는 경우, 내가 확실히 서버 유효성 검사를 수행합니다. 유효성 검사를 JavaScript의 손에 맡기지. 그 이유는 분명합니다.
나는 두 가지 유형의 상황을 다르게 처리하는 경향이 있습니다. 권한 및 객체 상태에 의해 관리되는 작업입니까?
그 사람이 작업을 수행 할 수있는 충분한 권한이없는 경우 옵션을 숨 깁니다. 그들의 작업을 수행 할 수 있는지 확인합니다.
개체가 해당 옵션을 사용할 수있는 상태가 아니 어서 옵션을 사용할 수없는 경우 옵션을 선택하여 사용자에게 옵션을 표시 할 수 있습니다 아무 작업도 수행 할 수 있습니다.
귀하의 예에서 :
옵션으로 "마스터 이벤트 생성"이 없을 것입니다. 사용자에게이를 볼 수있는 권한이 없습니다.
관리자에게 삭제 버튼이 표시됩니다. 그런 다음 사이트의 나머지 부분 (많은 눈에 보이는 텍스트, 도구 설명, 도움말 아이콘 등)을 수행하는 방법에 따라 현재 버튼을 사용할 수없는 이유를 사용자에게 알리는 규칙을 사용합니다. 그리고 아마도 위의 타이머의 근처에 게시물이 얼마나 오래 또는 사용할 수있을 때까지의 시간과 함께있을 수 있습니다.
항목에 따라 숨기거나합니다. 사용자가 큰 기능에 액세스 할 수있는 내부의 작은 부분에는 액세스 할 수없는 경우 작은 부분을 숨 깁니다. 그러나 사용자가 여러 가지 큰 기능에 액세스 할 수있는 경우에는 해당 기능을 원하는 경우 구매할 수 있음을 알리기 위해 마케팅 전략으로 표시됩니다.
또한 메뉴 항목을 선택하고 텍스트를 "블레이를하려면 로그인하십시오 ..."로 변경하는 프로그램도 보았습니다.
"왜이게 작동하지 않나요?" 작업을 수행하기 위해해야 할 일을 즉시 알려야합니다. 모든 경우에 적용 할 수는 없지만 구현할 수있는 권한이 있습니다.
일반적인 규칙은 사용자가 권한을 위해 UI에서 작업을 수행 할 수있는 경우에 사용하는 것입니다. 장애인은 "이 명령을 수행 할 수 있습니다"를 의미합니다. "방법"에는 현재 선택 사항이 포함 된 사용자가 새 객체가 아닌 이전 수업 사용자에 대한 EditEvent 권한이있는 경우 활성화 / 사용을 사용하십시오. 어떤 개체가 존재하는지 명확하게 표시하여 사용자가 관련 명령이 일부 개체에 대해 선택해야하는 이유를 이해해야합니다 (예 : 사용자가 일반적으로 레코드를 5 년 동안 보관해야 함을 알고있는 경우 간단한 연령 필드로 충분할 수 있음) 있음). 5 년 이상 된 기록의 경우 그래픽 차이가 있음).
사용자가 도메인에 대한 평균 지식이 입증 가정 할 때 사용 이유를 명확하게 알 수없는 경우에 대한 대신 메시지 상자를 사용합니다. BTW에 대한 도구 설명은 좋은 생각이지만 그 자체로 충분하지 않을 수 있습니다.
사용자가 조직의 현재 위치를 고려하여 UI에서 수행하는 작업에 관계없이 권한이없는 경우 숨김을 사용합니다 (예 : 응용 프로그램 관리자가 아님). 이 경우에는 또는 메시지 상자를 사용하는 복잡하고 실망 스럽습니다. 사용자에 관한 한 권한이없는 작업은 자신의 작업이 아니없는 작업은 자신의 작업이 아니 존재 (그렇지 이름이있는 권한이 있음) 관련 컨트롤이 UI에 없어야합니다. (예 : "상사가 귀하를 위해 새로운 이벤트를 생성합니다.").
자세한 내용은 http://www.zuschlogin.com/?p=40 에서 확인할 수 있습니다.
나는 이유를 포함하는 호버로 말할 것입니다.
그것은 사용자가 도대체 무슨 일이 일어나고 있는지 궁금해하는 것을 방지하는 동시에 적절한 조건에서 특정 행동이 가능하다는 것을 알려줍니다.
버튼을 비활성화하는 응용 프로그램을 특히 싫어합니다. 최종 사용자 인 경우 해당 버튼을 사용할 수없는 이유를 알고 싶습니다. 회색으로 표시해도 아무 의미가 없습니다. 활성화하기 위해 상태에 어떻게 도달합니까? 툴팁은 하나의 솔루션이지만 최고는 아니지만 많은 사용자가 툴팁으로 어려움을 겪을 것입니다 (경험있는 사용자와 작업하지 않는 한).
제 개인적인 느낌은 요소가 항상 존재해야한다는 것입니다. 사용자에게 권한이 충분하지 않은 경우 클릭하면 오류가 발생합니다.
나는 번역자들이 무수히 많은 "권한 거부"오류 메시지를 만드는 것을 좋아하지 않는다는 것을 알고 있습니다. 그래서 이것은 종종 요소를 숨기는 경향이있는 지역화 된 응용 프로그램에서는 수행되지 않습니다.
실제로 많은 사람들이 현지화되지 않은 앱에서도 옵션을 숨기는 경향이 있습니다.
다른 사람들은 요소를 숨기지 않고 대신 비활성화하고 이유에 대한 힌트를 제공하기 위해 유효한 제안과 함께 좋은 답변을 제공했습니다.
따라서 다른 관점에서보고 싶습니다.하지만 사용자가 요소와 관련된 특정 작업에 대한 권한이 있는지 여부에 관계없이 사용자가 볼 필요가없는 경우 일부 UI 요소를 숨기는 방법은 무엇입니까?
예를 들어, 어떤 역할의 사용자에게 시스템의 판매자 레코드에 대한 액세스 권한이 부여된다고 가정 해 보겠습니다.
그러나 비즈니스 분석가는 "이 양식에 판매자 목록이있는 드롭 다운이 있으며 특정 역할이이를 볼 수 있도록 허용해서는 안됩니다"라고 말합니다.
개발자가 "그래서이 역할에서"판매자 읽기 "권한 만 제거 했죠?"라고 묻습니다. 그러나 분석가는 "아니요!이 역할은 여전히 판매자 페이지에서 판매자를 볼 수 있어야합니다. 일부 역할의 목록을 숨기고 다른 역할에 표시해야하는 단일 양식입니다."
따라서 개발자는 "X 양식에 판매자 드롭 다운 표시"라는 권한을 추가합니다.
죄송합니다. 이제 문제가 생겼습니다. 동일한 데이터에 대한 액세스는 두 개의 별도 권한으로 제어됩니다. 이제 두 가지를 결합하는 방법을 알아 내야합니다. 일부 역할에 대해 판매자 목록을 숨겨야하는 양식이 둘 이상 있으면 어떻게됩니까? "판매자 목록 읽기"와 어떻게 결합합니까? 우리 개발자에게는 "읽기"권한이 "보기"보다 우선 순위가 더 높아야한다는 것이 다소 분명합니다. 따라서 사용자가 목록을 "보기"할 수 있더라도 여전히 목록을 볼 수는 없습니다 (또는 비어 있거나 유용한 힌트) "읽기"권한이없는 경우. 우리, 개발자 및 시스템 분석가는 그것을 알고 있습니다. 그러나 시스템 관리자는이를 어떻게 알아야합니까? 이걸 가르쳐야할까요? 관리자가 "보기"와 "읽기"를 모두 혼동하지 않도록 어떻게 보장 할 수 있습니까?
보시다시피 모든 것이 한 가지 이유 때문에 복잡해집니다. 역할 권한 목록에서 데이터 처리 권한과 UI 편의성을 혼합하고 있습니다.
서버 측의 권한이 UI와 너무 많이 결합되어 문제와 가능한 보안 허점을 요구하기 때문에 복잡 해지는 많은 프로젝트를 보았습니다 (동일한 데이터에 대해 동일한 작업에 대해 역할 권한 편집기에 여러 항목이 있기 때문입니다). .
권한은 특정 데이터에 대한 액세스 및 작업에 관한 것입니다. UI는 전체 시스템에서 일관된 방식으로 만 권한에 반응 할 수 있습니다 (힌트 사용 중지, 숨기기 등). UI 용도로만 새로운 권한 항목을 발명해서는 안됩니다.
이제 질문은 남아 있습니다.하지만 항상 비활성화 된 엄청난 양의 항목으로 인해 사용자를 압도하지 않도록 일부 시스템 사용자를 위해 UI 요소를 실제로 숨기는 방법은 무엇입니까? 한 가지 해결책은 역할 작업 영역 일 수 있습니다. 특정 역할의 사용자가 특정 데이터에 액세스 할 필요가 전혀 없다는 것을 분명히 알고 있다면 권한과 유사한 UI 제어 항목 집합을 생성하지만 이번에는 권한이라고 부르지 않습니다. 그리고 우리는 사용자가 작업 공간을 자유롭게 사용자 정의하고 볼 수있는 것과 볼 수없는 것을 선택할 수 있도록 허용하여 정말 멋지게 만들 수 있습니다. 물론 권한은 항상 가장 높은 우선 순위를 갖지만 가시성이 아닌 UI 요소의 데이터 및 상태에만 영향을 미칩니다.
그것은 내 2 센트입니다. 안타깝게도 저는 "손상이 발생했을 때"항상 프로젝트에 너무 늦었 기 때문에 권한과 UI 작업 공간 옵션이 깔끔하게 분리 된 시스템에서 작업 한 적이 없습니다. 하지만 언젠가는 기회가 있기를 바랍니다. 이 작업을 올바르게 수행하는 방법에 대한 좋은 예를 찾고 싶지만 인터넷 검색은 유용한 정보를 제공하지 않습니다. 저와 같은 결론에 도달 한 사람이 없다는 뜻입니까? 나는 그것을 믿지 않는다. 엔터프라이즈 디자인 패턴 세계의 누군가가 오래 전에 UI <-> 허가 임피던스 불일치를 알아 차렸어야했다.
'ProgramingTip' 카테고리의 다른 글
'None is None is None'이 True를 반환하는 이유는 무엇입니까? (0) | 2020.12.30 |
---|---|
cmd.exe를 사용할 때 따옴표를 어떻게 처리합니까? (0) | 2020.12.30 |
Maven은 SSH를 사용하여 로컬 파일을 원격 서버에 복사합니다. (0) | 2020.12.30 |
int []를 byte []로 변환하는 방법 (0) | 2020.12.30 |
Mysql이 열을 분할 할 수 있습니까? (0) | 2020.12.30 |