Hacker News new | ask | show | jobs
by preetsuthar17 336 days ago
still if you want to try the demo you can try here

https://www.ikiform.com/forms/a2675039-5901-4052-88c0-b60977...

3 comments

OK, initial feedback: you need to work on your colours and contrasts. Disabled Previous button isn’t clearly disabled, placeholder value looks almost the same as an actual value, focus indicator is too subtle. I reckon these things are noticeably harder to get right on dark than on light colour schemes.

Also keyboard navigation is poor: when you shift to a new page, you should probably focus the first field; or at the very least reset focus to the start of the document so that when the user presses Tab after having clicked the Next button they get to the first field, not the footer “Powered by Ikiform” link. (This doesn’t affect pressing Enter from one of the inputs—when they disappear, focus shifts back to the top.)

But I’m pleased to say that it’s nothing like Typeform. I strongly recommend ditching any comparison with it, you’re doing things sanely, unlike their experience.

It’s a nice form. On iOS when I hit next it didn’t pop me up to the beginning of the next page. Agree with the sibling that it would be nice to get focus on that next obvious step.
The name fields have a minimum length of two characters. There are people with single character names.
Mandatory reading for anyone implementing forms with names: Falsehoods Programmers Believe About Names [0].

[0] https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

Thanks for the link … great read and yes very tricky.

I have started hacking a bit on a Contact::Name text parser in raku Grammars if anyone would like to check it out - contributions are very welcome! https://raku.land/zef:librasteve/Contact

Why Raku?

  - the easy built in Grammar syntax means that coders can work quickly to build structured parse trees that can deal with all the textual nuance (unicode, language, rtl, pluggable sub-grammars…)

  - the consistent ecosystem provides for class / roles as first class packages in their own right, so we can have a shared standardized tree of real word objects we want to parse out of text such as LLM responses