dotnet / machinelearning-modelbuilder

Simple UI tool to build custom machine learning models.
Creative Commons Attribution 4.0 International
264 stars 56 forks source link

Long column titles are not fully shown in Advanced Data Options window #1534

Closed torronen closed 3 years ago

torronen commented 3 years ago

System Information (please complete the following information):

Describe the bug

To Reproduce Steps to reproduce the behavior:

  1. Create CSV file with long column names, such as MyLongColumnTitleForSpecificPurposeOnly
  2. Add new ML model using Model Builder
  3. Select any goal, any environment
  4. Click Advanced Data Options.
  5. Observe the column name is not fully shown, and "Specific Purpose" is not shown
  6. Resize the Advanced Data Options window and observe the column title has a fixed width with no way to show the full column width.

Expected behavior Table in Advanced Data Options modal should be responsive, so that the table would be become larger together with the modal window being resized. Alternatively, the column title could have a tooltip so user could hover his mouse on top of the truncated column title to see the full title.

Additional context Example of relevant context: measurements from multiple devices, such as "TemperatureMeetingRoomACeiling" and "TemperatureMeetingRoomAFloor". In this case, user may want to ignore Floor measurements in some runs. As a workaround user can rename them to shorter names or delete them from the dataset, but it is not ideal for the long term.

LittleLittleCloud commented 3 years ago

@beccamc Do we handle excessively long column name specifically? Maybe it's worth a discussion with @romalpani on handling these special cases?

beccamc commented 3 years ago

@LittleLittleCloud We aren't doing anything special. The problem is we aren't using the WPF data grid, because people didn't like the behavior around changing values. The down side is we don't get nice resize capabilities.

I can take a look at options here, since customers should be able to see the full name someone (maybe tooltip?) @romalpani let me know if you have any thoughts.

@torronen Thanks for reporting! We'll look into options for viewing the full name. To unblock, you could use the search bar to search for the full column name. Sounds like you've probably already unblocked yourself, but that is an option until we ship a fix.

romalpani commented 3 years ago

@beccamc @LittleLittleCloud Here are some of the options. Happy to discuss them during our design sync.

  1. Have we considered using the Grid control in VS? I believe it has responsive behavior. E.g., try adding a dependency through connected services experience in VS. image

  2. The column names that truncate should always have a tooltip associated with them which lists the full name of the column on hover and keyboard focus.

  3. I noticed that the column names themselves are not accessible by keyboard (i.e., you cannot use your keyboard to focus on the column name and use the up-down arrow key to go through the list quicker). From an accessibility standpoint, I think column names should be focusable.

  4. The vertical scrollbar should be along the right-side wall of the dialog. This will give more space for the main content. image

beccamc commented 3 years ago

@romalpani Thanks for the fast response!

  1. We have looked at using the grid control from WPF. People didn't think it was clear the elements were editable. I found the conversation from teams and pasted it into the issue.
  2. Yep, we can add the tooltips
  3. Column names are not supposed to be keyboard accessible, as they are a non-interactive component. https://github.com/dotnet/machinelearning-modelbuilder/issues/1133
  4. Makes sense!

Current action items: Add tooltips and make the grid wider.

torronen commented 3 years ago

For additional context: my current use case requires generating a dataset from a large number of PDF documents (I am running categorization, summarization, unique bigrams etc. on the extracted text). The creation of the dataset is a multi-day run, so I am generating about 20 alternatives for prediction in the same file, such "ResultCategory", "ResultSubCategory", "ResultSentiment", "ResultExpertLevel"...

For every training run, I need to mark about 20 fields as ignored, sometimes more. This may be a special case and not really an issue, but if there could be a faster way to mark multiple columns as ignored, that would be great. I can imagine someone else wanting to bulk change column types or remove categorical checkboxes.

@beccamc thanks for the tip, I did not realize to use the search before.

romalpani commented 3 years ago

@beccamc

1 I wonder if we could style the editable content in a grid component to feel more editable? Happy to discuss this in more detail or what other options we might have.

3 I think if not the column name, the entire row at least needs to be keyboard selectable. So, for example,

Customer opens Advanced data options dialog Focus is on the search box Tab to bring focus to the first row Tab to interact with the first combo-box inside the first row ... or ... Down arrow to bring focus to the second row Tab to interact with the first combo-box inside the first row

While it is true that non-interactive elements don't need to be keyboard focusable, allowing keyboard customers to access the rows easily using an up-down arrow key is equally important from a usability standpoint.

romalpani commented 3 years ago

@torronen that's a good point. We will look into "bulk-editing" as an option.

vzhuqin commented 3 years ago

The long title has the tooltip on main build: 16.6.3.2136604 image.png