Split View: 화면은 열 글자로 쓰입니다 — 커스텀 위젯을 만들기 전에 물어야 할 한 가지
화면은 열 글자로 쓰입니다 — 커스텀 위젯을 만들기 전에 물어야 할 한 가지
- 디자인 리뷰에서 나온 문장 하나
- 스물여섯 글자와 열 개의 요소
- 순위 자체가 정보입니다
- 위젯을 새로 만들 때 실제로 버리는 것
- 계약을 어기는 흔한 방식 네 가지
- 창과 포인터가 목록에서 빠진 이유
- 근거 있는 규칙이란 어떤 모양인가
- 이번 주에 할 수 있는 것 — 컴포넌트 목록에 글자를 붙이기
- 정리와 출처
디자인 리뷰에서 나온 문장 하나
새 화면 시안에 처음 보는 조작 단위가 하나 들어 있습니다. 카드처럼 생겼는데 클릭하면 선택되고, 선택되면 테두리가 생기고, 여러 개를 고를 수 있습니다. 만든 사람에게 이게 뭐냐고 물으면 대답은 대개 이렇습니다. 선택 카드요.
이때 나와야 하는 질문은 예쁜지가 아니라 이겁니다. 이건 체크박스인가요, 아니면 탭인가요, 아니면 그 밖의 무엇인가요. 이 질문이 왜 유용한지가 이 글의 내용입니다.
스물여섯 글자와 열 개의 요소
제이콥 닐슨이 2026년 7월 29일에 올린 GUI 요소에 관한 글은 비유 하나로 시작합니다. 스물여섯 개의 알파벳이면 모든 영어 단어를 쓸 수 있듯이, 열 개 남짓한 요소면 지금까지 나온 거의 모든 사용자 인터페이스를 조립할 수 있다는 것입니다. 그리고 그 열 개를 근거 기반 지침 86개와 함께 정리합니다.
목록은 이렇습니다. 버튼, 입력 필드와 폼, 메뉴, 링크, 대화 상자, 알림과 오류 메시지, 아이콘, 체크박스와 라디오 버튼, 탭, 검색.
처음 보면 시시합니다. 여기 없는 걸 만들어 본 적이 없어서 시시한 겁니다. 그런데 우리 디자인 시스템의 컴포넌트 목록을 꺼내 놓고 세어 보면 대개 마흔 개에서 여든 개가 나옵니다. 열 개짜리 알파벳으로 쓴 글에 왜 여든 개의 글자가 필요했는지를 설명할 수 있어야 합니다.
순위 자체가 정보입니다
닐슨은 이 열 개를 그냥 나열하지 않고 순서를 매겼습니다. 기준은 사용자의 일상적 상호작용이 각각에 얼마나 많이 걸려 있는가입니다. 그래서 1위가 버튼이고 10위가 검색입니다.
이 순서는 실무에서 우선순위표로 쓸 수 있습니다. 팀의 시간은 유한하고, 보통 새 컴포넌트에 쏠립니다. 그런데 사용자가 하루 동안 가장 많이 만지는 것은 언제나 버튼과 입력 필드입니다. 버튼의 상태 표현, 비활성 이유 안내, 터치 영역 크기, 폼 오류 메시지의 위치 같은 것들이 순위 1, 2위에 해당하는 작업입니다.
반대로 말하면 이렇습니다. 새로 만든 카드형 선택 위젯을 다듬는 데 사흘을 쓰는 동안 버튼의 비활성 상태가 왜 비활성인지 아무 데도 적혀 있지 않다면, 그 사흘은 순위표의 아래쪽에 쓰인 것입니다.
위젯을 새로 만들 때 실제로 버리는 것
새 위젯의 비용은 구현 시간이 아닙니다. 구현은 대개 하루면 끝납니다. 진짜 비용은 사용자가 이미 알고 있던 계약을 버리는 것입니다.
체크박스에는 사용자가 학습을 마친 계약이 붙어 있습니다. 여러 개를 고를 수 있고, 다시 누르면 해제되고, 라벨을 눌러도 토글되고, 키보드로 탭 이동한 뒤 스페이스로 켜지고, 스크린 리더가 선택 상태를 읽어 줍니다. 이 계약은 우리가 만든 것이 아니라 수십 년 동안 수천 개의 제품이 같은 방식으로 동작해서 생긴 것입니다.
카드형 선택 위젯을 새로 만들면 이 계약이 전부 초기화됩니다. 다시 누르면 해제되는지 사용자는 모릅니다. 키보드로 접근 가능한지는 우리가 따로 만들어야 합니다. 그리고 만들지 않으면 조용히 없습니다. 즉 새 위젯의 원가는 구현 하루가 아니라 버려진 계약을 우리 손으로 다시 짓는 비용 전부입니다.
그래서 앞의 질문이 중요합니다. 이게 체크박스라면, 체크박스로 구현하고 겉모습만 카드로 바꾸면 됩니다. 계약은 그대로 남습니다.
계약을 어기는 흔한 방식 네 가지
목록의 열 글자 중 무엇인지를 정한 다음에도, 그 글자의 계약을 반쯤 어기는 일이 자주 생깁니다. 자주 보이는 형태는 이렇습니다.
- 링크처럼 생겼는데 버튼인 경우: 밑줄 친 파란 글씨를 새 탭으로 열려고 가운데 클릭했는데 아무 일도 일어나지 않습니다. 링크와 버튼의 차이는 모양이 아니라 이동인가 실행인가입니다.
- 버튼처럼 생겼는데 라디오인 경우: 나란히 놓인 버튼 세 개 중 하나를 누르면 나머지가 꺼집니다. 이건 라디오 버튼의 동작인데, 눌렀을 때 무언가 실행될 것이라 기대한 사용자는 한 박자 멈칫합니다.
- 탭인데 페이지가 바뀌는 경우: 탭은 같은 맥락 안에서 보이는 면을 바꾸는 장치입니다. 탭을 눌렀는데 뒤로 가기 기록이 쌓이면 사용자의 모델이 깨집니다.
- 알림인데 조작을 요구하는 경우: 알림은 지나가도 되는 것이고 대화 상자는 답해야 하는 것입니다. 몇 초 뒤에 사라지는 토스트 안에 되돌리기 버튼만 있으면, 그 되돌리기는 놓치라고 만든 것에 가깝습니다.
네 가지의 공통 구조가 있습니다. 겉모습으로 하나를 약속하고 동작으로 다른 것을 줍니다. 사용자는 겉모습을 믿습니다.
창과 포인터가 목록에서 빠진 이유
닐슨은 창과 포인터를 본문 열 개에 넣지 않고 보너스로 따로 다룹니다. 이유는 이 둘이 이제 대체로 운영체제의 몫이 되었기 때문이라고 밝힙니다.
이 구분이 실무에서 유용한 이유는, 우리가 만들지 말아야 할 것을 알려 주기 때문입니다. 웹 앱 안에 창 관리 기능을 직접 구현하는 순간 그 창은 운영체제의 창과 다르게 동작하기 시작합니다. 최소화가 없거나, 드래그 영역이 다르거나, 겹침 순서가 다릅니다. 사용자는 운영체제 쪽 계약을 기준으로 기대합니다.
포인터도 같습니다. 커서 모양을 바꾸는 것은 상태를 알려 주는 강력한 수단이지만, 커서 자체를 그림으로 대체하는 순간 지연이 눈에 보입니다. 플랫폼이 이미 맡고 있는 층을 다시 만들 때는 그 층의 기존 계약 전부를 이겨야 합니다.
근거 있는 규칙이란 어떤 모양인가
닐슨의 글이 근거 기반이라고 말할 때의 근거가 어떤 것인지 한 예로 보겠습니다. 글이 인용하는 것 중 하나가 1954년의 피츠의 법칙입니다. 어떤 대상을 가리키는 데 걸리는 시간은 그 대상까지의 거리와 대상의 크기로 정해진다는 실험 결과입니다. 멀수록 오래 걸리고 클수록 빨라집니다.
그래서 버튼을 크게 그리라는 말은 취향이 아니라 측정된 사실의 결과입니다. 여기서 실무적으로 더 쓸 만한 따름 결과가 나옵니다. 화면의 모서리와 가장자리는 무한히 큰 목표처럼 동작합니다. 마우스를 아무리 세게 던져도 화면 밖으로 나가지 않기 때문입니다. 자주 쓰는 조작을 가장자리에 붙이면 같은 크기라도 더 빨리 닿습니다.
이 글은 다른 종류의 근거도 인용합니다. 남성의 약 12명 중 1명이 적록 색각 이상을 갖는다는 수치가 그렇습니다. 색만으로 상태를 구분한 화면이 왜 위험한지에 대한 답이 여기 있습니다. 그리고 폼 필드 하나를 없앤 것만으로 연간 1200만 달러 규모의 개선이 있었다는 사례도 소개합니다. 이 사례는 제가 원 자료까지 확인하지 않았고, 닐슨의 글이 전하는 내용으로 적습니다.
이번 주에 할 수 있는 것 — 컴포넌트 목록에 글자를 붙이기
한 시간이면 되는 작업이 있습니다.
- 디자인 시스템의 컴포넌트 목록을 그대로 표로 옮깁니다.
- 각 항목 옆에 열 개 중 어느 글자인지를 적습니다. 버튼, 입력, 메뉴, 링크, 대화 상자, 알림, 아이콘, 체크박스와 라디오, 탭, 검색.
- 글자를 적을 수 없는 항목에 표시를 합니다.
- 표시된 항목마다 한 줄로 답합니다. 이건 어떤 계약을 새로 만든 것이고, 그 계약을 문서와 접근성 구현으로 실제로 지키고 있는가.
대부분의 팀에서 3번에 남는 항목은 두세 개입니다. 그 두세 개는 대개 정말로 필요한 것들이고, 나머지는 기존 글자의 다른 옷입니다. 다른 옷이라는 사실을 코드에 반영하는 순간 접근성과 키보드 조작이 공짜로 따라옵니다.
정리와 출처
목록의 가치는 무엇을 만들지 알려 주는 데 있지 않습니다. 새로 만든 것이 알파벳에 없는 글자라면, 그 글자를 처음부터 다 가르쳐야 한다는 사실을 알려 주는 데 있습니다.
- 10 GUI Design Elements Build Every User Interface — 제이콥 닐슨, 2026년 7월 29일. 열 개의 목록과 순위 기준, 지침 86개, 창과 포인터를 따로 다룬 이유, 피츠의 법칙과 색각 이상 수치, 폼 필드 사례가 모두 이 글에서 나온 것입니다.
- 열 개의 순서와 순위 기준, 알파벳 비유, 지침 개수는 위 글에서 직접 확인했습니다. 본문의 계약 위반 네 가지 예시와 컴포넌트 라벨링 작업은 이 글이 제시하는 것이 아니라 제가 그 관점을 실무에 옮겨 본 것입니다.
A Screen Is Written With Ten Letters — The One Question to Ask Before Building a Custom Widget
- One sentence from a design review
- Twenty-six letters and ten elements
- The ranking itself is information
- What you actually throw away when you build a new widget
- Four common ways to break the contract
- Why windows and pointers were left off the list
- What an evidence-backed rule actually looks like
- What you can do this week — attach a letter to your component inventory
- Summary and sources
One sentence from a design review
A new screen mockup contains an interaction unit nobody has seen before. It looks like a card, clicking it selects it, selection draws a border, and several can be chosen at once. Ask the person who made it what it is and the answer is usually this: a selection card.
The question that should come out at this moment is not whether it looks good. It is this. Is this a checkbox, or a tab, or something else entirely? Why that question is useful is the content of this post.
Twenty-six letters and ten elements
The post about GUI elements that Jakob Nielsen published on 29 July 2026 opens with a single analogy. Just as twenty-six letters of the alphabet let you write every English word, about ten elements let you assemble almost every user interface produced so far. And he lays out those ten together with 86 evidence-based guidelines.
The list runs like this. Buttons, input fields and forms, menus, links, dialog boxes, notifications and error messages, icons, checkboxes and radio buttons, tabs, search.
At first glance it feels trivial. It feels trivial because you have never built anything outside this list. And yet if you pull out your own design system component inventory and count, you usually land somewhere between forty and eighty. You should be able to explain why a text written with a ten-letter alphabet needed eighty letters.
The ranking itself is information
Nielsen does not simply enumerate the ten; he orders them. The criterion is how much of a user's everyday interaction hangs on each one. So buttons rank first and search ranks tenth.
That order can be used as a priority table in practice. Team time is finite, and it usually pours into new components. But what users touch most over the course of a day is always buttons and input fields. Expressing button states, explaining why something is disabled, touch target size, the placement of form error messages — these are the work that corresponds to ranks one and two.
Put the other way round: if you spend three days polishing your newly built card-style selection widget while nowhere in the product does it say why a disabled button is disabled, those three days were spent at the bottom of the ranking.
What you actually throw away when you build a new widget
The cost of a new widget is not implementation time. Implementation usually takes a day. The real cost is giving up a contract the user had already learned.
A checkbox carries a contract on which the user has finished their training. Several can be chosen, pressing again clears it, clicking the label toggles it, keyboard tab focus plus space turns it on, and screen readers announce the selection state. This contract is not something we made; it came about because thousands of products behaved the same way for decades.
Build a new card-style selection widget and this contract is reset in full. Whether pressing again clears it, the user does not know. Whether it is reachable by keyboard is something we have to build separately. And if we do not build it, it is silently absent. In other words, the true cost of a new widget is not the one day of implementation but the entire cost of rebuilding the discarded contract with our own hands.
That is why the earlier question matters. If this is a checkbox, implement it as a checkbox and change only the appearance to a card. The contract stays intact.
Four common ways to break the contract
Even after deciding which of the ten letters something is, half-breaking that letter's contract happens often. The shapes you see most are these.
- Looks like a link but is a button: you middle-click the underlined blue text to open it in a new tab and nothing happens. The difference between a link and a button is not appearance but navigation versus execution.
- Looks like a button but is a radio: press one of three buttons sitting side by side and the others switch off. That is radio button behaviour, and a user who expected something to be executed on press stumbles for a beat.
- Is a tab but changes the page: a tab is a device for changing the visible face inside the same context. If pressing a tab piles up back-button history, the user model breaks.
- Is a notification but demands an action: a notification is a thing you may let pass; a dialog box is a thing you must answer. If the only undo button lives inside a toast that disappears after a few seconds, that undo is close to being built to be missed.
The four share a common structure. They promise one thing by appearance and give another by behaviour. The user believes the appearance.
Why windows and pointers were left off the list
Nielsen does not put windows and pointers among the ten in the main body; he covers them separately as a bonus. He states that the reason is that these two have now largely become the operating system's job.
The reason that distinction is useful in practice is that it tells us what not to build. The moment you implement window management yourself inside a web app, that window starts behaving differently from operating system windows. There is no minimize, or the drag region differs, or the stacking order differs. The user forms expectations against the operating system side of the contract.
Pointers are the same. Changing the cursor shape is a powerful way to signal state, but the moment you replace the cursor itself with a graphic, the latency becomes visible. When you rebuild a layer the platform already owns, you have to beat every existing contract of that layer.
What an evidence-backed rule actually looks like
Let us look at one example of what kind of evidence is meant when Nielsen calls his post evidence-based. One of the things it cites is Fitts's law from 1954: the experimental result that the time to point at a target is determined by the distance to it and by its size. Farther takes longer, bigger goes faster.
So telling you to draw buttons large is not a matter of taste but a consequence of a measured fact. And a more practically usable corollary comes out of it. The corners and edges of a screen behave like infinitely large targets, because no matter how hard you throw the mouse it does not leave the screen. Pin frequently used controls to the edges and, at the same size, they are reached faster.
The post cites another kind of evidence too. The figure that roughly one in twelve men has red-green colour vision deficiency is one such. That is where the answer lies to why a screen that distinguishes state by colour alone is dangerous. It also introduces a case in which removing a single form field alone produced an improvement on the order of 12 million dollars a year. I have not chased that case back to its original source; I record it as what Nielsen's post reports.
What you can do this week — attach a letter to your component inventory
There is an exercise that takes an hour.
- Copy your design system component inventory into a table as-is.
- Next to each item, write which of the ten letters it is. Button, input, menu, link, dialog box, notification, icon, checkbox and radio, tab, search.
- Mark the items where you cannot write a letter.
- For each marked item, answer in one line: which contract did this newly create, and are we actually keeping that contract in documentation and accessibility implementation?
In most teams, two or three items remain at step 3. Those two or three are usually the ones truly needed, and the rest are existing letters in different clothes. The moment you reflect that they are different clothes in the code, accessibility and keyboard operation follow for free.
Summary and sources
The value of the list is not in telling you what to build. It is in telling you that if the thing you newly built is a letter not in the alphabet, you will have to teach that letter from scratch.
- 10 GUI Design Elements Build Every User Interface — Jakob Nielsen, 29 July 2026. The list of ten and the ranking criterion, the 86 guidelines, the reason windows and pointers are handled separately, Fitts's law and the colour vision figure, and the form field case all come from this post.
- The order of the ten, the ranking criterion, the alphabet analogy, and the number of guidelines were confirmed directly in that post. The four contract-violation examples and the component labelling exercise in the body are not proposed by that post; they are my own transfer of its perspective into practice.