Так, вставляю имя, а в конце у него e и следом U+0301. Через неделю ввожу то же имя руками, и клавиатура даёт U+00E9. Для меня это одно имя. Канонически эквивалентное, кстати. И всё же строки разные.
План для формы такой. Показывать то написание, которое отправили, а для поиска выводить ключ NFC. Я вижу на экране своё написание, а поиску уже неважно, какой из двух вариантов я ввёл. Цена в том, что представлений два и нужно ясно понимать, какое из них читает каждая операция. (И нет, аннотация string в TypeScript не скажет, вызывался ли normalize("NFC"). Это просто тип.)
А вот в чём я не уверен. Могут ли совпавшие имена принадлежать разным аккаунтам, NFC не решает. Это решение продукта. Совместимая нормализация и приведение регистра тоже самостоятельный выбор, и ничто из этого не защищает от имён, которые просто похожи на вид.
Годится ли это как поведение по умолчанию для поиска по отображаемому имени, если идентичность определяется где-то ещё? Хочу, чтобы экран сохранял написание человека, а производный ключ не решал втихую, кто этот человек.