Actually, I don't know if this is a bug. But, when I set tabs to 4 in bash

$ tabs 4

then ls (without the color flag) a big directory, such as /usr/bin

$ alias
$ ls /usr/bin/
(lots of white text)...
 elfedit                  info               nl-route-add          sndfile-deinterleave        xzegrep
 env                      infocmp                nl-route-delete           sndfile-info            xzfgrep
 envsubst                 infotocap              nl-route-get          sndfile-interleave          xzgrep
 eqn                      init               nl-route-list         sndfile-metadata-get        xzless
 eqn2graph                insmod                 nl-rule-list          sndfile-metadata-set        xzmore
 escapesrc                install                nl-tctree-list        sndfile-play            yacc
 event_rpcgen.py              install-info           nl-util-addr          sndfile-salvage         yat2m
 expand                   integritysetup             nm                soelim              yes
 expiry                   ionice                 nmcli             sort                zcat
 expr                     ip                 nm-online             sotruss             zcmp
 factor                   ip6tables              nmtui             source-highlight        zdiff

Compare to when I use color flag...

$ ls --color=auto /usr/bin/
(lots of colored text)...
 faillock                          ip6tables-apply                     nmtui-connect              source-highlight-esc.sh     zdump
 faillog                             ip6tables-legacy                    nmtui-edit                    source-highlight-settings   zegrep
 faked                              ip6tables-legacy-restore       nmtui-hostname         speaker-test                       zfgrep
 fakeroot                          ip6tables-legacy-save          nohup                          speexdec                           zforce
 fallocate                          ip6tables-nft                          nologin                        speexenc                           zgrep
 false                                ip6tables-nft-restore              nproc                          split                                    zic
 fancontrol                       ip6tables-nft-save                  npth-config                 sprof                                   zless
 fax2ps                             ip6tables-restore                   nroff                            sqldiff                                 zmore
 fax2tiff                             ip6tables-restore-translate     nscd                          sqlite3                                znew

The indentation didn't broke at all.
If this is a bug, please fix it. Thanks!