You know, it used to be that lists were called tables, and tables had the following elements and semantics:
- There were headers for each row with the name of the field in them.
- You clicked on the header to activate/switch the sort to this field.
- If the table was editable, you could tab through the fields.
- If you left the row, you'd jump to the first field in the next row.
- If the table had row insertion, there was an additional, empty row below the last row.
- You added a new row just by editing this last, new row, which was marked by a little star.
- The default sorting order was from top to bottom.
- The scrollbar made it easy to navigate to the end of the list.
We have a hard time doing real scrolling on the web, so we reverse the sort order and perform weird "infinite scrolling" tricks so we still get some half-assed usefulness. Or we paginate the whole thing, and the user has to navigate by pushing some double-arrows. Argh.
For example, let's consider the "board" interface in pinterest:
- Each board has a name.
- In the "select board" popup, boards are in a vertical list, sorted by name ascending. There is no way to change that.
- If you have more than x boards, there will be exactly three most-used boards on the top of the list.
- There is no way to change that.
- If you want another sort order, the only option is to somehow hack it into the name (by prefixing it with "00100" or some similarly stupid nonsense).
- The "edit boards" interface, on the other hand, is not sorted by name, but (I guess) by creation time or id. So your whole clever hack is competely useless there. If you reorder the boards by changing their names, you get no visual feedback at all.
- Neither is the "edit boards" interface a simple list. It's organized in tiles covering the whole screen width. You cannot change that either. I guess that one button would have cost too much screen real estate.